不經意間看到了SSD這篇文章的一份翻譯:lib.csdn.net/article/deeplearning/53059但大體看了一下并不是很好理解,所以又綜合了幾篇博文來看~
首先,SSD可看作是對YOLO的改進,雖然YOLO相比之前的“proposal+classification”方式進行目標檢測的方法在速度上有明顯的提升,但在mAP方面則要低很多强戴,因為每個網格只檢測一種物體,由此會造成很多漏檢,另外量蕊,它對物體的尺寸比較敏感,對尺度的泛化能力較弱艇挨。故残炮,SSD則實現了同時兼顧時效性及準確性的性能。
****可以利用不同層的feature map來模仿學習不同尺度下的物體檢測缩滨。
那它具體是怎么實現的呢势就?
SSD結構:基于傳統的特征提取網絡(如:AlexNet,VGG等)作為基礎網絡脉漏,再在此基礎上增加其他的層苞冯,而這些其他的卷積層的feature map在大小上有明顯的變化(逐層遞減),以此實現不同尺度下的檢測侧巨。這是這個網絡一個創(chuàng)新的點舅锄,充分利用不同網絡層的信息來模擬不同尺度下的圖像特征來輔助預測。
檢測原理:在后面大小差別較大的feature map層(即在不同層次)上的每個 點司忱,按照不同的尺度和比例皇忿,利用一些小的卷積核生成k個候選框(default boxes),這個類似于faster r-cnn網絡中RPN中的anchors坦仍。然后綜合所有層上的feature map上的檢測結果鳍烁,利用非極大值抑制的方式對所有檢測出的boundingbox進行篩選。以此可以提升對同種物體不同尺度的泛化能力桨踪。
//在這兒不具體列出其是如何進行訓練的老翘,主要是了解其實現檢測的原理步驟。但是附上一個看過的鏈接www.lai18.com/content/24600342.html
SSD是基于YOLO將目標檢測作為一種回歸的任務來實現的,但針對YOLO中的尺度敏感問題铺峭,利用不同層的feature map進行boundingbox的預測以此實現多尺度墓怀。
如上圖所示,以兩個層次上的feature map為例卫键,在b中產生一系列針對貓和狗的固定大小的boundingbox傀履,然后對每個boundingbox都需要預測得出所有類別的得分及offset,則若對于一個(m*n)的feature map莉炉,最后共需檢測的類別數為C類钓账,對每個點產生k個boundingbox而言,其共需要的filters數為(c+4)*k個絮宁,最后的輸出結果共有(c+4)*k*m*n個梆暮。
注:其中的k個filters有不同的比例,以此產生多aspect ratio box
最后來看看SSD的主要貢獻是什么吧~
add: