王永生,姬嗣愚,杜彬彬
(海軍航空大學,山東 煙臺 264001)
在執(zhí)行海上演練、作戰(zhàn)等任務時,快速地獲取武器射擊彈著點的準確位置,有利于實時評估射擊結(jié)果,對提高部隊戰(zhàn)斗力水平具有重要的指導意義。
現(xiàn)階段主要依靠雷達號手觀察彈著點處水柱信號評判射擊效果,從使用角度來看,這種依靠人工檢測彈著點的方法主要存在測量精度不準、測量時間長、彈著點重疊時無法辨別等問題。近年來,目標檢測技術(shù)取得了巨大的成功,已在海防監(jiān)視、精確制導、視頻監(jiān)控等多個領域得到廣泛應用[1],為彈著點的檢測提供了新的方向。當前的目標檢測算法主要通過引入卷積神經(jīng)網(wǎng)絡自動提取高層特征[2]。根據(jù)檢測過程中是否包含候選區(qū)域推薦,主要分為基于候選區(qū)域思想的two-stage[3-6]算法和基于回歸思想的one-stage[7-12]算法。前者的典型算法包括R-CNN系列、R-FCN等,突出優(yōu)點是檢測精度較高;后者的典型算法包括YOLO系列、SSD、DSSD等,優(yōu)勢在于檢測速度快。然而,雖然這些算法都在不斷地完善目標檢測的精度和速度,但是對于海上彈著點水柱信號的檢測并不完全適用。Faster R-CNN算法是精度非常高的一種two-stage目標檢測算法,但在實際應用過程中,仍然存在特征信息提取有限、檢測速度過慢的問題,本文以Faster R-CNN作為基礎模型,結(jié)合采集到的水柱信號尺寸變化大、形態(tài)變化多的特點,提出改進的Faster R-CNN模型——ST-Faster R-CNN,以Swin Transformer作為骨干網(wǎng)絡,結(jié)合深淺層特征融合,對攝像頭捕獲到的彈著點處的水柱信號進行目標檢測,為后續(xù)獲得彈著點的位置及距離信息奠定基礎。
Faster R-CNN是在Fast R-CNN算法基礎上改進得到的,主要解決的是由選擇性搜索(selective search)生成候選區(qū)域耗時耗力的問題。Faster R-CNN算法采用RPN(region proposal networks)網(wǎng)絡代替選擇性搜索[5],將特征提取、生成候選區(qū)域、邊框回歸、分類都整合在了一個網(wǎng)絡中,在精度和速度方面都有很大提升,其整體結(jié)構(gòu)如圖1所示。
Faster R-CNN的整體流程可以分為以下3步:
1) 提取特征:從VOC或COCO數(shù)據(jù)集中得到輸入圖片,經(jīng)過VGG16或其他骨干網(wǎng)絡(backbone)提取圖片特征;
2) 生成候選區(qū)域:利用提取到的圖片特征,經(jīng)過RPN網(wǎng)絡,獲取一定數(shù)量的感興趣區(qū)域(region of interests,RoI);
3) 分類與回歸:將感興趣區(qū)域和圖像特征輸入到RoI頭部,對這些感興趣區(qū)域進行分類,判斷其屬于什么類別,同時對位置進行微調(diào)。
RPN網(wǎng)絡作為Faster R-CNN最大的創(chuàng)新點,其主要作用是實現(xiàn)目標的精確定位,本質(zhì)上是利用一個卷積神經(jīng)網(wǎng)絡代替選擇性搜索生成候選區(qū)域,使得輸入任意尺寸的圖片信息可以輸出待檢測目標的候選框矩陣及其得分[13]。候選框在原始圖像上的映射被稱為錨點框(anchor),RPN結(jié)構(gòu)如圖2所示。
圖2 RPN結(jié)構(gòu)框圖Fig.2 RPN structure diagram
通過設置不同比例尺度和面積的anchor,得到k(原算法取值為9)個不同的錨框,將每個anchor映射為512維的低維特征向量,分別輸入到分類層和回歸層中,以端到端的方式進行訓練。分類層負責預測錨框內(nèi)是否含有目標,得到2k個置信得分,回歸層負責回歸邊界框的位置,得到4k個坐標位置參數(shù),最后綜合分類層和回歸層輸出的結(jié)果,得到目標區(qū)域建議框,再輸入到后面的檢測網(wǎng)絡中進行目標檢測。
在Faster R-CNN中,采用邊框回歸來實現(xiàn)錨點框(anchor)到真實標注框(ground truth box,GT)的過渡,使得原始預測框經(jīng)過映射得到一個跟真實值更加接近的回歸窗口。給定原始anchor為A=(Ax,Ay,Aw,Ah),GT=(Gx,Gy,Gw,Gh),當二者相差較小時,近似認為這是一種線性變換,并用線性回歸模型來對回歸檢測框進行微調(diào),達到接近真實值的目的[14]。相應的坐標參數(shù)回歸為:
(1)
海上彈著點水柱信號具有尺寸變化大、形狀不規(guī)則的特點,原來的Faster R-CNN模型無法充分滿足檢測需求。因此,本文提出改進的ST-Faster R-CNN算法模型,以Swin Transformer作為新的骨干網(wǎng)絡,增強特征提取能力,同時在骨干網(wǎng)絡的最后1層與倒數(shù)第2層間進行深淺層特征信息的融合,采用多尺度特征圖對大小不一的目標物體的特征信息進行提取,可以有效改善漏檢誤檢的問題。
Transformer是一種主要基于自注意機制的深度神經(jīng)網(wǎng)絡,最初應用于自然語言處理(natural language processing,NLP)任務,并帶來了顯著的改進[15],受其強大表示能力的啟發(fā),許多研究人員正逐步將其擴展到計算機視覺任務。然而在應用過程中,transformer需要應對2個挑戰(zhàn):一是圖像領域中實體尺度變化大,現(xiàn)有的Transformer架構(gòu)中圖像塊(token)的尺度是固定的,無法適應大范圍變化的目標尺寸;二是圖像分辨率高,像素點多,自注意力機制會帶來龐大的計算量。為了克服上述問題,文獻[16]提出了Swin Transformer,如圖3所示。
圖3 Swin Transformer與Vision TransfomerFig.3 Comparision of Swin Transformer and Vision Transfomer
針對問題1,Swin Transformer從最小的特征塊(patch)開始,通過逐層進行鄰域合并的方式構(gòu)建多層級的特征圖,因此能夠方便地與密集預測網(wǎng)絡FPN、U-Net等配合使用;針對問題2,Swin Transformer利用滑窗操作將注意力限制在一個窗口中,使計算復雜度與輸入圖片線性相關。結(jié)合以上2點,Swin Transformer可以作為骨干網(wǎng)絡應用在目標檢測任務中。Swin Transformer的整體結(jié)構(gòu)如圖4所示。
圖4 Swin Transformer整體結(jié)構(gòu)框圖Fig.4 Swin Transformer structure
具體實現(xiàn)過程為:
2) 在stage1中,線性嵌入(linear embedding)將每個圖像塊的特征維度變?yōu)镃,然后送入Swin Transformer Block并對輸入特征進行計算;
3) stage2-stage4操作相同,通過圖像塊合并(patch merging)將2*2的相鄰圖像塊進行拼接,再經(jīng)過卷積網(wǎng)絡對拼接后的4C維特征進行降維,因此圖像塊數(shù)量減少4倍,特征維度變?yōu)?C。
圖5為2個連續(xù)的Swin Transformer Blocks,包含了一個基于窗口的多頭自注意力模塊(windows multi-head self attention,W-MSA)和基于移動窗口的多頭自注意力模塊(shifted windows multi-head self attention,SW-MSA),實現(xiàn)不同窗口內(nèi)特征的傳遞與交互,其中,Zl為第l層的輸出特征,在每個MSA模塊和每個多層感知器(multilayer perceptron,MLP)之前使用規(guī)范層(layer norm,LN),并在每個MSA和MLP之后使用殘差連接,其表示為:
圖5 2個連續(xù)的Swin Transformer Blocks框圖Fig.5 Two consecutive Swin Transformer Blocks
(2)
(3)
(4)
(5)
為了解決自注意力帶來的龐大計算量的問題,Swin Transformer利用W-MSA將自注意力限制在不重疊的局部窗口中,利用SW-MSA中窗口的移動實現(xiàn)信息交互,如圖6所示,在第l層,采用常規(guī)的窗口分區(qū)方案,在每個窗口內(nèi)計算自注意力,在下一層l+1中,窗口分區(qū)會被移動,產(chǎn)生新的窗口。新窗口中的自注意力計算跨越了l層中窗口的邊界,提供了新的關聯(lián)信息。
圖6 基于移動窗格的自注意力機制計算過程示意圖Fig.6 Self-attention mechanism based on moving panes
W-MSA將輸入圖片劃分成不重合的窗口,然后在不同的窗口內(nèi)進行自注意力計算。假設一個圖片共有h×w個圖像塊,每個窗口中包含M×M個圖像塊,那么W-MSA的計算復雜度為:
Ω(W-MSA)=4hwC2+2M2hwC
(6)
由于窗口中包含的圖像塊數(shù)量遠小于圖片中圖像塊數(shù)量,因此在M固定的前提下,W-MSA的計算復雜度和圖像尺寸呈線性關系。
同時,為了解決窗口移動帶來的數(shù)量增加,提出了向左上角的循環(huán)移位操作(cyclic-shifting)解決方案。如圖7所示,通過對特征圖移位,組成一個可以處理的窗口,這個可處理的窗口是由幾個不相鄰的子窗口組成的,然后使用掩膜機制(mask mechanism)將自注意力在子窗口中進行計算,使得其在保持原有窗口個數(shù)下,獲得等價的計算結(jié)果。
圖7 基于circle shift的移動窗格計算過程框圖Fig.7 Calculation of moving panes based on circle shift
原始的Faster R-CNN網(wǎng)絡中,由RPN根據(jù)原圖片的特征圖直接生成待檢測圖片的候選區(qū)域,而實際所需的特征圖是經(jīng)骨干網(wǎng)絡提取特征后生成的,直接用來進行檢測會造成目標特征信息的遺漏。同時,Swin Transformer應用在Faster R-CNN網(wǎng)絡時必須對二者進行特征大小的匹配,在分析過程中,stage3輸出的特征圖尺寸滿足匹配要求,但淺層網(wǎng)絡提取的主要是細節(jié)特征,圖像的語義特征主要通過網(wǎng)絡更深層的stage4獲得。因此,選取Swin Transformer中最后2層輸出的不同尺度特征圖,利用上采樣和特征拼接后輸入到新的卷積模塊中,經(jīng)RPN網(wǎng)絡生成檢測候選區(qū)域,不僅解決了特征大小匹配的問題,而且增強了網(wǎng)絡提取圖像特征信息的能力,具體融合結(jié)構(gòu)見圖8。
圖8 多尺度特征融合結(jié)構(gòu)框圖Fig.8 Multi-scale feature fusion structure diagram
如圖8所示,在骨干網(wǎng)絡Swin Transformer結(jié)構(gòu)中,將stage4輸出的特征圖進行上采樣,使之與stage3輸出的特征圖尺寸相同,進行特征拼接后輸入到新的模塊Swin_res中,加深網(wǎng)絡結(jié)構(gòu),提高網(wǎng)絡的泛化能力。同時,由于stage3位于較低層,提取到的信息大多是細節(jié)信息,stage4提取到的則是抽象語義信息。采用多尺度特征融合的方式可以提取到大小不一的目標的特征,從而改善漏檢誤檢的問題[17]。圖9為深淺層特征信息融合示意圖。
由圖9可以看出,相比于原來的stage4輸出的高層語義特征圖,經(jīng)過特征拼接后的特征信息融合圖,其信息更加豐富,目標紋理及輪廓等細節(jié)信息展示得更加充分。
圖9 深淺層特征信息融合示意圖Fig.9 Deep and shallow layer information fusion feature diagram
由3.1節(jié)和3.2節(jié)可知,改進后的ST-Faster R-CNN網(wǎng)絡結(jié)構(gòu)如圖10所示。
圖10 改進后的ST-Faster R-CNN網(wǎng)絡結(jié)構(gòu)框圖Fig.10 Improved ST-Faster R-CNN network structure diagram
網(wǎng)絡進行目標檢測的整體實現(xiàn)流程為:
1) 準備數(shù)據(jù),制作數(shù)據(jù)集并劃分訓練集、測試集;
2) 加載網(wǎng)絡初始化參數(shù);
3) 加載網(wǎng)絡模型,進行特征提取與定位,并利用Adam優(yōu)化器對各項參數(shù)進行優(yōu)化;
4) 在每一輪訓練結(jié)束后計算當前模型的損失函數(shù)值,并及時存儲訓練好的模型,選擇效能更好的模型,調(diào)參后繼續(xù)訓練,直至訓練的最后一輪;
5) 訓練結(jié)束后得到本次訓練的所有模型,選擇最佳模型作為最后輸出。
本文利用的深度學習框架為Pytorch,實驗環(huán)境為Ubuntu18.04、CUDA11.1,所有網(wǎng)絡模型的訓練與測試均在CPU為Intel(R) Xeon(R) Silver 4210R CPU@2.40GHz、GPU為Geforce RTX 3090Ti的工作站上進行。
本文數(shù)據(jù)集主要來自公開的海上演習或訓練任務的圖片,由于海上彈著點水柱信號搜集比較困難,利用遷移學習[17]中實例遷移的思想,將與彈著點處水柱信號具有相似特征的噴泉作為正樣本輔助訓練,共得到744幅圖片,再通過旋轉(zhuǎn)、變換飽和度等方式,最終擴充為2 200幅新的樣本數(shù)據(jù)集,將其轉(zhuǎn)化為VOC格式進行訓練,其中訓練集與測試集的比例為8∶2。
訓練過程中,實驗學習率采用StepLR機制對學習率進行更新,優(yōu)化器optimizer采用Adam,其余訓練參數(shù)如表1所示。
表1 訓練參數(shù)Table 1 Training super parameter setting
在訓練過程中記錄模型的損失函數(shù)曲線如圖11。由圖11可以看出:該模型在2 000次迭代訓練之后損失值漸趨平穩(wěn),經(jīng)過5 000次迭代后訓練后損失值大概穩(wěn)定在1.1左右,參數(shù)收斂性較好,且由于改進后的網(wǎng)絡結(jié)構(gòu)增加了多尺度特征圖,從而引入了額外的參數(shù),為了避免繼續(xù)訓練會產(chǎn)生模型過擬合的問題,因此在訓練至5 000輪時停止訓練,得到最終模型。
圖11 ST-Faster RCNN損失函數(shù)曲線Fig.11 ST-Faster R-CNN loss function curve
在對模型進行評估前,需要選擇合適的評估指標。在本文中,實驗結(jié)果從準確率(precision)、召回率(recall)、平均準確率(mean average precision,mAP)、每秒處理幀數(shù)(frame per second,F(xiàn)PS)等4個方面進行綜合衡量,各項指標的具體計算方法如下:
召回率R表示預測目標中預測正確占總預測樣本的比例,準確率P表示某一類別預測目標中預測正確占總正確樣本的比例,其定義公式分別為:
(7)
(8)
對于二元分類問題,其標記類與預測類的判斷結(jié)果有TP、FP、TN、FN等4種,如表2所示。
表2 標記類與預測類判斷結(jié)果Table 2 Confusion Matrix
平均準確率的均值mAP通常用來評估一個檢測算法的檢測準確度,數(shù)值越大檢測效果越好。由于準確率與召回率是一對相互矛盾的指標,因此通常采用召回率與準確率所圍成的R-P曲線面積作為最優(yōu)解,用平均準確率AP衡量。AP和mAP計算公式為:
(9)
(10)
式(10)中,N為檢測的類別數(shù)。本次實驗中,由于目標類別只有一類,因此mAP值等于AP值。由實驗得知,改進前的mAP值為91.68%,改進后的mAP值提升了4.5%,達到了96.18%,其R-P曲線如圖12所示,模型算法的各項性能如表3所示。
圖12 改進前后R-P曲線Fig.12 Loss function curve before and after improvement
表3 模型算法性能Table 3 Performance comparison of the algorithm
由表3可以看出,改進后的ST-Faster R-CNN模型在準確率、召回率、平均準確率和FPS值方面均有不同程度的提高,在提高檢測精度的同時,改善了漏檢和誤檢的問題。且FPS值提高了8.92幀/s,達到了18.57幀/s,大大改善了two-stage算法檢測速度慢的問題,說明改進后的模型整體效能有較大提高,運用在海上彈著點水柱目標檢測任務中效果更好。
圖13(a)、圖13(b)分別為原Faster R-CNN模型和改進后的ST-Faster R-CNN模型對部分樣本的檢測效果。由于在改進后的ST-Faster R-CNN模型中增加了多尺度特征融合機制,因此在進行目標檢測任務時,原算法中的錨框尺寸不能完全適用于多尺度特征圖,但依舊可以根據(jù)準確識別出目標中心點并畫出預測框,對目標的定位效果幾乎沒有影響。對于原前3幅圖片中的水柱信號其在角度、大小、形狀方面有較大差異,由此可以看出,改進后的ST-Faster R-CNN模型對檢測目標的置信度得分均有不同程度的提高,達到了接近滿分的水平;第4幅圖片是圖片中出現(xiàn)多目標時的情況,雖然錨框尺寸出現(xiàn)了較大程度的偏差,但預測框得分依舊有明顯提高,且定位效果比較準確,說明改進后的模型檢測效果更好。
圖13 改進前后部分樣本檢測結(jié)果圖Fig.13 Comparison of test results of some samples before and after improvement
為了進一步驗證本文提出改進措施的有效性及網(wǎng)絡的高效性,設計了消融實驗,并將其與其他經(jīng)典網(wǎng)絡進行對比,選取平均準確率mAP和每秒處理幀數(shù)FPS作為檢測算法的評價指標,得到消融實驗結(jié)果如表4所示,不同算法實驗結(jié)果如表5所示。
表4 消融實驗Table 4 Comparison of ablation experiments
表5 不同算法實驗結(jié)果Table 5 Experiment comparison of different algorithms
考慮到特征大小匹配問題,在表4中,F(xiàn)aster R-CNN+Swin Transformer表示將stage3輸出的特征圖直接應用到Faster R-CNN中得到的網(wǎng)絡結(jié)構(gòu)。由于本文提出的多尺度特征融合建立在Swin Transformer骨干網(wǎng)絡上,因此沒有作為單獨的一項消融實驗。通過實驗結(jié)果可以看出,引入Swin Transformer骨干網(wǎng)絡后,mAP值提高了2.76%,達到了94.44%,F(xiàn)PS值更是增長到了19.42幀/s,有力證明了新的骨干網(wǎng)絡在目標檢測領域的突出優(yōu)勢。在進一步引入多尺度特征融合措施后,由于對圖像的深淺層特征信息進一步提取和融合,檢測準確率得到進一步提高,到達了96.18%,但伴隨網(wǎng)絡結(jié)構(gòu)的加深,其計算量也隨之增加,因此檢測速度略有下降。
由表5可知,one-stage算法中隨著YOLO系列算法不斷改進,其檢測結(jié)果的平均準確率和檢測速度不斷提高,two-stage算法Faster R-CNN的檢測精度較高,但檢測速度最慢,無法滿足實時性要求。本文提出的ST-Faster R-CNN算法平均準確度比YOLO V5s高出5.97%,同時極大地提升了檢測速度,雖然不如YOLO V5s,但FPS值已經(jīng)達到18.57幀/s,極大地弱化了檢測速度慢的劣勢,基本達到水柱目標檢測的速度要求。通過實驗證明,改進后的ST-Faster R-CNN在滿足目標檢測速度要求的前提下,準確率優(yōu)勢明顯,算法綜合性能更好,可以更好地完成海上彈著點水柱信號目標檢測任務要求。
1) 利用Swin Transformer作為新的骨干網(wǎng)絡,通過對圖像分塊并逐層合并的方式實現(xiàn)層次化,利用移動窗口將自注意力限制在一定范圍內(nèi),大幅度削減了計算量的同時,實現(xiàn)了非局域窗口間的交互,滿足了目標檢測任務中對骨干網(wǎng)絡的要求,同時擁有更高效的特征提取能力;
2) 運用多尺度特征融合的方式,將深淺層特征信息進行融合,加深網(wǎng)絡結(jié)構(gòu),增強了水柱特征在網(wǎng)絡層之間的傳播和利用效率;
3) 改進后的Faster R-CNN算法模型平均準確率達到96.18%,速度達到18.57幀/s,不僅進一步提高了two-stage算法的檢測準確率,而且大幅提高了目標檢測速度,可以更好地完成海上彈著點水柱目標檢測任務。