前言
繼美團(tuán)發(fā)布YOLOV6之后,YOLO系列原作者也發(fā)布了YOLOV7。
YOLOV7主要的貢獻(xiàn)在于:
1.模型重參數(shù)化
YOLOV7將模型重參數(shù)化引入到網(wǎng)絡(luò)架構(gòu)中,重參數(shù)化這一思想最早出現(xiàn)于REPVGG中。
2.標(biāo)簽分配策略
YOLOV7的標(biāo)簽分配策略采用的是YOLOV5的跨網(wǎng)格搜索,以及YOLOX的匹配策略。
3.ELAN高效網(wǎng)絡(luò)架構(gòu)
YOLOV7中提出的一個(gè)新的網(wǎng)絡(luò)架構(gòu),以高效為主。
4.帶輔助頭的訓(xùn)練
YOLOV7提出了輔助頭的一個(gè)訓(xùn)練方法,主要目的是通過(guò)增加訓(xùn)練成本,提升精度,同時(shí)不影響推理的時(shí)間,因?yàn)檩o助頭只會(huì)出現(xiàn)在訓(xùn)練過(guò)程中。
一、YOLOV7是什么?
YOLO算法作為one-stage目標(biāo)檢測(cè)算法最典型的代表,其基于深度神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)象的識(shí)別和定位,運(yùn)行速度很快,可以用于實(shí)時(shí)系統(tǒng)。
YOLOV7是目前YOLO系列最先進(jìn)的算法,在準(zhǔn)確率和速度上超越了以往的YOLO系列。
了解YOLO是對(duì)目標(biāo)檢測(cè)算法研究的一個(gè)必須步驟。
二、網(wǎng)絡(luò)架構(gòu)
1、架構(gòu)圖總覽
2、CBS模塊解讀
?對(duì)于CBS模塊,我們可以看從圖中可以看出它是由一個(gè)Conv層,也就是卷積層,一個(gè)BN層,也就是Batch normalization層,還有一個(gè)Silu層,這是一個(gè)激活函數(shù)。
?silu激活函數(shù)是swish激活函數(shù)的變體,兩者的公式如下所示
silu(x)=x?sigmoid(x)
swish(x)=x?sigmoid(βx)
?從架構(gòu)圖中我們可以看出,CBS模塊這里有三種顏色,三種顏色代表它們的卷積核(k)和步長(zhǎng)(s)不同。
首先最淺的顏色,也就是第一個(gè)CBS模塊的顏色,它是一個(gè)1x1的卷積,stride(步長(zhǎng)為1)。
其次稍淺的顏色,也就是第二個(gè)CBS模塊的顏色,它是一個(gè)3x3的卷積,stride(步長(zhǎng)為1)。
最后最深的顏色,也就是第三個(gè)CBS模塊的顏色,它是一個(gè)3x3的卷積,stride(步長(zhǎng)為2)。
?1x1的卷積主要用來(lái)改變通道數(shù)。
?3x3的卷積,步長(zhǎng)為1,主要用來(lái)特征提取。
?3x3的卷積,步長(zhǎng)為2,主要用來(lái)下采樣。
3、CBM模塊解讀
?CBM模塊和CBS模塊,我們可以看出來(lái)是基本一致的。
?由一個(gè)Conv層,也就是卷積層,一個(gè)BN層,也就是Batch normalization層,還有一個(gè)sigmoid層,這是一個(gè)激活函數(shù)。
?卷積核為1x1,stride(步長(zhǎng)為1)
4、REP模塊解讀
?REP模塊分為兩個(gè),一個(gè)是train,也就是訓(xùn)練,一個(gè)deploy,也就是推理。
?訓(xùn)練模塊,它有三個(gè)分支。
最上面的分支是3x3的卷積,用于特征提取。
中間的分支是1x1的卷積,用于平滑特征。
最后分支是一個(gè)Identity,不做卷積操作,直接移過(guò)來(lái)。
最后把它們相加在一起。
?推理模塊,包含一個(gè)3x3的卷積,stride(步長(zhǎng)為1)。是由訓(xùn)練模塊重參數(shù)化轉(zhuǎn)換而來(lái)。
在訓(xùn)練模塊中,因?yàn)榈谝粚邮且粋€(gè)3x3的卷積,第二層是一個(gè)1x1的卷積,最后層是一個(gè)Identity。
在模型從參數(shù)化的時(shí)候,需要把1x1的卷積啊,轉(zhuǎn)換成3x3的卷積,把Identity也轉(zhuǎn)換成3x3的卷積,然后進(jìn)行一個(gè)矩陣的一個(gè)加法,也就是一個(gè)矩陣融合過(guò)程。
然后最后將它的權(quán)重進(jìn)行相加,就得到了一個(gè)3x3的卷積,也就是說(shuō),這三個(gè)分支就融合成了一條線,里面只有一個(gè)3x3的卷積。
它們的權(quán)重是三個(gè)分支的疊加結(jié)果,矩陣,也是三個(gè)分支的疊加結(jié)果。
5、MP模塊解讀
?MP模塊有兩個(gè)分支,作用是進(jìn)行下采樣。
?第一條分支先經(jīng)過(guò)一個(gè)maxpool,也就是最大池化。最大值化的作用就是下采樣,然后再經(jīng)過(guò)一個(gè)1x1的卷積進(jìn)行通道數(shù)的改變。
?第二條分支先經(jīng)過(guò)一個(gè)1x1的卷積,做通道數(shù)的變化,然后再經(jīng)過(guò)一個(gè)3x3卷積核、步長(zhǎng)為2的卷積塊,這個(gè)卷積塊也是用來(lái)下采樣的。
?最后把第一個(gè)分支和第二分支的結(jié)果加在一起,得到了超級(jí)下采樣的結(jié)果。
6、ELAN模塊解讀
?ELAN模塊是一個(gè)高效的網(wǎng)絡(luò)結(jié)構(gòu),它通過(guò)控制最短和最長(zhǎng)的梯度路徑,使網(wǎng)絡(luò)能夠?qū)W習(xí)到更多的特征,并且具有更強(qiáng)的魯棒性。
?ELAN有兩條分支。
?第一條分支是經(jīng)過(guò)一個(gè)1x1的卷積做通道數(shù)的變化。
?第二條分支就比較復(fù)雜了。它先首先經(jīng)過(guò)一個(gè)1x1的卷積模塊,做通道數(shù)的變化。然后再經(jīng)過(guò)四個(gè)3x3的卷積模塊,做特征提取。
?如圖所示,最后把四個(gè)特征疊加在一起得到最后的特征提取結(jié)果。
7、ELAN-W模塊解讀
?對(duì)于ELAN-W模塊,我們也看到它跟ELAN模塊是非常的相似,所略有不同的就是它在第二條分支的時(shí)候選取的輸出數(shù)量不同。
?ELAN模塊選取了三個(gè)輸出進(jìn)行最后的相加。
?ELAN-W模塊選取了五個(gè)進(jìn)行相加。
8、UPSample模塊解讀
UPSample模塊是一個(gè)上采樣的模塊,它使用的上采樣方式是最近鄰插值。
9、SPPCSPC模塊解讀
SPP的作用是能夠增大感受野,使得算法適應(yīng)不同的分辨率圖像,它是通過(guò)最大池化來(lái)獲得不同感受野。
?我們可以看到在第一條分支中,經(jīng)理了maxpool的有四條分支。分別是5,9,13,1,這四個(gè)不同的maxpool就代表著他能夠處理不同的對(duì)象。
?也就是說(shuō),它這四個(gè)不同尺度的最大池化有四種感受野,用來(lái)區(qū)別于大目標(biāo)和小目標(biāo)。
比如一張照片中的狗和行人以及車,他們的尺度是不一樣的,通過(guò)不同的maxpool,這樣子就能夠更好的區(qū)別小目標(biāo)和大目標(biāo)。
CSP模塊,首先將特征分為兩部分,其中的一個(gè)部分進(jìn)行常規(guī)的處理,另外一個(gè)部分進(jìn)行SPP結(jié)構(gòu)的處理,最后把這兩個(gè)部分合并在一起,這樣子就能夠減少一半的計(jì)算量,使得速度變得快,精度反而會(huì)提升。
來(lái)源:CSDN博主江小皮不皮
-
算法
+關(guān)注
關(guān)注
23文章
4612瀏覽量
92884 -
模型
+關(guān)注
關(guān)注
1文章
3243瀏覽量
48836 -
網(wǎng)絡(luò)架構(gòu)
+關(guān)注
關(guān)注
1文章
93瀏覽量
12586 -
深度神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
61瀏覽量
4526
原文標(biāo)題:【光電智造】YOLOV7詳細(xì)解讀|網(wǎng)絡(luò)架構(gòu)解讀
文章出處:【微信號(hào):今日光電,微信公眾號(hào):今日光電】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論