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