吳 濤,王倫文,朱敬成
(國防科技大學(xué)電子對抗學(xué)院,合肥 230037)
對偽裝目標(biāo)的檢測與識別,一直以來都是軍事目標(biāo)檢測研究的重點(diǎn)內(nèi)容,其任務(wù)就是檢測出偽裝目標(biāo)的位置信息和類別信息[1-2]。與常規(guī)目標(biāo)不同的是,偽裝目標(biāo)與周圍背景環(huán)境高度融合,視覺特征與背景相似,特征模糊難以辨析,給偽裝目標(biāo)檢測帶來巨大挑戰(zhàn)。
傳統(tǒng)算法將偽裝目標(biāo)看成特殊的紋理結(jié)構(gòu)進(jìn)行特征提取[3-5]。該類算法需要手工提取偽裝目標(biāo)特征,檢測效率低,不能滿足軍事目標(biāo)檢測實時性的要求。2014 年,Girshick 等人成功將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在目標(biāo)檢測領(lǐng)域[6]。偽裝目標(biāo)的特殊性質(zhì)決定了其與背景融合度較高,常規(guī)的基于深度學(xué)習(xí)的目標(biāo)檢測算法在偽裝目標(biāo)數(shù)據(jù)集上效果受到限制,檢測效果有明顯下降。為此,文獻(xiàn)[7]構(gòu)建了一個全連接反卷積網(wǎng)絡(luò)用于抵抗背景中的噪聲,有效提取并融合了深層卷積網(wǎng)絡(luò)中的高層語義信息特征;文獻(xiàn)[8]在基于VGG-Net 的基礎(chǔ)上提出了SSDN 網(wǎng)絡(luò),增加了語義信息增強(qiáng)和樣本擴(kuò)展兩個模塊,與FCN8S 等其他模型相比,平均絕對誤差(Mean Absolute Error,MAE)有所降低;文獻(xiàn)[9]在RetinaNet框架的基礎(chǔ)上,針對偽裝目標(biāo)特點(diǎn),在檢測模型中嵌入了空間注意力和通道注意力模塊,與不同深度目標(biāo)檢測算法進(jìn)行比較,在檢測精度和準(zhǔn)確度上有所提升。
本文以回歸模型YOLOv3 為基礎(chǔ),提出了一種基于改進(jìn)YOLOv3 網(wǎng)絡(luò)的偽裝目標(biāo)檢測算法。YOLOv3 是一種實時性效果較好、檢測精度較高的單階段目標(biāo)檢測算法。為使其能夠適用于偽裝目標(biāo)檢測,對算法模型進(jìn)行了改進(jìn):1)針對現(xiàn)有偽裝目標(biāo)數(shù)據(jù)集,充分挖掘數(shù)據(jù)的先驗知識,對算法的先驗框進(jìn)行了重聚類;2)依據(jù)YOLOv3 的骨干網(wǎng)絡(luò)多次利用殘差網(wǎng)絡(luò)的特點(diǎn),將原網(wǎng)絡(luò)的級聯(lián)方式由單級跳連改為多級跳連,在增加網(wǎng)絡(luò)模型深度的同時,提高了檢測精度并避免了因模型過深帶來梯度消失的問題;3)在殘差網(wǎng)絡(luò)中引入注意力機(jī)制,為不同的特征層賦予不同的特征權(quán)重,網(wǎng)絡(luò)在提取特征時具有不同的偏好,提升了模型讀取關(guān)鍵信息和提取有效特征的能力。在文獻(xiàn)[9]公開的偽裝目標(biāo)數(shù)據(jù)集上進(jìn)行實驗,結(jié)果表明,與原始算法相比,本文提出的算法具有更高的檢測精度。
2018 年Redmon 等人提出YOLOv3 算法后,其在公開的經(jīng)典數(shù)據(jù)集上表現(xiàn)出了良好的檢測性能[10]。YOLOv3 是一種基于回歸的單階段算法模型,在YOLOv1、YOLOv2 基礎(chǔ)上有了很大改進(jìn),采用了與YOLOv1、YOLOv2 不同的網(wǎng)絡(luò)結(jié)構(gòu),引入了多尺度融合的方式對不同尺度目標(biāo)具有很好兼容性,同時具有良好的檢測速度和精度[11-12]。
YOLOv3 的骨干是一種新型的網(wǎng)絡(luò)結(jié)構(gòu)——Darknet53,它借鑒了殘差網(wǎng)絡(luò)的優(yōu)點(diǎn),采用了多個殘差塊進(jìn)行特征提取,殘差模塊的設(shè)計和使用可以使網(wǎng)絡(luò)很深時仍具有良好的收斂性能,其結(jié)構(gòu)如圖1 所示。
圖1 Darknet53 模型結(jié)構(gòu)
網(wǎng)絡(luò)的輸入會被調(diào)整為三通道的416*416 大小的圖片,在經(jīng)過一系列的特征提取后會得到13*13,26*26,52*52 三類不同大小的輸出。不同分辨率的輸出,其感受野不同,有利于對不同尺寸的目標(biāo)進(jìn)行檢測。YOLOv3 算法依然采用了先驗框機(jī)制,經(jīng)過聚類算法,YOLOv3 聚類出9 種大小不同的先驗框,每個特征圖分配了3 種大小的先驗框。相比之前的YOLO 版本,YOLOv3 減少了先驗框的種類,提升了檢測速度。先驗框尺度如表1 所示。
表1 特征圖對應(yīng)不同尺度的先驗框
目標(biāo)檢測算法中先驗框的設(shè)計,使得模型不需要直接對物體的位置信息進(jìn)行預(yù)測,而是通過先驗框相對于真實框的偏移距離對目標(biāo)進(jìn)行預(yù)測。YOLOv3 算法在訓(xùn)練數(shù)據(jù)集上通過K-means 方法對先驗框尺度進(jìn)行聚類,如表1 所示,得到了9 種尺度的先驗框。先驗框的設(shè)計能夠降低預(yù)測難度,提升檢測召回率。
本文在公開的偽裝人員數(shù)據(jù)集下,對YOLOv3的9 種先驗框進(jìn)行了重新聚類,重新聚類的先驗框能夠更好貼合當(dāng)前數(shù)據(jù)。重新聚類后的先驗框?qū)捀弑热绫? 所示。
表2 重新聚類后先驗框?qū)捀弑?/p>
當(dāng)網(wǎng)絡(luò)層數(shù)不斷疊加時,網(wǎng)絡(luò)越來越難以訓(xùn)練,會出現(xiàn)梯度彌散的問題。為了解決這一問題,He等人提出了殘差網(wǎng)絡(luò)的概念,重新定義了輸出層的學(xué)習(xí)剩余函數(shù),以便于對網(wǎng)絡(luò)進(jìn)行更深入地訓(xùn)練,使得模型在網(wǎng)絡(luò)層數(shù)較深時仍具有良好的收斂能力和效果[13]。YOLOv3 借鑒了殘差網(wǎng)絡(luò)的特點(diǎn),在特征提取階段使用了多個殘差網(wǎng)絡(luò)進(jìn)行特征提取,表現(xiàn)出了良好的提取性能。
由于YOLOv3 的骨干網(wǎng)絡(luò)多次使用了殘差塊結(jié)構(gòu),本文調(diào)整了殘差塊的級聯(lián)方式。由原先的單級跳連增加到兩級跳連甚至是多級跳連。增加級聯(lián)方式融合了多個殘差塊內(nèi)多個卷積層的特征,有利于誤差回傳。此外,在擴(kuò)展模塊、增加網(wǎng)絡(luò)層數(shù)時,模型依然具有較好的收斂效果。
如圖2 所示,其他輸出層學(xué)習(xí)參數(shù)的引入,能夠進(jìn)一步融合其他輸出層的訓(xùn)練效果,增強(qiáng)模型的訓(xùn)練能力,保證模型能夠進(jìn)行更充分訓(xùn)練且在增加模型深度時模型不會產(chǎn)生梯度消失的問題,進(jìn)一步確保了模型訓(xùn)練時的可靠性和預(yù)測的準(zhǔn)確性。
圖2 殘差塊
由于偽裝目標(biāo)的特征模糊,難以有效辨別,所以改進(jìn)算法主要關(guān)注如何提高偽裝目標(biāo)的有效特征,增大有效特征權(quán)重,提高特征分辨率。因此,將注意力機(jī)制[14]引入到Y(jié)OLOv3 的算法模型中。在神經(jīng)網(wǎng)絡(luò)的模型當(dāng)中,能夠有針對地選擇某些輸入,或者根據(jù)算法需要給網(wǎng)絡(luò)輸入分配不同的權(quán)重值。注意力機(jī)制的引入能夠幫助我們從諸多特征中選擇特定的重要特征,篩選出有用信息,提升網(wǎng)絡(luò)的表達(dá)能力[15-17]。
殘差塊得到的輸出會首先進(jìn)行壓縮操作,通過最大值池化或者平均池化的方式得到一組權(quán)重值,也可將兩種方式得到的權(quán)重值相加作為新的權(quán)重值。該權(quán)重值是整個特征層進(jìn)行壓縮得到的,因而具有全局的感受野,通過壓縮后權(quán)重的通道維度和數(shù)據(jù)的通道維度保持不變。
其中,F(xiàn)sq是全局平均池化得到的C通道的權(quán)重矩陣。H,W表示單個通道的寬和高像素值,通過對通道上所有像素值求平均得到相對于該通道的權(quán)重值。
在多級聯(lián)殘差塊后添加通道注意力機(jī)制,通道注意力的具體實現(xiàn)方式如圖3 所示。
圖3 注意力機(jī)制
如圖4 所示,偽裝的存在,背景中的目標(biāo)難以被有效發(fā)掘,特征很難提取。注意力機(jī)制的嵌入,增大了有效特征的權(quán)重,待檢測的目標(biāo)區(qū)域成為焦點(diǎn)區(qū)域,抑制迷彩對目標(biāo)特征的偽裝效果,提高了特征有效性表達(dá)。
圖4 添加注意力機(jī)制后效果圖
從圖4 可以看出,添加了注意力模塊之后,部分圖像中待檢測目標(biāo)的有效特征權(quán)重進(jìn)行了增強(qiáng),被進(jìn)行了重點(diǎn)關(guān)注,圖中顏色越深表示權(quán)重值越大,顏色越淺,權(quán)重值越小。
在YOLOv3 的基礎(chǔ)上,對現(xiàn)有數(shù)據(jù)先驗框信息進(jìn)行挖掘,利用K-means 算法對先驗框進(jìn)行了重聚類(聚類中心數(shù)為9),計算出了當(dāng)前數(shù)據(jù)集下9 種最佳的寬高比;接著對YOLOv3 的骨干結(jié)構(gòu)進(jìn)行了調(diào)整,在特征提取階段改變了殘差網(wǎng)絡(luò)的級聯(lián)方式,增加了殘差塊的殘差邊,使原先的級聯(lián)方式由單級跳連改為二級跳連;并在每個殘差模塊之后嵌入了注意力機(jī)制進(jìn)行特征提取,改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。
圖5 改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)
在改變了殘差塊級聯(lián)方式的基礎(chǔ)上,將注意力模塊嵌入到每個殘差塊之后,利用注意力機(jī)制具有的特征篩選能力來進(jìn)行特征提取。注意力模塊相當(dāng)于是一維卷積模塊,通過全局池化+兩層卷積+Sigmoid 的方式得到了相應(yīng)通道的特征權(quán)重,權(quán)重的運(yùn)用使得網(wǎng)絡(luò)在進(jìn)行特征提取時具有不同的偏好,是進(jìn)行有用特征提取的一種有效方式。骨干網(wǎng)絡(luò)提取的特征經(jīng)過不同的卷積和上采樣,借鑒了特征金字塔[18](feature pyramid networks,F(xiàn)PN)構(gòu)造,融合了低層和深層特征,提取的特征內(nèi)容更豐富。
本次實驗數(shù)據(jù)集共包含圖片3 279 張,涉及叢林、雪地等不同場景,33 種不同的迷彩類型,不同的人員及其姿態(tài)。實驗數(shù)據(jù)與常規(guī)目標(biāo)數(shù)據(jù)相比,場景更加復(fù)雜,目標(biāo)特征難以辨別,符合偽裝特征。
圖6 部分實驗數(shù)據(jù)
為了增強(qiáng)模型的泛化能力,提高模型在其他類似目標(biāo)檢測上的良好性能,本文利用數(shù)據(jù)增強(qiáng)的方式擴(kuò)充了數(shù)據(jù)集。通過數(shù)據(jù)擴(kuò)充處理,圖片數(shù)據(jù)量成倍增加,處理后的圖片如下頁圖7 所示。
圖7 數(shù)據(jù)增強(qiáng)擴(kuò)充數(shù)據(jù)集
兩個重要的指標(biāo)就是查準(zhǔn)率(Precision)和召回率(Recall)。對于目標(biāo)檢測結(jié)果有4 種可能,真正例(true positive,TP)、真反例(true negative,NF)、假正例(false positive,F(xiàn)P)、假反例(false negative,F(xiàn)N)。4 種檢測結(jié)果代表的含義如下,且由此可計算出Precision和Recall,如表3 所示。
表3 檢測結(jié)果分類和指標(biāo)計算
通過繪制并計算P-R 曲線下方面積(也即mAP)大小來作為算法檢測性能的評價指標(biāo)。
采取的平均精度均值(mean average precision,mAP)作為模型的衡量指標(biāo),反映了待檢測類別的平均檢測精度。平均精度(average precision,AP)是描述單個類別識別精度的衡量指標(biāo),在本文中,因為只對單個目標(biāo)進(jìn)行檢測,mAP和AP 在數(shù)值上相等。所以有
在目標(biāo)檢測任務(wù)中,對單張圖片的檢測需要計算檢測的交并比[19](Intersection over Union,IoU),這是對目標(biāo)識別效果的一次衡量,是作用在單張圖片上的。IoU 描述的是預(yù)測框和真實框之間的重合度。IoU 愈大,重合度越高,預(yù)測就越精準(zhǔn)。IoU 計算方法如式(3)所示,其中,A表示真實框,B表示預(yù)測框。
也可寫成如下關(guān)系式:
在目標(biāo)檢測任務(wù)中,對一個目標(biāo)的檢測包括判斷物體的位置、類別以及置信度,所以在YOLOv3中,對應(yīng)的損失包括的位置損失、類別損失和置信度損失3 類。3 類損失函數(shù)的計算如下:
式中,lbox、lcls和lobj分別代表位置損失、置信度損失和類別損失。在位置損失中,是調(diào)節(jié)系數(shù),K*K代表YOLOv3 的13*13,26*26,52* 52 3 種輸出,M代表著候選的數(shù)量,實驗中設(shè)置M=9,代表著對候選框內(nèi)是否包含物體的判斷,有物體則,否則為0。在置信度損失中,Ci為決定矩形是否負(fù)責(zé)預(yù)測某一物體,如果是,則Ci=1,否則為0;,是對候選框是否不負(fù)責(zé)預(yù)測目標(biāo)的判斷。在類別損失中,為標(biāo)記為類別c的真實值,如果屬于類別c,則,否則為0。和分別為權(quán)重系數(shù)。
本文模型基于Pytorch 架構(gòu),在顯示內(nèi)存為6 GB 的GeForce GTX 1660 Ti GPU 上運(yùn)行。實驗過程中沒有采用YOLOv3 預(yù)訓(xùn)練權(quán)重,實驗數(shù)據(jù)90%用于訓(xùn)練,10%用于驗證。實驗中實驗參數(shù)和含義如下頁表4 所示。
表4 實驗參數(shù)及其含義
本次實驗圖像輸入大小調(diào)整為416*416,初始學(xué)習(xí)率設(shè)定lr=0.001,迭代次數(shù)iterations=250 次,批處理大小Batch_size=8。對比了不同的級聯(lián)方式下訓(xùn)練過程中訓(xùn)練損失和驗證損失情況。結(jié)果如圖8所示。
圖8 改變級聯(lián)方式前后損失曲線對比
分析圖8 中曲線可知,在不增加其他模塊的情況下,模型在當(dāng)前學(xué)習(xí)率下訓(xùn)練時,雖然含有兩條殘差邊的模塊收斂速度略低于改進(jìn)前,但誤差在網(wǎng)絡(luò)中反傳的效果有所增強(qiáng)。無論是訓(xùn)練損失還是驗證損失,含有兩條殘差邊模塊的網(wǎng)絡(luò)收斂效果優(yōu)于只含一條殘差邊模塊的網(wǎng)絡(luò),收斂效果更好。
保持學(xué)習(xí)率lr=0.001,迭代次數(shù)iterations=250,批處理大小Batch_size=8 不變的情況下,在殘差網(wǎng)絡(luò)之后增加了通道注意力模塊,并進(jìn)行實驗驗證,繪制出訓(xùn)練和驗證損失曲線圖,實驗結(jié)果如圖9所示。
圖9 添加注意力模塊前后損失曲線對比
與原始模型相比,增加了注意力機(jī)制的模型在誤差反傳效果上有所改善,收斂值有所降低,證明了在殘差網(wǎng)絡(luò)中增加注意力機(jī)制方式的有效性。
接著,在實驗過程中采用了不同的訓(xùn)練方式。與上面實驗不同的是,實驗起初仍然設(shè)定初始學(xué)習(xí)率lr=0.001,Batch_size=8,在訓(xùn)練了一定的輪次后,設(shè)定學(xué)習(xí)率lr=0.000 1,Batch_size=2,總的iterations=250 次不變。相當(dāng)于整個實驗采用了初始學(xué)習(xí)率不同的兩個階段,并同時結(jié)合了以上兩種改進(jìn)方式與原始算法以及添加不同模塊的方式進(jìn)行了對比,損失曲線如圖10 所示。
圖10 調(diào)整學(xué)習(xí)率前后損失曲線對比
從實驗效果來看,調(diào)整不同的學(xué)習(xí)率進(jìn)行訓(xùn)練,在訓(xùn)練約20 輪之后,將學(xué)習(xí)率從0.001 調(diào)整至0.000 1,并結(jié)合改進(jìn)的網(wǎng)絡(luò)模型,算法的收斂效果優(yōu)于原始網(wǎng)絡(luò)模型,并優(yōu)于只改變級聯(lián)方式或只增加注意力模塊的情況。實驗對比了改進(jìn)后的模型和原始模型的mAP 值,結(jié)果如圖11 所示。
從圖11 可以看出,改進(jìn)前算法模型的平均精度均值為70.14%,改進(jìn)后為74.49%,改進(jìn)后的模型在平均精度均值上要優(yōu)于原始算法,算法精度大約提高了4.35%,驗證了改進(jìn)后算法的有效性。
圖11 改進(jìn)前后的P-R 曲線和mAP 對比
在同一偽裝目標(biāo)數(shù)據(jù)集下,將改進(jìn)后的算法與Faster-RCNN,SSD,YOLOv3 原始算法進(jìn)行了對比。Faster-RCNN和SSD 分別是兩階段和一階段典型算法[20-21]。對比結(jié)果如下頁表5 所示。
從表5 可以看出,改進(jìn)后的算法相比Faster-RCNN,SSD和改進(jìn)前的YOLOv3 算法,算法檢測精度有了提升,尤其是在綜合了以上3 種改進(jìn)之后,檢測精度有了顯著提升。
表5 不同模型的mAP 對比
圖12 部分檢測結(jié)果對比
針對YOLOv3 算法對偽裝目標(biāo)檢測精度不高的問題,本文提出了一種改進(jìn)的YOLOv3 偽裝目標(biāo)算法。首先基于現(xiàn)有數(shù)據(jù),通過K-means 聚類算法對先驗框進(jìn)行了重聚類,重聚類后的先驗框?qū)?shù)據(jù)具有更好的貼合效果;接著改變了殘差模塊內(nèi)部的連接方式確保了在增加網(wǎng)絡(luò)層數(shù)的情況下,網(wǎng)絡(luò)模型依然具有良好的訓(xùn)練效果,并將注意力機(jī)制嵌入到特征提取網(wǎng)絡(luò)中。
實驗結(jié)果表明,在調(diào)整了先驗框的基礎(chǔ)上,改變殘差模塊的級聯(lián)方式和增加注意力機(jī)制后,算法的收斂性能更好,具有較低的損失值。與原始算法相比,改進(jìn)后的算法收斂值更小,平均精度更高,平均檢測精度大約提到了4.35%。