張 鵬,黃 亮,楊露菁,闞欽高
(1.海軍工程大學 電子工程學院,湖北 武漢 430033;2.中國人民解放軍91431 部隊,海南 海口 570100)
我國是海洋大國,提高我國的海上軍事國防實力, 維護海上疆域和領土完整關乎到我國的長治久安。在海上國防軍事技術中,海洋目標探測技術對于加強海上領土的監(jiān)管有非常重要的意義[1]。
不同于雷達等主動探測設備,光電探測設備被動接受外界信息,不對外發(fā)射電磁信號,具有隱蔽性好、抗干擾能力強等優(yōu)點。
近年來,基于深度學習的圖像特征提取技術在目標檢測領域得到廣泛的應用。深度卷積神經(jīng)網(wǎng)絡能夠通過學習獲得表示圖像高級特征的能力,從而實現(xiàn)對圖像中目標的檢測。現(xiàn)行的深度學習目標檢測算法主要可分為基于回歸思想的單階段目標算法和基于候選區(qū)域思想的兩階段目標檢測算法。其中單階段檢測算法相對速度更快,更能夠滿足海上目標檢測時效性的要求。YOLO 系列檢測算法是單階段目標檢測算法中應用最為廣泛的[2]。趙文思[3]基于YOLOv3 模型,引入GIOU loss 并加入SPP 結構,提出了YOLOv3SPP 卷積神經(jīng)網(wǎng)絡模型,實現(xiàn)對船舶的檢測;王文亮等[4]在YOLOv5 算法中加入SimAM 注意力模塊和Transformer 結構增強高階特征語義信息,提高海面小目標檢測能力;張曉鵬等[5]在YOLOv5 算法的基礎上,融合SE 注意力模塊和改進的非極大值抑制模型,實現(xiàn)提高海上船舶識別整體效果;姬嗣愚等[6]在YOLOv5 算法中引入了坐標注意力機制,將位置信息嵌入通道注意力中,增強模型的特征提取能力,在滿足實時性要求下更好地完成水柱信號的檢測要求。
本文采用最新的目標檢測模型YOLOv7[7]作為基礎模型,結合海面上目標成像特點,采用自注意力模塊加強特征提取,利用通道與空間注意力模塊,引導高層特征與低層特征融合,對特征融合網(wǎng)絡進行輕量化改造,實現(xiàn)對海上目標的實時準確檢測。
YOLO 系列發(fā)展至今已有諸多版本,在目標檢測領域發(fā)揮重要作用。YOLOv7 是YOLOv4 官方團隊在前代網(wǎng)絡的基礎上進一步改進而來,相同體量下,擁有比現(xiàn)在最流行的YOLOv5 更高的檢測精度。與YOLOv5 一樣,為了滿足不同檢測場景的需求,YOLOv7共發(fā)布的7 個基礎模型。本文主要針對海上目標進行檢測,為滿足模型輕量化和檢測實時性要求,以YOLOv7-tiny-SiLU 作為基準模型,并針對海上目標檢測任務進行優(yōu)化。
YOLOv7-tiny-SiLU 的總體結構如圖1 所示。
圖1 YOLOv7-tiny-SiLU 模型結構Fig.1 YOLOv7-tiny-SiLU model structure
輸入端(Input)繼續(xù)采用Mosaic 數(shù)據(jù)增強、自適應錨框計算和自適應圖片縮放方式對輸入圖像進行預處理,以提高輸入模型的數(shù)據(jù)質(zhì)量。
主干網(wǎng)絡(Backbone)相對前代YOLO 模型進行較大改進。Focus 下采樣結構恢復為步長為2 的卷積層,在下采樣的同時保留部分語義信息;參考ELAN 結構設計擴展高效聚合網(wǎng)絡E-ELAN,在不破壞原始梯度路徑的情況下,提高網(wǎng)絡的學習能力;在P3 至P4 與P4 至P5 兩次下采樣過程中,由E-ELAN 負責特征提取,降采樣操作由最大池化完成,保證特征提取的同時,進一步減少計算參數(shù)與計算量。
頸部(Neck)繼續(xù)沿用FPN+PAN 結構的路徑聚合網(wǎng)絡結構,但將其中的CSP 模塊替換E-ELAN 層。
輸出端(Prediction)針對檢測目標的大小不同,設定輸入圖像的1/8、1/16、1/32 三種大小網(wǎng)格。每個網(wǎng)格包含3 個預測框,每個預測框包含目標分類、位置、置信度信息,最后通過非極大值抑制 NMS(Non-Maximum Suppression)對重復冗余的預測框進行剔除,保留置信度最高的預測框信息[8],從而完成目標檢測過程。
除此之外,YOLOv7-tiny-SiLU 在模型的訓練上也進行優(yōu)化。一是參照RepConv 進行模型重參化設計[9],用沒有identity 連接的RepConv 來設計重參數(shù)化卷積的體系結構,實現(xiàn)用復雜的模型訓練、用簡單的模型推理,在保證模型精度的前提下進一步壓縮模型的大小。二是利用深度監(jiān)督的思想,在網(wǎng)絡的中間層增加額外的輔助頭,利用輔助檢測頭學習住檢測頭已學習的信息,使得主檢測頭能夠進一步學習更多信息[10],并通過一種新的軟標簽生成方法來訓練模型,以增強網(wǎng)絡的檢測能力。
現(xiàn)有的YOLOv7-tiny-SiLU 算法是針對全場景下目標檢測任務設計的,為使網(wǎng)絡更加符合海上目標檢測需求,對網(wǎng)絡進行海上目標檢測的針對性改進。
與其他場景相比,海上場景背景相對簡單。海面目標沿海天線向畫面邊緣由遠及近分布且與背景有密切關系,如同樣的白色像素區(qū)域在天空背景下通常為云朵,在海面背景下通常為海浪,故在進行海上目標檢測時,需充分考慮圖像中的上下文信息。本文利用注意力機制增強骨干網(wǎng)絡的特征提取能力,對頸部的特征融合網(wǎng)絡進行設計,增加特征融合的針對性。
卷積神經(jīng)網(wǎng)絡(CNN)利用天然的歸納偏置優(yōu)勢來學習視覺表征,在空間信息域上建立局部依賴關系,但也由此缺乏學習全局表征的能力?;谧宰⒁饬C制的視覺Transformer(ViT)具備捕捉輸入特征圖全局感受野的能力,能在空間維度上建立全局依賴關系從而學習到全局視覺表征信息。但由于缺乏空間歸納偏差,ViT 架構通常計算量較大且難以訓練。在此基礎上,Mehta S 等[11]結合CNN 與Transformer 的優(yōu)點,構建出輕量級網(wǎng)絡架構MobileViT,如圖2 所示。
圖2 Mobile ViT 架構Fig.2 Mobile ViT architecture
在MobileViT 架構中,MobileViT Block 是融入Transformer 的核心部分。具體流程為:
X∈RH×W×C
步驟1 利用一次普通卷積學習輸入的張量局部空間信息;
步驟2 通過點卷積將步驟1 的輸出特征投影到高維空間,將得到的張量XL∈RH×W×d展開后通過Transformer 建模得到張量XG∈RH×W×d;
步驟3 重新折疊張量XG∈RH×W×d,并通過點卷積進行降維得到張量XF ∈RH×W×C;
步驟4 將步驟1 的結果與張量XF∈RH×W×C拼接后,利用卷積融合其中的局部特征與全局特征。
MobileViT Block 能夠同時感知特征圖的全局信息與局部信息,在骨干網(wǎng)絡中插入該模塊能夠提高網(wǎng)絡的特征提取能力。
骨干網(wǎng)絡提取的特征層包含豐富的語義信息,但不同層級的特征圖所包含的語義信息有所差別,對不同目標檢測的貢獻度也不同。YOLOv7-tiny-SiLU 的頸部結構對各層級進行融合,能夠提高目標檢測能力,但并非所有層的信息對目標檢測的貢獻度都相同,冗余的信息甚至會誤導網(wǎng)絡對有效信息的利用。
注意力機制能夠動態(tài)調(diào)整所融合信息的權重,提升神經(jīng)網(wǎng)絡對有用信息的注意,并抑制對無效信息的關注。為了讓檢測器能夠在檢測不同目標時能合理分配注意力,進而提高對有用信息的感知。
CBAM[12]注意力機制能夠同時感知通道注意力(Channel Attention,CA)與空間注意力(Spatial Attention,SA)。其中,CA 模塊與SENet 類似,在SENet的基礎上增加了maxpool 的特征提取方式,利用特征間的通道關系來生成通道注意力圖;SA 模塊利用的是特征間空間關系,沿著通道軸并行平均池化和最大池化操作,連接后經(jīng)過一個卷積層得到注意力圖,如圖3所示。通道注意力圖與空間注意力圖的計算過程為:
圖3 CBAM 結構Fig.3 CBAM structure
將CBAM 注意力機制應用于多尺度特征融合結合使用,對融合的特征圖進行自適應的加權調(diào)整。
將CA 模塊與SA 模塊根據(jù)需分別嵌入頸部的特征融合網(wǎng)絡中,并對頸部進行輕量化改造,使其更加專注于特征融合。在大量減少計算開銷的情況下,保留頸部特征融合能力,將獲得的特征提取網(wǎng)絡命名為CS-FPN,如圖4 所示。CS-FPN 網(wǎng)絡中特征融合的過程為:
圖4 CS-FPN 結構圖Fig.4 CS-FPN structure
步驟1 由骨干網(wǎng)絡提取到的P5 特征層經(jīng)過一次卷積下采樣,獲得擁有更高一級的語義信息特征層P6。
步驟2 由具有更高語義信息特征層借助注意力機制引導下一級特征層的信息融合。具體做法為:將P6、P5、P4 特征層經(jīng)過1 次SA 模塊獲得空間注意力權重,經(jīng)上采樣后分別與P5、P4、P3 層進行拼接,將拼接后的特征層經(jīng)過1 次CA 模塊感知通道注意力權重,再利用卷積對特征通道進行融合,得到初步融合的特征圖P'5、P'4、P'3。
步驟3 將底層特征圖向高層融合。具體為:底層特征圖P'3 、P'4 經(jīng)過一次下采樣分別與更高層的P'4、P'5 進行拼接,而后經(jīng)過1 次CA 模塊獲得通道注意力權重,再通過卷積對特征通道進行融合,得到進一步融合的特征層P"5、P"4、P"3。
步驟4 根據(jù)檢測任務需要,重復步驟2 和步驟3得到最終融合的特征層C5、C4、C3。
針對海上目標檢測,在YOLOv7-tiny-SiLU 算法的基礎上,將MobileViT Block 加入骨干網(wǎng)絡中,再結合2.3 所提的特征融合網(wǎng)絡,得到改進后的CS-YOLOv7s網(wǎng)絡。其整體結構如圖5 所示。
圖5 CS-YOLOv7s 整體結構Fig.5 CS-YOLOv7s overall structure
本文實驗環(huán)境為Ubuntu20.04 操作系統(tǒng),CPU 為Intel i9-10920X,內(nèi)存32 G,顯卡為 NVIDIA GeForce RTX3070,Python3.8 編程語言,Pytorch1.8.0 深度學習框架。
數(shù)據(jù)集為互聯(lián)網(wǎng)上公開的新加坡海事數(shù)據(jù)集,包括在2015 年7 月~2016 年5 月之間的各種環(huán)境條件下采集的視頻數(shù)據(jù),經(jīng)分幀標注而得3605 張分辨率為1920×1080 的圖片及相應標注文件。按照9∶1 的比例將所有數(shù)據(jù)劃分訓練數(shù)據(jù)與驗證數(shù)據(jù),再將驗證數(shù)據(jù)按照9∶1 比例劃分為訓練集與測試集,即訓練集2920張圖片,測試集324 張圖片,驗證集361 張圖片。
目標檢測中通常用平均精準度(Average precision,AP)和平均精準度的均值mAP 來評價模型的檢測效果和性能,AP 為召回率(Recall)和精確率(Precision)曲線下的面積。計算公式為:
訓練階段的超參數(shù)設置:初始學習率為0.0032;衰減系數(shù)為0.12;動量為0.843;批大?。╞atch size)為16;訓練次數(shù)(Epoch)為 500 次。
YOLOv7-tiny-SiLU 與CS-YOLOv7s 的損失函數(shù)曲線如圖6 所示。可看出2 種模型在訓練初期損失函數(shù)下降速度更快,整體波動較小,且訓練到第100 輪左右時均損失值達到了0.04,收斂情況均良好,模型輕量化改進后最終損失比原始模型稍高。
圖6 訓練損失情況Fig.6 Training loss
從訓練結果上看,CS-YOLOv7s 的準確率最高為0.9668;召回率最高為0.8554;在置信度為0.5 時mAP 最高為0.8733。當置信度為0.5 時,模型改進前后其平均精準度的均值mAP 曲線如圖7 所示。從圖中可看出,CS-YOLOv7s 的平均精準度與YOLOv7-tiny-SiLU 基本持平,稍有下降。
圖7 mAP@0.5 曲線對比Fig.7 mAP@0.5 curve comparison
使用Y O L O v 5 s、Y O L O v 7-t i n y-S i L U、C SYOLOv7s 對驗證數(shù)據(jù)進行檢測,完成消融實驗,檢測結果如圖8 所示。從檢測結果來看,CS-YOLOv7s對海上目標檢測的準確性明顯優(yōu)于YOLOv5s,略差于YOLOv7-tiny-SiLU。
圖8 檢測結果示例。Fig.8 Example of test results
網(wǎng)絡參數(shù)對比如表1 所示。
表1 算法模型性能對比Tab.1 Algorithmic model performance comparison
可以看出,相比于YOLOv5s 與YOLOv7-tiny-SiLU,CS-YOLOv7s 算法網(wǎng)絡模型層數(shù)雖然有所增加但模型權重大大下降,參數(shù)量相對較少,檢測速度有所提高,且經(jīng)過模型重參化后權重僅為9.3 M。對于算法移植于其他平臺更加友好,即使在高清圖像中也能基本滿足實時檢測的需要。改進后的CS-YOLOv7s 算法能夠滿足海上目標檢測場景中的實時檢測任務。
針對海上目標檢測任務,本文提出一種改進的YOLOv7 算法,運用 MobileViT 模塊提高骨干網(wǎng)絡的特征提取能力,參照CBAM 特征注意力機制,利用通道注意力模塊與空間注意力模塊設計更為輕量化的特征融合網(wǎng)絡。結合注意力機制改進后的模型在準確率少量下降的情況下,速度達到22.64 幀/秒,權重為9.3 M。結果表明,CS-YOLOv7s 模型能夠滿足檢測準確性與實時性要求,可以更好地完成海上目標檢測任務。