吳觀茂,王 濤
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
隨著工業(yè)化快速發(fā)展,海洋生態(tài)環(huán)境遭受了一定程度的破壞,海洋垃圾逐漸引起了人們的關(guān)注。海洋垃圾不僅是指水上各類(lèi)漂浮物,還有不易人類(lèi)察覺(jué)的水下垃圾,給魚(yú)類(lèi)、植物、藻類(lèi)等造成了危害。由于海洋面積遼闊,傳統(tǒng)海下垃圾檢測(cè)方式需要付出極大的人力、物力以及時(shí)間,且效率較低。
深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)的重要組成部分,被廣泛地應(yīng)用在目標(biāo)檢測(cè)領(lǐng)域[1-2]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法可以分兩類(lèi)[3]。一類(lèi)是以R-CNN、Fast R-CNN、Faster R-CNN、SPP-Net等為主的二階段算法,主要原理是先在原始圖片上選擇感興趣的區(qū)域,即候選區(qū)域,然后在候選區(qū)域進(jìn)行目標(biāo)分類(lèi)和邊界框回歸,檢測(cè)精度比較高,但計(jì)算成本大、速度比較慢。另一類(lèi)是以YOLO、SSD為主的一階段算法。不同于二階段算法,其采用端對(duì)端的方式直接進(jìn)行分類(lèi)和回歸,可以實(shí)現(xiàn)實(shí)時(shí)檢測(cè),但檢測(cè)精度比較低。
海洋垃圾檢測(cè)與許多視覺(jué)物體檢測(cè)問(wèn)題一樣,環(huán)境中的微小變化可能會(huì)導(dǎo)致物體外觀的巨大變化,光的變化以及水的濁度變化都可能會(huì)使物體難以或完全無(wú)法被檢測(cè)到。因此,本文提出一種基于改進(jìn)YOLOv5s的實(shí)時(shí)目標(biāo)檢測(cè)算法,通過(guò)分析YOLOv5s算法和TrashCan海下垃圾數(shù)據(jù)集,對(duì)網(wǎng)絡(luò)模型和損失函數(shù)進(jìn)行優(yōu)化,以期提高算法對(duì)目標(biāo)的檢測(cè)性能。
YOLOv5算法使用參數(shù)depth_multiple和width_multiple來(lái)調(diào)整骨干網(wǎng)絡(luò)的寬度和深度,得到Y(jié)OLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 4個(gè)版本的模型。其中,YOLOv5s是最簡(jiǎn)單的模型,檢測(cè)速度比較快,但精度要低于其他3個(gè)。YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)
假定輸入圖片大小為640×640。在主干網(wǎng)Backbone部分,YOLOv5首先通過(guò)Focus模塊對(duì)輸入的圖片進(jìn)行切片處理以及卷積核為1×1、步長(zhǎng)為1的卷積處理,使輸入的圖片變?yōu)?20×320,然后利用CSPDarknet53模塊進(jìn)行特征提取。當(dāng)提取到最深層特征時(shí)(如20×20),Neck部分將此時(shí)的特征圖進(jìn)行上采樣,把特征圖的長(zhǎng)與寬拉長(zhǎng)2倍(變?yōu)?0×40),與主干網(wǎng)絡(luò)的40×40特征圖進(jìn)行融合,重復(fù)此類(lèi)操作,可以使自頂向下FPN中3個(gè)特征圖都包含淺層特征和深層特征。由于提取的特征圖經(jīng)過(guò)FPA模塊傳達(dá)強(qiáng)語(yǔ)義特征,不利于目標(biāo)定位操作,因此加入自底向上的PANet模塊[4],使特征圖強(qiáng)定位特征,兩者強(qiáng)強(qiáng)結(jié)合,提高檢測(cè)精度。Head部分將檢測(cè)層分為80×80、40×40、20×20 3個(gè)不同尺度,在小、中、大目標(biāo)檢測(cè)上可以取得很好的效果[5]。
由于YOLOv5s初版算法模型的網(wǎng)絡(luò)結(jié)構(gòu)與損失函數(shù)專(zhuān)門(mén)為通用場(chǎng)景而設(shè)計(jì),在一些特定場(chǎng)景上應(yīng)用效果較差。但其網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單清晰、檢測(cè)精度比較低,有很大改進(jìn)空間。因此,本文對(duì)YOLOv5s提出3處改進(jìn),以解決在TrashCan海下垃圾數(shù)據(jù)集上的檢測(cè)問(wèn)題。改進(jìn)后YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)后YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)
注意力機(jī)制使神經(jīng)網(wǎng)絡(luò)能夠準(zhǔn)確地關(guān)注輸入的所有相關(guān)元素,是提高深度神經(jīng)網(wǎng)絡(luò)性能的重要組成部分。Hu等[6]提出的擠壓和激勵(lì)(SE)模塊是一種極輕的即插即用模塊,嵌入ResNet50主干后,其在ImageNet數(shù)據(jù)集的檢測(cè)精度提高了1.51%,額外計(jì)算增加了約1%。Zhang等[7]將SE模塊添加到Y(jié)OLOv5s中,在VisDrone-2020數(shù)據(jù)集上的mAP由13.97%提升到14.03%。Wang等[8]提出ECA通道注意力機(jī)制,實(shí)驗(yàn)結(jié)果表明ECA模塊效率更高,性能優(yōu)于SE模塊。因此,鑒于嵌入ECA模塊帶來(lái)的性能大于增加的計(jì)算成本,本文將ECA模塊嵌入CSPDarknet53主干中。ECA模塊結(jié)構(gòu)如圖3所示。
圖3 ECA模塊結(jié)構(gòu)
ECA模塊在不降低維度的情況下進(jìn)行逐通道全局平均池化之后,通過(guò)考慮每個(gè)通道及其k個(gè)近鄰來(lái)捕獲本地跨通道交互[9]。輸入的特征圖xij的大小為HiWj,經(jīng)過(guò)全局平均池化(GAP)后,特征向量的輸出為1×1×C,即g(x),計(jì)算公式為:
(1)
式(1)中,x為特征值的輸入;H為特征圖的高;W為特征圖的寬。
GAP操作后,進(jìn)行卷積核為自適應(yīng)k大小的1維卷積操作,并經(jīng)過(guò)Sigmoid激活函數(shù)得到各個(gè)通道的權(quán)重w,計(jì)算公式為:
(2)
w=σ(C1Dkg(x))
(3)
式(2)~(3)中,C為特征圖的通道數(shù);C1D為一維卷積;odd代表取奇數(shù);σ代表Sigmoid激活函數(shù)。
最后,將權(quán)重與原始輸入特征圖對(duì)應(yīng)元素相乘,得到最終輸出特征圖。
卷積神經(jīng)網(wǎng)絡(luò)越深,特征圖的感受域越大,每個(gè)神經(jīng)元包含更多的全局和高層語(yǔ)義特征,但會(huì)丟失局部特征和細(xì)節(jié)特征[10]。相反,當(dāng)卷積神經(jīng)網(wǎng)絡(luò)較淺時(shí),特征圖神經(jīng)元中包含的特征往往更局部和詳細(xì)[11]。由于YOLOv5s的先驗(yàn)框自適應(yīng),當(dāng)輸出的特征圖包含更多信息時(shí),先驗(yàn)框可以更好地進(jìn)行分類(lèi)與回歸,所以增加更低一級(jí)多尺度融合層,有利于提高小目標(biāo)的檢測(cè)。因此,本文采用四級(jí)多尺度特征融合層(Four MFF)進(jìn)行特征值提取,并采用FPN+PAnet組合作為Neck的模型結(jié)構(gòu)。四級(jí)多尺度特征融合結(jié)構(gòu)如圖4所示。
圖4 四級(jí)多尺度特征融合結(jié)構(gòu)
在原初YOLOv5中,主干網(wǎng)3次下采樣得到80×80、40×40、20×20的特征圖與FPN 2次上采樣得到的特征圖進(jìn)行多尺度融合,但沒(méi)有完全利用主干網(wǎng)底層特征圖。這是因?yàn)閅OLOv5為減少計(jì)算成本,提高檢測(cè)速率,只利用了主干網(wǎng)后3次下采樣,因此原初YOLOv5對(duì)大、中目標(biāo)識(shí)別效果較好,小目標(biāo)識(shí)別效果較差。在三級(jí)多尺度融合層的基礎(chǔ)上,增加更低一級(jí)多尺度融合層,即將FPN、PAnet分別再進(jìn)行1次上采樣,接著將主干網(wǎng)的4次下采樣得到160×160、80×80、40×40、20×20的特征圖與FPN 3次上采樣得到特征圖進(jìn)行融合,使FPN中4個(gè)特征圖都包含淺層特征和深層特征,然后將FPN中4個(gè)特征圖與PAnet 3次上采樣得到特征圖進(jìn)行融合。這樣就可以在融合的特征圖上檢測(cè),以確保每個(gè)對(duì)象的預(yù)測(cè)能充分利用所有特征層的信息。
邊框回歸是目標(biāo)檢測(cè)的關(guān)鍵步驟,選用EIoU作為YOLOv5s算法的損失函數(shù),EIoU的長(zhǎng)寬比例損失αv為:
(4)
式(4)中,Aw和Ah為預(yù)測(cè)框A的寬度和高度;Bw和Bh為預(yù)測(cè)框B的寬度和高度;Cw和Ch是覆蓋2個(gè)最小外接框的寬度和高度。
為更有利于模型的優(yōu)化,引入Focal Loss優(yōu)化邊界框回歸任務(wù)中的樣本不平衡問(wèn)題,計(jì)算公式為:
(5)
式(5)中,a和b分別為A、B的中心點(diǎn);c為C覆蓋的對(duì)角線(xiàn)長(zhǎng)度。
從式(5)可以看出,EIoU將損失函數(shù)分成了IoU損失、距離損失、邊長(zhǎng)損失,是針對(duì)CIoU損失函數(shù)改進(jìn)得來(lái)的,避免了當(dāng)預(yù)測(cè)框的長(zhǎng)與寬滿(mǎn)足[(w=kwgt,h=khgt)|k∈R+]時(shí),CIoU中添加的相對(duì)比例的懲罰項(xiàng)不起作用。此外,還防止了當(dāng)w和h其中一個(gè)值增大時(shí),另外一個(gè)值必須減小,不能保持同增同減的問(wèn)題。
在目標(biāo)檢測(cè)領(lǐng)域中,模型收斂的速率與高低質(zhì)量樣本有關(guān),這是因?yàn)榇蟛糠謽颖镜恼鎸?shí)框與根據(jù)錨點(diǎn)得到預(yù)測(cè)框的IoU不大,此類(lèi)樣本稱(chēng)為低質(zhì)量樣本,且在低質(zhì)量樣本上進(jìn)行訓(xùn)練時(shí),會(huì)導(dǎo)致?lián)p失值更容易劇烈波動(dòng)。因此,EIoU引入Focal Loss可以很好地解決高低質(zhì)量樣本類(lèi)別不平衡的問(wèn)題。
TrashCan數(shù)據(jù)集由帶注釋的圖像(目前有 7 212 張)組成,包含對(duì)垃圾、人造物體(ROV)和各種海底動(dòng)植物三大類(lèi)的觀察,共有22個(gè)類(lèi)用于標(biāo)記對(duì)象。圖像來(lái)自日本海洋地球科學(xué)技術(shù)局策劃的J-EDI數(shù)據(jù)集。
改進(jìn)的YOLOv5s模型運(yùn)行環(huán)境為阿里AutoDL算力市場(chǎng)的RTX 3090 GPU,配置環(huán)境為1.10版PyTorch、3.8版Python、11.3版Cuda。采用改進(jìn)的YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,初始學(xué)習(xí)率設(shè)置為0.001,批量大小為8,學(xué)習(xí)次數(shù)為300。
改進(jìn)后的模型通過(guò)查準(zhǔn)率(Precision)、查全率(Recall)、 平均精度均值(mAP)3個(gè)指標(biāo)進(jìn)行評(píng)估,其中mAP的計(jì)算公式為:
(6)
式(6)中,i為當(dāng)前類(lèi)別;AP(i)為當(dāng)前類(lèi)別的平均精度;n為類(lèi)別總數(shù)。
為了驗(yàn)證3種改進(jìn)方法的有效性,以YOLOv5s模型為對(duì)照組,設(shè)置4個(gè)模型,M1:ECA;M2:Four MFF;M3:EIoU;M4:ECA+ Four MFF +EIoU,進(jìn)行消融實(shí)驗(yàn)測(cè)試。實(shí)驗(yàn)保留需要測(cè)試的改進(jìn)方法,并屏蔽了可能影響測(cè)試模塊的其他方法。消融實(shí)驗(yàn)結(jié)果見(jiàn)表1。訓(xùn)練結(jié)果指標(biāo)變化如圖5所示。
表1 消融實(shí)驗(yàn)結(jié)果
(a) Precision (b) Recall (c) mAP50
從圖5和表1可以看出,每種改進(jìn)方法都比原始YOLOv5s模型的效果好,模型的mAP從原來(lái)的87.3%分別增加到88.6%、90.5%、89.4%、92.1%,說(shuō)明從3個(gè)方面改進(jìn)可以使模型專(zhuān)注于感興趣的特征區(qū)域,并抑制不感興趣的區(qū)域,保留了更豐富的對(duì)象特征信息,并幫助損失函數(shù)更好地收斂。
改進(jìn)前后YOLOv5s算法可視化的對(duì)比圖如圖6所示。從圖6可以看出,改進(jìn)后的YOLOv5s無(wú)論從目標(biāo)對(duì)象識(shí)別程度還是回歸框的準(zhǔn)確度,都要優(yōu)于改進(jìn)之前的YOLOv5s,驗(yàn)證了本文改進(jìn)算法的有效性。
(a) 改進(jìn)前 (b) 改進(jìn)后
基于YOLOv5s提出了一種應(yīng)用于海下垃圾檢測(cè)任務(wù)的改進(jìn)算法,在主干網(wǎng)中添加ECA模塊使模型能夠關(guān)注感興趣的區(qū)域。為了使特征圖的信息更加豐富,在Neck部分新添加一層多尺度特征融合層,引用EIoU作為邊界框損失函數(shù),不僅可以解決目標(biāo)框與預(yù)測(cè)框的不相交、包含問(wèn)題,而且能反饋更加合適和真實(shí)的預(yù)測(cè)框位置。本算法在保持原有三層檢測(cè)層不變的基礎(chǔ)上,有效提高了YOLOv5s在TrashCan數(shù)據(jù)集檢測(cè)中的準(zhǔn)確率、召回率和平均精確度,滿(mǎn)足任務(wù)要求,解決了融合過(guò)程中的特征信息丟失造成的一些目標(biāo)類(lèi)別精度下降難題。