代碼:https://github.com/ultralytics/yolov5github.com
優(yōu)缺點/總結
優(yōu)點
- 擁有四種模型,可以靈活部署
缺點
- 在性能上稍弱于YOLO V4
模型的改進
- 增加了Focus切片、自適應錨框、自適應圖片縮放結構,保留信息,加快推理速度
解決的問題
模型
有4個版本,分別是Yolov5s,Yolov5m,Yolov5l,yolov5x四個模型,其中Yolov5s網(wǎng)絡是該系列中深度最小,寬度最小的網(wǎng)絡
主要結構分為四個模塊:輸入端、Backbone主干網(wǎng)絡、Neck、Prediction
- 輸入端:Mosaic數(shù)據(jù)增強、自適應錨框計算、自適應圖片縮放
- Backbone主干網(wǎng)絡:Focus結構,CSP結構
- Neck:FPN+PAN結構
- Prediction:GIoU Loss
結構
輸入端
Mosaic數(shù)據(jù)增強
采用4張圖片,隨機縮放,隨即裁剪、隨機排布的方式進行拼接,解決數(shù)據(jù)集中小、中、大目標占比不均衡的問題
- 豐富數(shù)據(jù)集:隨機使用4張圖片,隨機縮放,再隨機分布進行拼接,大大豐富了檢測數(shù)據(jù)集,特別是隨機縮放增加了很多小目標,讓網(wǎng)絡的魯棒性更好。
- 減少GPU:Mosaic增強訓練時,可以直接計算4張圖片的數(shù)據(jù),使得Mini-batch大小并不需要很大,一個GPU就可以達到比較好的效果。
自適應錨框計算
- 在Yolo算法中,針對不同的數(shù)據(jù)集,都會有初始設定長寬的錨框。
- 在網(wǎng)絡訓練中,網(wǎng)絡在初始錨框的基礎上輸出預測框,進而和真實框groundtruth進行比對,計算兩者差距,再反向更新,迭代網(wǎng)絡參數(shù)。
- Yolov5將此功能嵌入到代碼中,每次訓練時,自適應的計算不同訓練集中的最佳錨框值(也可以關閉此功能)
自適應圖片縮放
- 在常用的目標檢測算法中,不同的圖片長寬都不相同,因此常用的方式是將原始圖片統(tǒng)一縮放到一個標準尺寸,再送入檢測網(wǎng)絡中。
- 在項目實際使用時,很多圖片的長寬比不同,因此縮放填充后,兩端的黑邊大小都不同,而如果填充的比較多,則存在信息冗余,影響推理速度。
- Yolov5的代碼中datasets.py的letterbox函數(shù)中進行了修改,對原始圖像自適應的添加最少的黑邊。
-
- 計算縮放比例:縮放尺寸除以原始圖像尺寸,選擇小的縮放系數(shù)
- 計算縮放后的尺寸:原始圖片的長寬都乘以最小的縮放系數(shù)
- 計算黑邊填充數(shù)值:用縮放尺寸減去第二步縮放后的尺寸,得到需要填充的數(shù)值
- 圖像高度上兩端的黑邊變少了,在推理時,計算量也會減少,即目標檢測速度會得到提升
- 訓練時沒有采用縮減黑邊的方式,還是采用傳統(tǒng)填充的方式。只是在測試,使用模型推理時,才采用縮減黑邊的方式,提高目標檢測,推理的速度
Backbone主干網(wǎng)絡
Focus結構
- Fcous: 圖片進行切片操作
-
- 在一張圖片中每隔一個像素拿到一個值,類似于鄰近下采樣,這樣就拿到了四張圖片,四張圖片互補,長的差不多,但是沒有信息丟失
- 將W、H信息就集中到了通道空間,輸入通道擴充了4倍,即拼接起來的圖片相對于原先的RGB三通道模式變成了12個通道
- 最后將得到的新圖片再經(jīng)過卷積操作,最終得到了沒有信息丟失情況下的二倍下采樣特征圖
- Focus的作用:
-
- 使圖片在下采樣的過程中,不帶來信息丟失的情況下
- 將W、H的信息集中到通道上,再使用3 × 3的卷積對其進行特征提取,使得特征提取得更加的充分
- 雖然增加了一點點的計算量,但是為后續(xù)的特征提取保留了更完整的圖片下采樣信息
CSP結構
- Yolov4中只有主干網(wǎng)絡使用了CSP結構
- Yolov5中設計了兩種CSP結構,以Yolov5s網(wǎng)絡為例,CSP1_X結構應用于Backbone主干網(wǎng)絡,另一種CSP2_X結構則應用于Neck中。
- CSPNet的作者認為推理計算過高的問題是由于網(wǎng)絡優(yōu)化中的梯度信息重復導致的。
- 采用CSP模塊先將基礎層的特征映射劃分為兩部分,然后通過跨階段層次結構將它們合并,在減少了計算量的同時可以保證準確率。
-
- 優(yōu)點一:增強CNN的學習能力,使得在輕量化的同時保持準確性。
- 優(yōu)點二:降低計算瓶頸
- 優(yōu)點三:降低內存成本
Neck
FPN+PAN
- FPN結構,自頂向下,將高層的特征信息通過上采樣的方式進行傳遞融合
- PAN結構,自下向上,將底層的位置信息通過下采樣的方式進行傳遞融合
- FPN層自頂向下傳遞強語義特征,PAN層自底向上傳遞強定位特征
- PAN結構中兩個特征圖結合采用的是concat操作,特征圖融合后張量發(fā)生了變化
特征融合
- Yolov4的Neck結構中,采用的都是普通的卷積操作。
- Yolov5的Neck結構中,采用借鑒CSPnet設計的CSP2結構,加強網(wǎng)絡特征融合的能力。
Prediction
Loss函數(shù)
Yolov5中采用CIoU Loss做bounding box的損失函數(shù)
- CIoU Loss
-
- 在DIoU Loss的基礎上增加一個影響因子,將預測框和目標框的長寬比都考慮進去
-
- 總結四種Loss函數(shù):
-
- IOU_Loss:主要考慮檢測框和目標框重疊面積。
- GIOU_Loss:在IOU的基礎上,解決邊界框不重合時的問題。
- DIOU_Loss:在IOU和GIOU的基礎上,考慮邊界框中心點距離的信息。
- CIOU_Loss:在DIOU的基礎上,考慮邊界框寬高比的尺度信息。
NMS
- 采用加權nms方式,不同于yolov4采用的DIoU nms方式
Tricks
1、Yolov5中四種網(wǎng)絡的文件內容基本相同,不同的是depth_multiple和width_multiple兩個參數(shù)
- 四種結構就是通過上面的兩個參數(shù),來進行控制網(wǎng)絡的深度和寬度。其中depth_multiple控制網(wǎng)絡的深度,width_multiple控制網(wǎng)絡的寬度
- Yolov5中,網(wǎng)絡的不斷加深,也在不斷增加網(wǎng)絡特征提取和特征融合的能力
- 卷積核的數(shù)量越多,特征圖的厚度,即寬度越寬,網(wǎng)絡提取特征的學習能力也越強
Prediction
Objective Function/Loss Function
Yolov4中采用了CIOU_Loss的回歸方式,使得預測框回歸的速度和精度更高一些
- CIoU Loss
文章來源:http://www.zghlxwxcb.cn/news/detail-594593.html
-
- 在DIoU Loss的基礎上增加一個影響因子,將預測框和目標框的長寬比都考慮進去
-
文章來源地址http://www.zghlxwxcb.cn/news/detail-594593.html
到了這里,關于【論文閱讀】YOLO系列論文:YOLO v5的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!