SSD的特點:
- 無region proposal過程,在各個feature map上産生固定的default boxes;
- 網絡結構端到端,可進行端到端的訓練;
網絡結構:
- base network: 截斷的VGG16;
- 在其後添加6個extra layers(conv layers):conv6, conv7, conv8_2, conv9_2, conv10_2, conv11_2;
檢測過程:
- 樣本圖像輸入(input image) ;
- 通過base network,生成特征圖F1;
- 由F1依次通過各extra layers生成6個特征圖Fv6, Fv7, Fv8_2, Fv9_2, Fv10_2, Fv11_2;
- 加上conv4_3生成的特征圖Fv4_3,Fv7, Fv8_2, Fv9_2, Fv10_2, Fv11_2共6個特征圖,用于生成檢測框;
- 各特征圖由相應3*3卷積核(conv11_2特征圖分辨率為1*1,應當使用1*1卷積核),基于固定預選框生成對應檢測框,卷積核次元為[3, 3, (4/6)*(classes + 4)] (4/6:預選框個數,classes:總類别數,4:{x, y, w, h});
- 根據參與生成檢測框的各特征圖分辨率,任意類别得到8732個檢測框,經過NMS子產品處理得到最終的檢測結果;
訓練過程:
- 損失函數:
損失函數由分類損失函數(confidence loss)和回歸損失函數(location loss)權重構成;
分類損失函數為Softmax loss,
代表ith預選框與類别為p的jth标定框的比對情況{0, 1},針對所有樣本計算;
回歸損失函數為
損失函數,僅對正樣本檢測框計算;
- 政策 - 預選框比對标定框:首先比對與任一标定框IoU最高的預選框,其次比對預選框中與标定框IoU高于0.5的,比對到的框均為正樣本;
- Hard negative mining:比對後會得到少量的正樣本預選框和大量的負樣本預選框,進行分類任務訓練時會嚴重偏向負樣本,是以需要控制負樣本數量,通過對樣本的分類損失由高到低排序,按順序選取損失值大的負樣本使neg:pos = 3:1;
- 訓練過程:base network由ImageNet預訓練得到的模型初始化,對于輸入的訓練樣本,通過卷積神經網絡獲得若幹檢測框,通過預選框比對政策與Hard negative mining計算損失函數進行訓練。
預選框尺寸及長寬比設定:
- 預選框設定僅存在于Fv4_3,Fv7, Fv8_2, Fv9_2, Fv10_2, Fv11_2共6張特征圖;
- 特征圖分辨率:由高到低;預選框所覆寫的範圍:由小到大(對于固定的像素點預選框是固定的,但對于不同分辨率的特征圖,預選框映射回原圖的比例是在增大的);
- 比例計算:
= 0.2,
= 0.9,m = 5(除去Fv4_3,Fv4_3對應比例為0.1),長寬比設定:{1, 2, 1/2, 3, 1/3},對于某一特征圖,設其比例為
,則預選框基準邊長
= width *
(width為圖檔寬,如:300*300),對于長寬比為2的預選框,長為
,寬為
,對于長寬比為1的預選框,邊長同樣有兩種:
,
;
個人了解,如有錯誤歡迎指正。