SSD(Single shot multibox detector)目標檢測模型架構和設計細節分析

        先給出論文鏈接:SSD: Single Shot MultiBox Detector

        本文將對SSD中一些難以理解的細節做仔細分析,包括了default box和ground truth的結合,default box結合到不同檢測的feature map層上,難樣本挖掘,數據擴充,Atrous Algorithm算法原理等。包括了SSD對一階段目標檢測的貢獻以及總結了SSD對其他目標檢測方法的關鍵改進點。

一、SSD具有如下主要特點

        1. 從YOLO中繼承了將detection轉化爲regression的思路,一次完成目標定位與分類。

        2. 基於Faster RCNN中的Anchor,提出了相似的(default box)Prior box。

        3. 加入基於特徵金字塔(Pyramidal Feature Hierarchy)的檢測方式,即在不同感受野的feature map上預測目標。

二、優點和缺點

        SSD算法的優點應該很明顯:運行速度可以和YOLO媲美,檢測精度可以和Faster RCNN媲美。除此之外,還有一些雞毛蒜皮的優點,不解釋了。這裏談談缺點:

        1. 需要人工設置prior box的min_size,max_size和aspect_ratio值。網絡中prior box的基礎大小和形狀不能直接通過學習獲得,而是需要手工設置。而網絡中每一層feature使用的prior box大小和形狀恰好都不一樣,導致調試過程非常依賴經驗。

        2. 雖然採用了pyramdial feature hierarchy的思路,但是對小目標的recall依然一般,並沒有達到碾壓Faster RCNN的級別。作者認爲,這是由於SSD使用conv4_3低級feature去檢測小目標,而低級特徵卷積層數少,存在特徵提取不充分的問題。

三、關鍵點分析

        1. 多尺度feature map得到default boxes及其 4個位置偏移和21個類別置信度。

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

        結合這個圖,就可以釐清上面的思路。

四、其他相關技術點分析

        1. Hard Negative Mining(難負樣本挖掘)

        指的是分類錯誤,很難分辨的樣本,包括了前景和背景。SSD做了這方面的處理。有一個名詞是OHEM(Online Hard Example Mining)。是將容易分爲負樣本的正類,即圖像中的目標類別。

        2. 數據擴充

        3. Atrous Algorithm

        SSD在設計模型的時候,用了Atrous算法,這提高了模型的性能。其實Atrous算法就是一個下采樣算法。在卷積操作的時候,stride增加,比如stride爲2,則feature map下采樣爲1/4大小(長寬分別爲上一層的1/2),此時表示感受野增加。相反,當stride減少時,比如stride爲1,則feature map不變,此時你獲得的特徵感受野就減少。爲了防止feature map和receptive filed之間的互斥性,採用了Atrous 算法。具體的講解如下分析所示。

五、總結

        1. SSD對目標檢測的貢獻

        (1). SSD, a single-shot detector for multiple categories (faster than YOLO, accurate as Faster R-CNN).

        (2). The core of SSD is predicting category scores and box offsets for a fixed set of default bounding boxes using small convolutional filters applied to multiple feature maps from different layers.

        (3). Experimental evidence: high accuracy, high speed, simple end-to-end training (single shot).

        2. SSD對於其他方法的改進的關鍵點

        (1). Using a small convolutional filter to predict object categories and offsets in bounding box locations.

        (2). Using separate predictors (filters) for different aspect ratio detections.

        (3). Using multiple layers for prediction at different scales (apply these filters to multiple feature maps to perform detection at multiple stages).

六、感謝

        感謝這些博主的詳細分析。給出他們的鏈接:

        目標檢測方法——SSD:https://www.bbsmax.com/A/gGdX0Vepd4/

        SSD分析: https://zhuanlan.zhihu.com/p/24954433

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章