1. 程式人生 > >SSD 目標檢測演算法詳細總結分析(one-stage)(深度學習)(ECCV 2016)

SSD 目標檢測演算法詳細總結分析(one-stage)(深度學習)(ECCV 2016)

論文名稱:《 SSD: Single Shot MultiBox Detector 》

論文下載:https://arxiv.org/pdf/1512.02325.pdf

論文程式碼:https://github.com/weiliu89/caffe/tree/ssd


1. 網路結構

(1)
(2)
圖5 SSD網路

SSD演算法直接預測目標的座標和類別,沒有生成候選框的過程。網路直接在VGG16網路的基礎上進行修改。

SSD網路=基礎網路+輔助結構

基礎網路:VGG16(階段1~階段5)

輔助結構:fc6,fc7 àconv6,conv7

 新增4個卷積層(conv6_2,conv7_2,conv8_2,conv9_2)

1.1用於檢測的多尺度特徵圖

(1)這些層逐漸減小尺寸

(2)允許預測多個尺度的檢測

(3)每個特徵層用於預測檢測的卷積模型是不同的

1.2 用於檢測的卷積預測器

(1)使用一組卷積濾波器生成一組固定的檢測預測

(2)3×3×p小卷積核

►物體類別得分

►相對於預設框的座標偏移

1.3 Default boxes

每個Default boxes預測C個類別得分和4個offset

▪ m×n feature map + (c+4)×k濾波器 à (c+4)×k×m×n 輸出

▪ 類似 Faster R-CNN 中的anchor boxes

論文中使用了幾種不同解析度的feature map。

▪Feature map cell是Feature map分成的每個小格(例如上圖b的8*8)。

▪Default box 是每個小格上對應的一系列box。

▪Prior box是指實際中選取的default。

2. 訓練過程

圖5 SSD網路

(1)每一個 prior box 經過Jaccard係數計算和真實框的相似度。

(2)閾值只有大於 0.5 的才可以列為候選名單;假設選擇出來的是N

個匹配度高於百分之五十的框。

(3)我們令 表示第 i 個預設框,j 表示第 j 個真實框,p表示第p個類。那麼xi,jp 表示 第 i 個 prior box 與 類別 p 的 第 j 個 ground truth box 相匹配的Jaccard係數,若不匹配的話,則xi,jp=0

(4)總的目標損失函式(objective loss function)為 localization loss(loc) 與 confidence loss(conf) 的加權求和。

3. 創新點

(1)使用多尺度特徵maps進行目標檢測。

(2)小卷積濾波器來預測固定的一組預設邊界框的類別得分和框偏移。

(3)為了實現高檢測精度,我們從不同尺度的特徵圖產生不同尺度的預測,並通過縱橫比明確地分開預測。

 (4)即使在低解析度輸入影象上,這些設計特徵也可實現簡單的端到端訓練和高精度,從而進一步提高速度與精度之間的權衡。

4. 存在問題

SSD的缺點是對小尺寸的目標識別仍比較差,還達不到Faster R-CNN的水準。這主要是因為小尺寸的目標多用較低層級的anchor來訓練(因為小尺寸目標在較低層級IOU較大),較低層級的特徵非線性程度不夠,無法訓練到足夠的精確度。