ssd: single shot multibox detector
**翻譯:
**詳解:
****:
圖1:
圖2:
演算法步驟:
1、輸入一幅(300x300),將其輸入到預訓練好的分類網路中來獲得不同大小的特徵對映,修改了傳統的vgg16網路;
2、抽取conv4_3、conv7、conv8_2、conv9_2、conv10_2、conv11_2層的feature map,然後分別在這些feature map層上面的每乙個點構造6個不同尺度大小的bbox,然後分別進行檢測和分類,生成多個bbox,如圖2所示;
3、將不同feature map獲得的bbox結合起來,經過nms(非極大值抑制)方法來抑制掉一部分重疊或者不正確的bbox,生成最終的bbox集合(即檢測結果);
(1)多尺度特徵對映
ssd演算法中使用到了conv4_3,conv_7,conv8_2,conv7_2,conv8_2,conv9_2,conv10_2,conv11_2這些大小不同的feature maps,其目的是為了能夠準確的檢測到不同尺度的物體,因為在低層的feature map,感受野比較小,高層的感受野比較大,在不同的feature map進行卷積,可以達到多尺度的目的。
why?:我們將一張輸入到乙個卷積神經網路中,經歷了多個卷積層和池化層,我們可以看到在不同的卷積層會輸出不同大小的feature map(這是由於pooling層的存在,它會將的尺寸變小),而且不同的feature map中含有不同的特徵,而不同的特徵可能對我們的檢測有不同的作用。總的來說,淺層卷積層對邊緣更加感興趣,可以獲得一些細節資訊,而深層網路對由淺層特徵構成的複雜特徵更感興趣,可以獲得一些語義資訊,對於檢測任務而言,一幅影象中的目標有複雜的有簡單的,對於簡單的patch我們利用淺層網路的特徵就可以將其檢測出來,對於複雜的patch我們利用深層網路的特徵就可以將其檢測出來,因此,如果我們同時在不同的feature map上面進行目標檢測,理論上面應該會獲得更好的檢測效果。
如上圖所示,在特徵圖的每個位置**k個bbox,對於每乙個bbox,**c個類別得分,以及相對於default box的4個偏移量值,這樣總共需要(c+4)×k個**器,則在m×n的feature map上面將會產生(c+4)×k×m×n個**值。
分析:
ssd中的de****t box和faster-rcnn中的anchor機制很相似。就是預設一些目標預選框,後續通過softmax分類+bounding box regression獲得真實目標的位置。對於不同尺度的feature map 上使用不同的default boxes。如上圖所示,我們選取的feature map包括38x38x512、19x19x1024、10x10x512、5x5x256、3x3x256、1x1x256,conv4_3之後的feature map預設的box是4個,我們在38x38的這個平面上的每一點上面獲得4個box,那麼我們總共可以獲得38x38x4=5776個;同理,我們依次將fc7、conv8_2、conv9_2、conv10_2和conv11_2的box數量設定為6、6、6、4、4,那麼我們可以獲得的box分別為2166、600、150、36、4,即我們總共可以獲得8732個box,然後我們將這些box送入nms模組中,獲得最終的檢測結果。
de****t box生成規則:
loss函式分為兩部分:計算相應的default box與目標類別的confidence loss以及相應的位置回歸。
其中n是match到ground truth的default box數量;而alpha引數用於調整confidence loss和location loss之間的比例,預設alpha=1。
位置回歸則是採用smooth l1 loss,loss函式為:
confidence loss是典型的softmax loss:
目標檢測之 SSD
ssd300 網路結構圖 ssd單階段目標檢測,候選框密集抽樣。作為單階段的目標檢測,其速度還是比faster快很多的,但是精度還是差點。ssd300共用了6層特徵,進行目標檢測,ssd512用了7層特徵,每一層的default box數量不同如上圖分別為 4,6,6,6,4,4,4為設定的乙個大正...
目標檢測之SSD
ssd single shot multibox detector 翻譯 詳解 圖1 圖2 演算法步驟 1 輸入一幅 300x300 將其輸入到預訓練好的分類網路中來獲得不同大小的特徵對映,修改了傳統的vgg16網路 2 抽取conv4 3 conv7 conv8 2 conv9 2 conv10 ...
目標檢測演算法之SSD
昨天介紹了特徵金字塔網路用於目標檢測,提公升了多尺度目標檢測的魯棒性,今天開始講講one stage目標檢測演算法中ssd演算法。這個演算法是我平時做工程中最常用到的,嚴格來說平時最常用的mobilenet做backbone的ssd演算法,因為要考慮到實際部署的時候的速度要求。本文提出了僅需要單個卷...