深度學習物體檢測(七) SSD

2021-07-30 10:38:22 字數 1274 閱讀 4058

yolo 模型每個網格只**乙個物體,容易造成漏檢;對於物體的尺度相對比較敏感,對於尺度變化較大的物體泛化能力較差。

針對 yolo 中的不足,提出的 ssd (

single shot multibox detector

)方法同時兼顧了 map 和實時性的要求。對於輸入影象大小為 300*300 在 voc2007 測試集上能夠達到 58 幀每秒( titan x 的 gpu ),72.1% 的 map。輸入影象大小為 500 *500 , map 能夠達到 75.1%。

ssd的主要思路就是faster r-cnn + yolo,利用yolo的思路 和 faster r-cnn的anchor box的思想。

ssd的網路結構

採用 vgg16 的基礎網路結構,使用前面的前 5 層,然後利用 astrous 演算法將 fc6 和 fc7 層轉化成兩個卷積層。再增加了 3 個卷積層,和乙個 pool層。不同層次的 feature map 分別用於 default box 的偏移以及不同類別得分的**,最後通過 nms得到最終的檢測結果。

這些增加的卷積層的 feature map 的大小變化比較大,允許能夠檢測出不同尺度下的物體: 在低層的feature map,感受野比較小,高層的感受野比較大,在不同的feature map進行卷積,可以達到多尺度的目的。

觀察yolo,後面存在兩個全連線層,全連線層以後,每乙個輸出都會觀察到整幅影象,並不是很合理。

ssd去掉了全連線層,每乙個輸出只會感受到目標周圍的資訊,包括上下文。這樣來做就增加了合理性。並且不同的feature map,**不同寬高比的影象,這樣比yolo增加了**更多的比例的box。

多尺度feature map

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

對於不同尺度feature map 的上的所有特徵點:

1、 按照不同的 scale 和 ratio 生成,k 個 default boxes,這種結構有點類似於 faster r-cnn 中的 anchor。

2、 新增加的每個卷積層的 feature map 都會通過一些小的卷積核操作,得到每乙個 default boxes 關於物體類別的21個置信度 ( 20個類別和1個背景) 和4偏移 。

假如feature map 的size 為 m*n, 通道數為 p,使用的卷積核大小為 3*3*p。每個 feature map 上的每個特徵點對應 k 個 default boxes,物體的類別數為 c,那麼乙個feature map就需要使用 k(c+4)個這樣的卷積濾波器,最後有 (m*n) *k* (c+4)個輸出。

深度學習 七十二 ssd物體檢測

def ssd anchor one layer img shape,feat shape,sizes,ratios,step,offset 0.5,dtype np.float32 計算每個default center歸一化後的座標,因為是center,所以要加offset y,x np.mgri...

平面物體檢測

這個教程的目標是學習如何使用 features2d 和 calib3d 模組來檢測場景中的已知平面物體。測試資料 資料影象檔案,比如 box.png 或者 box in scene.png 等。建立新的控制台 console 專案。讀入兩個輸入影象。mat img1 imread argv 1 cv...

unity學習筆記 物體檢測

1.檢測 一定範圍內的物品,顯示物品圖示是遊戲的常見功能了,一般有三種 方法 第一種是通過觸發器去 檢測 常見用 physics.overlapsphere,target.position 2c searchradius 2c 1 layermask.nametolayer laymaskname ...