ssd具有如下主要特點:
(1)從yolo中繼承了將detection轉化為regression的思路,同時一次即可完成網路訓練
(2)基於faster rcnn中的anchor,提出了相似的prior box
(3)加入基於特徵金字塔(pyramidal feature hierarchy)的檢測方式
yolo在卷積層後接全連線層,即檢測時只利用了最高層feature maps(包括faster rcnn也是如此);而ssd採用了特徵金字塔結構進行檢測,即檢測時利用了conv4-3,conv-7(fc7),conv6-2,conv7-2,conv8_2,conv9_2這些大小不同的feature maps,在多個feature maps上同時進行softmax分類和位置回歸。
ssd使用低層feature map檢測小目標,使用高層feature map檢測大目標,這也應該是ssd的突出貢獻了。
dssd在常用的目標檢測演算法中加入了更好的特徵提取網路和上下文資訊,相比於利用一層feature map的yolo、faster rcnn等,和利用多層feature map的ssd,dssd充分利用了各層之間的資訊結合。
yolo演算法把檢測的劃分為14*14的格仔,每個格仔都會提取出目標檢測框,但最初時,每個格仔只會提取出乙個目標框,當兩個目標落入乙個格仔中,會出現漏檢。ssd利用faster rcnn中anchor的思路,將分成更小的格仔(即在淺層上來更好地匹配小目標),再在這些格仔中使用anchor,即在格仔中加上6到9個不同的檢測框,有效地降低了漏檢概率。但是ssd在淺層提取的feature map表徵能力不夠強,即淺層的feature map中每個格仔包含的類的置信度不夠高,同樣會出現誤檢和漏檢,因此ssd對小目標不夠魯棒。
由於ssd演算法的淺層feature map的表徵能力不夠導致對小目標不夠魯棒,因此,dssd使用了resnet-101基礎網路和deconvolution反卷積層,使淺層feature map具有更好的表徵能力,更好地提高對小目標的檢測能力,而且resnet比vgg的收斂速度快很多。
dssd將基礎網路vgg換成resnet,通過加深網路來增強網路的表徵能力。但實驗結果顯示,大小不夠時(321321),resnet的ssd和vgg的ssd效果相當,整體稍差些,當輸入影象為512512時,resnet的優勢才明顯體現。
ssd的直接從數個卷積層中分別引出**函式,**量多達7000多,梯度計算量也很大。ms-cnn方法指出,改進每個任務的子網可以提高準確性。根據這一思想,作者在每乙個**層後增加殘差模組,並且對於多種方案進行了對比,如下圖所示。結果表明,增加殘差**模組後,高解析度的檢測精度比原始ssd提公升明顯。
在反卷積模組中,實驗結果顯示,使用prod點積的操作的效果更好。
dssd的訓練方式沿用了ssd的訓練方法,通過caffe實現。
總而言之,dssd就是將resnet、prediction module、deconvolution module結合起來構成的基於ssd的目標檢測演算法。
在github上找到dssd模型的caffe版程式**,雖然有ssd的keras版程式原始碼,但是dssd在ssd的基礎上所做的改變較大,基準網路從vgg換成了resnet-101,而且增加了反卷積層,如果在ssd的**上做出改變難度很大。而且目前對caffe與keras的使用不熟悉,很難完成caffe到keras的**轉換。
dssd_caffe:
ssd_keras:
rpn網路:rpn網路的作用是輸入一張影象,輸出一批矩形候選區域,類似於以往目標檢測中的selective search一步。網路結構是基於卷積神經網路,但輸出包含二類softmax和bbox回歸的多任務模型。網路結果如下(以zf網路為參考模型):
anchor機制:anchor是rpn網路的核心。剛剛說到,需要確定每個滑窗中心對應感受野內存在目標與否。由於目標大小和長寬比例不一,需要多個尺度的窗。anchor即給出乙個基準窗大小,按照倍數和長寬比例得到不同大小的窗。例如**中基準窗大小為16,給了(8、16、32)三種倍數和(0.5、1、2)三種比例,這樣能夠得到一共9種尺度的anchor,如圖
因此,在對6040的map進行滑窗時,以中心畫素為基點構造9種anchor對映到原來的1000600影象中,對映比例為16倍。那麼總共可以得到60409大約2萬個anchor。
目標檢測經典演算法筆記
在計算機視覺領域,最基本也最經典的乙個問題就是目標識別 object detection 給出一張影象,用detector檢測出影象中特定的object 如人臉 這方面的 最經典的恐怕要數 rapid object detection using a boosted cascade of featu...
目標檢測SSD演算法筆記
明確幾個概念 通過feature map cell anchor 生成的矩形框稱之為default box ssd中為8732個 將這些default box與真實的目標框 ground truth 進行iou匹配後得到的大於iou閾值的矩形框稱之為prior box 通過prior box結合難例...
目標檢測演算法綜述筆記
主要參考兩篇綜述 object detection in 20 years a survey recent advances in deep learning for object detection csdn上有翻譯版,對照這翻譯版,能夠更快的理解,注意如果是菜鳥,最好review三遍,三遍是我從...