陳 亮,黃代琴,時慧晶,王振飛
(1.湖南科技大學信息與電氣工程學院,湖南 湘潭 411201; 2.昆明船舶設備研究試驗中心,云南 昆明 650051)
水下探測機器人在動態目標檢測過程中,視覺感知是視覺導引與高精度作業的基礎與保證[1-2]。傳統單階段多尺度目標檢測器SSD(single shot multibox detector)算法[3],其以單階段預測器YOLO(you only look once)[4]思路設計網絡框架,并采用多級輸出方法有效提升算法對不同尺度目標的特征反應能力,在PASCAL VOC(the PASCAL visual object classes)以及微軟COCO(common objects in context)等通用的公開數據集上取得了比較理想的效果。然而,在水下目標檢測過程中,由于光在復雜多變的水聲傳播過程中容易受到干擾與衰減等影響,指定檢測的小目標常容易與干擾信號所產生的斑點、耀點等相混淆,采用普通的目標檢測算法檢測的精度、查全率等均難以滿足實際需求。
針對小目標在水下目標檢測特征提取與辨識度差的問題,文獻[5]首先采用遷移學習與擠壓激勵網絡,重構超分辨率的拓展圖像數據,通過豐富小目標的特征信息,提高其算法檢測的精度;但是算法擠壓與激勵網絡采用雙線性卷積機構,算法結構相對復雜,訓練與檢測時間相對較長。文獻[6]采用特征金字塔結構對SSD網絡進行優化,針對水下魚群基于尺度過小、光照不足的問題進行了目標檢測,精度提升了約2%,但算法中模型參數量過大,訓練時間與檢測時間也都出現明顯降低。文獻[7]采用雙路徑對SSD算法不同層級特征進行融合,有效提升了檢測的精度,但算法采用雙層特征提取結構[8],結構復雜,訓練參數也擴增近1倍,其檢測算法與應用部署均存在一定的困難。
綜合考慮小型水下探測機器人對小目標檢測的實際要求,本文從模型預測的準確性與網絡結構的輕量化兩個角度出發,提出一種基于多級特征混合融合的深度學習水下小目標檢測方案,采用卷積注意力機制對淺層特征進行增強后,構建基于增強特征的多級分層融合的網絡結構,通過混合訓練以實現通過深層網絡輸出特征對淺層小目標特征進行補充,提升檢測的精度。
SSD算法是當前目標檢測算法中主流方法之一,具有結構簡單、檢測精度高、實時性好等優點[9]。SSD算法的總體結構如圖1所示。

圖1 SSD網絡結構圖Fig.1 The SSD network structure diagram
算法首先通過遷移學習的方法,利用ImageNet數據集,完成對特征提取的骨干網絡參數的預訓練;其后采用級聯結構,對不同層級的不同特征圖進行提取,并統一輸出給檢測輸出層,并完成統一的訓練。在此過程中,SSD算法仍采用錨點機制[10],對不同層級的不同特征圖,設置系列固定的錨框,如表1所示。

表1 SSD300各預測層默認框Tab.1 SSD300 default box for each prediction layer
如Conv11-2層其輸出的特征圖大小為1×1,而其所對應的默認框數量為4個,尺度長寬縮放比分別為[1,1,2,1/2]。整個網絡通過6個尺度共8 722個預設錨框實現對各類不同尺度目標進行檢測與識別。
由于SSD算法對小目標提取主要依賴淺層結構,而淺層網絡特征表達能力與語義信息相比較深層網絡要差,因而造成了整個網絡在小目標檢測時不及大尺度目標。
在水下巡檢機器人動態目標檢測過程中,SSD算法由于其淺層網絡結構在特征信息表達能力上稍顯不足,且沒有上下文信息為其作補充,因而在使用時對小目標常容易出現漏檢、誤檢等。針對上述問題,算法首先在網絡的淺層輸出引入卷積注意力機制,通過該模塊完成對淺層特征的增強。同時,在淺層與深層融合過程中,引入多個層級的特征融合結構,完成不同層級在特征提取上的相互補充。
算法網絡結構設計如圖2所示。

圖2 算法網絡結構圖Fig.2 The network structure diagram of algorithm
輸入圖片首先經過基礎特征提取網絡進行特征提取,將經過基礎特征提取網絡提取后的特征圖放入額外的卷積層進行進一步的特征提取;之后取出38×38大小的特征圖融入卷積注意力機制中進行進一步處理,同時取19×19以及10×10大小的特征圖進行上采樣,將獲得的上采樣特征圖與經過卷積注意力機制處理后的特征圖通過維度拼接的方式獲得處理后的38×38大小的特征圖,使用相同的方式獲得處理后的19×19的特征圖;最后,取處理后的大小為19×19的特征圖進行上采樣后與維度拼接后的大小為38×38大小的特征圖再進行一次維度拼接后送入檢測網絡,此時再將處理后的大小為19×19的特征圖以及10×10、5×5、3×3以及1×1的特征圖也送入分類與檢測器中。
在整個深度學習網絡中,算法仍采用VGG16作為基礎特征提取網絡,并且通過增加額外卷積層來獲取不同分辨率的特征圖。選取網絡的6種不同分辨率的特征圖分別通過一個附加的卷積層來匹配輸出通道,每個網絡預測包含回歸任務以及分類任務的輸出。而為了給用于檢測較小目標的淺層特征圖添加高層特征圖的高語義信息,網絡采用了特征融合的方式將高層特征圖與低層特征圖融合后,使用融合后的特征圖代替原來的低層特征圖來檢測較小的目標,即將含有高語義信息以及上下文信息的高層特征圖通過反卷積操作得到與低層特征圖大小相等的特征圖。最后,對反卷積之后得到的特征圖進行批量歸一化以及ReLU操作后與低層特征圖通過維度拼接的方式達到特征融合的目的。
卷積注意力機制是一種用于前饋卷積神經網絡的簡單而有效的注意力模塊,其主體結構是由通道注意力模塊以及空間注意力模塊串行連接而成。通過從通道和空間兩個維度計算特征圖(feature map)的注意力圖(attention map),然后將注意力圖(attention map)與輸入的特征圖(feature map)相乘來進行特征的自適應學習。在訓練時,將特征提取網絡輸出的特征圖輸入給卷積注意力機制模塊,然后依次從通道和空間兩個不同的維度推算注意力圖,最后將得到的注意力圖與輸入特征圖相乘,以此進行自適應特征細化。卷積注意力機制結構如圖3所示。

圖3 卷積注意力機制Fig.3 The convolutional attention mechanism
由圖3可知,特征提取網絡輸出的特征圖首先會通過一個通道注意力模塊,得到加權結果之后,再經過一個空間注意力模塊,最終進行加權得到結果。其中,通道注意力機制主要關注輸入圖像中興趣點,本質上是一個基于通道的注意力模型,表示的是各個特征通道的重要程度,通過訓練可以完成對不同任務的通道進行增強或者抑制??臻g注意機制關注的重點是位置信息,本質上是將原始圖片中的空間信息通過空間轉換模塊,變換到另一個空間中并保留關鍵信息,為每個位置生成權重掩膜(mask)并加權輸出,從而增強感興趣的特定目標區域同時弱化不相關的背景區域。
卷積注意力機制結合了通道注意力機制以及空間注意力機制的優點,因而使得網絡的特征提取能力更強。同時,卷積注意力機制還是一種輕量級的通用模塊,在不需要增加過多額外開銷的同時還可以同卷積神經網絡一起進行端到端的訓練。
由于SSD網絡采用缺乏語義信息以及上下文信息的低層特征圖對水下的小目標進行檢測,因而檢測精度低、穩定性差。為了向缺乏語義信息的淺層特征圖中添加高層特征圖的高語義信息以及上下文信息,本文采用了多級特征混合融合的方式,使得用于檢測較小目標的特征圖中包含高語義信息以及上下文信息進而達到提升網絡對水下較小目標的檢測精度。
對于深度學習模塊,其特征向量為圖像目標的抽象表征,不同層級的特征所表征的目標也存在一定的差異性,而訓練的對象是全圖所有目標信息,因此,可以通過將兩個或者多個特征圖調整到相同尺度后進行對應位置特征值相加,也可以通過將不同特征圖進行維度的拼接最終形成新的高階特征圖實現特征融合。考慮本文融合的特征圖具有不同的尺度,因此使用維度拼接的方式可以有效保留不同階層所表達的信息,完成對各尺度特征的真實預測。特征融合的結構圖如圖4所示。

圖4 特征融合結構Fig.4 Structure for feature fusion
圖4中,高層特征在特征融合之前需經過上采樣操作,使其與目標特征圖擁有相同的大小,之后,通過批量歸一化以及ReLU操作之后在調整其維度信息后使用維度拼接法實現目標特征與上下文特征的融合。通過這樣的特征融合方式,使得原本SSD網絡中用于小目標檢測的低層特征圖中融合了高語義信息以及上下文信息,從而達到了提升網絡對水下較小目標的檢測精度的目的。
目標檢測的任務主要包括對目標圖像位置的檢測與目標屬性的判別,因此,其損失函數包括分類損失與回歸損失。兩部分按照權重相加得到最后的損失,其計算公式為
(1)
式(1)中,N為先驗框的數量,Lconf(x,c)為分類損失,Lloc(x,l,g)為回歸損失,α為權重參數值。α取值過大容易造成分類識別與目標框預測之間的沖突,綜合網絡對分類任務與回歸任務平衡需求,α取中間值0.5時網絡檢測與識別整體效果相對較好。
分類損失本質是對當前目標屬性概率的判別,因而交叉熵損失函數通過信息論能較好地反映其概率分布,計算公式為
(2)
(3)

回歸損失是位置偏差校正的重要參數。由于尺度的多樣化,位置訓練過程中容易出現異常點,而采用Smooth L1 Loss函數,其對異常點具有較強的魯棒性,同時也能保證其在原點具有可導性。Smooth L1 Loss函數公式為
(4)
式(4)中,x值為兩個偏移量之間的差值。
此外,在訓練過程中,系統需要根據任務對分類任務與回歸任務的精度要求靈活調整分類損失與回歸損失之間的權重值。
FA-SSD算法是文獻[11]針對小目標進行的SSD結構優化,其采用殘差注意力機制完成對不同層級特征的融合。為了驗證本文算法的有效性,實驗將通過定量與定性等多重評價指標對本文算法與FA-SSD算法、傳統SSD算法進行比較。
實驗使用的是2020年全國水下機器人目標抓取大賽提供的水下數據集。該數據集包括海參、海膽、扇貝和海星4類水下目標,數據總數約6 000張,算法選擇其中20%為測試集,80%為訓練集,最后再以8∶2的比例將訓練集分為訓練集和驗證集。在相同環境下不同網絡各訓練40 000次,目標檢測效果如圖5所示。

圖5 算法檢測效果Fig.5 Detection performance of different object detection algorithm
圖5中,三類算法對相同的目標均完成了位置的檢測與屬性的判別,但通過對比可以發現,本文算法在類別判別的置信度相比于FA-SSD網絡以及SSD網絡更高,且位置估計也更加精確。
平均精度均值(mean average precision,mAP)是目標檢測中定量模型評估的重要指標,計算公式為
(5)
式(5)中,P為準確率,R為召回率。mAP通過計算每個類別的準確率與召回率曲線所形成圖形的面積平均值,可直接反映網絡對所有被檢目標的綜合檢測能力。
本實驗分別使用同一個數據集在不同的網絡下進行訓練,并綜合比較其檢測速度與精度。實驗采用GPU GTX1070Ti進行訓練,同時采用CUDNN加速。
為驗證不同算法結構對實驗效果的影響,消融實驗效果對比如表2所示。其中檢測精度mAP由各模型使用1 024張不同的圖片進行檢測獲得。

表2 不同算法效果對比Tab.2 Comparison of the performance of different object detection algorithms
從表2可以明顯得出:FA-SSD網絡相對于SSD網絡檢測精度提升了3.35%,而本文算法相對于FA-SSD檢測精度提升了2.48%;從檢測時間來看,FA-SSD相對于SSD網絡增加了24 ms,而本算法相對于FA-SSD只增加了8 ms。因此,算法雖然增加了多個注意力模塊與特征融合模塊,但在檢測精度提升的同時檢測速度的影響相對較小。
召回率與準確率也是目標檢測的重要指標,召回率表示目標檢測的查全情況,即是否對小目標存在漏檢等情況,而準確率則表示檢測與識別是否與實際吻合。三種算法在海參、海膽、扇貝和海星四種類別上的P-R曲線如圖6所示。圖中,橫軸為召回率,縱軸為準確率,準確率與召回率所形成的面積為該目標檢測的mAP值。

圖6 不同算法性能對比圖Fig.6 The performance comparison diagram of object detection algorithms
從圖6中可以明顯看出:四種類型的海產品檢測時,本文算法的P-R曲線值要高于SSD以及FA-SSD算法;此外,在相同的視野中,海膽、扇貝相比于海參和海星尺寸上稍大,而本文算法在扇貝與海膽檢測中的召回率與精度較FA-SSD提升相對較??;而在尺度更小的海參與海星檢測中,召回率相同時,本文算法的檢測精度提升更為明顯;在精度相同時,本文算法的召回率即查全率也更高。當算法在應用部署于基于嵌入式內核的機器系統上時,檢測結果也更加可靠、穩定。
由上述分析可知,采用多級特征混合融合方法可有效提升水下小目標檢測效果,算法的復雜度與計算量的提升相對較小,基本可滿足水下機器人水下實時探測要求。
針對水下探測機器人在視覺感知過程中采用SSD網絡對水下小目標進行檢測時精度低、穩定性差等問題,提出一種基于多級特征混合融合的小目標檢測網絡。網絡引入了卷積注意力機制,有效增強了淺層網絡的小目標特征提取能力,同時構建了多級分層融合結構,通過高層特征與淺層特征混合訓練,有效補充了淺層目標對小目標特征表達能力不足的問題。通過對本文算法與傳統SSD算法及其改進的FA-SSD算法進行比較,本文算法在精度上提升了5.86%,在召回率等性能指標上也明顯高于傳統算法,證明了本文算法的有效性。本文方法為水下作業機器人的視覺感知應用部署提供了理論保障。