石露露,廖光忠
(1.武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065;2.武漢科技大學(xué) 智能信息處理與實(shí)時(shí)工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430065)
南水北調(diào)工程是目前解決國(guó)內(nèi)北方地區(qū)水資源嚴(yán)重短缺問(wèn)題的特大型基礎(chǔ)設(shè)施項(xiàng)目。確保調(diào)水水質(zhì)是其成敗的關(guān)鍵,但是這項(xiàng)工程的沿途都是明渠,水面難免會(huì)有漂浮的垃圾,傳統(tǒng)處理明渠漂浮垃圾的方法主要是依靠人力,這種方式不僅耗時(shí)耗力,而且無(wú)法做到實(shí)時(shí)監(jiān)測(cè)。隨著無(wú)人機(jī)航拍和無(wú)人船航拍技術(shù)的興起,人工巡檢逐漸被取代,如何檢測(cè)航拍圖像上明渠漂浮垃圾成為了亟待解決的問(wèn)題。
近年來(lái),隨著深度學(xué)習(xí)的快速發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法成為了檢測(cè)航拍圖像上明渠漂浮垃圾的主流方法?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為雙階段目標(biāo)檢測(cè)和單階段目標(biāo)檢測(cè)。雙階段目標(biāo)檢測(cè)算法雖然檢測(cè)的準(zhǔn)確率高,但是速度較慢,無(wú)法實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。單階段目標(biāo)檢測(cè)算法是直接對(duì)輸入的圖像進(jìn)行卷積特征提取,不需要使用候選框,可以極大地提高檢測(cè)速度。因此,越來(lái)越多的學(xué)者開(kāi)始將單階段目標(biāo)檢測(cè)算法應(yīng)用于河道漂浮物檢測(cè)領(lǐng)域。Li等[1]基于改進(jìn)的YOLOv3[2]算法實(shí)現(xiàn)水面漂浮垃圾檢測(cè),將三尺度檢測(cè)轉(zhuǎn)換成兩尺度檢測(cè)以提高檢測(cè)速度,并通過(guò)調(diào)整先前的錨框提高檢測(cè)精度。唐小敏等[3]基于ResNet-101特征提取網(wǎng)絡(luò)的SSD網(wǎng)絡(luò)模型對(duì)河道漂浮物進(jìn)行目標(biāo)檢測(cè),有效地提高了網(wǎng)絡(luò)對(duì)不同尺度漂浮物的識(shí)別精度。李德鑫等[4]對(duì)YOLOv5s算法進(jìn)行改進(jìn)實(shí)現(xiàn)河道漂浮垃圾分類(lèi)檢測(cè),降低各類(lèi)別目標(biāo)檢測(cè)精度之間的差異。以上單階段目標(biāo)檢測(cè)算法雖然在精度上有了一定的提升,但是小目標(biāo)檢測(cè)精度仍不高。針對(duì)小目標(biāo)檢測(cè)問(wèn)題,國(guó)內(nèi)外學(xué)者也提出了許多算法。Benjumea等[5]提出了YOLO-z,即通過(guò)BiFPN[6](Bidirectional Feature Pyramid Network,加權(quán)雙向特征融合網(wǎng)絡(luò))代替YOLOv5中的PANet[7](Path Aggregation Network,路徑聚合網(wǎng)絡(luò)),擴(kuò)大Neck層等一系列方法促進(jìn)中淺層的特征融合,從而提升小目標(biāo)的檢測(cè)性能。Zhu等[8]提出了TPH-YOLOv5,在YOLOv5的基礎(chǔ)上增加一個(gè)預(yù)測(cè)頭用于檢測(cè)不同尺度的目標(biāo),還通過(guò)集成CBAM[9](Convolutional Block Attention Module)注意力機(jī)制來(lái)尋找對(duì)象密集場(chǎng)景下的注意力區(qū)域,有效地提升了小目標(biāo)的檢測(cè)性能。目前現(xiàn)有的大部分小目標(biāo)檢測(cè)算法應(yīng)用領(lǐng)域比較局限,一般只在大型公共數(shù)據(jù)集上進(jìn)行驗(yàn)證,而現(xiàn)實(shí)場(chǎng)景錯(cuò)綜復(fù)雜,現(xiàn)有算法仍然存在檢測(cè)精度低、難以準(zhǔn)確檢測(cè)到小目標(biāo)、速度不滿足日常需要、漏檢和誤檢等問(wèn)題。
在明渠漂浮垃圾檢測(cè)的場(chǎng)景中,航拍圖像中的漂浮垃圾大部分尺寸都很小,占用的圖像區(qū)域都比較小,導(dǎo)致這些漂浮垃圾缺乏外觀信息,很難與背景區(qū)分開(kāi)來(lái),從而增加了準(zhǔn)確檢測(cè)明渠漂浮垃圾的難度。而且水面的強(qiáng)光反射可能會(huì)導(dǎo)致圖像過(guò)度曝光,使水面漂浮垃圾不可見(jiàn),增加了明渠漂浮垃圾檢測(cè)的漏檢率。此外,水面的倒影會(huì)對(duì)漂浮垃圾檢測(cè)造成干擾,容易產(chǎn)生誤檢。
為了解決以上問(wèn)題,該文采用的方法如下:
(1)通過(guò)隨機(jī)剪裁、水平翻轉(zhuǎn)、加入高斯噪聲、改變對(duì)比度等圖像處理操作進(jìn)行數(shù)據(jù)增強(qiáng)來(lái)擴(kuò)充數(shù)據(jù)集;
(2)借鑒BiFPN的結(jié)構(gòu)對(duì)YOLOv5s原有的Neck 部分進(jìn)行改進(jìn),修改特征融合的過(guò)程,提高小目標(biāo)檢測(cè)檢測(cè)精度和檢測(cè)速度;
(3)進(jìn)行模型優(yōu)化,在Neck和Head部分之間添加3個(gè)改進(jìn)的CBAM注意力機(jī)制,增強(qiáng)信息的特征提取和定位;同時(shí)增大網(wǎng)絡(luò)的輸入分辨率,使圖像信息更加豐富和精確。
2020年6月,Ultralytics團(tuán)隊(duì)Glenn等人提出了YOLOv5模型,雖然在性能方面與YOLOv4[10]不分伯仲,但是推理速度有非常大的提升,可以滿足實(shí)時(shí)檢測(cè)的要求。YOLOv5包括YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四種網(wǎng)絡(luò)結(jié)構(gòu)[11]。該文主要是基于YOLOv5s進(jìn)行改進(jìn)的。為了可以在提高檢測(cè)精度的同時(shí),也能保證檢測(cè)速率,以實(shí)現(xiàn)實(shí)時(shí)檢測(cè),YOLOv5s模型主要由Input、Backbone、Neck、Head四部分組成。
Input部分主要包括自適應(yīng)計(jì)算錨框、Mosaic數(shù)據(jù)增強(qiáng)和自適應(yīng)縮放圖片三個(gè)部分。Backbone部分包括CSPNet[12](Cross Stage Partial Network,跨階段局部網(wǎng)絡(luò))模塊和SPPF模塊,這部分的作用是為了處理輸入圖像,將圖像轉(zhuǎn)換成特征。YOLOv5s 6.0為了避免Focus切片下采樣會(huì)丟失部分圖片原始信息,將Focus換成了普通的卷積塊。此外,YOLOv5s 6.0還用SPPF替代了原先的SPP(Spatial Pyramid Pooling,空間金字塔池化),SPP的3個(gè)多尺度最大池化層是并聯(lián)連接的,而SPPF在此基礎(chǔ)上將3個(gè)多尺度最大池化層串聯(lián)起來(lái),保留SPP優(yōu)勢(shì)的同時(shí),也可以減少圖片信息的丟失。CSPNet可以緩解梯度消失的問(wèn)題,避免梯度的重復(fù)計(jì)算,從而減少計(jì)算量,提升網(wǎng)絡(luò)的計(jì)算能力以及減少內(nèi)存的損耗。Neck部分包括FPN[13](Feature Pyramid Networks,特征金字塔)和PANet,這部分主要是為了充分地提取特征。Head部分主要是對(duì)圖像的特征進(jìn)行預(yù)測(cè),然后生成邊界框、預(yù)測(cè)目標(biāo)的種類(lèi)。同時(shí)采用了三種損失函數(shù)分別計(jì)算分類(lèi)損失、定位損失和置信度損失,并通過(guò)NMS(Non-Maximum Suppression,非極大值抑制)提高網(wǎng)絡(luò)預(yù)測(cè)的準(zhǔn)確度。
針對(duì)航拍明渠漂浮垃圾圖像存在的問(wèn)題,主要從數(shù)據(jù)增強(qiáng)、多尺度特征融合、引入注意力機(jī)制、增加網(wǎng)絡(luò)的輸入尺度這四個(gè)方面對(duì)YOLOv5s模型進(jìn)行改進(jìn)和優(yōu)化,改進(jìn)的YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)的YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)
由于目前沒(méi)有用于河道漂浮檢測(cè)的大型公共數(shù)據(jù)集,該文使用了來(lái)自FloW[14]的圖像子數(shù)據(jù)集FloW-Img子集和在線收集的2 000張數(shù)據(jù)。FloW數(shù)據(jù)集是全球第一個(gè)無(wú)人船視角的水面漂浮垃圾檢測(cè)數(shù)據(jù)集。該數(shù)據(jù)集是使用無(wú)人船在真實(shí)場(chǎng)景下進(jìn)行拍攝收集的,但是FloW-Img數(shù)據(jù)集中的漂浮垃圾主要包括不同外觀的塑料瓶、飲料瓶、草和落葉,數(shù)據(jù)種類(lèi)較少。于是在FloW-Img數(shù)據(jù)集中選取1 000張優(yōu)質(zhì)圖片,剩余1 000張則是在線收集合適的水面漂浮垃圾圖像,確保數(shù)據(jù)集具有多樣性。最后數(shù)據(jù)集包括落葉、塑料袋、瓶子、牛奶盒、塑料垃圾、草、樹(shù)枝、球8個(gè)類(lèi)別,如圖2所示。
圖2 水面漂浮垃圾類(lèi)別
為了避免數(shù)據(jù)集太小而出現(xiàn)過(guò)擬合問(wèn)題,將通過(guò)局部剪裁、隨機(jī)翻轉(zhuǎn)、加入高斯噪聲、改變對(duì)比度等方式進(jìn)行圖像處理操作,讓每張?jiān)紙D像生成5張新圖像,總共得到10 000張,但是經(jīng)過(guò)數(shù)據(jù)增強(qiáng)之后,有的圖片質(zhì)量變化較為嚴(yán)重,需要將質(zhì)量較差的圖像進(jìn)行人工篩選和剔除,最終數(shù)據(jù)集為8 400張。在圖像處理時(shí)隨機(jī)使用1到3種方式進(jìn)行變換,可以增加數(shù)據(jù)集中圖片的數(shù)量,提高圖片信息的多樣性,使模型在訓(xùn)練時(shí)可以學(xué)習(xí)到更加全面的水面漂浮垃圾特征。之后,通過(guò)數(shù)據(jù)標(biāo)注工具Labelimg對(duì)所有圖片進(jìn)行標(biāo)注,并將數(shù)據(jù)集所有圖像按照7∶2∶1的比例劃分成三個(gè)數(shù)據(jù)集,即訓(xùn)練數(shù)據(jù)集、驗(yàn)證數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,圖片數(shù)量分別為5 880張、1 680張、840張。最后,將VOC格式的數(shù)據(jù)標(biāo)注文件轉(zhuǎn)換為YOLO格式。
在卷積神經(jīng)網(wǎng)絡(luò)的多層結(jié)構(gòu)中,淺層網(wǎng)絡(luò)更關(guān)注局部細(xì)節(jié)信息,如圖像邊緣、輪廓、紋理等,有利于對(duì)目標(biāo)進(jìn)行定位;深層網(wǎng)絡(luò)則側(cè)重于提取抽象信息,有利于對(duì)目標(biāo)進(jìn)行分類(lèi),但是細(xì)節(jié)信息比較缺乏。因此,將淺層網(wǎng)絡(luò)特征與深層網(wǎng)絡(luò)特征進(jìn)行融合可以提高目標(biāo)檢測(cè)的性能。通常,構(gòu)造特征金字塔FPN是一種直接有效的融合方式,即建立一條自頂向下的通路進(jìn)行特征融合,然后用融合后具有高語(yǔ)義信息的特征層進(jìn)行預(yù)測(cè),但是這種結(jié)構(gòu)受單向信息流的限制。為了解決這個(gè)問(wèn)題,PANet結(jié)構(gòu)應(yīng)運(yùn)而生,PANet結(jié)構(gòu)是在FPN結(jié)構(gòu)的基礎(chǔ)上再添加一條自底向上的通路,這條通路主要用于將底層的位置信息也傳到預(yù)測(cè)特征層中,使預(yù)測(cè)特征層既有豐富的語(yǔ)義信息也有精確的位置信息,不僅可以提高目標(biāo)檢測(cè)的精度,而且有利于小目標(biāo)檢測(cè),如圖3(a)所示。
(a)PANet結(jié)構(gòu) (b)Bi-PANet結(jié)構(gòu)
雖然PANet可以提高目標(biāo)檢測(cè)的精度,但是需要更多的參數(shù)和更大的計(jì)算量。于是,借鑒BiFPN加權(quán)雙向特征融合的思想將原先PANet的特征融合過(guò)程進(jìn)行修改,如圖3(b)所示,稱(chēng)為Bi-PANet。首先在PANet的基礎(chǔ)上去掉P5、P3中沒(méi)有進(jìn)行特征融合的不必要連接,使融合更多特征的同時(shí)消耗較少的成本,減少計(jì)算量;然后將圖3(b)虛線方框里的雙向路徑作為一個(gè)特征網(wǎng)絡(luò)層,重復(fù)疊加相同的特征網(wǎng)絡(luò)層, 以實(shí)現(xiàn)更高層次的特征融合;最后,給每個(gè)輸入特征增加一個(gè)額外的權(quán)重,讓網(wǎng)絡(luò)了解它們的重要性。其中,采用的加權(quán)特征融合方法是快速歸一化融合,每個(gè)歸一化權(quán)重的值都是在0到1之間,可以提高計(jì)算速度??焖贇w一化融合的公式如下所示:
(1)
其中,ωi是可學(xué)習(xí)的權(quán)重,用激活函數(shù)ReLu來(lái)確保每個(gè)ωi≥0,該權(quán)重的值可由網(wǎng)絡(luò)訓(xùn)練得到,Ii是指輸入的特征,O是指輸出特征,ε=0.000 1是避免數(shù)值不穩(wěn)定的一個(gè)小值。
Bi-PANet將主干網(wǎng)絡(luò)的P3、P4、P5作為特征的輸入。以節(jié)點(diǎn)P4為例,其形成2個(gè)融合特征的過(guò)程如下所示:
(2)
(3)
將YOLOv5s結(jié)構(gòu)上的特征融合方式結(jié)合BiFPN進(jìn)行修改不僅可以加強(qiáng)特征融合,提高小目標(biāo)檢測(cè)的精度,解決航拍圖像中的明渠漂浮垃圾大部分尺寸都很小的問(wèn)題,還可以提高檢測(cè)速度,確保明渠漂浮垃圾檢測(cè)的實(shí)時(shí)性。
為了關(guān)注圖像中待檢測(cè)的漂浮垃圾,減少潛在信息的丟失,避免水面倒影、強(qiáng)光反射等對(duì)漂浮垃圾檢測(cè)的干擾,加強(qiáng)漂浮垃圾特征的提取,該文借鑒CBAM的通道注意力機(jī)制和空間注意力機(jī)制的結(jié)構(gòu),通過(guò)保留跨三維的信息減少信息的丟失,同時(shí)使用兩個(gè)卷積層促進(jìn)空間信息融合從而使網(wǎng)絡(luò)可以獲得更多信息。CBAM是一個(gè)輕量級(jí)的通用注意力機(jī)制模塊,可以直接添加到目標(biāo)檢測(cè)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,而且?guī)?lái)的計(jì)算開(kāi)銷(xiāo)也極小,不會(huì)影響實(shí)時(shí)目標(biāo)檢測(cè)。CBAM注意力機(jī)制模塊包含兩個(gè)子模塊,一個(gè)是通道注意力機(jī)制模塊,另一個(gè)是空間注意力機(jī)制模塊,其結(jié)構(gòu)如圖4所示,圖中?表示元素級(jí)乘法。
圖4 CBAM注意力機(jī)制結(jié)構(gòu)
雖然CBAM可以使特征圖能夠更多地包含和表現(xiàn)有效信息,但是它忽略了空間和通道之間的相互作用,會(huì)造成跨維信息的丟失。于是,對(duì)CBAM的通道注意力機(jī)制和空間注意力機(jī)制進(jìn)行修改,稱(chēng)為T(mén)-CBAM。首先在通道注意力機(jī)制模塊中使用3D排列[15]來(lái)保留跨三維的信息,從而利用每一對(duì)三維通道、空間寬度和空間高度之間的注意力權(quán)重來(lái)減少信息的丟失,提高檢測(cè)精度;然后在空間注意力機(jī)制模塊中使用兩個(gè)卷積層實(shí)現(xiàn)空間信息融合,從而可以關(guān)注到更多的空間信息。其具體實(shí)現(xiàn)過(guò)程如下:
主干網(wǎng)絡(luò)的特征進(jìn)行特征融合之后,進(jìn)入通道注意力機(jī)制,先將輸入的特征圖在通道、空間寬度和空間高度的3個(gè)維度上實(shí)現(xiàn)全局平均池化和最大池化,并將池化得到的權(quán)重矩陣傳入權(quán)重共享的多層感知器MLP(Multi-Layer Perception)中進(jìn)行特征相加,最后通過(guò)Sigmoid激活函數(shù)得到通道注意力特征圖Mc(F)。T-CBAM的通道注意力機(jī)制如圖5所示。
圖5 T-CBAM的通道注意力機(jī)制
之后,通道注意力機(jī)制輸出的特征圖將作為輸入的特征圖進(jìn)入空間注意力機(jī)制,同樣在通道、空間寬度和空間高度的3個(gè)維度上實(shí)現(xiàn)全局平均池化和最大池化,并將結(jié)果串聯(lián)連接起來(lái),然后采用兩個(gè)7×7的卷積核進(jìn)行卷積操作,保留更多空間信息,最后通過(guò)Sigmoid激活函數(shù)得到空間注意力特征圖Ms(F),實(shí)現(xiàn)特征細(xì)化。T-CBAM的空間注意力機(jī)制如圖6所示,其中r是通道注意力機(jī)制中MLP使用的壓縮比。
圖6 T-CBAM的空間注意力機(jī)制
特征融合之后引入T-CBAM注意力機(jī)制的總體過(guò)程可以概括為:
(4)
其中,?表示元素級(jí)乘法,F'表示經(jīng)過(guò)通道注意力機(jī)制輸出的特征圖,F''表示經(jīng)過(guò)通道注意力機(jī)制和空間注意力機(jī)制最終輸出的精化特征圖。
該文經(jīng)過(guò)Neck部分的特征融合之后引入3個(gè)T-CBAM,這樣會(huì)減少潛在信息的丟失,使特征表現(xiàn)更加充分,加強(qiáng)特征提取,抑制無(wú)用信息,從而更好地提高檢測(cè)性能。引入T-CBAM注意力機(jī)制可以實(shí)現(xiàn)集中對(duì)水面漂浮垃圾特征的提取,避免水面倒影及無(wú)害漂浮物干擾水面漂浮垃圾檢測(cè),而且加強(qiáng)特征提取也會(huì)減少水面強(qiáng)光反射對(duì)明渠漂浮垃圾檢測(cè)的影響。
小目標(biāo)本身像素點(diǎn)少,自身攜帶的特征信息少,有時(shí)很難被發(fā)現(xiàn),導(dǎo)致位置信息獲取困難,最直接的解決辦法就是增大網(wǎng)絡(luò)輸入分辨率,這樣可以使圖像具有更加豐富的細(xì)節(jié)信息和更加精確的位置信息,有利于小目標(biāo)特征信息的提取。于是,該文將輸入尺度從640×640增大到1 280×1 280,增大后的預(yù)測(cè)分支分辨率則變?yōu)?2×32,64×64,128×128。這樣不僅可以提高目標(biāo)檢測(cè)的檢測(cè)精度,還可以提高小目標(biāo)的檢測(cè)精度,也有利于解決航拍圖像中的明渠漂浮垃圾大部分尺寸都很小的問(wèn)題。
為了訓(xùn)練和評(píng)估所提出的模型,實(shí)驗(yàn)使用的是CentOS Linux 7.9系統(tǒng),并采用深度學(xué)習(xí)框架Pytorch。所有模型都是在GPU上進(jìn)行訓(xùn)練的,其中GPU型號(hào)為T(mén)esla V100-SXM2-16GB。實(shí)驗(yàn)環(huán)境為Python3.8,Pytorch 1.8.1,CUDA10.1,Cudnn7.6.5。實(shí)驗(yàn)使用的數(shù)據(jù)集是FloW-Img數(shù)據(jù)集的擴(kuò)充數(shù)據(jù)集,即通過(guò)剪裁、翻轉(zhuǎn)、加入高斯噪聲、改變對(duì)比度等方式進(jìn)行圖像處理從而增加數(shù)據(jù)集的數(shù)量。實(shí)驗(yàn)采用的是Adam(Adaptive moment estimation)優(yōu)化器,總共迭代300次,其中批量大小設(shè)置為16,初始學(xué)習(xí)率設(shè)為0.01,動(dòng)量為0.937,權(quán)重衰減系數(shù)為0.000 5。
為了評(píng)價(jià)模型的性能,主要采用精確度P(Precision)、召回率R(Recall)、平均精度均值mAP(mean Average Precision)、運(yùn)行時(shí)間(Times)、檢測(cè)速度FPS(Frames Per Second)、浮點(diǎn)運(yùn)算量GFLOPs(Giga Floating-point Operations Per Second)和參數(shù)量Params(Parameters)作為模型性能的評(píng)價(jià)指標(biāo)。
精確度表示正確分類(lèi)的樣本占總樣本的比例,如式(5),精確度越大表示檢測(cè)越精確,在一定程度上也可以反映誤檢越少。召回率表示正確的正樣本占總正樣本的比例,如式(6),召回率越大表示檢測(cè)越全面,反之,說(shuō)明了漏檢越少。mAP表示所有類(lèi)別的平均精度AP(Average Precision),如式(7),mAP越大表示模型檢測(cè)精度越大。其中AP是指在不同召回率下精確度的均值,也就是以召回率為橫坐標(biāo)、精確度為縱坐標(biāo)的P-R曲線與坐標(biāo)軸圍成的面積,如式(8)。mAP_0.5表示IoU閾值為0.5時(shí)所有目標(biāo)類(lèi)別的平均檢測(cè)精度。IoU(Intersection over Union,交并比)計(jì)算的是預(yù)測(cè)邊框與真實(shí)邊框的重疊率。運(yùn)行時(shí)間表示模型進(jìn)行檢測(cè)消耗的時(shí)間,單位為毫秒(ms)。FPS表示模型每秒能檢測(cè)多少?gòu)垐D像,單位為f·s-1,用于衡量模型的實(shí)時(shí)性,FPS越大表示檢測(cè)速度越快,即模型越具有實(shí)時(shí)性。GFLOPs表示每秒10億次的浮點(diǎn)運(yùn)算,用于衡量訓(xùn)練模型時(shí)的計(jì)算復(fù)雜度,GFLOPs越大表示模型越復(fù)雜。參數(shù)量表示模型訓(xùn)練需要的參數(shù)總數(shù),參數(shù)量越大所需的內(nèi)存越大。
(5)
(6)
(7)
(8)
式(5)和式(6)中,TP(True Positives)表示明渠漂浮垃圾被正確檢測(cè)為漂浮垃圾的個(gè)數(shù);FN(False Negatives)表示明渠漂浮垃圾沒(méi)有被檢測(cè)出來(lái)的個(gè)數(shù),即漏檢的個(gè)數(shù);FP(False Positives)表示將其他的物體檢測(cè)成漂浮垃圾的個(gè)數(shù),即誤檢的個(gè)數(shù)。公式(7)中,n表示類(lèi)別,N表示總類(lèi)別。公式(8)中,p(r)表示以召回率為橫坐標(biāo)、精確度為縱坐標(biāo)的P-R曲線。
3.3.1 添加CBAM模塊與T-CBAM模塊對(duì)比
將直接添加CBAM模塊與添加T-CBAM模塊的檢測(cè)結(jié)果進(jìn)行對(duì)比。它們的檢測(cè)效果如表1所示,其中YOLOv5s-CBAM表示添加CBAM模塊,YOLOv5s-T-CBAM表示添加T-CBAM模塊。在復(fù)雜度和參數(shù)方面雖然不是最佳,但是相差不大,而且從模型的檢測(cè)精度和檢測(cè)速度兩個(gè)方面分析可知,YOLOv5s-T-CBAM的檢測(cè)效果更好,精確度、召回率和平均精度均值都是最高的,且檢測(cè)速度仍可以達(dá)到89 f·s-1,可以保持較好的實(shí)時(shí)性。
表1 添加CBAM模塊與T-CBAM模塊結(jié)果對(duì)比
3.3.2 與其他目標(biāo)檢測(cè)算法的對(duì)比
為了驗(yàn)證改進(jìn)后算法的優(yōu)越性,還將改進(jìn)的YOLOv5s算法與YOLOv3、YOLOv4、SSD、YOLOX、DETR、YOLOv7等目標(biāo)檢測(cè)算法進(jìn)行對(duì)比。由表2分析可知,在檢測(cè)精度方面,改進(jìn)的YOLOv5s算法明顯優(yōu)于其他算法,mAP_0.5可以達(dá)到0.899,而且還兼顧高精確度和高召回率,既保證了檢測(cè)的準(zhǔn)確性,還減少了檢測(cè)的誤檢和漏檢;在運(yùn)行時(shí)間和檢測(cè)速度方面,改進(jìn)的YOLOv5s算法的檢測(cè)速度達(dá)到了96 f·s-1,且運(yùn)行時(shí)間最短,滿足實(shí)時(shí)性的要求;在復(fù)雜度和參數(shù)方面,改進(jìn)的YOLOv5s算法僅次于YOLOv5s,且相差不大,以最小的犧牲提高了目標(biāo)檢測(cè)的精度和速度。因此,改進(jìn)的YOLOv5s算法優(yōu)于其他目標(biāo)檢測(cè)算法。
表2 改進(jìn)后算法與其他目標(biāo)檢測(cè)算法的對(duì)比
為了驗(yàn)證各個(gè)改進(jìn)模塊優(yōu)化的作用,該文進(jìn)行了消融實(shí)驗(yàn),一共設(shè)計(jì)了5組實(shí)驗(yàn),其實(shí)驗(yàn)結(jié)果如表3所示。其中原YOLOv5s表示輸入圖像的尺寸為640×640,YOLOv5s表示輸入圖像的尺寸為1 280×1 280。由表3分析可知,在檢測(cè)精度和速度方面,增加網(wǎng)絡(luò)的輸入尺度提升了檢測(cè)精度,但是檢測(cè)速度會(huì)有所下降;修改特征融合過(guò)程不僅可以大大提升檢測(cè)精度、精確度和召回率,還可以提高檢測(cè)速度,彌補(bǔ)增加網(wǎng)絡(luò)輸入尺度時(shí)造成的速度損失;引入T-CBAM提升了檢測(cè)精度和精確度,但是檢測(cè)速度會(huì)降低;在增加網(wǎng)絡(luò)的輸入尺度的同時(shí),既修改網(wǎng)絡(luò)融合過(guò)程,又增加T-CBAM模塊,即提出的改進(jìn)算法,它不僅最大程度地提升了檢測(cè)精度,使精確度和召回率到達(dá)最高,而且檢測(cè)速度也有了一定提升。在復(fù)雜度和參數(shù)方面,增加網(wǎng)絡(luò)的輸入尺度不會(huì)改變模型的復(fù)雜度,參數(shù)量也不會(huì)增加,但是修改特征融合過(guò)程和引入T-CBAM都會(huì)影響模型復(fù)雜度,增加參數(shù)量,通過(guò)具體數(shù)據(jù)對(duì)比分析可知,改進(jìn)YOLOv5s算法的GFLOPs僅比原YOLOv5s算法增加了0.3,且參數(shù)量變化不大,以最小的犧牲提升了模型的檢測(cè)性能。由圖7分析可知,改進(jìn)YOLOv5s的平均精度每次都比原YOLOv5s高,保持實(shí)時(shí)性的同時(shí)在精度方面有很大的提升。
表3 消融實(shí)驗(yàn)
圖7 原YOLOv5s與改進(jìn)YOLOv5s的mAP_0.5對(duì)比
為了驗(yàn)證改進(jìn)的YOLOv5s算法的可行性,分別使用原YOLOv5s算法和改進(jìn)的算法對(duì)測(cè)試集上航拍圖像的漂浮垃圾進(jìn)行檢測(cè),以檢測(cè)瓶子為例,如圖8為原YOLOv5s算法和改進(jìn)的YOLOv5s算法在不同干擾場(chǎng)景下的檢測(cè)結(jié)果對(duì)比圖,其中,左圖為原YOLOv5s算法的檢測(cè)結(jié)果,右圖為改進(jìn)YOLOv5s算法的檢測(cè)結(jié)果。圖8(a)表示水面漂浮垃圾較小的檢測(cè),可以看到左圖會(huì)漏檢掉遠(yuǎn)處較小的漂浮垃圾,而右圖可以檢測(cè)到遠(yuǎn)處的小漂浮垃圾;(b)表示水面倒影干擾的檢測(cè),左圖將岸邊物體在水面的倒影誤檢成漂浮垃圾,右圖則檢測(cè)正常;(c)表示水面強(qiáng)光干擾的檢測(cè),左圖受強(qiáng)光干擾,存在漏檢,右圖不僅將每個(gè)漂浮垃圾檢測(cè)都出來(lái)了,而且檢測(cè)的精度比左圖高。綜上,改進(jìn)的YOLOv5s算法更優(yōu)于原YOLOv5s算法,原YOLOv5s算法在復(fù)雜檢測(cè)場(chǎng)景的干擾下檢測(cè)性能較差,容易出現(xiàn)漏檢和誤檢的情況,并且相較于改進(jìn)的YOLOv5s算法,其目標(biāo)定位精度偏低。因此,改進(jìn)的YOLOv5s性能更優(yōu)越,定位精度更準(zhǔn)確。
圖8 不同干擾場(chǎng)景下算法檢測(cè)結(jié)果對(duì)比
針對(duì)明渠漂浮垃圾檢測(cè)存在的一系列問(wèn)題,如:相關(guān)數(shù)據(jù)集較少,航拍圖像中的明渠漂浮垃圾尺寸較小,明渠漂浮垃圾檢測(cè)易受水面倒影和強(qiáng)光反射影響,基于原始的YOLOv5s進(jìn)行改進(jìn)優(yōu)化。首先,通過(guò)數(shù)據(jù)增強(qiáng)進(jìn)行數(shù)據(jù)集擴(kuò)充,避免數(shù)據(jù)集太小出現(xiàn)過(guò)擬合的問(wèn)題;然后,在借鑒BiFPN加權(quán)雙向特征融合的思想修改特征融合過(guò)程,提高小目標(biāo)的檢測(cè)精度和速度;并且在Neck和Head部分之間添加3個(gè)改進(jìn)的CBAM注意力機(jī)制,能夠有效降低檢測(cè)的漏檢率和誤檢率,提高檢測(cè)精度;最后,增大網(wǎng)絡(luò)輸入的分辨率,使圖像具有更加精確的位置信息和更加豐富的細(xì)節(jié),有利于小目標(biāo)特征信息的提取。由實(shí)驗(yàn)結(jié)果可知,所提方法在保持實(shí)時(shí)性的同時(shí),檢測(cè)的平均精度達(dá)到了89.9%,具有較好的應(yīng)用價(jià)值。但是,如何將算法部署到嵌入式平臺(tái)使無(wú)人機(jī)和無(wú)人船能夠?qū)σ曇爸械哪繕?biāo)進(jìn)行實(shí)時(shí)識(shí)別是未來(lái)亟待解決的問(wèn)題。
計(jì)算機(jī)技術(shù)與發(fā)展2023年9期