1. 程式人生 > >SSD(single shot multibox detector)

SSD(single shot multibox detector)

voc 我們 aspect reference com any detect sca 自己

SSD,全稱Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一種目標檢測算法,截至目前是主要的檢測框架之一,相比Faster RCNN有明顯的速度優勢,相比YOLO又有明顯的mAP優勢(不過已經被CVPR 2017的YOLO9000超越)

在VOC2007上,SSD300比Faster R-CNN的mAP高了6.6倍

技術分享圖片

在VOC2007上,SSD300比YOLP的FPS高了10%倍

技術分享圖片

1.SSD網絡結構

技術分享圖片

技術分享圖片

SSD網絡最前邊使用了VGG16的前5個層,使用Conv4_3做邊框回歸和分類;然後把VGG16的2個全連接層FC6、FC7改成了卷積層Conv6、Conv7,使用Conv7做邊框回歸和分類;之後自己添加了Conv8、Conv9、Conv10、Conv11,並選取其中的Conv8_2、Conv9_2、Conv10_2、Conv11_2做邊框回歸和分類。

通過分析SSD網絡的結構,我們知道了SSD網絡是在哪個特征圖上做邊框回歸和分類,接著看下怎麽在這些特征圖上圈一個框出來。

2.Default Boxs

假設網絡經過卷積,生成了8*8和4*4的feature map

在8*8和4*4的feature map上分割生成一些網格,這些網格稱為feature map cell,如下圖所示

技術分享圖片

使用一個3*3卷積核在圖像上滑動,每一個卷積核滑動的位置,生成一系列default box

由於網絡前邊的feature map尺寸較大(8*8),使用3*3的卷積核可以圈出小物體;網絡後邊的feature map尺寸較小(4*4),使用3*3的卷積核可以圈出大物體,這樣就解決了在YOLO中容易漏掉小物體的問題(如果YOLO劃分的網格中有2個小物體的中心都在同一個網格,那麽YOLO只能檢測出一個物體

default box的大小用scale和aspect ratios表示,使用如下公式計算:

scale

$s_k = s_{min} + {s_{max}- s_{min} \over m -1}(k - 1) ,k \in [1,m]$

其中$s_{min} = 0.2,s_{max = 0.9}$

aspect ratios

技術分享圖片

$w_k^a表示的是盒子的寬,h_k^a表示盒子的長$

當aspect ratios為1時,scale為s`

3.特征向量生成

有了default box後就需要生成特征向量進行框回歸和分類。

對於邊框回歸,只需要4維向量即可,分別代表邊框縮放尺度(坐標軸兩個方向)和平移向量(坐標軸兩個方向)

。對於分類,SSD網絡采取為每個類別進行打分的策略,也就是說對於每個Default Box,SSD網絡會計算出相應的每個類別的分數。假設數據集類別數為c,加上背景,那麽總的類別數就是c+1類。SSD網絡采用了c+1維向量來分別代表該Default Box對於每個類別所得到的分數。這裏,假設是VOC數據集,那麽每個Default Box將生成一個20 + 1 + 4 = 25維的特征向量。同樣,以Conv9輸出特征圖5x5為例。

技術分享圖片

在5*5的特征圖上使用1*1的卷積核滑動,即每個格子生成6個default box,一共5*5*6 = 150個default box

每個盒子要生成25個特征向量,最後會產生5*5*6*25 = 3750個輸出

SSD源碼中並不會使用所有的default box,而是在每張feature map中使用部分default box,源碼中叫prior box

conv4_3(4),fc7(6),conv6_2(6),conv7_2(6),conv8_2(4),conv9_2(4)括號中的數字是每張feature map使用的prior box數

所以SSD300的prior box總數是38*38*4+19*19*6+10*10*6+5*5*6+3*3*4+1*1*4=8732

4.損失函數

這8732個prior box不會全部計算損失函數,而是通過計算Jaccard overlap計算和Groudtruth box重疊的比例,大於0.5的計算損失,損失的計算公式如下,具體的可以參考reference論文中的公式

技術分享圖片

5.Reference

  • 論文:http://arxiv.org/abs/1512.02325
  • https://zhuanlan.zhihu.com/p/24954433
  • https://zhuanlan.zhihu.com/p/31427288
  • https://www.cnblogs.com/xuanyuyt/p/7447111.html

SSD(single shot multibox detector)