姬嗣愚, 王永生
(1.海軍航空大學(xué),山東 煙臺(tái) 264000; 2.中國(guó)人民解放軍91475部隊(duì),遼寧 葫蘆島 125000)
目前隨著技術(shù)的發(fā)展,海上武器裝備逐漸多樣化,在執(zhí)行海上演練、作戰(zhàn)等任務(wù)時(shí),必須依賴火炮、魚(yú)雷、導(dǎo)彈等武器進(jìn)行防衛(wèi)和攻擊。因此,快速獲取武器射擊彈著點(diǎn)的準(zhǔn)確位置并及時(shí)反饋給指揮部門(mén),便于實(shí)時(shí)評(píng)估射擊結(jié)果,為后續(xù)的訓(xùn)練或作戰(zhàn)方案的制定、切實(shí)提高部隊(duì)?wèi)?zhàn)斗力水平具有重要的指導(dǎo)意義。
現(xiàn)階段主要依靠雷達(dá)號(hào)手觀察彈著點(diǎn)處水柱信號(hào)評(píng)判射擊效果,從使用角度來(lái)看,這種依靠人工檢測(cè)彈著點(diǎn)的方法主要存在測(cè)量精度不準(zhǔn)、測(cè)量時(shí)間長(zhǎng)、彈著點(diǎn)重疊時(shí)無(wú)法辨別等問(wèn)題。近年來(lái),目標(biāo)檢測(cè)技術(shù)取得了巨大的成功,已在海防監(jiān)視、精確制導(dǎo)、視頻監(jiān)控等多個(gè)領(lǐng)域得到廣泛應(yīng)用[1],為彈著點(diǎn)的檢測(cè)提供了新的方向。當(dāng)前的目標(biāo)檢測(cè)算法主要通過(guò)引入卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)提取高層特征[2]。根據(jù)檢測(cè)過(guò)程中是否包含候選區(qū)域目標(biāo)推薦這一過(guò)程,將其分為基于候選區(qū)域思想的兩階段算法[3-6]和基于回歸思想的一階段算法[7-12]。前者的典型算法包括R-CNN系列、R-FCN等,這類(lèi)算法精度較高,但相比一階段算法速度較慢;后者的典型算法包括YOLO系列、SSD和DSSD等。雖然這些算法都在不斷地完善目標(biāo)檢測(cè)的精度和速度,但是對(duì)于海上彈著點(diǎn)水柱信號(hào)的檢測(cè)并不完全適用。YOLO算法可以將目標(biāo)物體的位置信息和類(lèi)別信息同時(shí)檢測(cè)出來(lái),實(shí)現(xiàn)端到端的訓(xùn)練,檢測(cè)速度很快[13],因此本文采用YOLOv5模型作為基礎(chǔ)模型。結(jié)合采集到的水柱信號(hào)尺寸變化大、形態(tài)變化多的特點(diǎn),本文提出CAs-YOLOv5s算法,通過(guò)數(shù)據(jù)增強(qiáng)、引入坐標(biāo)注意力機(jī)制(Coordinate Attention,CA)和Softpool池化方法,對(duì)攝像頭捕獲到的彈著點(diǎn)處的水柱信號(hào)進(jìn)行目標(biāo)檢測(cè),為后續(xù)獲得彈著點(diǎn)的位置及距離信息奠定基礎(chǔ)。
YOLO系列發(fā)展至今已經(jīng)到第5代(YOLOv5)[14],相比于之前的算法,YOLOv5檢測(cè)速度快,且更加輕量化,在某種程度上已成為YOLO系列中性能最優(yōu)的算法。根據(jù)網(wǎng)絡(luò)的深度與寬度不同,YOLOv5提供了4個(gè)版本,分別為YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x,4個(gè)版本模型大小與精度依次遞增,由瓶頸層(Bottleneck)數(shù)目區(qū)分,能夠根據(jù)應(yīng)用場(chǎng)景選取合適大小的模型。本文主要針對(duì)海上彈著點(diǎn)水柱信號(hào)進(jìn)行檢測(cè),為了滿足模型輕量化和檢測(cè)實(shí)時(shí)性要求,將基準(zhǔn)模型選擇為YOLOv5s,后續(xù)可以更方便地應(yīng)用于嵌入式設(shè)備中。YOLOv5s算法的總體結(jié)構(gòu)如圖1所示,共包括4個(gè)組成部分。
1) 輸入端:通過(guò)mosaic數(shù)據(jù)增強(qiáng)方式,一次讀取4張圖片,分別對(duì)每張圖片進(jìn)行翻轉(zhuǎn)、縮放和色彩變換等操作后,將4張圖片和圖中的標(biāo)注框進(jìn)行組合,在同一圖片中實(shí)現(xiàn)多背景下多目標(biāo)的組合。其原理為
(1)
同時(shí),YOLOv5s利用自適應(yīng)錨框計(jì)算得到每次訓(xùn)練時(shí)訓(xùn)練集中的最佳初始錨框值,最后將原始圖像縮放到統(tǒng)一標(biāo)準(zhǔn)尺寸,再送入檢測(cè)網(wǎng)絡(luò)中。
2) 骨干網(wǎng)絡(luò):在YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)中,將原始3通道608像素×608像素的圖像輸入Focus結(jié)構(gòu),采用切片操作拼接為12通道304像素×304像素的特征圖,隨后經(jīng)過(guò)一系列CSP結(jié)構(gòu)完成特征提取[15]。
3) 頸部:借鑒了YOLO V4中的頸部結(jié)構(gòu),采用特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)與路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PAN)相結(jié)合的方式,F(xiàn)PN層自頂向下與骨干網(wǎng)絡(luò)特征圖融合,傳達(dá)強(qiáng)語(yǔ)義特征,PAN則自底向上傳達(dá)強(qiáng)定位特征,二者結(jié)合從不同的主干層對(duì)不同的檢測(cè)層進(jìn)行特征聚合[10]。
4) 輸出端:YOLOv5s采用GIOU_Loss作為損失函數(shù),輸出3個(gè)尺度的特征圖,分別為80×80,40×40和20×20的網(wǎng)格,分別用于檢測(cè)小、中、大物體。每個(gè)網(wǎng)格包含3個(gè)預(yù)測(cè)框,每個(gè)預(yù)測(cè)框中含有物體的置信度和預(yù)測(cè)框的位置信息,最后通過(guò)非極大值抑制(Non-Maximum Suppression,NMS)剔除重復(fù)冗余的預(yù)測(cè)框,保留置信度最高的預(yù)測(cè)框信息[16],從而完成目標(biāo)檢測(cè)過(guò)程。
圖1 YOLOv5s網(wǎng)絡(luò)總體框架Fig.1 Structure of YOLOv5s network
海上彈著點(diǎn)水柱信號(hào)具有尺寸變化大、形狀不規(guī)則的特點(diǎn),原來(lái)的YOLOv5s模型無(wú)法充分滿足檢測(cè)需求。因此,提出CAs-YOLOv5s算法模型,通過(guò)引入更優(yōu)的網(wǎng)絡(luò)模塊與數(shù)據(jù)增強(qiáng)策略提高目標(biāo)檢測(cè)能力。
注意力模塊可以視為一種增強(qiáng)移動(dòng)網(wǎng)絡(luò)特征表達(dá)能力的計(jì)算單元,通常用來(lái)告訴模型需要關(guān)注哪些內(nèi)容和位置,目前已經(jīng)被廣泛應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)來(lái)加強(qiáng)模型的性能。由于輕量級(jí)網(wǎng)絡(luò)計(jì)算能力有限,目前最常用的注意力機(jī)制是SE(Squeeze-and-Excitation)模塊,它通過(guò)2D全局池化將輸入轉(zhuǎn)化為單個(gè)特征向量,用極少的計(jì)算成本獲得了顯著的性能提升[17]。然而,SE模塊僅考慮了通道間信息的編碼,丟失了重要的位置信息。針對(duì)上述問(wèn)題,文獻(xiàn)[18]提出了坐標(biāo)注意力,在特征編碼的同時(shí)保留了位置信息,結(jié)構(gòu)如圖2所示。
圖2 SE模塊與CA模塊結(jié)構(gòu)圖Fig.2 Structure of SE module and CA module
CA模塊的具體步驟為:對(duì)于給定的輸入X,先使用尺寸(H,1)和(1,W)的池化核沿著水平坐標(biāo)方向和豎直坐標(biāo)方向?qū)γ總€(gè)通道進(jìn)行編碼,因此,高度為h及寬度為w的第c個(gè)通道可以分別表示為
(2)
(3)
上述兩個(gè)變換可以沿著兩個(gè)空間方向集成特征,并生成一對(duì)特征圖。接著,對(duì)特征圖分別編碼得到一對(duì)方向感知和位置敏感的注意力圖,該注意力圖可以互補(bǔ)地應(yīng)用于輸入特征圖,從而增強(qiáng)目標(biāo)表達(dá)能力,具體為
f=δ(F1([zh,zw]))
(4)
gh=σ(Fh(fh))
(5)
gw=σ(Fw(fw))
(6)
(7)
式中:F1表示1*1卷積;f表示通過(guò)下采樣操作δ得到的中間特征圖,沿空間維度切分后可得到兩個(gè)單獨(dú)的張量fh和fw,再利用1*1卷積Fh和Fw以及σ變換得到與X具有同樣通道數(shù)的gh與gw,經(jīng)拓展后用作注意力權(quán)重作用于輸入端,得到最終輸出yc。
與SE模塊產(chǎn)生一個(gè)特征向量的方法不同,CA模塊將通道注意力拆分為兩個(gè)1維特征編碼過(guò)程,分別沿著兩個(gè)方向集成空間特征,既可以捕捉到沿著一個(gè)空間方向的長(zhǎng)程依賴,也可以將精確的位置信息沿著另一個(gè)方向保存,彌補(bǔ)了SE模塊的缺陷。本文將CA模塊嵌入CSP結(jié)構(gòu)中,如圖3所示,不需引入過(guò)多的計(jì)算開(kāi)銷(xiāo)就可以進(jìn)行更精確的目標(biāo)定位,進(jìn)而有助于更好地識(shí)別決策。
圖3 CA模塊引入前后CSP結(jié)構(gòu)對(duì)比圖Fig.3 Comparison of CSP structure before and after CA module introduction
池化操作的主要意義是通過(guò)減小特征圖的尺寸進(jìn)而減少計(jì)算需求和內(nèi)存開(kāi)銷(xiāo),從而支持創(chuàng)建更大、更深層次的網(wǎng)絡(luò)結(jié)構(gòu)。目前,大多數(shù)方法都是依賴于最大池化和平均池化的不同組合,而大量實(shí)驗(yàn)表明這兩種方法在池化過(guò)程中易損失重要檢測(cè)信息,因而文獻(xiàn)[19]提出了Softpool池化方法,可以保留更多細(xì)粒度特征信息。Softpool以自然指數(shù)為基礎(chǔ),通過(guò)Softmax加權(quán)方法來(lái)保留更多的特征表達(dá)。具體來(lái)說(shuō),Softpool為內(nèi)核區(qū)域R內(nèi)每一個(gè)激活ai賦予權(quán)重wi,wi定義為該激活的自然指數(shù)與區(qū)域R內(nèi)所有激活的自然指數(shù)之和的比值。Softpool操作的輸出值是通過(guò)對(duì)內(nèi)核區(qū)域R內(nèi)所有加權(quán)激活的標(biāo)準(zhǔn)求和得到的
(8)
圖4 Softpool替換前后SPP模塊對(duì)比圖Fig.4 Comparison of SPP structure before and after Softpool replacement
由圖5可以看出,相比最大池化與平均池化,Softpool可以平衡二者的影響,同時(shí)利用它們的有利屬性,因?yàn)樵搮^(qū)域的所有激活都對(duì)最終輸出有貢獻(xiàn),而較高的激活比較低的激活更占據(jù)主導(dǎo)地位,因此在增大相近特征區(qū)分度的同時(shí),保留了更多的特征信息,可以有效提高目標(biāo)檢測(cè)精度。
由于海上水柱目標(biāo)數(shù)據(jù)較難獲得,且在收集到的數(shù)據(jù)集中,背景相對(duì)單一。傳統(tǒng)的離線數(shù)據(jù)增強(qiáng)方式雖然可以一次性擴(kuò)充較多數(shù)據(jù),但同時(shí)也會(huì)耗費(fèi)較多的存儲(chǔ)空間,本文采用了mixup數(shù)據(jù)增強(qiáng)策略,mixup以線性插值的方式來(lái)構(gòu)建新的訓(xùn)練樣本和標(biāo)簽,是一種與數(shù)據(jù)本身無(wú)關(guān)的數(shù)據(jù)增強(qiáng)策略,只需引入極小的計(jì)算開(kāi)銷(xiāo)就可以改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)的泛化能力[20],彌補(bǔ)了傳統(tǒng)的離線數(shù)據(jù)增強(qiáng)方式的不足。其原理如下
λ=B(α,β)
(9)
(10)
(11)
圖6 不同α,β取值情況下貝塔分布Fig.6 Beta distribution under different α,β values
由圖6可知,無(wú)論參數(shù)α,β如何取值,貝塔分布的期望始終等于0.5,取值越大,生成的λ偏向0.5的可能性越高,圖7展示了其中兩張圖片在λ不同取值情況下的mixup可視化結(jié)果,在本文中α,β取值均為8,即大多數(shù)樣本以0.5附近概率進(jìn)行mixup數(shù)據(jù)增強(qiáng),以此增強(qiáng)虛擬樣本的多樣性和有效性。
圖7 mixup可視化結(jié)果Fig.7 Visualization results of mixup
針對(duì)海上彈著點(diǎn)水柱信號(hào)的檢測(cè),在YOLOv5s算法基礎(chǔ)上,結(jié)合2.1~2.3節(jié)的改進(jìn),得到改進(jìn)后的CAs-YOLOv5s算法的整體結(jié)構(gòu)如表1所示。
表1中,輸入來(lái)源列表示當(dāng)前模塊的輸入來(lái)源于哪一層的輸出,-1是指該層輸入來(lái)自上一層輸出,模塊類(lèi)名列的BottleneckCSP表示已經(jīng)嵌入坐標(biāo)注意力的CSP結(jié)構(gòu),參數(shù)列的值分別代表該模塊的輸入通道數(shù)、輸出通道數(shù)、卷積核大小和步長(zhǎng)信息等。經(jīng)過(guò)計(jì)算,改進(jìn)后的CAs-YOLOv5s共有255層,比原始的YOLOv5模型的283層要少,效率更高。
表1 CAs-YOLOv5s整體結(jié)構(gòu)
本文實(shí)驗(yàn)環(huán)境為Windows10系統(tǒng),硬件配置為:Intel?CoreTMi7-10750H CPU@2.60 GHz,NVIDIA GeForce GTX1650Ti顯卡,CUDA版本為10.2,CUDNN版本為7.6,利用的深度學(xué)習(xí)框架為Pytorch。
本文的數(shù)據(jù)集主要來(lái)自公開(kāi)的海上演習(xí)或訓(xùn)練任務(wù)的圖片,由于海上彈著點(diǎn)水柱信號(hào)搜集困難,利用遷移學(xué)習(xí)[21]中實(shí)例遷移的思想,將與彈著點(diǎn)處水柱信號(hào)具有相似特征的噴泉作為正樣本輔助訓(xùn)練,共得到744張圖片,再通過(guò)旋轉(zhuǎn)、變換飽和度等方式最終擴(kuò)充為2200張新的樣本數(shù)據(jù)集,將其轉(zhuǎn)化為VOC格式進(jìn)行訓(xùn)練,其中訓(xùn)練集與測(cè)試集的比例為8∶2。
實(shí)驗(yàn)學(xué)習(xí)率采用Warmup策略[22]訓(xùn)練預(yù)熱,緩解模型在初始階段的過(guò)擬合現(xiàn)象,同時(shí)有助于提高訓(xùn)練時(shí)的穩(wěn)定性。在Warmup階段過(guò)后,采用余弦退火算法[23]對(duì)學(xué)習(xí)率進(jìn)行更新。
訓(xùn)練時(shí)的優(yōu)化器采用隨機(jī)梯度下降(SGD)法,其余訓(xùn)練參數(shù)如表2所示。
在訓(xùn)練過(guò)程中記錄模型的損失函數(shù)曲線,如圖8所示。由圖8可以看出,改進(jìn)后的損失函數(shù)在訓(xùn)練初期下降速度更快,整體波動(dòng)較小,且訓(xùn)練到第250輪左右時(shí)損失值達(dá)到了0.15,比改進(jìn)前預(yù)測(cè)邊框的定位精度更高,收斂速度更快。因此,改進(jìn)后的模型訓(xùn)練效果更好。
表2 訓(xùn)練超參數(shù)設(shè)置
圖8 改進(jìn)前后損失函數(shù)曲線Fig.8 Loss function before and after improvement
在對(duì)模型進(jìn)行評(píng)估前,需要選擇合適的評(píng)估指標(biāo)。在本文中,實(shí)驗(yàn)結(jié)果從平均準(zhǔn)確率均值(mAP)、檢測(cè)速度、模型層數(shù)、權(quán)重文件大小4個(gè)方面進(jìn)行綜合衡量,其中,mAP的具體計(jì)算方法如下。
召回率R(Recall)表示預(yù)測(cè)目標(biāo)中預(yù)測(cè)正確樣本占總預(yù)測(cè)樣本的比例,準(zhǔn)確率P(Precision)表示某一類(lèi)別預(yù)測(cè)目標(biāo)中預(yù)測(cè)正確樣本占總正確樣本的比例,其定義分別為
(12)
(13)
對(duì)于二元分類(lèi)問(wèn)題,其標(biāo)記類(lèi)與預(yù)測(cè)類(lèi)的判斷結(jié)果有4種,即PT,PF,NT,NF,混淆矩陣如表3所示。
表3 混淆矩陣
mAP通常用來(lái)評(píng)估一個(gè)檢測(cè)算法的檢測(cè)準(zhǔn)確度,數(shù)值越大檢測(cè)效果越好。由于準(zhǔn)確率與召回率是一對(duì)相互矛盾的指標(biāo),因此通常采用召回率與準(zhǔn)確率所圍成的P-R曲線面積作為最優(yōu)解,用平均準(zhǔn)確率(AP)衡量。AP和mAP算式分別為
(14)
(15)
式中,N為檢測(cè)的類(lèi)別數(shù)。本次實(shí)驗(yàn)中,由于目標(biāo)類(lèi)別只有一類(lèi),因此mAP值等于AP值。由實(shí)驗(yàn)得知,改進(jìn)前的mAP值為90.21%,改進(jìn)后的mAP值為94.75%,其P-R曲線見(jiàn)圖9。模型的各項(xiàng)性能對(duì)比如表4所示。
圖9 改進(jìn)前后的P-R曲線Fig.9 P-R curve before and after improvement
表4 算法性能對(duì)比
從表4中可以看出,改進(jìn)后的模型在檢測(cè)精度方面提高4.54%,達(dá)到了94.75%;在檢測(cè)速度方面,改進(jìn)后的模型處理速度稍有降低,與引入了CA模塊和Softpool池化方法增加了參數(shù)量有關(guān),但檢測(cè)速度仍達(dá)到了23.51幀/s,基本可以滿足實(shí)時(shí)性要求;此外,改進(jìn)后的模型權(quán)重由原先的14.4 MiB增加到了15.0 MiB,雖然略有增加但依然滿足輕量級(jí)標(biāo)準(zhǔn),且改進(jìn)后的模型層數(shù)更少,說(shuō)明改進(jìn)后的CAs-YOLOv5s模型不需要增加過(guò)多的計(jì)算和內(nèi)存消耗就可以提高檢測(cè)精度,運(yùn)用在海上彈著點(diǎn)水柱目標(biāo)檢測(cè)任務(wù)中是有效的。
圖10(a)與圖10(b)分別為原YOLOv5s模型和改進(jìn)后的CA-YOLOv5s模型對(duì)部分樣本的檢測(cè)效果。前3張圖片中的水柱信號(hào)在角度、大小、形狀方面有較大差異,可以看出,改進(jìn)后的CA-YOLOv5s模型對(duì)檢測(cè)目標(biāo)的置信度均有不同程度的提高,且穩(wěn)定在0.9以上;對(duì)于第4張圖片,是用噴泉模擬的海上多彈著點(diǎn)的情況,改進(jìn)后的模型在檢測(cè)置信度提高的同時(shí),預(yù)測(cè)水柱信號(hào)的位置更加準(zhǔn)確,說(shuō)明改進(jìn)后的模型檢測(cè)效果更好。
圖10 改進(jìn)前后部分樣本檢測(cè)結(jié)果Fig.10 Comparison of test results of partial samples before and after improvement
為了進(jìn)一步驗(yàn)證本文提出模塊及網(wǎng)絡(luò)的高效性,將其與其他經(jīng)典網(wǎng)絡(luò)進(jìn)行對(duì)比,并選取mAP和檢測(cè)速度作為不同檢測(cè)算法的評(píng)價(jià)指標(biāo),得到實(shí)驗(yàn)對(duì)比結(jié)果如表5所示。
表5 不同算法實(shí)驗(yàn)對(duì)比
由表5可知,隨著YOLO系列算法不斷改進(jìn),其檢測(cè)結(jié)果的mAP和檢測(cè)速度不斷提高,直至YOLOv5s,其檢測(cè)精度和速度達(dá)到了YOLO系列算法的最優(yōu)性能,但兩階段算法Faster R-CNN的檢測(cè)精度可以超過(guò)YOLOv5s模型,達(dá)到91.38%,但Faster R-CNN檢測(cè)速度最慢,不能滿足實(shí)時(shí)性要求。本文提出的CAs-YOLOv5s算法mAP比Faster R-CNN高出3.37%,雖然檢測(cè)速度不如 YOLOv5s,但已經(jīng)超過(guò)其他算法,達(dá)到23.51 幀/s,可以滿足實(shí)時(shí)性要求。實(shí)驗(yàn)證明,改進(jìn)后的CAs-YOLOv5s算法綜合性能更好,可更好地完成海上彈著點(diǎn)水柱信號(hào)目標(biāo)檢測(cè)任務(wù)要求。
針對(duì)海上彈著點(diǎn)水柱目標(biāo)檢測(cè)任務(wù),提出了一種改進(jìn)的YOLOv5s算法,運(yùn)用mixup數(shù)據(jù)增強(qiáng)策略,通過(guò)線性插值的方式構(gòu)建新的訓(xùn)練樣本和標(biāo)簽,極大地豐富了訓(xùn)練樣本,對(duì)于小樣本訓(xùn)練有極大幫助;在CSP結(jié)構(gòu)中嵌入坐標(biāo)注意力CA模塊,更好地保存了特征的位置信息,有利于增強(qiáng)模型的特征提取能力;將SPP結(jié)構(gòu)中的最大池化Maxpool替換為Softpool,緩解了下采樣帶來(lái)的信息損失,有效保留了更多的細(xì)粒度特征信息。改進(jìn)后的模型mAP達(dá)到了94.75%,檢測(cè)速度達(dá)到23.51幀/s。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的CAs-YOLOv5s模型僅需增加少量的計(jì)算和內(nèi)存消耗就可以使模型檢測(cè)準(zhǔn)確率得到較大提升,同時(shí)滿足檢測(cè)實(shí)時(shí)性要求,可更好地完成海上彈著點(diǎn)水柱信號(hào)目標(biāo)檢測(cè)任務(wù)。