YOLOv5的改進


輸入圖像的focus 結構

這個是從右到左的方向,將高分辨率的圖片,分成r*r個小的channel

這樣輸入就變小了

增加正樣本,加快訓練速度

本文也采用了增加正樣本anchor數目的做法來加速收斂,這其實也是yolov5在實踐中表明收斂速度非常快的原因。其核心匹配規則為:

(1) 對於任何一個輸出層,拋棄了基於max iou匹配的規則,而是直接采用shape規則匹配,也就是該bbox和當前層的anchor計算寬高比,如果寬高比例大於設定閾值,則說明該bbox和anchor匹配度不夠,將該bbox過濾暫時丟掉,在該層預測中認為是背景

(2) 對於剩下的bbox,計算其落在哪個網格內,同時利用四舍五入規則,找出最近的兩個網格,將這三個網格都認為是負責預測該bbox的,可以發現粗略估計正樣本數相比前yolo系列,至少增加了三倍

如上圖所示,綠點表示該Bbox中心,現在需要額外考慮其2個最近的鄰域網格也作為該bbox的正樣本anchor。從這里就可以發現bbox的xy回歸分支的取值范圍不再是0~1,而是-0.5~1.5(0.5是網格中心偏移,請仔細思考為啥是這個范圍),因為跨網格預測了。

Neck PANet 和SPP,並且在Neck 中也添加了CSP

CIoU loss +DIoU NMS

輸入圖片的自適應縮放, 減少黑邊

第一步:計算縮放比例

原始縮放尺寸是416*416,都除以原始圖像的尺寸后,

可以得到0.52,和0.69兩個縮放系數,選擇小的縮放系數。

第二步:計算縮放后的尺寸

原始圖片的長寬都乘以最小的縮放系數0.52,寬變成了416,而高變成了312。

第三步:計算黑邊填充數值

將416-312=104,得到原本需要填充的高度。

再采用numpy中np.mod取余數的方式,得到40個像素,再除以2,即得到圖片高度兩端需要填充的數值。

這里最終的結果並不是一個正方形了,

此外,需要注意的是:

a.這里大白填充的是黑色,即(0,0,0),而Yolov5中填充的是灰色,即(114,114,114),都是一樣的效果。

b.訓練時沒有采用縮減黑邊的方式,還是采用傳統填充的方式,即縮放到416*416大小。只是在測試,使用模型推理時,才采用縮減黑邊的方式,提高目標檢測,推理的速度。

   

來自 <https://jishuin.proginn.com/p/763bfbd2a0ad>

   

   

   

   

來自 <https://i.cnblogs.com/posts/edit;postId=13691388>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM