yolo_v3學習總結(jié)

1、 相比之前的兩個版本,網(wǎng)絡(luò)在對小目標的檢檢測效果要好,對于大目標的檢測效果相對來說要差一些;

2、 Bounding box

沿用YOLO9000方法,采用維度聚類,根據(jù)訓練集合的分類目標邊框信息,使用k-means算法進行聚類,生成anchor的邊框信息。因此不同的任務(wù)會有不同anchor信息,最優(yōu)anchor需要在實驗中確定。

最終的預測出的bounding box的坐標值,會跟anchor、gred cell相對整張圖的頂點坐標聯(lián)系起來。如下圖:

q.png

其中tx、ty、tw、th為網(wǎng)絡(luò)的直接預測值,bx、by、bw、bh為最終獲得的目標邊框坐標值,cx、cy為目標中心點所在grid cell的左上角點相對于整張圖像的坐標值,pw、ph為anchor的寬和高,σ(tx)為sigmoid函數(shù),可以將tx的值壓縮到0到1的范圍,利于網(wǎng)絡(luò)收斂。推理時,使用該公式計算最終的bbox坐標值;訓練時,對ground truth(gx,gy,gw,gh)的坐標值使用該公式的逆運算得到對應(yīng)的t值,然后跟預測的t值計算loss,使用的是均方誤差。在求逆運算的過程中sigmoid函數(shù)的逆運算較難計算,轉(zhuǎn)而計算對應(yīng)t值的sigmoid函數(shù),具體如何計算和為什么等價有待繼續(xù)學習。

3、 類別分類

Yolov3沒有使用softmax計算分類的loss,softmax函數(shù)會使得各個類別之間有互斥的影響,這也是其在適合分類任務(wù)的原因之一,在yolov3中卻對性能沒有提升。Yolov3對每個bbox的類別信息使用的是二值的交叉熵損失函數(shù),這樣會使得每個框預測出的類別信息不只是一個。在一個對象有多個標簽時,該方法很好用。此處不是很理解

4、 跨尺度預測

基于FPN的結(jié)構(gòu),對不同層的特圖進行目標預測。使用了三種尺度的特征圖。將上層特征圖先進行上采樣,上采樣在keras版本的代碼中使用的是UpSampling2D,最近近鄰插值的方式,做到跟底層特征圖同樣大小,然后使用concatenation的方式,即在通道上拼接。然后對組合后的特征圖再次進行卷積和預測分類。

大佬文章鏈接:
http://www.itdecent.cn/p/86b8208f634f

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容