目標檢測入門系列手冊六:SSD訓練教程

視覺計算發表於2019-12-10

,學習全套目標檢測演算法&模型

image.png

SSD

SSD[4] 同時借鑑了YOLO 網格的思想和Faster R-CNN 的anchor 機制,使得SSD 可以快速進行預測的同時又可以相對準確地獲取目標的位置。

圖2-15 中的(b)和(c)分別代表不同的特徵層,(c)相對(b)離最終預測結果較近,因此跨越同樣畫素個數能檢測的目標就越大。按照圖2-15 所示,在特徵層(b)的每個點上都將產生4 個不同大小的anchor(1:1 兩個,1:2 兩個),在特徵層(c)上也是如此。因此,根據真實目標矩形框與每個anchor 的IOU 大小計算可知,(b)中有2 個anchor 為正樣本,(c)中1 個anchor 為正樣本。

image.png

圖2-15 SSD 特徵層與anchor 示意圖[4]

對比之前學過的Faster R-CNN,接下來我們介紹SSD 的一些特點:

●  使用多尺度特徵層進行檢測。
在 Faster Rcnn 的 RPN 中,anchor 是在主幹網路的最後一個特徵層上生成的,而在SSD 中,anchor 不僅僅在最後一個特徵層上產生,在幾個高層特徵層處同時也在產生anchor。如圖2-16 所示,SSD 在VGG16 的conv6 開始,在conv7、conv8、conv9、conv10 都產生anchor。這些特徵層大小依次遞減,使得SSD 可以檢測不同尺度的目標。這裡簡單解釋下,比如同樣一個3×3 的anchor,它在conv6 看到的目標(感受野)就要遠小於conv10 看到的目標,可以理解為靠前的特徵層用於檢測小目標,而靠後的特徵層用來檢測大目標。與RPN 網路(2.2.3 中介紹)產生anchor 的方法類似,SSD 也是在特徵層的每個點上產生多個比例、多個尺度的n 個anchor。如圖2-15(b)是一個8×8 的特徵層,每個小方格子是一個特徵點,每個特徵點上可以產生寬高比為1:1,1:2,1:3,大小多個尺度的anchor。

image.png

圖2-16 SSD 結構圖[4]

●  SSD 中所有特徵層產生的 anchor 都將經過正負樣本的篩選(在 2.2.3 介紹過如何使用IOU 進行anchor 的篩選)後直接進行分類分數以及bbox 位置的學習。
也就是說,特徵層上生成的正負樣本直接進行最終的分類(ClassNum 個類別)以及bbox 的學習,不像Faster R-CNN 那樣先在第一步學是否有物體(只有0/1 兩個類別)和bbox 位置,然後在第二步學最終的分類(ClassNum個類別)以及對bbox 位置的微調。

實際應用時我們往往不僅關注精度,很多情況下也要考慮速度,比如對影片內容進行實時地檢測,這時候我們就希望有方法可以很好的做速度和精度的平衡。YOLO是第一個提出來效果很好的1-stage 檢測方法,SSD 借鑑了它的一些思想並在其基礎上做了改進,做到了比較好的平衡。


文章來源:阿里雲-機器智慧技術

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956605/viewspace-2667687/,如需轉載,請註明出處,否則將追究法律責任。

相關文章