算法創(chuàng)新分為三種方式
第一種:面目一新的創(chuàng)新,比如Yolov1、Faster-RCNN、Centernet等,開創(chuàng)出新的算法領(lǐng)域,不過這種也是最難的。
第二種:守正出奇的創(chuàng)新,比如將圖像金字塔改進(jìn)為特征金字塔。
第三種:各種先進(jìn)算法集成的創(chuàng)新,比如不同領(lǐng)域發(fā)表的最新論文的tricks,集成到自己的算法中,卻發(fā)現(xiàn)有出乎意料的改進(jìn)。
對象檢測網(wǎng)絡(luò)的通用架構(gòu):
1)Backbone -形成圖像特征。
2)Neck:對圖像特征進(jìn)行混合和組合,生成特征金字塔
3)Head:對圖像特征進(jìn)行預(yù)測,應(yīng)用錨定框,生成帶有類概率、對象得分和邊界框的最終輸出向量。
【Yolov5網(wǎng)絡(luò)結(jié)構(gòu)圖】
可視化結(jié)構(gòu)圖:
不同網(wǎng)絡(luò)的寬度:
V5x: 367MB,V5l: 192MB,V5m: 84MB,V5s: 27MB,YOLOV4: 245 MB
四種Yolov5結(jié)構(gòu)在不同階段的卷積核的數(shù)量都是不一樣的,因此直接影響卷積后特征圖的第三維度
Yolov5s第一個Focus結(jié)構(gòu)中:最后卷積操作時,卷積核的數(shù)量是32個,特征圖的大小變成304×304×32。
而Yolov5m:卷積操作使用了48個卷積核,特征圖變成304×304×48。
…后面卷積下采樣操作也是同樣的原理
不同網(wǎng)絡(luò)的深度:
四種網(wǎng)絡(luò)結(jié)構(gòu)中每個CSP結(jié)構(gòu)的深度都是不同的
CSP1結(jié)構(gòu)主要應(yīng)用于Backbone中:
Yolov5s的CSP1:使用了1個殘差組件,CSP1_1。
Yolov5m:使用了2個殘差組件,CSP1_2。
Yolov5l,使用了3個殘差組件,
Yolov5x,使用了4個殘差組件。
主要的不同點(diǎn):
(1)輸入端:Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、自適應(yīng)圖片縮放
(2)Backbone:Focus結(jié)構(gòu),CSP結(jié)構(gòu)
(3)Neck:FPN+PAN結(jié)構(gòu)
【輸入端】
①數(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)的計(jì)算不同訓(xùn)練集中的最佳錨框值。如果覺得計(jì)算的錨框效果不是很好,也可以在代碼中將自動計(jì)算錨框功能關(guān)閉。具體操作為train.py中下面一行代碼,設(shè)置成False
③自適應(yīng)圖片縮放
在常用的目標(biāo)檢測算法中,一般將原始圖片統(tǒng)一縮放到一個標(biāo)準(zhǔn)尺寸,再送入檢測網(wǎng)絡(luò)中。Yolo算法中常用416416,608608等尺寸。因?yàn)樘畛涞谋容^多,會存在信息冗余,所以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)為推理計(jì)算過高的問題是由于網(wǎng)絡(luò)優(yōu)化中的梯度信息重復(fù)致,CSPNet(Cross Stage Paritial Network, 跨階段局部網(wǎng)絡(luò)),主要從網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的角度解決推理中計(jì)算量很大的問題。
Yolov5中設(shè)計(jì)了兩種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)新點(diǎn)
該作者認(rèn)為在對象檢測中,特征融合層的性能非常重要,根據(jù)谷歌大腦的研究,[BiFPN]才是特征融合層的最佳選擇。誰能整合這項(xiàng)技術(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ù)計(jì)算類概率和目標(biāo)得分的損失。同時我們也可以使用fl _ gamma參數(shù)來激活Focal loss計(jì)算損失函數(shù)。
-
算法
+關(guān)注
關(guān)注
23文章
4592瀏覽量
92520 -
圖像分割
+關(guān)注
關(guān)注
4文章
182瀏覽量
17962 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4286瀏覽量
62335
原文標(biāo)題:Yolov5理論學(xué)習(xí)筆記
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論