論文閱讀理解 - SSD: Single Shot MultiBox Detector


SSD: Single Shot MultiBox Detector

Paper

Slide

Code-Caffe

摘要
SSD,一次深度神經網絡前饋來進行目標檢測. 通過對不同 scales 的各 feature map 位置,根據不同的 aspect ratios,將 bounding boxes 的輸出空間離散化為 default boxes 集合.
在預測階段,網絡得到在每個 default box 中各物體類別的存在概率,以及與物體形狀最佳匹配的 box.
SSD 網絡通過結合多個不同分辨率的 feature maps,可以更好的檢測不同尺寸的物體. 相對於需要 object proposals 的方法,SSD 不需要生成 proposal 和 像素或特征重采樣階段,將所有的計算封裝在一個網絡中. 即使輸入圖像尺寸較小時,SSD 仍有較好的精度.
SSD主網絡結構是VGG16,將 2 個全連接層替換為卷積層,並新增 4 個卷積層構造網絡結構. 對其中5個不同的卷積層輸出的 feature maps,分別用兩個 3*3 卷積核的卷積層處理,其中一個卷積層輸出分類用的 confidence,每個default box 生成 N+1 個confidence值;另一個卷積層輸出回歸的localization,每個default box 生成 4 個坐標值(x,y,w,h).

這里寫圖片描述

Fig.1. SSD 框架. (a) SSD訓練時 只需一張輸入圖片和其各物體的 groundtruth boxes. (b) 和 (c) 為不同 scales 的 feature map,尺寸分別為 8 × 8 4 × 4 ,分別估計不同 aspect ratios 的 default boxes 的 small set (這里是4). 對於各 default box,同時預測 box 的偏移和所有物體類別的 confidences ( c 1 , c 2 , . . . , c p ) . 訓練時,首先匹配 default boxes 和 groundtruth boxes. 例如,匹配兩個 default boxes 到 cat,一個default box 到 dog,作為 positives,其它的作為 negatives. 模型loss為 localization loss 和 confidence loss的加權和.

1. Model

SSD 方法基於前饋卷積網路來生成 bounding boxes集合,以及各box中物體類別分數,采用 NMS(non-maximum suppression) 來得到最終的檢測結果.

base network: VGG-16
這里寫圖片描述
Fig.2. SSD 和 YOLO 對比. SSD在 base network 后添加了幾個特征層,來預測不同 scales 和 aspect ratios 的default boxes的偏移及對應的confidence.

SSD 特點:

  • Multi-scale feature maps for detection 多尺度特征圖
    卷積特征層尺寸逐步增加,可以在不同 scales 預測檢測結果. 在
  • Convolutional predictors for detection
    如圖 Fig.2. , 對於一個 m × n 大小 p channels 的特征層,采用 3 × 3 × p 的 small kernel 來得到類別分數,或者相對於 default box 的相對偏移量. 采用小卷積核來預測 bounding box 的物體類別和偏移量.
  • Default boxes and aspect ratios 默認boxes 和縱橫比
    對於網絡輸出的多個 feature maps, 分別將各 feature map 與一組默認的邊界框(bounding boxes)關聯. 默認的boxes以卷積的方式與 feature map關聯,使得各 box 相對於其 feature map cell 的相對位置是固定的. 在各 feature map cell,預測 box 與默認 box的偏移(offsets),以及 box 內存所在某類實例的類別分數(per-class scores). 即,對於在給定位置的 k 個boxes中的各 box,計算 c 類分數和 4 個相對於默認box的偏移值(offses).
    采用 ( c + 4 ) k 個 filters 對一個 m × n 的 feature map 各位置進行處理,會產生 ( c + 4 ) k m n 個輸出. 默認 boxes 的例示如 Fig.1. 這里默認的 boxes 類似於 Faster R-CNN 中的 anchor boxes. 通過在多個不同分辨率的 feature map 設定不同的默認 box,能夠有效的離散化可能的輸出 boxes.

2. Training

SSD 的訓練與傳統采用region proposals 的CNN檢測器的關鍵不同在於,ground truth 需要分配給檢測器輸出的固定集中的特定輸出. 之后 loss 函數和BP都是 end-to-end 訓練的.

訓練還涉及 default boxes 的選擇和檢測尺度(scales)的選擇,以及 hard negative mining 和數據增廣策略.

2.1 Matching strategy 匹配策略

訓練時需要確定默認 boxes 所對應的 ground truth.

每個 groundtruth box,是從變化位置(vary over location)、縱橫比(aspect ratio)和尺度(scale)所得到的 default boxes中進行選擇的.

首先,根據最大的 jaccard overlap(類似於MultiBox) 來將各 groundtruth box 與 default box 進行匹配;

然后,將 default boxes 與任何 jaccard overlap 閾值大於某個特定值(0.5)的 groundtruth box 進行匹配.

這種操作簡化了學習問題,使得網絡可以預測多個高分數的 overlapping default boxes,而不是只選擇一個最大的 overlap.

2.2 訓練目標函數

x i j p = 1 , 0 為指示函數,表示第 i 個 default box 與類別(category) p 中第 j 個 groundtruth box的匹配,且 i x i j p 1 .

最終目標損失函數是 localization loss(loc) 和 confidence loss(conf) 的加權和:

L ( x , c , l , g ) = 1 N ( L c o n f ( x , c ) + α L l o c ( x , l , g ) )

其中,

N ——匹配的 default boxes 的數目. 如果 N = 0 ,loss 設為0.

L l o c —— predicted box(l) 和 groundtruth box(g) 間的 Smooth L1 loss, 回歸 default bounding box(d) 的中心 ( c x , c y ) 、寬(width) w 和高(hgeight) h 的偏移量.

L c o n f —— multiple classes(c類) confidences 的 softmax loss.

α = 1 —— 權重項


L l o c ( x , l , g ) = i P o s N m { c x , c y , w , h } x i j k s m o o t h L 1 ( l i m g ~ j m )

g ~ j c x = ( g j c x d i c x ) / d i w

g ~ j c y = ( g j c y d i c y ) / d i h

g ~ j w = l o g ( g i w d i w )

g ~ j h = l o g ( g j h d i h )


L c o n f ( x , c ) = i P o s N x i j p l o g ( c ~ i p ) i N e g l o g ( c ~ i 0 )

c ~ i p = e x p ( c i p ) p e x p ( c i p )


2.3 default boxes 的 scales 和 aspect ratios 的選擇

網絡不同層的 feature maps 具有不同的接受野.

SSD網絡中,default boxes 不需對應各層真實接受野. 定義 default boxes 以確保特定的 feature maps 來學習物體的特定scale的響應(response).

假設需要用 m 個 feature maps 來進行預測,各 feature map 的 default boxes 的計算為:

s k = s m i n + s m a x s m i n m 1 ( k 1 ) , k [ 1 , m ]

其中, s m i n = 0.2 s m a x = 0.9 表示 lowest 層的有一個 0.2 的scale,highest 層有一個 0.9 的scale,中間其它層是規律地分布.

對於 default boxes 添加不同的 aspect ratios,記為 α r 1 , 2 , 3 , 1 2 , 1 3 ,則各 default box 的width 和 height分別為 w k a = s k a r h k a = s k / a r .

當 aspect ratio 為 1 時,添加一個 default box,其 scale 為 s ` k = s k s k + 1 ,在各 feature map 位置可以得到 6 個 default boxes. 將各 default box 的中心設為 ( i + 0.5 | f k | , j + 0.5 | f k | ) ,其中 | f k | 為第 k 個 feature map 的大小, i , j [ 0 , | f k | ] .

實際應用中,可以定義 default boxes 的分布來更好的擬合數據集. 最優的方案仍需探索.

通過結合從許多 feature maps的所有位置得到的不同 scales 和 aspect ratios的 default boxes的預測結果,能夠得到覆蓋許多不同的輸入物體大小和形狀的預測結果集合. 如圖 Fig.1. , dog 匹配到 4 × 4 feature map 中的 default box, 而不是 8 × 8 feature map 中的任何 default boxes. 其原因是,這些 boxes具有不同的 scales,與 dog box 不匹配,在訓練中被當作 negatives.

2.4 Hard negative mining

boxes 匹配后,大部分 default boxes 都是 negatives,尤其是 possible default boxes 數量較大時. 這會造成 positive 和 negative 訓練樣本的嚴重不平衡.

因此,這里不使用所有的 negative 樣本. 而是根據各 default box 的 highest confidence loss 排序,並選擇最大的,使得 negatives 和 positives 的比例大概為 3:1.

2.5 數據增廣

  • 采用整個輸入圖片
  • 根據與 objects 的minimum jaccard overlap {0.1,0.3,0.5,0.7,or 0.9 }采樣 patch.
  • 隨機選取一個采樣 patch.

采樣patch 的尺寸為原始圖片尺寸的 [ 0.1 , 1 ] 倍,aspect ratio 在 [ 1 2 , 2 ] 之間. 如果 groundtruth box的中心在采樣patch 中,則保留其重疊部分.

采樣后,各采樣patch 被裁剪為固定尺寸,並以0.5的概率隨機水平鏡像. 也會進行一些添加一些噪聲,圖片失真.


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com