婁樹理,王巖,郭建勤,公維鋒
(1.煙臺大學 物理與電子信息學院,山東 煙臺 264005;2.山東電子職業(yè)技術(shù)學院 電子與通信工程系,山東 濟南 250200;3.高效能服務器和存儲技術(shù)國家重點實驗室,山東 濟南 250101)
在現(xiàn)代海戰(zhàn)中,能否快速準確地識別出艦船目標并引導精確制導武器對其摧毀,是削弱敵方戰(zhàn)斗力量的關(guān)鍵。紅外成像制導具有制導精度高、抗干擾能力強、隱蔽性好等優(yōu)點,在各種精確制導體系中占據(jù)著重要的地位[1]。由于紅外艦船圖像受海雜波、雨雪等干擾影響嚴重,且目標和背景復雜多樣,如何快速準確地檢測識別出艦船目標,是紅外成像制導武器的技術(shù)難題和關(guān)鍵問題,一直是國內(nèi)外研究的熱點。
傳統(tǒng)的目標檢測算法性能大多依賴于人工設(shè)計的特征和分類器[2],且人工設(shè)置的特征適應性較差,難以很好地檢測復雜場景下的艦船目標。隨著深度學習的發(fā)展,許多基于深度學習的目標檢測算法相繼涌現(xiàn),這類算法通過神經(jīng)網(wǎng)絡(luò)提取目標特征,無需人工設(shè)計特征,提高了目標檢測的精度與效率。基于深度學習的目標檢測算法分為兩類:一類是雙階段目標檢測算法,如R-CNN(regionbased convolutional neural networks)[3]和Faster RCNN(faster region-based convolutional neural networks)[4]等算法。顧佼佼[5]等人在Faster R-CNN 算法中將特征圖進行拼接形成多尺度特征,提高特征圖語義信息;AVOLA D[6]等人在Faster R-CNN 算法中引入多流(MS)架構(gòu),在每個流上施加不同的核大小來模擬多尺度圖像分析。這類算法精度高,但檢測速度較慢,難以達到實時檢測的效果。另一類是單階段目標檢測算法,如SSD(single shot multibox detection)[7]和YOLO(you only look once)[8-11]系列等算法。CHOI H T[12]等人在SSD 算法中引入了由注意流和特征映射級聯(lián)流組成的增強特征映射塊(EMB);陳耀祖[13]等人在YOLOv4 的算法中使用模糊ISODATA 動態(tài)聚類算法對先驗框數(shù)目進行優(yōu)化;MUKHIDDINOV M[14]等人采用h-swish激活函數(shù)來減少YOLOv4 的運行時間。這類目標檢測算法為端到端的目標檢測,相比于雙階段目標檢測算法,其檢測速度更快,但檢測精度略低。
針對如何在復雜環(huán)境中快速準確檢測出紅外艦船目標的技術(shù)難題,本文提出了一種改進后的YOLOX-S 紅外艦船目標檢測算法,將深度可分離卷積代替FPN 及YOLOHead 殘差結(jié)構(gòu)中的傳統(tǒng)卷積,提高網(wǎng)絡(luò)的運行與檢測速度;引入ECANet(efficient channel attention network)通道注意力機制,提高對艦船目標的識別能力,降低艦船目標的虛檢率與漏檢率;引用CIoU(complete-IoU)損失函數(shù),使目標框回歸更加穩(wěn)定,提高網(wǎng)絡(luò)對艦船目標的檢測精度。
YOLOX[15]算法是曠視科技研究院在2021 年提出的新型單階段目標檢測算法,相較之前的YOLO 系列算法,YOLOX 算法的改進主要包括數(shù)據(jù)增強、無錨點和預測分支解耦,不僅在平均精度(mAP)上超越了YOLOv3、YOLOv4 和YOLOv5,在檢測速度上也極具競爭力。YOLOX 系列主要包括YOLOX-S、YOLOX-M、YOLOX-L 和YOLOXX,其中YOLOX-S 參數(shù)量最少,方便部署且具有代表性。YOLOX-S 的網(wǎng)絡(luò)結(jié)構(gòu)模型如圖1 所示,首先對輸入圖像進行Mosaic 數(shù)據(jù)增強,其次經(jīng)過Backbone 部分進行淺層特征提取,輸出的3 個特征層傳入加強特征提取網(wǎng)絡(luò)進行深度特征提取,最后將得到的3 個有效特征層分別傳入Decoupled Head 進行目標邊界框預測。
圖1 YOLOX-S 網(wǎng)絡(luò)結(jié)構(gòu)模型Fig.1 YOLOX-S network structure model
為提高網(wǎng)絡(luò)檢測速度與精度,本文對YOLOXS 算法進行了改進,改進后的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2 所示,首先通過主干網(wǎng)絡(luò)CSPDarknet(cross stage partial darknet)對圖像進行特征提??;將提取出的特征圖作為輸入,利用ECANet通道注意力機制,過濾冗余信息,加強模型重要信息提出能力;將增強后的特征圖傳入改進后的Neck-FPN中,進一步增強特征圖的語義信息;最后將特征圖分別傳入改進后的Decoupled Head 中進行目標框預測。
圖2 改進的YOLOX-S 網(wǎng)絡(luò)結(jié)構(gòu)模型Fig.2 Improved YOLOX-S network structure model
由于海戰(zhàn)場環(huán)境瞬息萬變,算法的檢測速度尤為重要。YOLOX-S 網(wǎng)絡(luò)中的殘差結(jié)構(gòu)均使用傳統(tǒng)卷積[16],傳統(tǒng)卷積的參數(shù)量及計算量過大,嚴重影響算法的檢測速度。為了提高算法的檢測速度,使其更容易快速實現(xiàn),本文引入深度可分離卷積,降低模型的參數(shù)量,提高算法的檢測速度。為保證模型檢測的準確率,將深度可分離卷積用于FPN(feature pyramid networks)中下采樣部分及YOLOHead 殘差結(jié)構(gòu)中,主干部分殘差結(jié)構(gòu)及CSPLayer 部分保持不變。
傳統(tǒng)卷積先將各個通道輸入的特征圖與相應卷積核進行卷積相乘,最后累加得到輸出特征,主要結(jié)構(gòu)如圖3 所示。
圖3 傳統(tǒng)卷積結(jié)構(gòu)Fig.3 Traditional convolution structure
圖3 中L和Q分別為輸入和輸出圖像的大小,H為卷積核大小,C和P分別為輸入和輸出的通道數(shù)。傳統(tǒng)卷積(SC)的參數(shù)量W為
計算量O為
深度可分離卷積[17]則是將提取特征和結(jié)合特征分為3×3 的深度卷積和1×1 的逐點卷積兩部分,首先對每一個輸入通道進行一個深度卷積核操作,然后利用1×1 的卷積將深度卷積輸出結(jié)果結(jié)合到特征中組合為新的特征,其結(jié)構(gòu)圖如圖4 所示。
圖4 深度可分離卷積結(jié)構(gòu)Fig.4 Depthwise separable convolution structure
深度可分離卷積(DSC)的參數(shù)量W為
計算量O為
兩種卷積參數(shù)量與計算量比為
紅外艦船圖像主要反映艦船目標與海天背景的輻射能量差異,由于島嶼等物體輻射能量和海天背景也有較大差異,實際檢測時島嶼等物體會對目標檢測形成干擾,并且實際紅外圖像中噪聲影響嚴重,這些因素嚴重影響紅外艦船目標的檢測精度。為了增強網(wǎng)絡(luò)的抗干擾能力,降低網(wǎng)絡(luò)對艦船目標的虛檢率與漏檢率,本文在YOLOXS 主干網(wǎng)絡(luò)后引入ECANet 通道注意力機制[18],抑制島嶼等物體干擾信息的影響,提高網(wǎng)絡(luò)對艦船目標的檢測精度。
在ECANet 通道注意力機制過程中,首先對輸入的特征圖進行全局平均池化,其次利用1D 卷積進行特征提取,經(jīng)過Sigmoid 激活函數(shù)獲得每一個特征點的權(quán)值,最后與輸入的特征圖相乘,得到新的特征圖。ECANet 通道注意力機制結(jié)構(gòu)如圖5 所示。
圖5 ECANet 通道注意力機制Fig.5 ECANet channel attention mechanism
圖5中,H、W、C分別為輸入特征圖的高度、寬度、通道數(shù),GAP(global average pooling)為全局平均池化,k表示卷積核大小。σ為Sigmoid 非線性激活函數(shù),具體表達式為[19]
式中z表示神經(jīng)網(wǎng)絡(luò)上一層節(jié)點的輸出。k的表達式為[18]
式中:γ取2,b取1;|t|odd表示距離t最近的奇數(shù)。
在YOLOX-S 算法中,損失函數(shù)包括類別損失(Lcls)、置信度損失(Lobj)和邊界框損失(LIoU)。IoU(intersection over union)為交并比,反映目標檢測中預測框與真實框的重疊程度,其公式為[20]
式中:A表示預測邊界框;B表示真實邊界框。由于IoU 并沒有考慮兩框之間的距離,當預測框與真實框無相交時,無法反映兩框的距離大小,導致網(wǎng)絡(luò)準確率下降。因此本文引入CIoU(complete-IoU)損失函數(shù),CIoU 考慮預測框與真實框之間的距離、尺度以及重疊率等因素,增加了目標框回歸的穩(wěn)定性,提高了網(wǎng)絡(luò)對艦船目標的檢測精度。CIoU的公式為[11]
式中:b、bgt分別為預測框和真實框的中心位置;ρ2(b,bgt)為兩框中心位置的歐式距離;c為兩框外接矩形的對角線距離;α為權(quán)重系數(shù);ν表示衡量長寬比的相似性。α的計算公式為
ν的計算公式為
式中:w、h分別為預測框的寬度、高度;wgt、hgt分別為真實框的寬度和高度。
LCIoU的計算公式為
類別損失包含檢測目標的類別信息,置信度損失包含圖像的前景與背景信息,兩者損失使用BCEWithLogitsLoss 函數(shù)進行計算,該函數(shù)計算公式見式(14)、式(15),類別與置信度損失使用該函數(shù)計算時網(wǎng)絡(luò)穩(wěn)定性更強。
式中:x、y為輸入的張量;N為Batch Size;n為每批次預測的標簽數(shù);c為目標類別;σ為Sigmoid 非線性激活函數(shù)。針對本文任務中艦船目標尺寸不規(guī)則等特點,加大CIoU 損失權(quán)重w,以此來增加模型對艦船目標尺寸變化的感知能力,提高準確度。損失函數(shù)最終表達式為
本文所有仿真實驗均在Windows11 操作系統(tǒng);搭載的CPU 版本為AMD Ryzen 75800H with Radeon Graphics 3.20 GHz;GPU 為NVIDIA GeForce GTX 3060(6 GB);深度學習框架為Pytorch 1.10.1。訓練過程分為凍結(jié)階段和解凍階段,凍結(jié)階段過程中的參數(shù)為:epoch=50,batchsize=6,momentum=0.937,Init_lr=1e-3,Min_lr=Init_lr×0.01,優(yōu)化器使用adam。解凍后訓練參數(shù)為:epoch=100,batchsize=4,momentum=0.937,Init_lr=1e-3,Min_lr=Init_lr×0.01,優(yōu)化器使用adam。
由于開源的紅外艦船圖像很少,因此本文實驗所用數(shù)據(jù)集來源于實際采集的紅外艦船圖像,共1 263 張艦船圖像,并且按照PASCAL VOC 數(shù)據(jù)集的格式使用Labelimg 圖片標注工具對圖像進行標注。該數(shù)據(jù)集的圖像波段為8 μm~12 μm 和3 μm~5 μm,圖像大小為320 像素×240 像素、621 像素×471 像素,包含多種不同形狀的艦船目標。該數(shù)據(jù)集按照9:1 的比例分為訓練集和驗證集,且圖像中包含多種背景及干擾目標,符合本文實驗的需要。
為了從不同方面評價所提算法對艦船目標檢測的準確、實時性,本文選取了平均精度(average precision,AP)和檢測速度(frame per second,F(xiàn)PS)作為評價指標。AP 兼顧了精準率(precision)和召回率(recall),常用來評估模型的精度有效性,F(xiàn)PS 為每秒檢測圖像的幀數(shù),用來評估模型的實時性。Params 為模型參數(shù)量的大小,用來評估模型的復雜度。
精準率是指模型預測的所有艦船目標中,預測正確的比例。召回率是指所有真實艦船目標中,模型預測正確的目標比例。兩者表達式為
式中:P為精確率;R為召回率;NTP為IoU>0.5 的檢測框數(shù)量,NFP為IoU<=0.5 的檢測框數(shù)量;NFN為沒有檢測到的真實檢測框的數(shù)量。
平均精度(AP)可以用來評估艦船目標檢測的檢測效果,它是P-R曲線在[0,1]區(qū)間內(nèi)精準率對召回率的積分,即:
式中PAP表示艦船目標檢測平均精度。所有類別的PAP的均值為MAP,由于本文算法為單目標檢測,即PAP=MAP。
為驗證改進的YOLOX-S 算法在艦船目標檢測任務中的性能表現(xiàn),將其與現(xiàn)階段主流的目標檢測算法進行對比實驗,考慮到實驗所用數(shù)據(jù)集存在制作誤差等因素,算法對比實驗使用IoU=0.75條件下的精度對比。對比結(jié)果如表1 所示。
表1 不同算法對比Table 1 Comparison of different algorithms
通過對比可知,改進后的YOLOX-S 算法AP 達到98%,F(xiàn)PS 達到56 幀/s,相較于改進前YOLOXS 算法,AP、FPS 分別提高了3%、6 幀/s,精度與速度都得到了一定的提升,并且Params 減少了24.6%,能夠更容易快速實現(xiàn)。與其他算法相比,改進后的YOLOX-S 算法在精度、速度和參數(shù)量大小等方面,具有明顯的優(yōu)勢。
為驗證每個模塊對算法的影響,本文設(shè)置消融實驗,使用相同的實驗設(shè)備以及數(shù)據(jù)集對網(wǎng)絡(luò)不同模塊組合進行性能測試,并對比實驗數(shù)據(jù)分析每個模塊的性能,其中“√”表示算法在實驗中使用了改進模塊,“-”表示未使用改進模塊,實驗結(jié)果如表2 所示。
表2 消融實驗結(jié)果對比表Table 2 Comparison of ablation experiment results
由表2 可知,對比原始算法,引入深度可分離卷積模塊DSC后,雖然精度略低于原始算法,但檢測速度提升較大,參數(shù)量也較大程度的減少;單獨引入ECANet 模塊后,雖然檢測速度略有下降,但算法精度得到提升;單獨引入CIoU 損失函數(shù)模塊,算法精度略有提升。多個模塊組合實驗中,對比引入單個模塊,引入深度可分離卷積和ECANet模塊后,檢測精度和檢測速度均有較大提升。實驗數(shù)據(jù)表明,本文提出的改進算法,具有檢測速度快和參數(shù)量小的優(yōu)勢,且算法平均精度得到進一步提升,達到98%。
為驗證本文算法的有效性,選取不同系列的紅外艦船圖像,與原始算法進行效果檢測對比。選取A、B、C 3 類典型海面目標紅外圖像,圖像A 類為8 μm~12 μm 的海面船只圖像,圖像中主要干擾是天氣和海雜波的干擾,也存在探測器盲元帶來的噪聲干擾;圖像B 類為3 μm~5 μm 的海面船只圖像,此波段下海雜波干擾相對較為嚴重;圖像C 類為8 μm~12 μm 的海面船只圖像,相比前兩類干擾源之外,此類還有島岸背景干擾。兩種算法的檢測效果對比圖如圖6 所示,其中圖A(g)、圖B(g)、圖C(g)為本文改進的YOLOX-S 算法檢測的圖像,圖A(y)、圖B(y)、圖C(y)為原始算法檢測的圖像。
圖6 檢測效果對比Fig.6 Comparison of detection effect
實驗結(jié)果表明,原始算法對A、B 類圖像的檢測效果較好,能夠較完整地檢測出艦船目標,由于C 類圖像中存在大面積島嶼干擾等因素,原始算法對C 類圖像檢測出現(xiàn)將島岸錯檢為目標的情況,檢測效果較差;本文改進的YOLOX-S 算法對A、B、C 3 類圖像的檢測效果均良好,驗證了本文算法檢測精度更高、抗干擾性更強,尤其在大面積島嶼干擾的背景下,算法檢測精度提升較大,能夠充分勝任當前的檢測任務。
本文將YOLOX-S 算法應用到紅外艦船目標檢測領(lǐng)域中,針對艦船目標檢測任務提出一種改進的YOLOX-S 算法,使用深度可分離卷積,在保證網(wǎng)絡(luò)檢測精度的前提下,提高檢測速度,同時結(jié)合注意力機制與CIoU 損失函數(shù),進一步提升算法的檢測性能。相較于改進前YOLOX-S 算法,艦船目標檢測平均精度提高了3%,檢測速度提高了6 幀/s,算法參數(shù)量減少了24.6%。同時,對比實驗結(jié)果表明,本文提出的改進算法與現(xiàn)階段主流的檢測算法相比,具有較好的檢測性能,能夠勝任艦船目標檢測任務。