李安達(dá),吳瑞明,李旭東
浙江科技學(xué)院 浙江省食品物流裝備技術(shù)研究重點(diǎn)實(shí)驗(yàn)室,杭州 310023
目標(biāo)檢測是深度學(xué)習(xí)在計(jì)算機(jī)視覺中應(yīng)用的重要領(lǐng)域,其主要任務(wù)是在圖像中識別目標(biāo)類別和目標(biāo)位置。在目標(biāo)檢測領(lǐng)域中,微小目標(biāo)檢測雖然檢測難度高,但無論是在生活還是工業(yè)上的應(yīng)用都極為廣泛。在目標(biāo)檢測的算法中,傳統(tǒng)目標(biāo)檢測算法依賴于人工構(gòu)建特征并且存在普適性低、速度慢、精度低等問題。而基于深度學(xué)習(xí)算法研發(fā)的目標(biāo)檢測算法結(jié)構(gòu)簡單,檢測效果好,相比于傳統(tǒng)目標(biāo)檢測算法更能適應(yīng)人們?nèi)找嫣岣叩臋z測要求,成為目前目標(biāo)檢測算法領(lǐng)域的主流。基于深度學(xué)習(xí)研發(fā)的目標(biāo)檢測算法大致兩種[1],一種是以RCNN系列為代表的兩階段(two-stage)算法,還有一種是以SSD和YOLO系列為代表的單階段(one-stage)[2]檢測算法。
兩階段算法是通過卷積神經(jīng)網(wǎng)絡(luò)得到可能包含物體的多個(gè)候選區(qū)域,對這些候選區(qū)域進(jìn)行處理來完成分類任務(wù)和定位任務(wù)。這種兩階段算法的優(yōu)點(diǎn)是準(zhǔn)確度高,缺點(diǎn)是計(jì)算量較大,檢測速度慢,而單階段算法[3]相比兩階段算法少了提取候選區(qū)域的步驟,直接對每個(gè)特征圖進(jìn)行回歸預(yù)測,因此檢測速度較快,但準(zhǔn)確度比不上兩階段算法。
本次研究任務(wù)是利用單階段算法改善小目標(biāo)檢測(small object detection,SOD),相比于其他目標(biāo)檢測任務(wù),小目標(biāo)檢測的歷史較短,發(fā)展還不夠完善。小目標(biāo)的定義目前有兩種,一種是基于相對尺度即同一類別所有目標(biāo)實(shí)例的邊界框面積與圖像面積之比的中位數(shù)在0.08%到0.58%之間[4],另一種基于絕對尺度來對小目標(biāo)定義,在2014 年,目標(biāo)檢測領(lǐng)域的通用數(shù)據(jù)集——MS COCO數(shù)據(jù)集,將小目標(biāo)定義為分辨率小于32像素×32像素的目標(biāo)[5]。
近期,因?yàn)镃NN 的成功,目標(biāo)檢測的任務(wù)取得了非常大的進(jìn)步,以往的研究員針對檢測目標(biāo)在以往FasterRCNN、SSD 的系列模型基礎(chǔ)上提出了一系列改進(jìn)模型[6],但就目前而言,小目標(biāo)檢測任務(wù)上,現(xiàn)有的網(wǎng)絡(luò)模型依然有較大需要改進(jìn)的空間。
以YOLO 系列模型為例,針對小目標(biāo)檢測,陳富榮等人[7]提出將Coordinate attention 嵌入到Y(jié)OLOv5 網(wǎng)絡(luò)中,在其發(fā)布的數(shù)據(jù)中該方法僅可以有效提高模型的召回率,無法有效提高模型整體性能。韓俊等人[8]提出將S-ECA和AFF結(jié)構(gòu)應(yīng)用到Y(jié)OLOv5s的頸部網(wǎng)絡(luò)結(jié)構(gòu)中提高對小目標(biāo)的檢測性能,但相比于模型計(jì)算參數(shù)的增加和計(jì)算復(fù)雜性的提高檢測性能提升較小。張徐等人[9]提出對Swin Transformer[10]結(jié)構(gòu)利用余弦注意力機(jī)制和后正則化方法進(jìn)行優(yōu)化總結(jié)出了cosSTR模塊并引入到Y(jié)OLOv7 模型中,雖然有效改善多尺度小目標(biāo)檢測問題,但在相同數(shù)據(jù)集訓(xùn)練下參數(shù)量遠(yuǎn)超YOLOv7 模型,并且該結(jié)構(gòu)不適用于特征不明顯的小目標(biāo)檢測。Zhu等人[11]提出在YOLOv5 的基礎(chǔ)上用Transformer prediction heads(TPH)替代原有的預(yù)測頭,并利用convolutional block attention module(CBAM)結(jié)合骨干網(wǎng)提取目標(biāo)特征,該結(jié)構(gòu)可以有效提高對密集小目標(biāo)的處理卻無法適用于較為稀疏的小目標(biāo)場景。
針對上述問題,本次研究以YOLOv7 為改進(jìn)基礎(chǔ),在骨干網(wǎng)上提出將Focal NeXt block[12]與ELAN模塊進(jìn)行融合,參考ConvNext[13]的框架結(jié)構(gòu),充分利用ELAN模塊的最短和最長的梯度路徑結(jié)構(gòu)來加強(qiáng)Focal NeXt block 圖像特征的交互能力,使網(wǎng)絡(luò)能夠?qū)W習(xí)到更多的特征的同時(shí)結(jié)合更多的上下文信息,提高網(wǎng)絡(luò)模型針對各種場景小目標(biāo)檢測的泛化能力,且優(yōu)化后的結(jié)構(gòu)多基于傳統(tǒng)卷積,可以在提高模型整體性能的同時(shí)盡量減少參數(shù)量的增加。
在骨干網(wǎng)基礎(chǔ)上,為了進(jìn)一步提高模型的性能簡化模型結(jié)構(gòu),在頭部網(wǎng)絡(luò),本次研究還引入了具有大卷積核的RepLKDeXt結(jié)構(gòu),該結(jié)構(gòu)是在RepLK Block[14]結(jié)構(gòu)的基礎(chǔ)上添加一條Cat操作的分支卷積結(jié)構(gòu),可以有效豐富RepLK Block 的輸出特征結(jié)合更多的淺層網(wǎng)絡(luò)信息。本文利用RepLKDeXt 結(jié)構(gòu)取代了SPPCSPC 結(jié)構(gòu),相比于SPPCSPC 多種不同大小卷積的池化,多層的小卷積堆疊的結(jié)構(gòu)組成,RepLKDeXt 以更少的傳統(tǒng)卷積組成方式有效地簡化了模型的整體結(jié)構(gòu),除此之外,經(jīng)實(shí)驗(yàn)驗(yàn)證RepLKDeXt 取代SPPSCPC 結(jié)構(gòu),還可以加強(qiáng)模型的整體性能,結(jié)合骨干網(wǎng)大卷積提高模型性能的方法,本次研究還利用RepLKDeXt 結(jié)構(gòu)對頭部網(wǎng)絡(luò)的ELAN-H 模塊進(jìn)行改進(jìn)優(yōu)化,最終利用淺層網(wǎng)絡(luò)融合操作和大卷積多通道結(jié)構(gòu)來加強(qiáng)模型的輸出特征,提高模型針對特征不明顯的小目標(biāo)的檢測性能。
在損失函數(shù)上,CIOU 損失函數(shù)存在預(yù)測框和真實(shí)框長寬比相同懲罰項(xiàng)為0 的情況,這時(shí)CIOU 函數(shù)無法穩(wěn)定表達(dá),導(dǎo)致網(wǎng)絡(luò)模型的魯棒性下降。為了完善模型的魯棒性,本次研究引入了SIOU[15]損失函數(shù),相比于CIOU 損失函數(shù),SIOU 損失函數(shù)將角度成本納入考量,重新定義了懲罰項(xiàng)的指標(biāo),可以有效提高網(wǎng)絡(luò)模型的魯棒性。
本次研究基于YOLOv7模型,YOLOv7是YOLO系列的基本模型,該模型主要包含了輸入端(Input)、骨干網(wǎng)(Backbone)、頭部(Head)等三個(gè)部分,其整體算法的結(jié)構(gòu)如圖1所示。
圖1 YOLOv7模型Fig.1 YOLOv7 model
YOLOv7模型是2022年7月由Wang等人[16]發(fā)出的目標(biāo)檢測網(wǎng)絡(luò),據(jù)文獻(xiàn)發(fā)布的數(shù)據(jù),YOLOv7 在檢測性能上已經(jīng)超越了YOLOv5、YOLOx、PPYOLOE、YOLOR等目標(biāo)檢測模型,在5 FPS到160 FPS范圍內(nèi)的檢測速度和準(zhǔn)確度超越以往檢測網(wǎng)絡(luò),在GPU V100上30 FPS或更高的實(shí)時(shí)檢測器上具有55.8%AP的準(zhǔn)確度。YOLOv7網(wǎng)絡(luò)模型相比以往的YOLO 系列網(wǎng)絡(luò)模型在主干網(wǎng)絡(luò)上的不同主要在于采用了ELAN 模塊這種高效的網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)通過控制最短和最長的梯度路徑,使網(wǎng)絡(luò)能夠?qū)W習(xí)到更多的特征,并且具有更強(qiáng)的魯棒性。
除此之外,YOLOv7的作者在原始ELAN的基礎(chǔ)上還設(shè)計(jì)了E-ELAN(Extended-ELAN)結(jié)構(gòu),該結(jié)構(gòu)在改變計(jì)算塊的同時(shí)保持原ELAN 的過渡層結(jié)構(gòu),并利用expand、shuffle、merge cardinality 等方法保持梯度路徑不變的情況下提高網(wǎng)絡(luò)的學(xué)習(xí)能力。在模型的頭部網(wǎng)絡(luò)結(jié)構(gòu)上,YOLOv7 用SPPCSPC 模塊適應(yīng)不同分辨率的圖像獲得不同的感受野在提高模型精度的同時(shí)減少計(jì)算量并用傳統(tǒng)的PANet結(jié)構(gòu)加強(qiáng)特征融合提高輸出數(shù)據(jù)質(zhì)量,最后將RepVGG[17]的模型重參數(shù)化思想引入到網(wǎng)絡(luò)架構(gòu)中形成RepConv模塊,該模塊對應(yīng)兩種可以等價(jià)替換的結(jié)構(gòu)分別應(yīng)用于訓(xùn)練和推理,可以提高模型精度,加快推理速度。
在小目標(biāo)檢測中,小目標(biāo)的分辨率較低,可視化信息少,難以提取到具有鑒別力的特征,且極易被環(huán)境因素干擾,而且相對于大目標(biāo),小目標(biāo)容易出現(xiàn)聚集現(xiàn)象[18],當(dāng)小目標(biāo)聚集出現(xiàn)時(shí),聚集區(qū)域相鄰的小目標(biāo)無法區(qū)分,針對小目標(biāo)獲得的特征信息較少,所以對這些較少的信息更需要挖掘不同類別目標(biāo)彼此間微小的差異,而Focal NeXt block可以提高細(xì)粒度本地的交互能力,可以使得網(wǎng)絡(luò)模型產(chǎn)生更強(qiáng)的細(xì)粒度特征,放大彼此間微小的差異,提高模型的分類能力。小目標(biāo)檢測的難點(diǎn)還在于小目標(biāo)在圖像中覆蓋的面積小,尤其在以小卷積層堆疊獲得更大感受野的YOLOv7模型中,包含的上下文信息更少,語義信息表達(dá)能力較弱,而相比于小卷積核,在相同層數(shù)下,大卷積核雖然會帶來更多的參數(shù)但可以獲得更多的有效感受野增加輸出的上下文信息,該原理如圖2所示。
圖2 不同大小卷積核的輸出Fig.2 Output of convolutional kernels of different sizes
圖2中的Fin為輸入的特征圖,a、b分別表示小卷積核、大卷積核,a′和b′分別為輸入特征經(jīng)小卷積核和大卷積核卷積后產(chǎn)生的輸出特征,由圖1可以看出大卷積核b相比于小卷積核a在輸入特征圖上覆蓋范圍更大,因此卷積后輸出的特征b′相比于a′感受野更大,上下文信息包含更多,而卷積是一個(gè)不斷丟失特征的過程,在Ding等人發(fā)布的數(shù)據(jù)中表明,當(dāng)小卷積核通過堆疊達(dá)到與大卷積核相同感受野的同時(shí)會丟失更多的小目標(biāo)特征。
在本文backbone 網(wǎng)絡(luò)采用的Focal NeXt block 模塊相比于YOLOv7 的CBS 模塊傳統(tǒng)的3×3 卷積核采用更大的7×7卷積核來豐富模型輸出的上下文信息,并進(jìn)一步用深度卷積增強(qiáng)模型的語義表達(dá)能力,最終提高模型對小目標(biāo)的檢測精度,F(xiàn)ocal NeXt block的結(jié)構(gòu)如圖3所示。
圖3 ConvNeXt和Focal NeXt blockFig.3 ConvNeXt and Focal NeXt block
圖3 中的d7×7 是指卷積核為7×7 的深度卷積(depthwise conv),LN 為層歸一化(layer norm),LN 與BatchNorm 不同的是它是對單個(gè)batch 進(jìn)行歸一化,相比于BatchNorm的批量歸一化,它的優(yōu)點(diǎn)是可以加速網(wǎng)絡(luò)的收斂并減少過擬合,GELU(Gaussian error linear units)是一種基于高斯誤差函數(shù)的激活函數(shù),相較于ReLU等激活函數(shù),GELU更加平滑,有助于提高訓(xùn)練過程的收斂速度和性能。由圖2 可知,F(xiàn)ocal NeXt block的結(jié)構(gòu)主要是在ConvNeXt 結(jié)構(gòu)的基礎(chǔ)上添加了兩個(gè)Shortcut 連接[19]和一個(gè)Depth-wise[20]卷積結(jié)構(gòu)。這里的Shortcut是將淺層網(wǎng)絡(luò)和深層網(wǎng)絡(luò)的圖片特征進(jìn)行張量求和,在保持輸出維度不變的狀態(tài)下增加了輸出特征的信息量。該模塊通過兩個(gè)Shortcut連接不僅可以減輕梯度消失問題,能夠使得模型更快收斂,而且Shortcut連接將淺層網(wǎng)絡(luò)與深度網(wǎng)絡(luò)的特征相結(jié)合,增強(qiáng)模型細(xì)粒度的本地交互放大了目標(biāo)特征間的細(xì)微差異,除此之外,Shortcut連接增加了模型支路使得模型的有效感受野擴(kuò)大,增加了目標(biāo)特征的獲取。
圖3中7×7的Depth-wise卷積結(jié)構(gòu)相比于傳統(tǒng)的3×3卷積可以利用大卷積獲得更大的感受野,包含更多的上下文信息外,還可以通過對各個(gè)輸入通道進(jìn)行單獨(dú)的卷積運(yùn)算來降低計(jì)算參數(shù)[21]。Depth-wise卷積的工作原理如圖4所示。
圖4 Depth-wise卷積Fig.4 Depth-wise convolution
圖4中的Cin和Cout分別代表輸入特征圖和輸出特征圖的通道數(shù),Dmul為深度乘數(shù),M和N代表特征的空間維度,P為輸入特征,W代表卷積層的可訓(xùn)練內(nèi)核(7×7),O為輸出特征。在深度卷積中,將輸入特征P的Cin個(gè)通道分別進(jìn)行Dmul個(gè)點(diǎn)積,將每個(gè)輸入通道的M×N維特征轉(zhuǎn)化為Dmul多維特征,擴(kuò)大了模型的有效感受野,獲得更多的目標(biāo)特征。并且,F(xiàn)ocal NeXt block將Shortcut連接和Depth-wise卷積相結(jié)合,有效避免了Depth-wise卷積加深網(wǎng)絡(luò)導(dǎo)致的模型性能退化,相比ConvNeXt[22]結(jié)構(gòu)進(jìn)一步加強(qiáng)了粗粒度的全局交互和細(xì)粒度的本地交互,更有利于模型對小目標(biāo)特征的獲得和檢測。
本次研究將Focal NeXt block 網(wǎng)絡(luò)結(jié)構(gòu)和ELAN結(jié)構(gòu)進(jìn)行融合,經(jīng)過推理和實(shí)驗(yàn)得到以下兩個(gè)結(jié)構(gòu)ELAN-F(a)、ELAN-F(b),如圖5和圖6所示。
圖5 ELAN-F(a)Fig.5 ELAN-F(a)
圖6 ELAN-F(b)Fig.6 ELAN-F(b)
圖5 中的ELAN-F(a)在ELAN 的長短梯度路徑內(nèi)以Focal NeXt block 取代CBS 模塊,在將Focal NeXt block放入ELAN模塊時(shí),本次研究參考了Zhuang Liu等人提出的ConvNeXt 結(jié)構(gòu),該結(jié)構(gòu)采用了MobileNetV2中的Inverted Bottleneck[23]的兩頭窄中間寬的主體框架,并在已發(fā)布的實(shí)驗(yàn)數(shù)據(jù)里驗(yàn)證了該框架的優(yōu)越性。
在本次研究中,經(jīng)過實(shí)驗(yàn)推理,發(fā)現(xiàn)將通道數(shù)較多的Focal NeXt block 放在結(jié)構(gòu)中間,兩端通道數(shù)減小,在不影響淺層網(wǎng)絡(luò)進(jìn)行Cat操作的同時(shí)盡量保持主干類似Inverted Bottleneck兩頭窄中間寬的框架結(jié)構(gòu)可以有效提高模型檢測性能,然后將經(jīng)過Focal NeXt block完善后的深層特征和淺層特征通過Concat結(jié)合起來,進(jìn)一步加強(qiáng)小目標(biāo)的特征信息。
圖6中的ELAN-F(b)模塊,是在ELAN-F(a)的基礎(chǔ)上對Cat后的特征再次以Focal NeXt block結(jié)構(gòu)進(jìn)行加強(qiáng),該結(jié)構(gòu)主要用于Backbone 和Head 部分的過渡最后將信息更加豐富的數(shù)據(jù)輸出到頭部網(wǎng)絡(luò),使得模型最后輸出的信息更加完善,降低模型對小目標(biāo)識別的難度。
圖7 中是為了驗(yàn)證ELAN-F(a)的優(yōu)越性在本次研究中進(jìn)行實(shí)驗(yàn)的模型結(jié)構(gòu)。
圖7 ELAN的改進(jìn)實(shí)驗(yàn)結(jié)構(gòu)Fig.7 Improved experimental structure of ELAN
本次研究對圖7 中的六個(gè)結(jié)構(gòu)以Flow-Img 數(shù)據(jù)集進(jìn)行消融實(shí)驗(yàn),消融實(shí)驗(yàn)對比結(jié)果如表1所示。
表1 ELAN與改進(jìn)結(jié)構(gòu)對比Table 1 Comparison between ELAN and improved structure
由表1中的數(shù)據(jù)可以看出,在相同條件下,結(jié)構(gòu)(2)至結(jié)構(gòu)(5)的檢測性能相近,且結(jié)構(gòu)(2)的mAP@0.5:0.95的數(shù)值最高檢測性能最好,但是該結(jié)構(gòu)帶來的參數(shù)量最大,相比YOLOv7增大了計(jì)算成本,結(jié)構(gòu)(4)帶來的參數(shù)量最少,但魯棒性太差輸出結(jié)果起伏較大,而結(jié)構(gòu)(5),參數(shù)量少,魯棒性相比結(jié)構(gòu)(4)更好,減少計(jì)算成本的同時(shí)可以達(dá)到同等檢測效果。因此本次研究以結(jié)構(gòu)(5)為ELAN-(a)。在本次研究中提出的ELAN-F(b)結(jié)構(gòu)的特點(diǎn)是在以ELAN-F(a)為骨干輸出到頭部網(wǎng)絡(luò)時(shí),繼續(xù)以Focal NeXt block 結(jié)構(gòu)替代原有的CBS 模塊作為過渡,對輸出數(shù)據(jù)做進(jìn)一步加強(qiáng),經(jīng)實(shí)驗(yàn)驗(yàn)證該結(jié)構(gòu)可以提高模型性能,該實(shí)驗(yàn)結(jié)果如表2所示。
表2 骨干網(wǎng)改進(jìn)結(jié)構(gòu)對比Table 2 Comparison of improved backbone network structures
表2 中的ELAN-F(a,b)是指在骨干網(wǎng)同時(shí)采用了ELAN-F(a)、ELAN-F(b)結(jié)構(gòu),由表2可以看出,在骨干網(wǎng)同時(shí)采用ELAN-F(a)、ELAN-F(b)結(jié)構(gòu)可以有效提高模型的mAP值。
在本次研究中,對骨干網(wǎng)進(jìn)行了改進(jìn)后發(fā)現(xiàn)大卷積的結(jié)構(gòu)可以有效提高模型在稀疏場景下檢測小目標(biāo)的整體性能,且在Ding在2022年發(fā)表的文獻(xiàn)中表明:相比于傳統(tǒng)的3×3小卷積核的多層堆疊,大卷積核可以獲得更多的有效視野域。而且大卷積核的應(yīng)用除了本身可以減少上下文信息的損失外還可以有效改善模型在下游任務(wù)中的整體性能,提高模型在實(shí)際應(yīng)用中的利用價(jià)值。為此,本次研究在模型的頭部網(wǎng)絡(luò)引入了RepLKDeXt(https://blog.csdn.net/qq_38668236/article/details/127107145)模塊,該模塊是根據(jù)Ding等人提出的RepLK Block 結(jié)構(gòu)進(jìn)行了優(yōu)化,圖8 中分別為RepLK Block和改進(jìn)后的結(jié)構(gòu)RepLKDeXt。
圖8 RepLK Block和RepLKDeXtFig.8 RepLK Block and RepLKDeXt
圖8 中的RepLK Block 結(jié)構(gòu)中的DW(depthwise seperable convolution)為深度可分離卷積可以加深網(wǎng)絡(luò)增強(qiáng)模型的語義表達(dá)能力,有效減少大卷積核帶來的計(jì)算量。RepLKDeXt優(yōu)化的思路在RepLK Block的基礎(chǔ)上再添加一個(gè)梯度路徑,這里是在模型RepLK Block輸出特征的基礎(chǔ)上再次融合淺層網(wǎng)絡(luò)信息可以豐富模型輸出的特征[24],除此之外,這種多分支結(jié)構(gòu)可以有效避免加深網(wǎng)絡(luò)導(dǎo)致的模型性能退化。在本次研究中,為了進(jìn)一步簡化網(wǎng)絡(luò)結(jié)構(gòu),在頭部網(wǎng)絡(luò)利用了RepLKDeXt結(jié)構(gòu)取代SPPCSPC 結(jié)構(gòu),相比于SPPCSPC 結(jié)構(gòu),RepLKDeXt Block 的組成主要為傳統(tǒng)的卷積結(jié)構(gòu),結(jié)構(gòu)更加簡單,可以有效減少模型的參數(shù)量,降低模型的計(jì)算難度,且以數(shù)據(jù)集FloW-Img為例的實(shí)驗(yàn)表明,該結(jié)構(gòu)的性能更加優(yōu)越,實(shí)驗(yàn)結(jié)果如表3所示。
表3 SPPCSPC與RepLKDeXt結(jié)構(gòu)對比Table 3 Comparison of SPPCSPC and RepLKDeXt Structures
從表3可以看出RepLKDeXt結(jié)構(gòu)相比SPPCSPC結(jié)構(gòu)在數(shù)據(jù)集FloW-Img上性能提高幅度較大。接著本次研究將優(yōu)化后的RepLKDeXt 結(jié)構(gòu)應(yīng)用到頭部網(wǎng)絡(luò)的ELAN-H結(jié)構(gòu)進(jìn)行改進(jìn),目的是獲得更多的小目標(biāo)特征以及使ELAN-H改進(jìn)后減少上下文信息的損失,在獲得更大有效感受野的同時(shí)不帶來較大的計(jì)算量,改進(jìn)后得到結(jié)構(gòu)為ELAN-H-R,如圖9所示。
圖9 ELAN-H和ELAN-H-RFig.9 ELAN-H and ELAN-H-R
ELAN-H-R結(jié)構(gòu)是在原有的ELAN-H模塊基礎(chǔ)上利用RepLKDeXt進(jìn)行改進(jìn),改進(jìn)的目的是利用RepLKDeXt的大卷積核獲得原有模塊多層傳統(tǒng)3×3 小卷積核堆疊得到的近似感受野的同時(shí)減少上下文的信息的損失,且RepLKDeXt取代一個(gè)CBS模塊和淺層網(wǎng)絡(luò)進(jìn)行連接并對輸出結(jié)果進(jìn)行Cat 操作,從圖9 可以看出該模塊的主干結(jié)構(gòu)相比原有模型的CBS模塊通道數(shù)增加,這使得網(wǎng)絡(luò)模型可以獲取更多的小目標(biāo)特征。
而且,在該結(jié)構(gòu)中,相比原模型,ELAN-H-R將主干首端的Cat分支進(jìn)行了上移避免了和下側(cè)分支操作相同造成冗余的同時(shí)和更淺層的網(wǎng)絡(luò)信息進(jìn)行融合[25],使得模型獲得更多的淺層小目標(biāo)特征,加強(qiáng)了淺層語義信息,有利于模型的性能提高。
同時(shí),為了驗(yàn)證該結(jié)構(gòu)的優(yōu)越性,本次研究對該結(jié)構(gòu)以數(shù)據(jù)集FloW-Img為例進(jìn)行了消融實(shí)驗(yàn)如表4所示。
表4 ELAN-H模塊和ELAN-H-R結(jié)構(gòu)實(shí)驗(yàn)對比Table 4 Experimental comparison of ELAN-H module and ELAN-H-R structure
從表4 可以看出本次研究中改進(jìn)的ELAN-H-R 模塊可以有效提高模型性,ELAN-H-R相比ELAN-H的卷積核增大通道數(shù)增加,在針對稀疏場景下的小目標(biāo)ELAN-H-R可以用13×13的大卷積獲得更多的上下文信息[26]來建立長期依賴,并且ELAN-H-R 用大卷積核、多通道和深淺層網(wǎng)絡(luò)信息融合的結(jié)構(gòu)方式改進(jìn)ELAN-H模塊,這種改進(jìn)方式雖然會增加模型的計(jì)算參數(shù)導(dǎo)致模型的推理速度降低但可以獲得更多小目標(biāo)特征加強(qiáng)輸出特征的淺層語義信息,減少大卷積核導(dǎo)致的目標(biāo)紋理特征的損失提高模型輸出的mAP值。
結(jié)合ELAN-F(a,b)、RepLKDeXt及ELAN-H-R結(jié)構(gòu),可以得出YOLOv7改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu),如圖10所示。
圖10 YOLOv7改進(jìn)網(wǎng)絡(luò)模型Fig.10 YOLOv7 improved network model
目標(biāo)檢測模型在損失上分為坐標(biāo)損失、目標(biāo)置信度損失和分類損失三部分,YOLOv7模型在目標(biāo)置信度損失和分類損失上均采用BCEWithLogitsLoss,在坐標(biāo)損失上采用的是CIOU損失,本次研究針對YOLOv7模型的坐標(biāo)損失函數(shù)進(jìn)行優(yōu)化,用Gevorgyan 提出的SIOU損失函數(shù)代替YOLOv7本身的CIOU損失函數(shù),CIOU[27]的原理如下列公式所示:
式中,wgt、hgt分別代表真實(shí)框的寬和高,w和h分別代表預(yù)測框的寬和高,V主要用來衡量長寬比是否一致,α為平衡參數(shù),P表示預(yù)測框;Pgt表示真實(shí)框,由式(1)中可知,當(dāng)wgt/hgt與w/h的值相等時(shí),V值等于0,此時(shí)LCIOU無法穩(wěn)定表達(dá)。CIOU Loss 雖然考慮了邊界框回歸的重疊面積、中心點(diǎn)距離、縱橫比,但寬高比相同時(shí)的CIOU 損失會阻礙模型有效的優(yōu)化相似性[28],降低網(wǎng)絡(luò)的魯棒性。本次研究為了進(jìn)一步提高網(wǎng)絡(luò)的魯棒性,引入了SIOU 損失函數(shù)來取代CIOU 函數(shù)[29],SIOU 損失函數(shù)主要四個(gè)代價(jià)函數(shù)組成分別為Angle cost、Distance cost、Shape cost和IoU cost。
(1)Angle cost
圖11中的B為預(yù)測框,BGT為真實(shí)框,σ為真實(shí)框和預(yù)測框中心點(diǎn)間的距離,ch為真實(shí)框和預(yù)測框中心點(diǎn)的高度差,cw為兩中心點(diǎn)間的水平距離,arcsin(ch/σ)為α,arcsin(cw/σ)為β,角成本計(jì)算公式為:
圖11 SIOU的角成本計(jì)算Fig.11 Calculation of corner cost for SIOU
式中:
在上述計(jì)算中α≤π/4 時(shí),使用最小化α,否則使用最小化β。
(2)Distance cost
圖12 中的cw和ch為真實(shí)框和預(yù)測框最小外接矩形的寬和高,對應(yīng)的距離成本定義的公式為:
圖12 邊界框的距離計(jì)算Fig.12 Calculation of distance between bounding boxes
式中:
當(dāng)α趨向于0 時(shí),距離成本的貢獻(xiàn)越小,α趨向于π/4 時(shí),距離貢獻(xiàn)成本越大,角度越大,處理越困難,所以這里γ隨著角度的增加,需要被賦予時(shí)間優(yōu)先的距離值。
(3)Shape cost
圖13 中的H、W和HGT、WGT分別代表預(yù)測框和真實(shí)框的高和寬,形狀成本定義的公式為:
圖13 IOU的計(jì)算Fig.13 Calculation of IOU
式中:
θ控制對形狀損失的關(guān)注程度,為了避免過于關(guān)注形狀損失而降低對預(yù)測框的移動,Zhora 使用遺傳算法計(jì)算出θ接近4,θ參數(shù)范圍為[2,6],本文θ取4。
(4)SIOU
結(jié)合上述三類成本損失可以得出SIOU 損失函數(shù),如式(13)所示:
式中:
相比于CIOU 損失函數(shù),SIOU 考慮了角度成本,重新定義了懲罰指標(biāo),減少了懲罰項(xiàng)為0 的情況,提高了網(wǎng)絡(luò)的魯棒性。
(5)SIOU效果展示
本文模型結(jié)構(gòu)對應(yīng)不同損失算法得到的mAP@0.5的性能指標(biāo)如圖14。
圖14 不同損失函數(shù)對應(yīng)的mAP@0.5性能指標(biāo)折線圖Fig.14 Correspondence of different loss function mAP@0.5 performance index line chart
從圖14 可以看出本文算法結(jié)合CIOU 損失函數(shù)得出的結(jié)果波動較大,網(wǎng)絡(luò)模型的魯棒性較差,而引入的SIOU損失函數(shù)結(jié)合本文算法后的得出的結(jié)果相對波動較小,模型的魯棒性得到有效提升。
而且SIOU 損失函數(shù)添加角懲罰成本,減少了損失的總自由度,因此,相比于CIOU 損失函數(shù),SIOU 損失函數(shù)可以有效提高網(wǎng)絡(luò)模型的推理速度,本次研究將本文模型結(jié)合上述兩種損失函數(shù)分別在數(shù)據(jù)集VisDrone2019和數(shù)據(jù)集FLOW-Img上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表5所示。
表5 本文模型的SIOU和CIOU檢測速度對比Table 5 Comparison of SIOU and CIOU detection speeds for this model
由表5 可以看出相比于CIOU 采用SIOU 對應(yīng)算法FPS值更高,檢測速度更快,對應(yīng)的推理時(shí)間也更少。
VisDrone2019[30]數(shù)據(jù)集為天津大學(xué)機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘?qū)嶒?yàn)室的AISKYEY團(tuán)隊(duì)制作的。該數(shù)據(jù)集所有圖片和視頻由各種無人機(jī)攝像頭捕獲,覆蓋范圍廣泛,包含10 209 幅靜態(tài)圖像,其中6 471 張用于訓(xùn)練,548 張用于驗(yàn)證,1 580張用于測試,該數(shù)據(jù)集的檢測目標(biāo)共有10個(gè)類別標(biāo)簽,分別為pedestrain、person、bicycle、car、van、truck、tricycle、awning-tricycle、bus 以及motor。該數(shù)據(jù)集涉及在不同的場景、不同的天氣和光照條件下的觀測結(jié)果并使用超過260萬個(gè)目標(biāo)框手工標(biāo)注,滿足場景可見性,對象類和遮擋等重要屬性。本次研究對數(shù)據(jù)集VisDrone2019進(jìn)行了驗(yàn)證計(jì)算,得出滿足目標(biāo)邊框面積與圖像面積比值開方小于0.03 的檢測目標(biāo)約占總目標(biāo)的66.24%,滿足數(shù)據(jù)集小目標(biāo)檢測物占據(jù)多數(shù)的實(shí)驗(yàn)要求。訓(xùn)練集采用VisDrone2019-DET-train,驗(yàn)證集為VisDrone2019-DET-val。該數(shù)據(jù)集特點(diǎn)是目標(biāo)密度大,多類別。
FloW-Img[31]數(shù)據(jù)集是歐卡智舶聯(lián)合AI 專家、圖靈獎(jiǎng)得主Yoshua Bengio的Mila實(shí)驗(yàn)室、清華大學(xué)和西北工業(yè)大學(xué)的研究人員發(fā)布的城市水域漂浮垃圾檢測數(shù)據(jù)集,F(xiàn)loW-Img 數(shù)據(jù)集包含2 000 張圖像,單個(gè)類別bottle,為了提高實(shí)驗(yàn)數(shù)據(jù)的可信程度,本次研究對FloW-Img 數(shù)據(jù)集進(jìn)行了驗(yàn)證計(jì)算,最后得出滿足面積小于32×32的目標(biāo)檢測物占總數(shù)據(jù)集的54.16%,滿足數(shù)據(jù)集小目標(biāo)檢測物占據(jù)多數(shù)的實(shí)驗(yàn)要求。數(shù)據(jù)集采用6∶2∶2的比例劃分出訓(xùn)練集、驗(yàn)證集和測試集。該數(shù)據(jù)集特點(diǎn)是目標(biāo)較為稀疏,單類別。
本次研究使用的系統(tǒng)為Ubuntu20.04 系統(tǒng),實(shí)驗(yàn)所使用的環(huán)境為python3.8,pytorch1.10.0,Cuda11.3,實(shí)驗(yàn)采用顯卡RTX3090 進(jìn)行模型訓(xùn)練,本次研究的以VisDrone2019 為數(shù)據(jù)集訓(xùn)練的epochs 設(shè)置為150,batchsize 為16,以FloW-Img 為訓(xùn)練數(shù)據(jù)集的epochs 設(shè)置為300,batchsize為32。兩者的超參數(shù)相同,初始的學(xué)習(xí)率為0.01,分辨率為640×640。
本文所有實(shí)驗(yàn)的評價(jià)指標(biāo)分別為P(precision),mAP@0.5,mAP@0.5:0.95,GFLOPs,Params,F(xiàn)PS。計(jì)算公式如下:
其中,TP表示實(shí)際為正被預(yù)測為正的樣本數(shù)量,F(xiàn)P表示實(shí)際為負(fù)但被預(yù)測為正的樣本數(shù)量,F(xiàn)N表示實(shí)際為正但被預(yù)測為負(fù)的樣本的數(shù)量;P為準(zhǔn)確率;R為召回率,AP為平均準(zhǔn)確率,對所有類別的AP值取平均值就可以得到mAP,mAP@0.5 表示所有目標(biāo)類別的IOU閾值在0.5時(shí)的平均檢測精度,mAP@0.5:0.95則是代表以步長為0.05,計(jì)算IoU 閾值從0.5~0.95 的所有10 個(gè)IoU 閾值下的檢測精度的平均值,GFLOPs 為每秒10 億次的浮點(diǎn)運(yùn)算數(shù),Params 為參數(shù)量大小,F(xiàn)PS 為每秒檢測多少幀圖片。
本次研究通過消融實(shí)驗(yàn)來評估不同的模塊、不同的數(shù)據(jù)集給最終目標(biāo)檢測性能帶來的影響。消融實(shí)驗(yàn)的結(jié)果如表6所示。
表6 FloW-Img消融實(shí)驗(yàn)Tabel 6 FloW-Img ablation experiment
表6 中各模塊的改進(jìn)對比數(shù)據(jù)是在數(shù)據(jù)集FloWImg上進(jìn)行對比實(shí)驗(yàn)得出,從表中可以看出本次研究提出的各個(gè)模塊都可以有效提高YOLOv7 模型在數(shù)據(jù)集FloW-Img上的檢測性能,且根據(jù)表中的數(shù)據(jù)可以看出,相比于精度上的提高,本文算法中的各個(gè)模塊在召回率上的提升幅度更大,表明本文利用大卷積核來提高輸出特征的上下文信息含量有利于提高模型對小目標(biāo)檢測的定位精度。
表中,YOLOv7+RepLKDeXt算法以RepLKDeXt模塊取代SPPCSPC 模塊,在表中減少的參數(shù)量最大,且mAP 值上漲,由此可以看出該步驟可以有效簡化模型結(jié)構(gòu),減少不必要的計(jì)算參數(shù)。在表中本文最終算法引入SIOU 損失函數(shù),雖然相比于CIOU 損失函數(shù)的mAP值有所降低,但結(jié)合圖14 所示,SIOU 損失函數(shù)進(jìn)一步提高了網(wǎng)絡(luò)模型的魯棒性,并且根據(jù)表5所示該算法可以有效加快模型推理。
最后根據(jù)本文算法得出的結(jié)果,改進(jìn)后算法相比于YOLOv7 算法在FloW-Img 數(shù)據(jù)集上的mAP@0.5 的值提高9.05個(gè)百分點(diǎn),參數(shù)值下降接近3×106,GFLOPS下降8.7。
在本次研究中為了驗(yàn)證本文算法的優(yōu)越性,將本文算法各類主流算法進(jìn)行對比,在保證配置環(huán)境及初始訓(xùn)練參數(shù)一致的情況下,為了進(jìn)一步驗(yàn)證本文算法的泛化性能,本次研究將分別在小目標(biāo)較為稀疏的FloW-Img和小目標(biāo)密集度較高的VisDrone2019 數(shù)據(jù)集上進(jìn)行算法對比實(shí)驗(yàn)。
由表7可以看出,YOLOv7算法在FloW-Img數(shù)據(jù)集中的檢測性能遠(yuǎn)低于其他YOLO系列算法,根據(jù)mAP@0.5 和mAP@0.5:0.95 的值可以看出,除了本文算法外,YOLOv8[32]是上述算法中在數(shù)據(jù)集FloW-Img 上檢測性能最好的模型,其mAP@0.5的值比YOLOv7高5.84個(gè)百分點(diǎn),mAP@0.5:0.95的值比YOLOv7高7.27個(gè)百分點(diǎn)。
表7 FloW-Img各算法對比實(shí)驗(yàn)數(shù)據(jù)Table 7 Comparative experimental data of FloW-Img algorithms
本次研究對YOLOv7算法進(jìn)行改進(jìn)后,可以看出在數(shù)據(jù)集FloW-Img 上檢測性能超越Y(jié)OLOv8 算法,比YOLOv8的mAP@0.5的值高3.21個(gè)百分點(diǎn),mAP@0.5:0.95 的值比YOLOv8 高0.22 個(gè)百分點(diǎn),只是在實(shí)時(shí)性檢測上本文算法的FPS 從表中可以看出數(shù)值最低,為43幀/s,相比YOLOv7算法改進(jìn)后檢測速度下降幅度較大,但FPS大于30,滿足實(shí)時(shí)性檢測要求[33]。
表8中,本文算法在小目標(biāo)密度高的VisDrone2019數(shù)據(jù)集上的檢測性能遠(yuǎn)超表中其他主流算法,與YOLOv7算法性能近似相同,且根據(jù)前文可知,在性能相同的狀況下,本文算法的計(jì)算參數(shù)更少,計(jì)算復(fù)雜度更低,但在實(shí)時(shí)檢測性能上,相比YOLOv7 下降幅度較大,輸出的FPS 數(shù)值為55 滿足實(shí)時(shí)檢測要求,且檢測速度超過TPH-YOLOv5。
表8 VisDrone2019各算法對比實(shí)驗(yàn)數(shù)據(jù)Table 8 VisDrone2019 comparative experimental data of various algorithms
由表7、表8 可以總結(jié)出,在目標(biāo)檢測的mAP 指標(biāo)上:(1)本文算法在小目標(biāo)密度高的場景下和YOLOv7模型檢測性能近似,但結(jié)構(gòu)更加簡單,且超過表中其他YOLO系列算法。(2)在小目標(biāo)較為稀疏的場景下,本文算法在YOLOv7 的檢測基礎(chǔ)上性能大幅提高且同樣強(qiáng)于其他常規(guī)的YOLO 系列算法。在實(shí)時(shí)檢測性能上:本文算法在骨干網(wǎng)加深了網(wǎng)絡(luò)深度整體上采用了大卷積核和加寬網(wǎng)絡(luò)的模型結(jié)構(gòu)導(dǎo)致算法的實(shí)時(shí)檢測性能降低,相比YOLOv7 算法的檢測速度較低,但依然滿足實(shí)時(shí)檢測要求。
本文提出的算法在稀疏場景的FloW-Img數(shù)據(jù)集的檢測成果通過挑選距離較遠(yuǎn)、光照條件不同和遮擋較為嚴(yán)重等屬性的場景進(jìn)行檢測效果對比,圖15 中展示的是本文算法和YOLOv7 算法在不同場景下的檢測結(jié)果對比。
圖15 距離較遠(yuǎn)導(dǎo)致目標(biāo)特征不明顯的目標(biāo)檢測結(jié)果對比Fig.15 Comparison of target detection results with obvious target features
從圖15的兩處場景對比可以看出本文算法在距離較遠(yuǎn)等小目標(biāo)特征不明顯的場景能識別更多的小目標(biāo),在該方面的識別性能遠(yuǎn)高于YOLOv7模型,針對特征不明顯的小目標(biāo)本文算法相比于YOLOv7 算法采用了多通道結(jié)構(gòu)來獲取更多小目標(biāo)特征并通過增加淺層網(wǎng)絡(luò)信息的融合來加強(qiáng)淺層語義信息,因此輸出的不明顯的小目標(biāo)的特征得以完善和加強(qiáng)進(jìn)一步降低了模型的識別難度。
從圖16上下兩處場景檢測對比可以看出在光照強(qiáng)度較高致使湖面檢測目標(biāo)特征不明顯的場景下,YOLOv7算法檢測效果較差,僅檢測出單個(gè)目標(biāo)而本文算法檢測出多處目標(biāo),本文算法相比于YOLOv7算法模型在輸出特征上獲得的上下文信息更多,有利于長期依賴的建立,相比于YOLOv7 算法在不同光照條件下的性能差異,本文算法可以有效削弱光照條件的影響。
圖16 光照條件導(dǎo)致目標(biāo)特征不明顯的目標(biāo)檢測結(jié)果對比Fig.16 Comparison of object detection results with obvious target features caused by illumination conditions
從圖17 可以看出,針對遮擋小目標(biāo)嚴(yán)重的場景YOLOv7 算法出現(xiàn)漏檢和誤檢的狀況,而本文算法可以有效識別被遮擋住的小目標(biāo)特征,相比于YOLOv7算法本文算法在骨干網(wǎng)絡(luò)和頭部網(wǎng)絡(luò)引入了大卷積核,通過大卷積核模型在識別這些受到遮擋的小目標(biāo)時(shí)可以獲得更多上下文信息,從更多上下文信息中模型可以獲得更多的小目標(biāo)的周圍特征進(jìn)行對比并且模型還可以通過細(xì)粒度特征的交互增強(qiáng)放大目標(biāo)與背景間的差異來降低檢測難度,由圖17看出,本文算法在檢測受到遮擋小目標(biāo)的性能上高于YOLOv7算法。
圖17 遮擋場景檢測結(jié)果對比Fig.17 Comparison of FloW-Img test results
本次針對小目標(biāo)檢測進(jìn)行研究,對YOLOv7 模型進(jìn)行了優(yōu)化,針對網(wǎng)絡(luò)結(jié)構(gòu),在主干網(wǎng)將CFNet 網(wǎng)絡(luò)的Focal NeXt block 和YOLOv7 的ELAN 模塊進(jìn)行了結(jié)合提出ELAN-F(a)、ELAN-F(b)模塊,兩模塊通過加強(qiáng)輸出特征和提高輸出特征的上下文含量來完善模型的整體性能,在頭部網(wǎng)絡(luò)引入了RepLKDeXt模塊,該模塊被用于取代SPPCSPC 模塊簡化網(wǎng)絡(luò)以及優(yōu)化ELAN-H模塊為ELAN-H-R 模塊來加強(qiáng)淺層語義信息和進(jìn)一步提高上下文信息含量。最后為了提高模型的魯棒性,本文算法引入SIOU損失函數(shù)來取代CIOU損失函數(shù)。將改進(jìn)算法在FloW-Img數(shù)據(jù)集上實(shí)驗(yàn)后表明該算法在小目標(biāo)稀疏場景下的檢測性能有大幅提高,在Vis-Drone2019數(shù)據(jù)集上的實(shí)驗(yàn)表明本文算法在小目標(biāo)密度高的場景中檢測性能沒有降低依然超越大部分主流算法但結(jié)構(gòu)上做了簡化,計(jì)算復(fù)雜度也有效降低。
本文算法雖然在結(jié)構(gòu)上進(jìn)行了簡化和在小目標(biāo)較為稀疏的場景中檢測性能有所提高,但實(shí)際參數(shù)量還是較大,除此之外,本文算法相比于YOLOv7 算法的實(shí)時(shí)檢測性能也有所下降,而且在小目標(biāo)密集場景中的檢測性能也需要進(jìn)一步提高。在以上三點(diǎn)問題上,未來需要對模型進(jìn)行更好的簡化研究并在此基礎(chǔ)上提高模型在小目標(biāo)密集狀態(tài)下的檢測性能并降低模型的推理時(shí)間。