1. yolov5網(wǎng)絡(luò)架構(gòu)與組件
1.1 網(wǎng)絡(luò)可視化工具 netron
在線版本:瀏覽器中輸入鏈接: https://lutzroeder.github.io/netron/
netron官方的Github鏈接:https://github.com/lutzroeder/netron
1.2 不同模型的配置
1.3 Focus 模塊
一個小實驗:
Focus()模塊是為減少錯誤和提高速度而設(shè)計的,而不是提高精度。
1.4 CSPNet 跨階段局部網(wǎng)絡(luò)
1.5 SPP 空間金字塔池化
在CSP上添加SPP塊,因為它顯著地增加了接收字段,分離出了最重要的內(nèi)容,幾乎沒有降低網(wǎng)絡(luò)的操作速度。
1.6 PANet 路徑聚合網(wǎng)絡(luò)
2. 損失函數(shù)
2.1 類別預(yù)測
2.2 邊界框回歸
2.3 回顧IoU
2.4 IoU推廣——GIoU loss
C 框是包圍A、B的最小的框
2.5 IoU推廣——DIoU loss
藍(lán)色為對角線,兩框中心點的距離為d
在IoU和GIoU一樣的情況下,DIoU還有變化。
2.6 IoU推廣——CIoU loss
優(yōu)化的偏導(dǎo)數(shù)
2.7 總結(jié)
還有CIoU等等,大家感興趣可以自己了解。
DIoU波動穩(wěn)定,對不同值的適應(yīng)能力比較強(qiáng);實驗比較G&C:CIoU的表現(xiàn)比較好,YOLOv5默認(rèn)用CIoU計算Loss
3. YOLOv5目標(biāo)框回歸與跨網(wǎng)格預(yù)測策略
3.1 回顧:目標(biāo)框PASCAL VOC標(biāo)注格式
左上角為坐標(biāo)原點
3.2 標(biāo)記文件
圖右框住的部分可以看出,框的寬高等做了歸一化;兩種標(biāo)記文件是可以轉(zhuǎn)換的
一個例子
3.3 目標(biāo)框回歸
藍(lán)色是預(yù)測框,虛線是先驗框(anchor)
兩個模型的計算方式出現(xiàn)了改變;原始的yolo / darknet框方程式存在嚴(yán)重缺陷。寬度和高度完全不受限制,它可能導(dǎo)致失控的梯度、不穩(wěn)定、NaN損失并最終完全失去訓(xùn)練。
對于yolov5,確保通過sigmoid所有模型輸出來修補此錯誤,同時還要確保中心點保持不變1=fcn (0) ,因此模型的標(biāo)稱零輸出將導(dǎo)致使用標(biāo)稱錨框大?。搭A(yù)先設(shè)置的錨框)。當(dāng)前的方程式將錨點的倍數(shù)從最小0限制為最大4(這個地方的解釋:sigmoid函數(shù)取值[0,1],因此其平方乘以2 的取值范圍就是[0,4]),并且錨框-目標(biāo)匹配也已更新為基于寬度-高度倍數(shù),標(biāo)稱上限閾值超參數(shù)為4.0。
3.4 YOLOv5跨網(wǎng)格匹配策略
4. YOLOv5 訓(xùn)練技巧
4.1 訓(xùn)練預(yù)熱warmup
剛開始訓(xùn)練時,模型的權(quán)重(weights)是隨機(jī)初始化的,此時若選擇一個較大的學(xué)習(xí)率,可能帶來模型的不穩(wěn)定(振蕩)。選擇warmup預(yù)熱學(xué)習(xí)率的方式,可以使得開始訓(xùn)練的幾個epoches或者一些steps內(nèi)學(xué)習(xí)率較小,在預(yù)熱的小學(xué)習(xí)率下,模型可以慢慢趨于穩(wěn)定,等模型相對穩(wěn)定后再選擇預(yù)先設(shè)置的學(xué)習(xí)率進(jìn)行訓(xùn)練,使得模型收斂速度變得更快,模型效果更佳。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-XNOeFks2-1681870777889)(C:/Users/dell/AppData/Roaming/Typora/typora-user-images/image-20230411134042225.png)]
0-30個epoches的warmup,學(xué)習(xí)率從很小增加很快,第三張圖是不同的預(yù)熱策略。
例子:余弦退火調(diào)整學(xué)習(xí)率。
4.2 自動計算錨框
Anchor給出了目標(biāo)寬高的初始值,需要回歸的是目標(biāo)真實寬高與初始寬高的偏移量,而不使用anchor的做法需要回歸寬高的絕對量。
Autoanchor only runs when the best possible recall (BPR,最大可能召回率) is under threshold;在yolov5中,BPR小于98%就會自動計算錨框。
也可以自己禁用這一功能,自動計算的錨框信息會保存在模型的權(quán)重文件中。
4.3 超參數(shù)進(jìn)化
在yolov5中采用類似GA遺傳算法來進(jìn)行優(yōu)化,但yolov5無交配這一操作。
4.4 自動混合精度訓(xùn)練
如何使用呢?
4.5 斷點續(xù)訓(xùn) !!!
4.6 多GPU訓(xùn)練
推薦的模式:
4.7 并行數(shù)據(jù)加載
多線程加載數(shù)據(jù)從而加快速度,最下面的是并行流水線加載
DDP模式
文章來源:http://www.zghlxwxcb.cn/news/detail-421442.html
可以在github上看詳細(xì)命令和介紹 點擊跳轉(zhuǎn)文章來源地址http://www.zghlxwxcb.cn/news/detail-421442.html
到了這里,關(guān)于計算機(jī)視覺——yolov5回歸與跨網(wǎng)格預(yù)測、訓(xùn)練技巧(下篇)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!