鄒 敏
(福州大學 先進制造學院,福建 泉州 362200)
隨著計算機視覺的蓬勃發展,基于光學圖像的水下目標探測技術得到了廣泛的應用,在海洋漁業、水產養殖及海洋污染保護等領域發揮著重要作用[1]。在海洋漁業領域,大多數傳統的海產品收集方法都以人工潛水捕魚為基礎,不僅效率低,而且需要工人有足夠的潛水和捕魚經驗。由于長期水下作業的危害,勞動力減少,導致人工捕魚作業的成本持續增加。另外,水下場景本質上比陸地場景更復雜,水下照相機獲得的圖像質量往往較低。因此,增強水下圖像表達目標特征的能力,提高水下目標檢測的精度,已成為迫切需要解決的問題。傳統的目標檢測方法依靠手動設計的濾波器來提取特征,往往導致特征表示不足且檢測精度較低。深度學習網絡的發展徹底改變了目標檢測,通過多層神經網絡提取目標圖像特征,從而學習更抽象、更全面的表示信息。其中,兩階段目標檢測具有代表性的算法為Faster RCNN[2]、級聯R-CNN[3]以及Mask R-CNN[4]。另一種類型是基于回歸的單級檢測器,常見的單階段目標檢測有SSD[5]、YOLO(You Only Look Once)系列[6-9]等。它們都可以在合適的場景中顯示出其優勢。由于水下物體檢測的實時性要求較高,一級探測器能夠快速響應水下場景的需求。因此,水下目標檢測研究大多基于一級探測器進行。ZHANG M H[10]使用YOLOv4,提出了一種結合注意力機制的輕量級方法,以實現準確性和檢測速度的平衡。ZHANG J[11]在YOLOv5 的基礎上加入全局注意力機制和頸部特征融合,取得了更好的檢測精度。LIU K H[12]使用ACmix 替代YOLOv7 中的E-ELAN 結構,并引入全局注意力機制來提高特征提取的效率。
盡管一級探測器可以更好地滿足水下目標檢測的實時要求,但它們在檢測精度方面仍然存在缺陷。本文在卷積塊注意力模塊(Convolutional Block Attention Module,CBAM)注意力基礎上,提出一個通道殘差拼接模塊CBAM-CRMS,基于YOLOv7 的模型架構,將CBAM-CRMS 模塊集成到YOLOv7 的Head 中的ELAN-H 之后,進一步增強水下圖像表達目標特征的能力。
YOLOv7 是一種基于深度學習的實時目標檢測算法,網絡架構如圖1 所示。YOLOv7 是目前目標檢測領域應用效果最好的算法之一。它使用了ELAN 和ELAN-H 模塊,可以有效地增強網絡的學習能力和收斂速度,同時減少參數量和計算量;SPPCSPC 結構可以提取多尺度的特征,并利用跨級連接和通道分離技術提高特征的表達能力和計算效率;Rep 結構可以實現模塊的重參數化,將多個分支模塊集成到一個等價的模塊中,從而提高模型的泛化能力和推理速度;還使用了SimOTA 的標簽分配策略,可以動態地根據損失函數和交并比(Intersection over Union,IoU)選擇最優的正樣本,避免了固定閾值和錨框的限制,提高了檢測的準確性;使用了輔助訓練頭,可以在訓練過程中增加正樣本的數量和多樣性,提高模型的健壯性和穩定性。

圖1 YOLOv7 網絡結構圖
YOLOv7 的網絡結構可以分為Input、Backbone及Head 共3 個部分。Input 是對原始圖片進行預處理的部分,包括縮放、裁剪、翻轉、旋轉及顏色變換等數據增強操作,以提高模型的泛化能力和健壯性。輸入的圖片大小為640×640,通道數為3。Backbone 是對輸入圖片進行特征提取的部分,由50 層卷積層和池化層組成,使用ELAN 模塊和MP 層作為基本組件。Backbone 的輸出為3 個不同尺寸的特征圖,分別為C3、C4 和C5,大小為80×80×512,40×40×1 024 和20×20×1 024。Head 是對主干網輸出的特征圖進行特征融合的部分,使用了PAFPN 的結構,即自頂向下和自底向上的特征金字塔網絡。首先對C5 進行SPPCSP 操作,即空間金字塔池化和卷積層的組合,可以增加特征的感受野和多尺度信息,同時降低通道數為512。其次,自頂向下地將C5 和C4、C3 進行融合,得到P5、P4 和P3,大小為20×20×512,40×40×512和80×80×512。再次,自底向上地將P3 和P4、P5 進行融合,得到P3、P4 和P5,大小不變。最后,使用RepConv 操作,即可重參數化的卷積層,可以在訓練和推理時有不同的表現,提高模型的效率和性能。
CBMS-YOLOv7 算法由YOLOv7算法改進而來,在Head 中的ELAN-H 后面融合了CBAM-CRMS模塊,進一步增強網絡的特征提取能力。
CBAM 是一種用于深度神經網絡的注意力機制,旨在增強模型對重要特征的關注,從而提高網絡的性能,總體流程如圖2 所示。CBAM 由通道注意力模塊(Channel Attention Module,CAM)和空間注意力模塊(Spatial Attention Module,SAM)兩個關鍵組件組成。

圖2 CBAM 總體流程圖
CAM 的目標是對輸入特征圖的每個通道進行加權,通過執行全局平均池化(Global Average Pooling,GAP)來獲得每個通道的全局描述,經過全連接層和激活函數,生成一個權重向量,用于加權每個通道的特征圖。SAM 旨在捕捉特征圖中不同位置的相關性,通過對每個通道執行最大值池化和平均值池化操作,連接這兩個操作的結果,通過卷積操作生成一個權重矩陣,用于加權每個位置的特征圖。相關計算公式如式(1)~式(4)所示。
式中:MLP 為多層感知機,權重為W1和W2,該感知機是最大池化和平均池化共享的;f7×7表示一個卷積核大小為7×7 的卷積操作,σ為sigmoid 函數;?表示進行元素級的相乘,F'表示對特征圖在通道維度上使用平均池化和最大池化的輸出;F"表示對特征圖空間維度上使用平均池化和最大池化的輸出。
綜合來看,CBAM 綜合了通道級別和空間級別的注意力機制,使得網絡在處理圖像時能夠更有效地關注重要的通道和位置,有助于提高網絡的泛化能力和性能,尤其在處理具有復雜結構和變化的圖像時,如水下圖像目標檢測中所描述的情景。
CBAM-CRMS 注意力是一種基于CBAM 的注意力機制,在通道注意力模塊中增加了一個通道殘差模塊CRMS。該模塊通過殘差的方式設計,輸入的特征圖分別經過兩層卷積層,上條支路的卷積層在保留原始輸入特征的位置信息的同時,下條支路進一步提升特征圖的語義信息。通過通道殘差模塊的設計,可以將特征原始的位置信息和更豐富的語義信息和經過通道注意力權重元素級相乘的特征圖進行通道拼接,并將拼接后的特征圖作為空間注意力機制的輸入,保留了有利于產生空間注意力權重的信息。
CBAM-CRMS 總體流程如圖3 所示。在CBAM注意力機制中,特征圖通過通道注意力生成通道注意力權重。通道注意力權重再與輸入的特征圖進行元素級相乘,將相乘的結果作為空間注意力機制的輸入。由于空間注意力機制是進行通道級別的池化,特征圖在經過通道注意力權重時,將會改變通道的權重,這將會對后期生成空間注意力權重產生影響,丟失有利于產生空間注意力權重的信息。

圖3 CBAM-CRMS 總體流程圖
URPC2020 水下光學數據集是2020 年全國水下機器人大賽使用的數據集,包含5 543 張分辨率為1 920×1 080 像素的水下圖像及其VOC 格式xml文件。測試集A 榜包含800 張圖像及其VOC 格式xml 文件,測試集B 榜包含1 200 張圖像及其VOC格式xml 文件。測試集在賽后公布了圖片和對應的標簽,可以自行測試。其檢測的目標類別包括海參(Holothurian)、海膽(Echinus)、扇貝(Scallop)和海星(Starfish)4 類。將所有圖片按照6 ∶2 ∶2的比例隨機劃分為訓練集、驗證集、測試集。
本文使用Pytorch 作為模型的訓練框架,學習率設置為0.01,epoch 設為150,batch_size 設為8。采用Linux 操作系統作為實驗平臺,采用Intel Xeon(R) CPU E5-2678 v3 @ 2.50 GHz 的CPU 處理器,2 個Nvidia GeForce GTX 2080Ti 的圖形處理器(Graphics Processing Unit,GPU),具有64 GB 內存以及24 GB 顯存。
檢測一般用精確率(Precision,P)、召回率(Recall rate,R)、平均精度(Average Precision,AP)、平均精度均值(mean Average Precision,mAP)等幾個指標對模型檢測效果進行評價。精確率、召回率的計算公式為
式中:QTP表示預測為正樣本且正確的數量,QFP表示預測為正樣本但錯誤的數量,QFN表示預測為負樣本但錯誤的數量。AP 表示在不同的召回率下準確率的平均值。AP 的計算方法是在PR 曲線(Precision-Recall curve)上,以召回率為橫軸、準確率為縱軸畫出檢測結果的變化曲線,然后計算曲線下的面積即為AP。mAP 表示在多個類別上AP 的平均值。
本文分別使用YOLOv5s、YOLOv7、YOLOv7+CBAM、CBMS-YOLOv7 算法進行實驗并對比,具體訓練結果如表1 所示。根據實驗效果可知,YOLOv5 檢測效果較差,YOLOv7 檢測效果較YOLOv5 有很大提升,mAP@0.5 提升10.1%;在YOLOv7 中嵌入CBAM 模塊,檢測效果較YOLOv7的mAP@0.5 提升9%;在CBAM 的基礎上,提出的改進模塊CBMS 嵌入到YOLOv7 中,檢測效果較YOLOv7+CBAM 的mAP@0.5 提升1%,mAP 效果檢測提升3.7%,說明本文的改進具有進一步增強水下圖像表達目標特征的能力。

表1 模型訓練結果
水下場景復雜,采集到的圖片背景色會有明顯差別,而且水流擾動大,會造成采集數據圖像時產生一些運動模糊和本身水質渾濁帶來的中心模糊。這些圖像數據相比陸地上的特征提取要復雜得多,導致檢測精度受到很大的影響。本文提出了CBMS模塊,以YOLOv7 為主干網絡,從實驗結果可知提升了模型檢測的效果。