SSD

背景介紹

基於“Proposal + Classification”Object Detection 的方法,R-CNN系列(R-CNNSPPnetFast R-CNN 以及Faster R-CNN),取得了非常好的結果,但是在速度方面離實時效果還比較遠,在提高mAP的同時兼顧速度,逐漸成爲 Object Detection未來的趨勢。YOLO 雖然能夠達到實時的效果,但是其mAP 與剛纔提到的state of art 的結果有很大的差距。YOLO有一些缺陷:每個網格只預測一個物體,容易造成漏檢;對於物體的尺度相對比較敏感,對於尺度變化較大的物體泛化能力較差。針對YOLO中的這些不足,該論文提出的方法 SSD 在這兩方面都有所改進,同時兼顧了mAP 和實時性的要求。在滿足實時性的條件下,接近 state of art的結果。對於輸入圖像大小爲300*300VOC2007 test上能夠達到 58 幀每秒( Titan XGPU ),72.1% 的 mAP。輸入圖像大小爲500 *500, mAP 能夠達到 75.1%。作者的思路就是Faster R-CNN+YOLO,利用YOLO的思路和Faster R-CNNanchor box的思想。

preview

關鍵點

關鍵點1:網絡結構

該論文采用VGG16的基礎網絡結構,使用前面的前 5 層,然後利用astrous 算法將 fc6fc7 層轉化成兩個卷積層。再格外增加了 3 個卷積層,和一個 average pool層。不同層次的feature map分別用於 default box 的偏移以及不同類別得分的預測(慣用思路:使用通用的結構(如前 5個conv等)作爲基礎網絡,然後在這個基礎上增加其他的層),最後通過nms得到最終的檢測結果。

img

這些增加的卷積層的 feature map的大小變化比較大,允許能夠檢測出不同尺度下的物體: 在低層的feature map,感受野比較小,高層的感受野比較大,在不同的feature map進行卷積,可以達到多尺度的目的。觀察YOLO,後面存在兩個全連接層,全連接層以後,每一個輸出都會觀察到整幅圖像,並不是很合理。但是SSD去掉了全連接層,每一個輸出只會感受到目標周圍的信息,包括上下文。這樣來做就增加了合理性。並且不同的feature map,預測不同寬高比的圖像,這樣比YOLO增加了預測更多的比例的box。(下圖橫向的流程)

img

關鍵點2:多尺度feature map得到 default boxs及其 4個位置偏移和21個類別置信度

對於不同尺度feature map( 上圖中38x38x51219x19x512, 10x10x512, 5x5x512, 3x3x512, 1x1x256) 的上的所有特徵點: 以5x5x256爲例 ,它的#defalut_boxes = 6

img

img

按照不同的 scaleratio 生成kdefault boxes,這種結構有點類似於Faster R-CNN 中的 Anchor。(此處k=6所以:5*5*6 = 150 boxes)

img

img

img

新增加的每個卷積層的feature map都會通過一些小的卷積核操作,得到每一個default boxes關於物體類別的21個置信度(c1,c2,,cp(c_1,c_2,\cdot \cdot \cdot,c_p 20個類別和1個背景) 和4偏移 (shape offsets) 。

(1) 假設feature map 通道數爲p,卷積核大小統一爲3*3*p(此處p=256)。個人猜想作者爲了使得卷積後的feature map與輸入尺度保持一致必然有 padding = 1stride = 1

inputFieldSizekernelSize+2paddingstride+1=53+211+1=5\frac{inputFieldSize-kernelSize+2 \cdot padding}{stride}+1=\frac{5-3+2\cdot1}{1}+1=5

(2) 假如feature mapsizem*n, 通道數爲p,使用的卷積核大小爲3*3*p。每個 feature map上的每個特徵點對應 kdefault boxes,物體的類別數爲c,那麼一個feature map就需要使用k*(c+4)個這樣的卷積濾波器,最後有(m*n)*k*(c+4)個輸出。
img

訓練策略

監督學習的訓練關鍵是人工標註的label。對於包含default box(在Faster R-CNN中叫做anchor)的網絡模型(如:YOLO, Faster R-CNN, MultiBox)關鍵點就是如何把標註信息(ground true box,ground true category) 映射到(default box上)。

  • 正負樣本: 給定輸入圖像以及每個物體的 ground truth,首先找到每個ground true box對應的default boxIOU最大的作爲(與該ground true box相關的匹配)正樣本。然後,在剩下的default box中找到那些與任意一個ground truth boxIOU大於 0.5的default box作爲(與該ground true box相關的匹配)正樣本。 一個ground truth 可能對應多個正樣本default box 而不再像MultiBox那樣只取一個IOU最大的default box。其他的作爲負樣本(每個default box要麼是正樣本box要麼是負樣本box)。下圖的例子是:給定輸入圖像及 ground truth,分別在兩種不同尺度(feature map 的大小爲 8*84*4)下的匹配情況。有兩個default box與貓匹配(8*8),一個default box 與狗匹配(4*4)。

    img

    img

目標函數,和常見的Object Detection的方法目標函數相同,分爲兩部分:計算相應的 default box 與目標類別的 score(置信度)以及相應的迴歸結果(位置迴歸)。置信度是採用 Softmax LossFaster R-CNNlog loss),位置迴歸則是採用Smooth L1 loss (與Faster R-CNN一樣採用offset_PTDF靠近 offset_GTDF的策略:見下圖)。

L(x,c,l,g)=1N(Lconf(x,c)+αLloc(x,l,g))L(x,c,l,g)= \frac{1}{N}(L_{conf}(x,c)+\alpha L_{loc}(x,l,g))
其中:N代表正樣本的數目

img

img

該論文是在 ImageNet分類和定位問題上的已經訓練好的 VGG16模型中 fine-tuning得到,使用 SGD,初始學習率爲 10310^{-3}, 衝量爲 0.9,權重衰減爲 0.0005,batchsize 爲 32。不同數據集的學習率改變策略不同。新增加的卷積網絡採用xavier 的方式進行初始化

  • 在預測階段,直接預測每個default box 的偏移以及對於每個類別相應的得分。最後通過 nms 的方式得到最後檢測結果。

Default Box 的生成

該論文中利用不同層的 feature map 來模仿學習不同尺度下物體的檢測。

  • scale: 假定使用 m 個不同層的feature map 來做預測,最底層的feature mapscale 值爲smin=0.2s_{min}=0.2,

    最高層的爲smax=0.95s_{max}=0.95,其他層通過下面公式計算得到 sk=smin+smaxsminm1(k1),k[1,m]s_k = s_{min} + \frac{s_{max}-s_{min}}{m-1}(k-1),k\in[1,m]

  • ratio: 使用不同的ratioar{1,2,12,3,13}a_r\in\{1,2,\frac{1}{2},3,\frac{1}{3}\} ,計算default box的寬度和高度:wka=skarw_k^a=s_k \sqrt a_rhka=sk/arh_k^a=s_k / \sqrt a_r。另外對於 ratio = 1 的情況,額外再指定scalesk=sksk+1{s_k}'= \sqrt {s_ks_{k+1}} 也就是總共有 6 中不同的 default box

  • default box中心:每個 default box的中心位置設置成(i+0.5fk,j+0.5fk)(\frac{i+0.5}{|f_k|},\frac{j+0.5}{|f_k|}) ,其中fk|f_k|表示第k個特徵圖的大小,i,j[0,fk]i,j\in[0,|f_k|]

Hard Negative Mining

用於預測的feature map上的每個點都對應有 6 個不同的default box,絕大部分的 default box都是負樣本,導致了正負樣本不平衡。在訓練過程中,採用了 Hard Negative Mining的策略(根據confidence loss對所有的box進行排序,使正負例的比例保持在1:3) 來平衡正負樣本的比率,這樣做能提高4%左右。

Data augmentation

爲了模型更加魯棒,需要使用不同尺寸的輸入和形狀,作者對數據進行了如下方式的隨機採樣:

  • 使用整張圖片
  • 使用IOU和目標物體爲0.1, 0.3, 0.5, 0.7, 0.9的patch(這些 patch 在原圖的大小的 [0.1, 1] 之間, 相應的寬高比在[1/2, 2]之間)
  • 隨機採取一個patch

ground truth box 的 中心(center)在採樣的patch 中時,我們保留重疊部分。在這些採樣步驟之後,每一個採樣的patchresize 到固定的大小,並且以 0.5 的概率隨機的水平翻轉(horizontally flipped)。用數據增益通過實驗證明,能夠將數據mAP增加8.8%。

參考

發佈了111 篇原創文章 · 獲贊 51 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章