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