Yolov5理論學(xué)習(xí)筆記
點擊左上方藍(lán)字關(guān)注我們



不同網(wǎng)絡(luò)的寬度:
V5x: 367MB,V5l: 192MB,V5m: 84MB,V5s: 27MB,YOLOV4: 245 MB


【輸入端】
①數(shù)據(jù)增強(qiáng):
Mosaic數(shù)據(jù)增強(qiáng)
②自適應(yīng)錨定框Auto Learning Bounding Box Anchors
網(wǎng)絡(luò)在初始錨框的基礎(chǔ)上 基于訓(xùn)練數(shù)據(jù) 輸出預(yù)測框,因此初始錨框也是比較重要的一部分。見配置文件*.yaml, yolov5預(yù)設(shè)了COCO數(shù)據(jù)集640×640圖像大小的錨定框的尺寸:

每次訓(xùn)練時,自適應(yīng)的計算不同訓(xùn)練集中的最佳錨框值。如果覺得計算的錨框效果不是很好,也可以在代碼中將自動計算錨框功能關(guān)閉。具體操作為train.py中下面一行代碼,設(shè)置成False

③自適應(yīng)圖片縮放
在常用的目標(biāo)檢測算法中,一般將原始圖片統(tǒng)一縮放到一個標(biāo)準(zhǔn)尺寸,再送入檢測網(wǎng)絡(luò)中。Yolo算法中常用416416,608608等尺寸。因為填充的比較多,會存在信息冗余,所以yolov5對原始圖像自適應(yīng)的添加最少的黑邊。
【Backbone】
①Focus結(jié)構(gòu)

以Yolov5s的結(jié)構(gòu)為例,原始608x608x3的圖像輸入Focus結(jié)構(gòu),采用切片操作,先變成304x304x12的特征圖,再經(jīng)過一次32個卷積核的卷積操作,最終變成304x304x32的特征圖。
②CSP結(jié)構(gòu)
作者認(rèn)為推理計算過高的問題是由于網(wǎng)絡(luò)優(yōu)化中的梯度信息重復(fù)致,CSPNet(Cross Stage Paritial Network, 跨階段局部網(wǎng)絡(luò)),主要從網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的角度解決推理中計算量很大的問題。
Yolov5中設(shè)計了兩種CSP結(jié)構(gòu),以Yolov5s網(wǎng)絡(luò)為例,CSP1_X結(jié)構(gòu)應(yīng)用于Backbone主干網(wǎng)絡(luò),另一種CSP2_X結(jié)構(gòu)則應(yīng)用于Neck中。

【Neck】
FPN+PAN,網(wǎng)絡(luò)特征融合的能力更強(qiáng)

PAN(路徑聚合網(wǎng)絡(luò))借鑒了圖像分割領(lǐng)域PANet的創(chuàng)新點
該作者認(rèn)為在對象檢測中,特征融合層的性能非常重要,根據(jù)谷歌大腦的研究,[BiFPN]才是特征融合層的最佳選擇。誰能整合這項技術(shù),很有可能取得性能大幅超越。
【輸出端】
①Activation Function
在 YOLO V5中,中間/隱藏層使用了 Leaky ReLU 激活函數(shù),最后的檢測層使用了 Sigmoid 形激活函數(shù)
②nms非極大值抑制
在同樣的參數(shù)情況下,將nms中IOU修改成DIOU_nms。對于一些遮擋重疊的目標(biāo),會有一些改進(jìn)。
③Optimization Function
YOLO V5的作者為我們提供了兩個優(yōu)化函數(shù)Adam和SGD,并都預(yù)設(shè)了與之匹配的訓(xùn)練超參數(shù)。默認(rèn)為SGD。
④Cost Function
loss = objectness score+class probability score+ bounding box regression score
YOLO V5使用 GIOU Loss作為bounding box的損失。
YOLO V5使用二進(jìn)制交叉熵和 Logits 損失函數(shù)計算類概率和目標(biāo)得分的損失。同時我們也可以使用fl _ gamma參數(shù)來激活Focal loss計算損失函數(shù)。
參考文獻(xiàn):
END
