郭富海,穆曉斌,張 申,王鴻顯,高 歌
(1.中船航海科技有限責任公司,北京;2.海裝駐北京地區第四代表室,北京;3.中國船舶集團系統工程研究院,北京)
目標檢測技術在計算機視覺領域中扮演著基石的角色,其主要任務是識別圖像中物體的類別和位置。在將卷積神經網絡應用于船只目標檢測之前,傳統的目標檢測算法主要包括光流法、幀差法和背景差法[1]等。但存在一些問題,例如:使用人工設計的滑動窗口會導致檢測效果不佳;每個步驟需要單獨優化設計,難以獲得全局最優解,從而導致選擇策略的時間復雜度高;手工設計的特征對于目標多樣性的變化不具備穩健性[1]。
隨著深度學習技術的快速發展,實現海上智能交通成為可能,目標檢測技術可應用于船只目標檢測,從而提高在復雜海域中船只目標檢測的能力。大致可分成兩類:單階段目標檢測算法,如:RetinaNet、SSD、YOLO 等;雙階段目標檢測算法,如:R-CNN[2]、SPPnet[3]、R-FCN[4]等。然而,海況復雜、光照不均勻、大霧等因素會導致目標模糊,而船只密集和類型復雜以及小尺寸船只目標會降低檢測的成功率,使得在海域中實現船只目標檢測具有較高的復雜性。因此,在通用目標檢測算法的基礎上,需要對船只目標識別算法進行改進,以提高檢測效果。
YOLO 算法主要原理是通過在圖片的網格中找出目標,預測特征圖中框的坐標、目標得分和分類得分,與預測框進行計算得出最終結果。YOLOv4 針對YOLO 以往的網絡架構進行了很多優化,骨干網絡為CSPDarknet53,頸部為SPP 添加到PANet 模塊上,頭部基于YOLOv3 進行了改進。Darknet53 將基本層的特征圖分為兩部分,經過不同路徑處理后再結合。SSP通過卷積層獲得不同尺度的特征圖,將它們拼接成固定長度。將SSP 塊和CSPDarknet53 結合,可以顯著增加感受野,提取上下文特性,并且沒有降低網絡操作速度。在FPN backone 過程中,為了解決細節丟失的問題,將大尺度和小尺度的特征更好地結合在一起。采用新的損失函數CIoU-loss,收斂速度比IoU 和GIoU 快,更好地描述矩形框的回歸幾何度量。
通過對YOLOv4 網絡的輸入端、骨干網絡結構、頸部網絡結構和輸出端的改進,我們構建了一種名為Ves-YOLOv4 的深度學習網絡架構,用于船只目標識別檢測。其采用單階段檢測識別算法架構,包括特征提取、特征融合和檢測分類。架構如圖1 所示。

圖1 算法架構
對采集的圖像樣本進行預處理及標注,構建船只目標檢測數據集。使用Label Image 進行五種海面目標的標注:散貨船、集裝箱船、漁船、游輪和島嶼。為了減少對Batch Size 的依賴并豐富背景信息,使用Mosaic 數據增強方法制作訓練數據集,將4 張圖片隨機縮放、裁剪和排布進行拼接,得到新的4 張圖像,并對其進行隨機遮擋,增強了檢測數據集的多樣性。
該網絡結構包括Backone、Neck 和Head 三個主要部分。Backone 是引入特征注意模塊FA 的特征提取網絡CSPDarknet53,Neck 由SPP 和優化后的PANet特征融合結構構成,Head 為檢測結構。特征提取網絡使用尺寸為640*640 的RGB 圖像作為輸入,經過卷積、Batch Normalization 和Mish 激活函數后,再通過尺寸 分 別 為(320,320,64),(160,160,128),(80,80,256),(40,40,512), (20,20,1024)的殘差塊結構進行特征提取。最后一個殘差塊的輸出經過SPP 結構,拼接后將經過CSP 與CBL 結構的結果與主干網絡倒數第二和倒數第三個殘差塊的輸出結果一起作為PANet 結構的輸入。PANet 結構進行一系列的上采樣、下采樣和卷積操作,并將三個輸入進行特征融合處理,然后輸入Head;所述Head 將輸出解碼前船只的目標坐標信息。網絡結構如圖2 所示。

圖2 Ves-YOLOv4 網絡結構
骨干網絡為CSPDarknet-53, 在CSPDarknet-53中將特征注意模塊FA 嵌入調整后的殘差結構中,對特征通道關系中的特征權重進行重新分配,在全局平均池化前加入1×1 和3×3的卷積,實現跨通道信息集成,增強船只圖像的空間連通能力;然后,通過全局平均池化,將特征圖的全局空間信息轉化為一維向量求和,得到特征圖的全局信息。全局平均池化公式如下:
式中:Gc 為特征圖全局平均池化后的向量和;H 和W為輸入特征圖的寬度和高度;Uc(i,j)為第c 通道Uc 在(i,j)處的值。
SPP 最大值池化應用于大小為5×5、9×9、13×13 的卷積核,空間維度被保留。將來自不同內核大小的feature map 連接在一起作為輸出。比單純的使用k×k 最大池化的方式,更有效地增加主干特征的接收范圍,顯著地分離了最重要的上下文特征。
CBL 作為PANet 特征融合結構中的基本組件,其由普通卷積層Conv+歸一化層Bn+激活函數層SiLU 三者組成。
SiLu 函數是Sigmoid 函數的一種變體,其函數形式為:
Concat 將兩個張量拼接,會擴充兩個張量的維度。
CSP 結構用普通的CBL 替換resunit,應用于Neck 中。Backbone 為較深的網絡,增加殘差結構可以增強層與層之間反向傳播的梯度值,避免加深帶來的梯度消失,從而提取到更細粒度的特征而不必擔心網絡退化。
對Mosaic 數據增強后的圖像自適應添加黑邊,進行標準化處理,縮放到640*640 大小,轉換為RGB 圖片;輸入到訓練好的網絡中,得到Head 的輸出;對于解碼,首先將預測結果根據對應anchor 的原始尺寸進行比例放縮,然后根據網格劃分與anchor 中心的偏移量,最后過濾掉多余的預測;解碼后,進行非極大值抑制,直接選擇置信度最高的一個目標作為輸出,提升檢測速度。
為了減少誤檢,對輸出區域進行閾值過濾和置信度閾值過濾,通過判斷目標中心坐標與圖片邊界的距離和圖片寬高的比值進行閾值判定。最后,對輸出進行后處理,利用置信度閾值、邊界框和類別概率圖判斷最優的檢測結果。
建立的船只目標檢測數據集,共計11 408 張圖片,包含五種目標類型,隨機選取比例為4:1 的訓練集與測試集。把本文的架構(Ves-YOLOv4)與幾個代表性的架構在相同的硬件條件下進行評估。如表1 所示。

表1 與其他目標檢測方法的精度和速度比較
實驗結果表明,本文所應用的復雜海域船只目標檢測技術,可對海域船只目標進行正確的判斷,保持了較高的識別精度和識別速度。在RTX3060 上,模型的mAP 可達到85.2%,FPS 可達23.1,可以達到實時檢測的基本要求。如圖3 所示,本文架構可以識別船只的目標信息。

圖3 識別效果
本文提出了一種基于YOLOv4 優化的聚合網絡結構Ves-YOLOv4:
(1) 針對訓練數據不足,在輸入端進行Mosaic數據增強、自適應圖片縮放優化,提高架構的泛化能力,避免了過擬合的發生。
(2) 基于注意力機制構建特征注意模塊,嵌入到CSPDarknet-53 中進行特征重新校準,提高了模型在復雜環境下的特征提取能力。
(3) 針對特征融合過程中底層特征語義信息不足、網絡過深導致特征消失的問題,優化PANet 特征融合結構,融合多層次特征信息,以增強網絡層的接受域和特征提取網絡的關聯度,提高在復雜海域中小目標檢測能力和多目標分類效果。