天天看點

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

>>戳此處立即下載下傳電子書<< ,學習全套目标檢測算法&模型

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

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 為正樣本。

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

圖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。

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

圖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 借鑒了它的一些思想并在其基礎上做了改進,做到了比較好的平衡。

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

繼續閱讀