鄒 敏
(福州大學 先進制造學院,福建 泉州 362200)
隨著計算機視覺的蓬勃發(fā)展,基于光學圖像的水下目標探測技術(shù)得到了廣泛的應(yīng)用,在海洋漁業(yè)、水產(chǎn)養(yǎng)殖及海洋污染保護等領(lǐng)域發(fā)揮著重要作用[1]。在海洋漁業(yè)領(lǐng)域,大多數(shù)傳統(tǒng)的海產(chǎn)品收集方法都以人工潛水捕魚為基礎(chǔ),不僅效率低,而且需要工人有足夠的潛水和捕魚經(jīng)驗。由于長期水下作業(yè)的危害,勞動力減少,導致人工捕魚作業(yè)的成本持續(xù)增加。另外,水下場景本質(zhì)上比陸地場景更復雜,水下照相機獲得的圖像質(zhì)量往往較低。因此,增強水下圖像表達目標特征的能力,提高水下目標檢測的精度,已成為迫切需要解決的問題。傳統(tǒng)的目標檢測方法依靠手動設(shè)計的濾波器來提取特征,往往導致特征表示不足且檢測精度較低。深度學習網(wǎng)絡(luò)的發(fā)展徹底改變了目標檢測,通過多層神經(jīng)網(wǎng)絡(luò)提取目標圖像特征,從而學習更抽象、更全面的表示信息。其中,兩階段目標檢測具有代表性的算法為Faster RCNN[2]、級聯(lián)R-CNN[3]以及Mask R-CNN[4]。另一種類型是基于回歸的單級檢測器,常見的單階段目標檢測有SSD[5]、YOLO(You Only Look Once)系列[6-9]等。它們都可以在合適的場景中顯示出其優(yōu)勢。由于水下物體檢測的實時性要求較高,一級探測器能夠快速響應(yīng)水下場景的需求。因此,水下目標檢測研究大多基于一級探測器進行。ZHANG M H[10]使用YOLOv4,提出了一種結(jié)合注意力機制的輕量級方法,以實現(xiàn)準確性和檢測速度的平衡。ZHANG J[11]在YOLOv5 的基礎(chǔ)上加入全局注意力機制和頸部特征融合,取得了更好的檢測精度。LIU K H[12]使用ACmix 替代YOLOv7 中的E-ELAN 結(jié)構(gòu),并引入全局注意力機制來提高特征提取的效率。
盡管一級探測器可以更好地滿足水下目標檢測的實時要求,但它們在檢測精度方面仍然存在缺陷。本文在卷積塊注意力模塊(Convolutional Block Attention Module,CBAM)注意力基礎(chǔ)上,提出一個通道殘差拼接模塊CBAM-CRMS,基于YOLOv7 的模型架構(gòu),將CBAM-CRMS 模塊集成到Y(jié)OLOv7 的Head 中的ELAN-H 之后,進一步增強水下圖像表達目標特征的能力。
YOLOv7 是一種基于深度學習的實時目標檢測算法,網(wǎng)絡(luò)架構(gòu)如圖1 所示。YOLOv7 是目前目標檢測領(lǐng)域應(yīng)用效果最好的算法之一。它使用了ELAN 和ELAN-H 模塊,可以有效地增強網(wǎng)絡(luò)的學習能力和收斂速度,同時減少參數(shù)量和計算量;SPPCSPC 結(jié)構(gòu)可以提取多尺度的特征,并利用跨級連接和通道分離技術(shù)提高特征的表達能力和計算效率;Rep 結(jié)構(gòu)可以實現(xiàn)模塊的重參數(shù)化,將多個分支模塊集成到一個等價的模塊中,從而提高模型的泛化能力和推理速度;還使用了SimOTA 的標簽分配策略,可以動態(tài)地根據(jù)損失函數(shù)和交并比(Intersection over Union,IoU)選擇最優(yōu)的正樣本,避免了固定閾值和錨框的限制,提高了檢測的準確性;使用了輔助訓練頭,可以在訓練過程中增加正樣本的數(shù)量和多樣性,提高模型的健壯性和穩(wěn)定性。
圖1 YOLOv7 網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLOv7 的網(wǎng)絡(luò)結(jié)構(gòu)可以分為Input、Backbone及Head 共3 個部分。Input 是對原始圖片進行預處理的部分,包括縮放、裁剪、翻轉(zhuǎn)、旋轉(zhuǎn)及顏色變換等數(shù)據(jù)增強操作,以提高模型的泛化能力和健壯性。輸入的圖片大小為640×640,通道數(shù)為3。Backbone 是對輸入圖片進行特征提取的部分,由50 層卷積層和池化層組成,使用ELAN 模塊和MP 層作為基本組件。Backbone 的輸出為3 個不同尺寸的特征圖,分別為C3、C4 和C5,大小為80×80×512,40×40×1 024 和20×20×1 024。Head 是對主干網(wǎng)輸出的特征圖進行特征融合的部分,使用了PAFPN 的結(jié)構(gòu),即自頂向下和自底向上的特征金字塔網(wǎng)絡(luò)。首先對C5 進行SPPCSP 操作,即空間金字塔池化和卷積層的組合,可以增加特征的感受野和多尺度信息,同時降低通道數(shù)為512。其次,自頂向下地將C5 和C4、C3 進行融合,得到P5、P4 和P3,大小為20×20×512,40×40×512和80×80×512。再次,自底向上地將P3 和P4、P5 進行融合,得到P3、P4 和P5,大小不變。最后,使用RepConv 操作,即可重參數(shù)化的卷積層,可以在訓練和推理時有不同的表現(xiàn),提高模型的效率和性能。
CBMS-YOLOv7 算法由YOLOv7算法改進而來,在Head 中的ELAN-H 后面融合了CBAM-CRMS模塊,進一步增強網(wǎng)絡(luò)的特征提取能力。
CBAM 是一種用于深度神經(jīng)網(wǎng)絡(luò)的注意力機制,旨在增強模型對重要特征的關(guān)注,從而提高網(wǎng)絡(luò)的性能,總體流程如圖2 所示。CBAM 由通道注意力模塊(Channel Attention Module,CAM)和空間注意力模塊(Spatial Attention Module,SAM)兩個關(guān)鍵組件組成。
圖2 CBAM 總體流程圖
CAM 的目標是對輸入特征圖的每個通道進行加權(quán),通過執(zhí)行全局平均池化(Global Average Pooling,GAP)來獲得每個通道的全局描述,經(jīng)過全連接層和激活函數(shù),生成一個權(quán)重向量,用于加權(quán)每個通道的特征圖。SAM 旨在捕捉特征圖中不同位置的相關(guān)性,通過對每個通道執(zhí)行最大值池化和平均值池化操作,連接這兩個操作的結(jié)果,通過卷積操作生成一個權(quán)重矩陣,用于加權(quán)每個位置的特征圖。相關(guān)計算公式如式(1)~式(4)所示。
式中:MLP 為多層感知機,權(quán)重為W1和W2,該感知機是最大池化和平均池化共享的;f7×7表示一個卷積核大小為7×7 的卷積操作,σ為sigmoid 函數(shù);?表示進行元素級的相乘,F(xiàn)'表示對特征圖在通道維度上使用平均池化和最大池化的輸出;F"表示對特征圖空間維度上使用平均池化和最大池化的輸出。
綜合來看,CBAM 綜合了通道級別和空間級別的注意力機制,使得網(wǎng)絡(luò)在處理圖像時能夠更有效地關(guān)注重要的通道和位置,有助于提高網(wǎng)絡(luò)的泛化能力和性能,尤其在處理具有復雜結(jié)構(gòu)和變化的圖像時,如水下圖像目標檢測中所描述的情景。
CBAM-CRMS 注意力是一種基于CBAM 的注意力機制,在通道注意力模塊中增加了一個通道殘差模塊CRMS。該模塊通過殘差的方式設(shè)計,輸入的特征圖分別經(jīng)過兩層卷積層,上條支路的卷積層在保留原始輸入特征的位置信息的同時,下條支路進一步提升特征圖的語義信息。通過通道殘差模塊的設(shè)計,可以將特征原始的位置信息和更豐富的語義信息和經(jīng)過通道注意力權(quán)重元素級相乘的特征圖進行通道拼接,并將拼接后的特征圖作為空間注意力機制的輸入,保留了有利于產(chǎn)生空間注意力權(quán)重的信息。
CBAM-CRMS 總體流程如圖3 所示。在CBAM注意力機制中,特征圖通過通道注意力生成通道注意力權(quán)重。通道注意力權(quán)重再與輸入的特征圖進行元素級相乘,將相乘的結(jié)果作為空間注意力機制的輸入。由于空間注意力機制是進行通道級別的池化,特征圖在經(jīng)過通道注意力權(quán)重時,將會改變通道的權(quán)重,這將會對后期生成空間注意力權(quán)重產(chǎn)生影響,丟失有利于產(chǎn)生空間注意力權(quán)重的信息。
圖3 CBAM-CRMS 總體流程圖
URPC2020 水下光學數(shù)據(jù)集是2020 年全國水下機器人大賽使用的數(shù)據(jù)集,包含5 543 張分辨率為1 920×1 080 像素的水下圖像及其VOC 格式xml文件。測試集A 榜包含800 張圖像及其VOC 格式xml 文件,測試集B 榜包含1 200 張圖像及其VOC格式xml 文件。測試集在賽后公布了圖片和對應(yīng)的標簽,可以自行測試。其檢測的目標類別包括海參(Holothurian)、海膽(Echinus)、扇貝(Scallop)和海星(Starfish)4 類。將所有圖片按照6 ∶2 ∶2的比例隨機劃分為訓練集、驗證集、測試集。
本文使用Pytorch 作為模型的訓練框架,學習率設(shè)置為0.01,epoch 設(shè)為150,batch_size 設(shè)為8。采用Linux 操作系統(tǒng)作為實驗平臺,采用Intel Xeon(R) CPU E5-2678 v3 @ 2.50 GHz 的CPU 處理器,2 個Nvidia GeForce GTX 2080Ti 的圖形處理器(Graphics Processing Unit,GPU),具有64 GB 內(nèi)存以及24 GB 顯存。
檢測一般用精確率(Precision,P)、召回率(Recall rate,R)、平均精度(Average Precision,AP)、平均精度均值(mean Average Precision,mAP)等幾個指標對模型檢測效果進行評價。精確率、召回率的計算公式為
式中:QTP表示預測為正樣本且正確的數(shù)量,QFP表示預測為正樣本但錯誤的數(shù)量,QFN表示預測為負樣本但錯誤的數(shù)量。AP 表示在不同的召回率下準確率的平均值。AP 的計算方法是在PR 曲線(Precision-Recall curve)上,以召回率為橫軸、準確率為縱軸畫出檢測結(jié)果的變化曲線,然后計算曲線下的面積即為AP。mAP 表示在多個類別上AP 的平均值。
本文分別使用YOLOv5s、YOLOv7、YOLOv7+CBAM、CBMS-YOLOv7 算法進行實驗并對比,具體訓練結(jié)果如表1 所示。根據(jù)實驗效果可知,YOLOv5 檢測效果較差,YOLOv7 檢測效果較YOLOv5 有很大提升,mAP@0.5 提升10.1%;在YOLOv7 中嵌入CBAM 模塊,檢測效果較YOLOv7的mAP@0.5 提升9%;在CBAM 的基礎(chǔ)上,提出的改進模塊CBMS 嵌入到Y(jié)OLOv7 中,檢測效果較YOLOv7+CBAM 的mAP@0.5 提升1%,mAP 效果檢測提升3.7%,說明本文的改進具有進一步增強水下圖像表達目標特征的能力。
表1 模型訓練結(jié)果
水下場景復雜,采集到的圖片背景色會有明顯差別,而且水流擾動大,會造成采集數(shù)據(jù)圖像時產(chǎn)生一些運動模糊和本身水質(zhì)渾濁帶來的中心模糊。這些圖像數(shù)據(jù)相比陸地上的特征提取要復雜得多,導致檢測精度受到很大的影響。本文提出了CBMS模塊,以YOLOv7 為主干網(wǎng)絡(luò),從實驗結(jié)果可知提升了模型檢測的效果。