喬夢雨,譚金林,劉亞虎,徐其志,萬生陽
1. 陜西航天技術(shù)應(yīng)用研究院有限公司,西安 710100 2. 北京理工大學(xué) 機電學(xué)院,北京 100081
在天基光學(xué)監(jiān)控系統(tǒng)中,目標(biāo)容易受到環(huán)境因素的干擾導(dǎo)致檢測率低下,針對大氣層中的小型飛行目標(biāo),目標(biāo)在運動過程中必然會釋放熱量,使用天基紅外探測技術(shù)可以有效規(guī)避這一問題,并且紅外探測距離遠覆蓋范圍廣,測量精度高[1]。在實際情況中,紅外弱小目標(biāo)檢測也存在以下難點:目標(biāo)本身特征匱乏,在圖像中缺乏角點及紋理信息;由于天基成像平臺自身的原因,不可避免存在一些噪點和壞點,噪點與目標(biāo)接近容易產(chǎn)生誤檢。
早期的天基紅外弱小目標(biāo)識別采用傳統(tǒng)的圖像處理算法,文獻[2]提出一種基于多尺度匹配的紅外變分辨率弱小目標(biāo)檢測方法,通過建立高斯參數(shù)模型,使用核函數(shù)的方法生成待檢測圖像的尺度空間,接著進行匹配選取潛在的目標(biāo)區(qū)域,通過閾值進行篩選。文獻[3]提出一種基于背景自適應(yīng)的多特征融合的復(fù)雜背景下弱小目標(biāo)的檢測算法,首先通過濾波算子剔除空域噪點,接著通過連通域剔除大范圍區(qū)域,最后根據(jù)先驗知識篩選目標(biāo)。文獻[4]提出了一種基于結(jié)構(gòu)張量分析的弱小目標(biāo)單幀檢測方法,通過構(gòu)造不同的張量描述目標(biāo)的特征,計算結(jié)構(gòu)張量到目標(biāo)的響應(yīng),使用自適應(yīng)閾值分割篩選目標(biāo)。
采用傳統(tǒng)的處理方法,需要手動設(shè)計特征提取器,當(dāng)目標(biāo)發(fā)生較大形態(tài)學(xué)變化時不能準(zhǔn)確識別出目標(biāo),基于深度學(xué)習(xí)的方法可以通過復(fù)雜的神經(jīng)網(wǎng)絡(luò)擬合出目標(biāo)的各種特征[5]。文獻[6]提出一種基于深度學(xué)習(xí)的空間紅外弱小目標(biāo)狀態(tài)感知方法,分析了空間紅外弱小目標(biāo)的狀態(tài),構(gòu)建了特殊的卷積神經(jīng)網(wǎng)絡(luò)框架,以目標(biāo)高程信息和輻射強度作為輸入,輸出目標(biāo)的標(biāo)注信息。文獻[7]提出一種基于深度神經(jīng)網(wǎng)絡(luò)的空間目標(biāo)結(jié)構(gòu)算法,利用分形分析提取序列的分數(shù)維特征,利用Fisher判決完成對特征的篩選。相比于傳統(tǒng)的圖像處理方法基于深度學(xué)習(xí)的方法可以更好地擬合特征,檢測效果也更好,但是也存在以下問題:①無法分辨出重點感興趣區(qū)域與背景,對整幅影像進行檢測耗費計算資源;②初始設(shè)定的候選框大多不能完全匹配目標(biāo)大小需求;③成像中會產(chǎn)生一些噪點與壞點,使用最大值池化會影響到周圍像素點。
基于此在現(xiàn)有YOLOv4模型的基礎(chǔ)上,針對天基成像中的紅外弱小飛行目標(biāo),為了使神經(jīng)網(wǎng)絡(luò)更準(zhǔn)確地提出感興趣區(qū)域,引入卷積注意力模塊,可以更好地將紅外弱小飛行目標(biāo)與背景區(qū)分。統(tǒng)計出紅外成像數(shù)據(jù)集里小型飛行目標(biāo)的大小,使用K-means++算法計算出更合適的先驗候選框。天基成像平臺中或多或少會存在一些噪點及壞點,這些噪點會對神經(jīng)元造成較大的干擾。于是在空間金字塔池化模塊中使用平均池化層,這樣使感受野的灰度值更加平均,降低噪點及壞點的影響。
YOLOv4是現(xiàn)階段兼顧實時性與準(zhǔn)確率的一種One-Stage目標(biāo)檢測算法。算法主要由3部分構(gòu)成,包括骨干特征提取網(wǎng)絡(luò)Backbone、用于融合各個特征層提取出的特征的頸部網(wǎng)絡(luò)Neck,以及最終輸出特征并進行分類與回歸的檢測頭YoloHead。YOLOv4算法不僅繼承了YOLO算法[8]的框架,保持原有的大結(jié)構(gòu),借鑒了近些年來卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在目標(biāo)檢測領(lǐng)域中一些新的思路。在骨干提取網(wǎng)絡(luò)借鑒了CSPNet[9]的思想,改進了密集塊和過渡層的信息流,并且優(yōu)化了梯度反向的傳播路徑,構(gòu)建了CSPDarkNet;在頸部網(wǎng)絡(luò)優(yōu)化原有的特征金字塔提取結(jié)構(gòu),加入空間金字塔池化層構(gòu)建了路徑聚合網(wǎng)絡(luò)PANet[10];檢測頭保持不變,使用YoloHead。圖1所示為YOLOv4模型結(jié)構(gòu)。
圖1 YOLOv4 模型結(jié)構(gòu)Fig.1 YOLOv4 model structure diagram
Yolov4算法中各個模塊構(gòu)成如圖2所示,CBM是經(jīng)過批量歸一化(batch normalization,BN)使用Mish[11]激活函數(shù)的卷積層;CBL是經(jīng)過批量歸一化(batch normalization,BN)使用leaky relu激活函數(shù)的卷積層;ResUnit是殘差模塊,“Add”是將尺寸大小相同的特征圖之間的信息直接疊加,“Concat”是將尺寸大小相同的特征圖進行特征聯(lián)合;CSP是堆疊若干個CBM及ResUnit模塊的殘差結(jié)構(gòu)。
圖2 模塊結(jié)構(gòu)Fig.2 Module structure diagram
為了提高卷積神經(jīng)網(wǎng)絡(luò)的特征表征能力,在每個預(yù)測分支后增加卷積注意力模塊(Convolutional Block Attention Module,CBAM)如圖3所示,Neck表示頸部網(wǎng)絡(luò),最終達到對特征選擇的作用。
圖3 CBAM位置圖Fig.3 CBAM location map
在整張?zhí)卣鲌D中,對感興趣的區(qū)域著重學(xué)習(xí),對大部分沒有意義的區(qū)域減輕權(quán)重節(jié)約參數(shù)和計算量。卷積注意力模塊包含兩個子模塊,分別是通道注意力模塊及空間注意力模塊,如圖4所示。
圖4 卷積注意力模塊Fig.4 Convolutional attention module diagram
(1)通道注意力模塊
通過骨干提取網(wǎng)絡(luò)所提取的特征是角點及細節(jié)信息的高維多通道特征圖,各個通道所提取的特征含義就是該輸入在設(shè)計的不同卷積結(jié)構(gòu)中進行若干卷積池化操作后得到的矩陣分量。在整幅圖中,有用的目標(biāo)信息只占很小一部分,所以對整幅圖都進行同樣的學(xué)習(xí)會大大增加計算量,通過通道注意力模塊可以對有用的特征賦予更大的權(quán)重,對無用的背景信息減少權(quán)重。
通道注意力模塊的原理受信號處理啟發(fā),任意一個在時域中連續(xù)的正弦波信號通過若干次的卷積計算,都可以用幾個頻率信號的線性組合來代替。在深度學(xué)習(xí)網(wǎng)絡(luò)中,借鑒了SENet[12]的思想,在各個通道的特征圖中首先進行空間上的維度進行降維處理,然后進行特征圖的計算。
具體計算公式如下:
Mc(F)=σ(MLP(AvgPool(F)))+
MLP(MaxPool(F))
(1)
(2)
(2)空間注意力模塊
具體計算公式:
(3)
傳統(tǒng)的聚類算法通過各種隨機初始化的方法來確定聚類的中心,這種方法容易使算法的求解陷入局部最優(yōu),達不到最好的效果。因此為了更好地適配應(yīng)用場景,本文提出對訓(xùn)練集使用K-means++方法計算出anchor大小,從而調(diào)整預(yù)設(shè)的anchor參數(shù)。聚類的衡量標(biāo)準(zhǔn)是通過計算各個目標(biāo)大小與設(shè)置的聚類中心框大小越接近越好,采用交并比函數(shù)來度量,計算公式:
dIoU(box,centroid)=1-IoU(box,centroid)
(4)
式中:IoU(box,centroid)表示某一個目標(biāo)的候選框大小和聚類候選框大小的損失;dIou(box,centroid)表示計算出的交并比損失大小。
具體計算各個類別中心的步驟如下:
1)在測試集中的目標(biāo)中隨機選取K個目標(biāo)的大小作為“種子點”,如圖5(a)所示。
2)計算其余目標(biāo)到和它最近“種子點”的距離D(x),把這些距離累加起來得到Sum[D(x)]。
3)設(shè)定一個概率Px用來描述每個候選目標(biāo)被選作中心的概率:
(5)
4)重復(fù)第2步及第3步,直到確定出K個中心如圖5(b)所示。
5)將第4步計算得到的中心作為初始的中心如圖5(c)所示,代入K-means算法進行求解,直到求出最合適的中心點。
K-means++算法的改進在于選取初始中心時并不是沒有約束的隨機初始化,而是以當(dāng)前數(shù)據(jù)集中的某個目標(biāo)作為中心點,并且用距離作為度量依據(jù),和中心點距離較遠的點屬于該簇的概率就降低,它更有可能是一個新的簇的中心,這樣更加合理。
圖5 聚類示意Fig.5 Cluster diagram
模型訓(xùn)練預(yù)設(shè)參數(shù)里對目標(biāo)大小預(yù)設(shè)了9種大小的候選框(Anchor box)分別是(12,16)、(19,36)、(40,28)、(35,75)、(76,55)、(72,146)、(142,110)、(192,243)、(459,401)用于檢測預(yù)測頭輸出的預(yù)測結(jié)果。這些預(yù)設(shè)的Anchor box大小來源于對PASCAL VOC數(shù)據(jù)集[13]上數(shù)以萬計的目標(biāo)通過聚類計算出的回歸框大小,該數(shù)據(jù)集包含了飛機、自行車、小鳥、船等各種尺度大小的目標(biāo)。預(yù)設(shè)的Anchor大小可以適用于各種常見的待檢測目標(biāo),但是針對具體應(yīng)用場景,如衛(wèi)星拍攝的紅外成像中的小目標(biāo),目標(biāo)的變化范圍從幾個像素變化到幾百個像素,原先預(yù)設(shè)的Anchor大小并不能完全匹配,較小的(12,16)、(19,36)可以勉強適用,其他的Anchor尺寸太大使模型的檢測頭計算交并比損失時會將大部分候選框篩除掉,造成計算資源的浪費也會影像模型的檢測性能。
YOLOv4模型在骨干提取網(wǎng)絡(luò)(backbone)之后引入了空間金字塔池化模塊(spatial pyramid pooling,SPP),該模塊可以增加整個模型的感受野,并且將全局特征與局部特征進行融合,提高特征的信息量,SPP模塊如圖6所示。
圖6 SPP模塊結(jié)構(gòu)圖Fig.6 SPP module structure diagram
在卷積神經(jīng)網(wǎng)絡(luò)中,最大池化操作(Max pooling)可以對特征圖進行降采樣處理,減少多余的特征信息,從而達到減少計算量的效果。池化層除了最大值池化的方式,還有均值池化。均值池化關(guān)注的每個感受野的平均值,這樣在處理背景信息噪點較多的情況下可以保留更多的目標(biāo)信息,有較好的處理結(jié)果,最大值池化與均值池化示意如圖7所示。
圖7 池化示意Fig.7 Pooling diagram
在最大值池化時,如果成像的噪點或壞點如圖8中紅圈所示,由于只保留每個感受野的最大值信息,噪點和壞點灰度值接近于真實目標(biāo)灰度值,容易被當(dāng)作是目標(biāo),造成誤檢。采用平均值池化時,噪點范圍較小,它的灰度值會被周圍較暗的背景平均下來,而目標(biāo)的輻射范圍較大,通過均值池化后仍可保留灰度峰值。
圖8 噪點示意Fig.8 Noise diagram
針對上述問題,將原SPP模塊中的最大值池化進行改進,使用平均池化來進行操作,步長和池化層大小不變,只改變提取特征方式。這樣可以有效降低成像噪點和壞點產(chǎn)生的影響,減少誤檢提升檢測的準(zhǔn)確率。
本算法在Windows10操作系統(tǒng),采用深度學(xué)習(xí)框架Pytorch,實現(xiàn)了基于改進YOLOv4的紅外弱小目標(biāo)識別算法。實驗平臺采用CPU:Intel(R)Xeon(R)E5-2699 v4 2.20 GHz;內(nèi)存128 G:GPU:NVIDIA Quadro P6000 24 GB。在上述環(huán)境中進行訓(xùn)練及測試算法模型。為了驗證算法的準(zhǔn)確率和實時性,首先選取了當(dāng)前目標(biāo)檢測領(lǐng)域較為先進的幾種算法模型,進行對比的有RefineDet[14]、DSSD[15]、YOLOv3 三種算法,接著設(shè)計了消融實驗證明改進SPP模塊及CBAM模塊的效果,以上測試均在上述環(huán)境中進行測試,訓(xùn)練集是從數(shù)據(jù)集中隨機抽取70%的樣本構(gòu)建而成,測試集是從數(shù)據(jù)集中隨機抽取30%樣本構(gòu)建而成。
本文所要檢測的目標(biāo)是通過天基平臺拍攝的紅外波段的小型飛行目標(biāo),由于應(yīng)用領(lǐng)域特殊,公開數(shù)據(jù)集資源較少,數(shù)據(jù)集主要來源于內(nèi)部資料,目標(biāo)類型只有一種就是小型飛行目標(biāo),數(shù)據(jù)集總計28 732張圖片,每一張均按照PASCAL VOC格式進行了人工標(biāo)注。
表1為不同算法的得到的Anchor大小。
表1 聚類結(jié)果
本文對標(biāo)注好的測試集進行聚類,較少的簇類個數(shù)不能準(zhǔn)確描述目標(biāo)框的分布,過多的簇類個數(shù)會極大增加模型訓(xùn)練的計算量,并且會導(dǎo)致模型過擬合,所以預(yù)先確定簇類個數(shù)K=9,為了對比不同聚類算法的性能,保證其余參數(shù)不變的情況下,采用K-means和K-means++方法對訓(xùn)練集的目標(biāo)框的大小進行聚類。
最終測得的平均準(zhǔn)確率mAP如圖9所示,從圖中可以看出,采用K-means++算法得到的Anchor聚類結(jié)果最高精確度達到了80.13%優(yōu)于K-means算法77.05%。
圖9 Anchor準(zhǔn)確率Fig.9 Anchor accuracy map
為了量化評價各個算法的能力,使用平均準(zhǔn)確率作為評價指標(biāo)[16],該指標(biāo)綜合考慮了算法的精確率與召回率,精確率是指在被分類器判定為正確的樣本中有多少是真正正確的,召回率是指真正為正確樣本中有多少被分類器判定為正確樣本,計算公式如下:
(6)
(7)
(8)
式中:TP是正確樣本被判斷為正確;FP是正確樣本被判斷為錯誤;TN是錯誤樣本被判斷為正確;FN錯誤樣本被判斷為錯誤。
為了驗證算法的識別準(zhǔn)確率,將本文的算法模型與當(dāng)前主流的目標(biāo)檢測模型對比,所對比的性能參數(shù)有FPS(每秒幀率)、AP(平均正確率)、AP50和 AP75(以0.5 和 0.75為IoU臨界值分別估計出平均準(zhǔn)確度),如表2所示。
表2 識別準(zhǔn)確率
由表2中數(shù)據(jù)可知,DSSD算法的每秒幀數(shù)和平均正確率均低于本文方法;RefineDet平均正確率優(yōu)于Yolov3并且接近于Yolov4,但FPS較低檢測速度較慢;Yolov3算法是上一代的Yolo系列檢測算法,在檢測速度及準(zhǔn)確率均低于Yolov4算法;添加了本文所提的均值池化模塊的Yolov4-SPP算法在速度上與Yolov4接近,但是由于使用了均值池化替代了原來的最大值池化,減少了噪點的影響使準(zhǔn)確率有所提升;添加了卷積注意力模塊CBAM的Yolov4-CBAM,檢測速度基本持平,檢測準(zhǔn)確率略高于原版Yolov4;添加了CBAM和均值池化SPP的Yolov4-SPP-CBAM與其他幾種算法對比中檢測準(zhǔn)確率最高,相比于初始的Yolov4提升了5%,檢測速度也有所提升但效果欠佳。部分測試結(jié)果如圖10所示,包含4個序列,序列左側(cè)為待檢測影像,右側(cè)為本文所提方法的檢測結(jié)果。
圖10 實驗結(jié)果Fig.10 Experimental results
依據(jù)紅外弱小飛行目標(biāo)在天基成像系統(tǒng)中的特點和卷積神經(jīng)網(wǎng)絡(luò)對目標(biāo)特征的較好擬合性,提出了面向天基監(jiān)視的紅外弱小飛行目標(biāo)識別算法。首先使用K-means++算法對訓(xùn)練集候選框大小進行學(xué)習(xí)聚類出9種大小的候選框,使候選框的大小更接近于真實目標(biāo)的大小。在模型中添加卷積注意力模塊,對感興趣的區(qū)域著重學(xué)習(xí),對大部分沒有意義的區(qū)域減輕權(quán)重節(jié)約參數(shù)和計算量。使用空間金字塔池化模塊擴大感受野,并針對天基成像中的噪點和壞點,將最大值池化優(yōu)化為平均池化,減少噪點及壞點的影響。通過實驗表明,采用K-means++方法對候選框進行聚類,準(zhǔn)確率達到了80.13%。集成了SPP和CBAM模塊后的算法識別準(zhǔn)確率達到了83.3%,相比于原本算法提高了5.5%。本文所提方法可以有效地識別出紅外弱小飛行目標(biāo),骨干網(wǎng)絡(luò)仍使用CSPDarkNet,后續(xù)研究重點應(yīng)放在骨干網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化,采用更加高效和輕量化的骨干網(wǎng)絡(luò)。