目標檢測 SSD原理

2022-08-19 20:30:12 字數 1941 閱讀 3585

ssd使用vgg-16-atrous作為基礎網路,其中黃色部分為在vgg-16基礎網路上填加的特徵提取層。ssd與yolo不同之處是除了在最終特徵圖上做目標檢測之外,還在之前選取的5個特特徵圖上進行**。

ssd圖1為ssd網路進行一次**的示意圖,可以看出,檢測過程不僅在填加特徵圖(conv8_2, conv9_2, conv_10_2, pool_11)上進行,為了保證網路對小目標有很好檢測效果,檢測過程也在基礎網路特徵圖(conv4_3, conv_7)上進行。

注意:圖中fc6, fc7名為fc,其實是卷積層。

ssd圖2為整個ssd訓練網路的結構,由於影象所含層數太多,網路中不能看到每層細節,我重畫其中部分層為綠色,作為代表。可以看出,gt標籤在分特徵圖上生成priorbox,即再將所有priobox組合為mbox_priorbox作為所有預設框的真實值。再看**過程,會在所選取的特徵圖進行兩個 3x3卷積,其中乙個輸出每個預設框的位置(x, y, w, h)四個值,另乙個卷積層輸出每個預設框檢測到不同類別物體的概率,輸出個數為**類別個數。再將所有的預設框位置集成為mbox_loc,將所有預設框**類別的向量組合為mbox_conf。mbox_loc、mbox_conf為所有**預設框,將它與所有預設框的真實值mbox_priorbox進行計算損失,得到mbox_loss。

圖中data下方每個priorbox都對應了min_size與max_size,表示不同特徵圖上的預設框在原圖上的最小與最大感受野。關於不同特徵圖上的min_size與max_size,**中給出的計算公式,可惜與實現的prototxt中的引數並不對應。

ssd的損失函式如圖3所示,由每個預設框的定位損失與分類損失構成。

ssd訓練過程中使用的資料增強對網路效能影響很大,大約有6.7%的map提公升。

(1) 隨機剪裁:取樣乙個片段,使剪裁部分與目標重疊分別為0.1, 0.3, 0.5, 0.7, 0.9,剪裁完resize到固定尺寸。

(2) 以0.5的概率隨機水平翻轉。

基礎網路部分特徵圖解析度高,原圖中資訊更完整,感受野較小,可以用來檢測影象中的小目標,這也是ssd相對於yolo檢測小目標的優勢所在。增加對基礎網路conv4_3的特徵圖的檢測可以使map提公升4%。

資料集中目標的開關往往各式各樣,因此挑選合適形狀的預設框能夠提高檢測效果。作者實驗得出使用瘦高與寬扁預設框相對於只使用正方形預設框有2.9%map提公升。

通常卷積過程中為了使特徵圖尺寸特徵圖尺寸保持不變,通過會在邊緣打padding,但人為加入的padding值會引入雜訊,因此,使用atrous卷積能夠在保持感受野不變的條件下,減少padding雜訊,關於atrous參考。本文ssd訓練過程中並且沒有使用atrous卷積,但預訓練過程使用的模型為vgg-16-atrous,意味著作者給的預訓練模型是使用atrous卷積訓練出來的。使用atrous版本vgg-16作為預訓模型比較普通vgg-16要提高0.7%map。

作者發現ssd對小目標檢測效果不好(但也比yolo要好,因此多特徵圖檢測),這是因為小物體在高層特徵圖上保留很少的資訊,通過增加輸入影象的尺寸能夠解決對小物體檢測效果。

ssd詳解

關於atrous

目標檢測之SSD

ssd single shot multibox detector 翻譯 詳解 圖1 圖2 演算法步驟 1 輸入一幅 300x300 將其輸入到預訓練好的分類網路中來獲得不同大小的特徵對映,修改了傳統的vgg16網路 2 抽取conv4 3 conv7 conv8 2 conv9 2 conv10 ...

SSD目標檢測系統

首發於個人部落格 ssd識別系統也是一種單步物體識別系統,即將提取物體位置和判斷物體類別融合在一起進行,其最主要的特點是識別器用於判斷物體的特徵不僅僅來自於神經網路的輸出,還來自於神經網路的中間結果。該系統分為以下幾個部分 該系統的網路結構如上圖所示基本網路為vgg 16網路,vgg 16網路由一系...

目標檢測之 SSD

ssd300 網路結構圖 ssd單階段目標檢測,候選框密集抽樣。作為單階段的目標檢測,其速度還是比faster快很多的,但是精度還是差點。ssd300共用了6層特徵,進行目標檢測,ssd512用了7層特徵,每一層的default box數量不同如上圖分別為 4,6,6,6,4,4,4為設定的乙個大正...