周 璇,朱蘇磊,何 為
(1.上海師范大學信息與機電工程學院,上海 200234;2.中國科學院上海微系統與信息技術研究所無線傳感網與通信重點實驗室,上海 201800)
在靶場試驗中,準確及時地掌握彈著點的位置對于校正投射過程、提高投射水平是非常必要的[1]。目前,國內外各大機構對于炮彈定位的研究主要集中在通信技術[2]、傳感技術[3-4]上。但是,在實際靶場中彈著點定位主要還是依靠人工去完成。人工測量需要肉眼搜索預點,預判落點位置,估計落彈處的煙塵中心,手動操作測距儀器獲得各項參數,這種方式測量精度差、花費時間較長、人力消耗大。隨著圖像處理[5]、機器學習[6]、深度學習[7]等相關學科的快速發(fā)展,相較于傳統圖像處理的方法,利用深度學習方法去檢測圖像中的期望目標現在已成為圖像處理的主流研究趨勢[8-9],這也為靶場炮彈定位提供了新的思路。如果能準確檢測到炮彈爆炸形成的火焰煙霧在圖像中的區(qū)域,得到圖像中的彈著點坐標,對于后續(xù)研究彈著點真實坐標具有巨大的幫助。
火焰炮彈爆炸過程中,會形成大小不一、范圍不定的火光煙霧,并且煙霧會隨著環(huán)境、風力等發(fā)生隨機的擴散與移動?;诨鸸鉄熿F與背景對比鮮明的特點,利用顯著性目標檢測[10-11]比一般的錨框目標檢測[12]方法更能準確地檢測到炮彈爆炸的火光范圍,從而有效地提高檢測的精度?;谏疃葘W習的顯著性目標檢測,根據顯著性特征如空間域、頻域等,對場景中有用的區(qū)域進行快速有效的分割提取。顯著性目標檢測本身就是一種分割任務,基于完全卷積神經網絡(FCN-based)[13]的模型用于解決語義分割問題。文獻[14]使用了空間注意力,通過對不同的卷積層賦予不一樣的權重值,選擇性地集成來自多級特征的上下文信息,以生成強大的注意特征。文獻[15]提出的Pixel-wise Contextual Attention Network(PiCANet)分別關注全局和局部的情況,獲得信息豐富的上下文特征。文獻[16]提出的Boundary-Aware Salient Object Detection(BASNet)混合損失函數,將二元交叉熵、Structural、SIMilarity、IoU損失結合起來進行網絡學習,在3個不同的側重維度上進行監(jiān)督,從而得到質量更高的結果。文獻[17]提出了U2-Net,該網絡使用一個兩級嵌套的U型網絡結構,提出了一種新模塊RSU(ReSidual U-blocks),經過測試,對于分割物體前背景取得了驚人的效果。這些模型一定程度上解決了顯著性目標檢測中遇到的特征選擇、邊緣檢測等問題。
為了提高火焰炮彈爆炸范圍檢測的精度以及抗干擾性,利用顯著性目標檢測對炮彈火焰進行檢測定位,除去了靶場內人工檢測的繁瑣步驟,減少了安全隱患。但是,利用顯著性目標檢測對炮彈火焰進行檢測還存在以下的問題:1)火焰存在被煙霧和靶子遮擋的現象,可能導致檢測出現誤差;2)對于小范圍的煙霧檢測存在一定難度;3)在靶場實測時,對模型的推理速度也存在一定的要求。針對以上問題,本文在BASNet模型基礎上提出CPD-BASNet,在BASNet的特征融合過程中加入金字塔池化模塊(PPM)[18],并在BASNet預測模塊的骨架網絡ResNet[19]中融入注意力機制CBAM[20],提高模型對顯著性物體內部的關注度。同時,利用深度可分離卷積代替?zhèn)鹘y卷積,減少模型參數量,提高模型的推理效率,更加符合靶場火焰炮彈定位的實際使用。
本文使用的彈著點定位算法主要基于顯著性目標檢測模型BASNet。算法主要分為模型訓練推理與圖像彈著點坐標檢測2部分。對于模型訓練推理部分,首先利用自制的炮彈火焰數據集對改進后的BASNet模型進行訓練,生成訓練后的推理模型,隨后將要檢測的炮彈火焰圖片送入推理模型,生成炮彈火焰顯著圖。彈著點坐標檢測部分,首先對顯著圖進行圖像預處理,減少一些孤立點對于結果的影響;其次,生成顯著圖中炮彈火焰部分的最小外接矩形,利用矩形坐標求取得到圖像彈著點坐標,算法流程圖如圖1所示。
圖1 算法流程圖
BASNet是2019年發(fā)布的一個新的邊界-感知的顯著性目標檢測網絡,由一個深度監(jiān)督的編碼-解碼和一個殘差優(yōu)化模塊(RRM)構成。編碼預測模塊利用ResNet-34為骨架網絡,使用池化的方法得到分辨率逐漸降低的高層語義特征。解碼模塊則負責將網絡結構高層的語義信息逐步還原放大,進一步獲得大分辨率的特征圖。最后輸出的顯著性圖與原圖的大小一樣。為了更好地獲取細節(jié)信息,文獻[16]將編碼與解碼部分相同分辨率的特征圖相加,可以讓網絡更好地關注到不同尺度的顯著圖。殘差優(yōu)化模塊和前面的編碼-解碼模塊網絡結構相同,對于前一部分得到的顯著區(qū)域進行進一步的細化,得到更加精確的顯著性圖。BASNet網絡最主要的創(chuàng)新點在于引入了結構相似性損失,將BCE損失、SSIM損失、IoU損失相加,重點解決邊界模糊問題。由于在結構相似性損失下,邊界的損失會比顯著性物體內部或其他地方賦予的權重更高。
本文對BASNet網絡進行了改進,提出名為CPD-BASNet的網絡。新的模型在原有的BASNet模型基礎上融入金字塔池化模塊(PPM)和注意力機制CBAM,加強網絡對顯著性物體內部的關注度,增強網絡對小范圍炮彈火焰特征的提取,提高網絡的檢測精度以及網絡的魯棒性??紤]到靶場炮彈定位對模型推理速度的要求,利用深度可分離卷積代替?zhèn)鹘y卷積,減少模型參數,提高模型推理效率。CPD-BASNet網絡結構的預測模塊如圖2所示,優(yōu)化模塊如圖3所示。
圖2 CPD-BASNet模型預測模塊
圖3 CPD-BASNet模型優(yōu)化模塊
1.2.1 注意力機制模塊
注意力機制模塊(CBAM)將注意力分成了2個獨立的部分,通道注意力模塊和空間注意力模塊。與單獨使用空間注意力模塊或者是通道注意力模塊相比,二者的融合更能加強對有用特征的關注度。
CBAM將通道注意力模塊與空間注意力模塊順序組合在一起。在通過注意力模塊的過程中,首先輸入的特征圖利用全局平均池化和最大池化增強提取的高層次特征的豐富性;隨后,通過多層感知機建模通道之間的相關性合并2個輸出得到各個特征通道的權重;最后,通過乘法將得到的特征通道的權重逐通道加權到原來的特征上,完成各個通道的原始特征重標定。通道注意力的計算過程如下:
MC(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))
(1)
其中,σ表示激活函數,W0∈RC/r×c,W1∈RC/r×c,r表示一個衰減比率,W0、W1表示多層感知機的權重,W0后面需要接ReLU函數激活。
相比于通道注意力模塊,空間注意力模塊更關注位置信息。經過通道注意力模塊的特征輸入到空間注意力模塊,輸入的特征沿著通道方向進行最大池化和平均池化2個操作。輸出的結果直接相加再通過卷積操作形成單通道特征圖,最后經過空間特征矩陣與特征圖的點乘操作得到經過雙重注意力調整的特征圖。空間注意力的計算過程如下:
MS(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))
(2)
其中,σ表示激活函數,f7×7表示7×7的卷積層。
BASNet預測模塊的編碼部分用到了ResNet34的層和Basic Resblock部分作為基礎特征提取網絡。如圖4所示,殘差模塊是ResNet模型最主要的部分,通過short connection把輸入直接傳到輸出,將輸入與輸出進行一個加疊操作,很好地解決了網絡梯度消失的問題,提高了網絡的深度。
圖4 Resnet殘差結構
圖5為引入注意力機制CBAM的ResNet模塊,由殘差模塊與注意力機制組成,注意力機制包括通道注意力模塊與空間注意力模塊。
圖5 引入CBAM的殘差模塊
為了抑制無用特征對模型的影響,加強對不同區(qū)域炮彈火焰的檢測精度,本文利用嵌有注意力機制模塊的殘差結構代替原有的殘差結構,選擇通道,加強對圖像空間中顯著區(qū)域的關注度,完成網絡特征的提取。
1.2.2 金字塔池化(PPM)模塊
金字塔池化模塊(Pyramid Pooling Module)出自于PSPNet(Pyramid Scene Parsing Network)。PPM可以充分的聚合上下文的信息,最大化地利用全局信息。金字塔池化模塊融合了多種不同金字塔尺度的特征。首先將整個特征圖進行全局池化,隨后將特征圖劃分成不同大小的子區(qū)域,在子區(qū)域內部進行池化操作,提取不同尺度的特征。為了保持全局特征的權重,每個金字塔進行卷積操作將上下文表示的通道維度減少到原始特征的1/N,最后將不同尺度的特征級聯起來作為最終的金字塔池化全局特征。金字塔池化過程如圖6所示。
圖6 金字塔池化模塊
本文將金字塔池化模塊加入到BASNet網絡的優(yōu)化模塊中,在優(yōu)化模塊的編碼部分,特征圖在與上一層的特征融合前先通過金字塔池化模塊,充分獲取全局信息,再將金字塔池化特征圖與上一層的特征進行concat操作,最后再進行上采樣,輸出信息到下一層網絡中。
1.2.3 深度可分離卷積
考慮到靶場火焰炮彈定位對模型檢測速度的要求,本文利用深度可分離卷積代替網絡中的傳統卷積,減少模型的參數量,在不降低模型檢測精度的前提下,提高模型推理的效率。深度可分離卷積將傳統卷積過程分為逐通道卷積和卷積核大小為1×1的逐點卷積[21]。逐通道卷積只對輸入層的每個通道獨立地進行卷積運算,不能有效地利用不同通道在相同空間位置上的特征信息,因此需要逐點卷積將逐通道卷積生成的特征圖進行組合生成新的特征圖。假設輸入特征圖大小為F×F×M,輸出特征圖大小為F×F×N,卷積核大小為K×K,則傳統卷積的計算量如公式(3)所示:
Cc=K×K×M×N×F×F
(3)
對于深度可分離卷積來說,計算量的計算分為逐通道卷積計算與逐點卷積計算之和。逐通道卷積計算量和逐點卷積計算量分別如公式(4)和公式(5)所示:
c1=K×K×M×F×F
(4)
c2=M×N×F×F
(5)
深度可分離卷積的總計算量如公式(6)所示:
Cd=c1+c2=K×K×M×F×F+M×N×F×F
(6)
因此深度可分離卷積的計算量與傳統卷積的計算量之比如公式(7)所示:
(7)
由深度可分離卷積的計算量與傳統卷積的計算量之比可知,使用深度可分離卷積可以大大地減少網絡的計算量,減少模型推理的時間。
利用模型推理得到的顯著圖可以提取出圖像中彈著點的坐標,為后續(xù)求取三維的彈著點坐標打下基礎。利用顯著圖提取彈著點的坐標具體流程如下:進行圖像預處理[22],減少孤立點對結果的影響;生成顯著圖的最小外接矩形[23],如圖7所示,最小外接矩形底邊的縱坐標即為圖像彈著點的縱坐標,外接矩形的
圖7 顯著圖最小外接矩形
最大橫坐標與最小橫坐標的取值之和平均即為圖像彈著點的橫坐標。
本文實驗搭載在Linux系統上,顯卡為NIVIDA TESLA K40C,軟件框架為基于TensorFlow的Keras深度學習框架,編程語言為Python 3.6。在訓練模型時,Batch_size為2,Epoch為200。
由于缺乏公開的炮彈火焰數據集,本文利用國內某實地靶場攝像機拍攝的炮彈爆炸的視頻制作了炮彈火焰數據集。靶場實際大小為600 m×600 m,在靶場的4個角落安裝攝像機拍攝視頻。在制作數據集過程中,考慮到炮彈爆炸時產生的火焰煙霧的范圍大小不一,位置不定。并且由于環(huán)境、風力的影響,煙霧會發(fā)生遮擋火焰的情況,如果只對火焰進行標注會影響對彈著點定位的準確性。因此,在制作數據集時,對于圖像中炮彈火焰占比較大的圖像,制作數據集時只對火焰范圍做標注;對于圖像中煙霧占比遠大于火焰占比的圖像,考慮到煙霧對火焰的遮擋性,本文也對煙霧進行標注,盡可能準確地描繪出火焰或者煙霧的形狀。為了提高網絡的泛化能力與魯棒性,本文還上網搜集了燈光、日出等負樣本圖片,最終形成了火焰炮彈檢測數據集。數據集共有1339張圖片,以接近6 ∶1的比例分成1147張圖片組成訓練集,192張圖片組成測試集。炮彈火焰數據集樣例如圖8所示。
(a)~(c):正樣本 (d)~(f):負樣本圖8 炮彈火焰數據集樣例圖
由圖8(a)和圖8(b)所示,靶場背景單一,炮彈爆炸時形成的火焰明亮、范圍大,與背景對比鮮明;同時也存在被煙霧遮擋的現象,如圖8(c)所示,煙霧顏色雖暗,與背景也存在一定對比;圖8(d)~圖8(f)為網絡上搜集的日出以及燈光圖片,用作數據集的負樣本。
本文從模型的檢測性能與彈著點的圖像坐標出發(fā)評價算法的性能好壞。
對于顯著圖檢測部分,顯著性目標檢測模型的評價指標主要有F度量值(F-measure)和平均絕對誤差(Mean Absolute Error, MAE)。F-measure為查全率和查準率在非負權重下的加權調和平均值,計算公式如公式(8)所示:
(8)
其中,β表示權重,Precision表示查準率,Recall表示查全率,在實驗中,β2取值一般為0.3,認為查準率的重要性大于查全率,即增加了Precision的權重。Fβ與網絡檢測性能呈正相關,即Fβ數值越高,表示網絡的檢測性能越好,一般用Fβmax(最大F值)或者Fβmean(平均F值)來表示。MAE為計算模型輸出的顯著性圖譜與Ground-truth(標記圖)之間的平均絕對誤差,計算公式如公式(9)所示:
(9)
其中,fi、yi分別表示預測值與真實值。MAE與網絡檢測性能呈負相關,即MAE數值越低,網絡性能越好。
對于求取圖像彈著點坐標部分,以圖像左上角為坐標原點建立X-Y坐標系,評價指標有2個。求取實驗測得的彈著點的平均像素誤差,即模型推理求得的彈著點的X坐標、Y坐標與真實彈著點的X坐標、Y坐標的像素誤差,并取平均值,如公式(10)和公式(11)所示。
(10)
(11)
其中,n為顯著圖數量,xt為圖像彈著點的真實橫坐標,yt為圖像彈著點的真實縱坐標,xi為本文算法求出的彈著點橫坐標,yi為本文算法求出的彈著點縱坐標。
同時對比真實圖像彈著點坐標與實驗圖像彈著點坐標的像素坐標距離如公式(12)所示,更直接地表示彈著點定位精度的好壞。
(12)
2.3.1 模型顯著圖推理實驗
為了驗證改進前后模型的性能,本文以Fmax、MAE為檢測指標,對BASNet模型和CPD-BASNet模型以及常用顯著性目標檢測網絡PICANet、U2-Net在自制的炮彈火焰數據集上進行實驗對比,實驗結果如表1所示。
表1 BASNet、U2-Net、PiCANet、CPD-BASNet模型性能對比表
由表1可知,改進后的模型CPD-BASNet的F值與BASNet相比提高了0.024,MAE下降了0.006,并且改進后的模型檢測指標也優(yōu)于顯著性目標檢測網絡U2-Net。由此可以看出,改進后的模型在檢測精度上有所提升,模型的性能更好。
改進前后的模型基于自制的炮彈火焰數據集生成的顯著性圖如圖9所示。由圖9可以看出,U2-Net模型雖然在顯著性物體內部的檢測性能要優(yōu)于BASNet,但是在物體邊緣的檢測性能不如BASNet。而改進后的模型CPD-BASNet在檢測邊緣、小范圍煙霧以及遮擋物上面的能力都要優(yōu)于原先的模型BASNet和U2-Net。CPD-BASNet模型由于引進了注意力機制,在保持對邊緣檢測精度的同時,提高了對物體內部顯著性物體的關注度,同時在特征融合前融入金字塔池化模塊加強了網絡對全局信息的關注度,彌補了下采樣導致的淺層信息的缺失,進一步提升了分割炮彈火焰煙霧的精度。
圖9 炮彈火焰檢測效果比較圖
2.3.2 消融實驗
同時,本文設計消融試驗,目的在于更好地表現引入的注意力機制與金字塔池化模塊對BASNet網絡模型的影響。在該實驗中,對比BASNet模型在單獨引入注意力機制、金字塔池化模塊后,模型的性能變化,依舊以Fmax、MAE為檢測指標。實驗結果如表2所示。
表2 引入模塊的消融實驗結果
由表2分析得知,單獨引進金字塔池化模塊,模型Fmax提升了0.014,MAE下降了0.002;單獨引進注意力機制模塊,模型Fmax提升了0.022,MAE下降了0.002。同時,引入注意力機制與金字塔池化模塊后,模型Fmax提升了0.025,MAE下降了0.006。由此可見,金字塔池化模塊與注意力機制模塊均能提升模型的檢測精度,兩者結合對模型的分割精度提升效果最好。
2.3.3 模型參數優(yōu)化實驗
考慮到靶場實地應用對模型推理速度的要求,為了驗證深度可分離卷積對模型推理的改進效果,本文將原模型BASNet、引入注意力機制與金字塔模塊但未用深度可分離卷積的模型CP-BASNet、引入注意力機制與金字塔模塊同時利用深度可分離卷積代替?zhèn)鹘y卷積的模型CPD-BASNet在推理速度、模型大小、Fmax、MAE上進行了對比,如表3所示。
由表3可知,引入注意力機制與金字塔池化模塊后的網絡提高了模型檢測精度,在推理速度上有所下降,利用深度可分離卷積代替?zhèn)鹘y卷積的模型CPD-BASNet的推理速度提升了1.7 fps,同時模型大小減少了73.2 MB。從靶場的實際應用出發(fā),兼?zhèn)錂z測精度與檢測速度的CPD-BASNet網絡模型更符合靶場檢測炮彈定位的需求。
2.3.4 圖像彈著點坐標定位實驗
為了更直觀地體現本文算法對彈著點定位的改進效果,本文對模型推理求得的顯著圖進行彈著點定位處理,利用顯著圖的最小外接矩形求取圖像彈著點坐標,將BASNet、CPD-BASNet與U2-Net的圖像彈著點坐標進行對比,評價指標為模型推理得到的顯著圖求取的橫縱坐標與圖像真實彈著點的橫縱坐標平均像素誤差對比Xe、Ye,算法求取的彈著點坐標與真實的彈著點坐標的平均坐標像素距離De,對比結果如表4所示。
表4 各模型的圖像彈著點像素坐標誤差對比表
由表4可以看出,本文的算法求得的彈著點坐標與改進前的網絡相比,在橫坐標上的像素誤差減少了5.3個像素值,同時橫縱坐標的誤差均小于U2-Net模型。改進后的模型CPD-BASNet求取的彈著點坐標與真實彈著點坐標的坐標距離均少于BASNet模型與U2-Net模型,并且本文算法求取的距離像素誤差減少為5.92個像素值,與改進前的模型相比,減少了將近5個像素值。由圖10可以看出,與一般的錨框式目標檢測算法如YOLOv4[24]等相比,本文提出的算法,先求出顯著圖,再進行最小外接矩形操作,該矩形框所包含的背景信息更少,更能精確地獲取彈著點的圖像坐標。
圖10 本文算法與YOLOv4檢測對比
綜上,本文改進的模型在顯著性目標性能上表現得更加優(yōu)越,同時,本文提出的算法在圖像彈著點檢測上面誤差更小,也優(yōu)于一般的錨框式的目標檢測算法。
本文提出的顯著性目標檢測算法CPD-BASNet在BASNet上引入了注意力機制與金字塔模塊,加強了網絡在預測模塊的編碼階段對顯著性物體的關注度,在優(yōu)化模塊引入金子塔池化模塊,減少了淺層有效語義信息的丟失,獲取到更多小目標物體以及物體邊緣的特征信息,在炮彈火焰數據集上取得了較好的炮彈火焰分割效果。為了使模型更符合實際應用,利用深度可分離卷積代替?zhèn)鹘y卷積,在保證網絡對炮彈火焰的檢測精度的同時,減少了模型參數,提高了模型推理的速度。經過炮彈數據集測試與圖像彈著點坐標求取表明本文算法同時滿足靶場炮彈火焰分割對于精度與速度的要求,在靶場炮彈定位項目中有一定的實用價值。