吳 嬌 王 鵬 喬夢(mèng)雨 賀咪咪
(西安工業(yè)大學(xué)電子信息工程學(xué)院 陜西 西安 710021)
由于現(xiàn)代戰(zhàn)爭(zhēng)更加信息化、立體化,戰(zhàn)場(chǎng)信息瞬息萬(wàn)變。所獲得的感知情報(bào)數(shù)量急劇膨脹,給利用情報(bào)進(jìn)行目標(biāo)的探測(cè)與識(shí)別造成了困難,僅僅通過(guò)人工判斷無(wú)法保證情報(bào)關(guān)聯(lián)的正確率和實(shí)時(shí)性[1]。因此,在新的作戰(zhàn)思想和作戰(zhàn)模式下,必須進(jìn)一步提高系統(tǒng)的識(shí)別能力,增強(qiáng)現(xiàn)代陸戰(zhàn)場(chǎng)偵察與反偵察的能力和手段,以適應(yīng)未來(lái)形勢(shì)發(fā)展的需要。尤其在反偵察過(guò)程中,陸戰(zhàn)場(chǎng)目標(biāo)(如火炮、坦克、裝甲車(chē)、單兵)作為陸戰(zhàn)場(chǎng)中的信息感知和火力打擊的終端,在陸戰(zhàn)中有著重要的作用[2]。這些目標(biāo)通常執(zhí)行毀傷、偵察、潛伏等任務(wù),而能否準(zhǔn)確快速檢測(cè)出敵方目標(biāo)不僅決定了我方戰(zhàn)斗力強(qiáng)弱,還影響著戰(zhàn)場(chǎng)態(tài)勢(shì),因此指揮中心需要密切關(guān)注目標(biāo)終端的檢測(cè)狀態(tài),根據(jù)目標(biāo)檢測(cè)狀態(tài)實(shí)時(shí)調(diào)整作戰(zhàn)策略[3]。針對(duì)陸戰(zhàn)場(chǎng)反偵察系統(tǒng),如何準(zhǔn)確快速地檢測(cè)出目標(biāo)成為提升陸戰(zhàn)場(chǎng)上感知能力所亟待解決的關(guān)鍵問(wèn)題,同時(shí)引起學(xué)者的廣泛關(guān)注[4]。
當(dāng)前目標(biāo)檢測(cè)領(lǐng)域主要有三大分支。第一種是基于候選區(qū)域的深度學(xué)習(xí)目標(biāo)檢測(cè)算法,也稱為T(mén)wo-stage目標(biāo)檢測(cè)器,例如:R-CNN通過(guò)生成候選區(qū)域,可以保證在選取較少窗口的情況下保持較高的召回率,并提升特征魯棒性,但訓(xùn)練分為多個(gè)階段,導(dǎo)致訓(xùn)練耗時(shí)、占用磁盤(pán)空間大、速度慢等[5];SPP-NET算法解決了輸入圖片尺度限制的問(wèn)題,加快目標(biāo)檢測(cè)的速率,但訓(xùn)練仍為多個(gè)階段,固定了卷積層,無(wú)法完全適用新任務(wù)[6];使用最廣泛的Faster-RCNN通過(guò)引入?yún)^(qū)域生成網(wǎng)絡(luò)來(lái)去除低層次的候選框算法,使檢測(cè)器更加高效[7],通過(guò)RPN與檢測(cè)網(wǎng)絡(luò)的聯(lián)合訓(xùn)練,可實(shí)現(xiàn)端到端訓(xùn)練,然而Faster R-CNN還是達(dá)不到實(shí)時(shí)的目標(biāo)檢測(cè)[8];R-FCN將全連接子檢測(cè)網(wǎng)絡(luò)替換為完全卷積子檢測(cè)網(wǎng)絡(luò),進(jìn)一步提高了Faster R-CNN的檢測(cè)效率,但是檢測(cè)速度仍然不滿足需求[9]。第二種是基于回歸方法的深度學(xué)習(xí)目標(biāo)檢測(cè)算法,也稱為One-stage目標(biāo)檢測(cè)器。例如:YOLO算法將目標(biāo)檢測(cè)轉(zhuǎn)換成一個(gè)回歸問(wèn)題,大大加快了檢測(cè)速度,但沒(méi)有了候選區(qū)域機(jī)制,目標(biāo)不能被非常準(zhǔn)確定位,導(dǎo)致檢測(cè)精度不高[10];SSD(Single Shot MultiBox Detector)結(jié)合了YOLO中的回歸思想和Faster R-CNN中的錨機(jī)制,使用全圖各個(gè)位置的多尺度區(qū)域特征進(jìn)行回歸,相對(duì)地提高了速度與精度[11]。第三種是基于殘差方法的深度學(xué)習(xí)目標(biāo)檢測(cè)算法,使用殘差學(xué)習(xí)的思想學(xué)習(xí)更深的網(wǎng)絡(luò),從而學(xué)習(xí)到更好的特征,以提升準(zhǔn)確率,例如:COCO2015競(jìng)賽中,提出的152層的深度殘差網(wǎng)絡(luò)ResNet,實(shí)現(xiàn)了高準(zhǔn)確率的目標(biāo)檢測(cè);將殘差網(wǎng)絡(luò)運(yùn)用于困難樣本挖掘的目標(biāo)檢測(cè)中,在提高精度的同時(shí)使學(xué)習(xí)到的網(wǎng)絡(luò)模型有更強(qiáng)的泛化能力[12]。
針對(duì)上述問(wèn)題,本文基于多層特征金字塔網(wǎng)絡(luò)(MLFPN)[13]提出一種更有效的改進(jìn)的多層次特征金字塔網(wǎng)絡(luò)(Improved Multi-level Feature Pyramid Network,I-MLFPN),用于檢測(cè)不同尺度的物體,運(yùn)用Focal loss損失函數(shù)解決正負(fù)樣本不均衡問(wèn)題,同時(shí)避免上述現(xiàn)有方法的局限性。
本文的主要貢獻(xiàn)如下:
1)在多層次特征金字塔MLFPN的基礎(chǔ)上,提出了運(yùn)用通道混洗模塊ShuffleNet[14]代替MLFPN網(wǎng)絡(luò)模型中的簡(jiǎn)化U型模塊(TUM),用于生成一組多尺度特征,然后交替連接ShuffleNet和FFMv2s提取多級(jí)多尺度特征。運(yùn)用尺度的特征聚合模塊SFAM將特征聚合為多級(jí)特征金字塔,以此提高目標(biāo)準(zhǔn)確率與檢測(cè)速率。
2)使用一種新的Focal loss損失函數(shù)進(jìn)行訓(xùn)練[15],解決正負(fù)樣本不均衡的問(wèn)題,最后用非最大抑制(NMS)操作以產(chǎn)生最終結(jié)果從而提高精度[16]。
實(shí)例之間的尺度差異是對(duì)象檢測(cè)任務(wù)的主要挑戰(zhàn)之一,通常有兩種策略來(lái)解決由此挑戰(zhàn)引起的問(wèn)題[17]。第一種是檢測(cè)圖像金字塔中的對(duì)象,如SNIP[18],這種方法只能在測(cè)試時(shí)使用,大大增加內(nèi)存和計(jì)算復(fù)雜性,效率急劇下降。第二種是檢測(cè)從輸入圖像中提取的特征金字塔中的對(duì)象,如FPN[19],可以在訓(xùn)練和測(cè)試階段進(jìn)行利用。與使用圖像金字塔的第一種解決方案相比,第二種方案需要更少的內(nèi)存和計(jì)算成本。此外,特征金字塔構(gòu)建模塊可以很容易地嵌入到基于深度神經(jīng)網(wǎng)絡(luò)的最先進(jìn)檢測(cè)器中,從而產(chǎn)生端到端的解決方案。
盡管具有特征金字塔的物體檢測(cè)器取得了不錯(cuò)的結(jié)果[20],但由于它們只是根據(jù)內(nèi)在多尺度金字塔結(jié)構(gòu)的骨架網(wǎng)絡(luò)構(gòu)建了特征金字塔,這種骨架網(wǎng)絡(luò)實(shí)際上是為物體分類任務(wù)設(shè)計(jì)的,因此這些方法仍然存在以下兩個(gè)局限[21]:金字塔中的特征圖對(duì)于對(duì)象檢測(cè)任務(wù)而言不夠典型,它們只是簡(jiǎn)單地從為對(duì)象分類任務(wù)設(shè)計(jì)的骨干網(wǎng)絡(luò)的特征中構(gòu)造;金字塔中的每個(gè)特征圖主要或甚至僅從骨干網(wǎng)絡(luò)的單層構(gòu)建,它僅包含單層信息。通常,較深層中的高級(jí)特征對(duì)分類子任務(wù)更具區(qū)別性,而較淺層中的低級(jí)特征可有助于對(duì)象位置回歸子任務(wù)。此外,低級(jí)特征更適合于表征具有簡(jiǎn)單外觀的對(duì)象,而高級(jí)特征適合于具有復(fù)雜外觀的對(duì)象[22]。實(shí)際上,在相同尺寸(例如460×460)的圖像中,實(shí)際對(duì)象的外觀可能完全不同。例如,陸戰(zhàn)場(chǎng)中的坦克、火炮和單兵可能具有相同的尺寸,但是單兵的外觀要復(fù)雜得多(如單兵五官、肢體姿態(tài)等),其特征更難以提取。因此,金字塔中的每個(gè)特征圖(用于檢測(cè)特定尺寸范圍內(nèi)的對(duì)象)主要或僅由單級(jí)特征組成將致使檢測(cè)性能欠佳。
本文提出的改進(jìn)多層次特征金字塔網(wǎng)絡(luò)模型(I-MLFPN)將網(wǎng)絡(luò)中的不同深度的特征信息進(jìn)行提取并融合,不僅解決了小目標(biāo)特征信息遺漏問(wèn)題,也很大程度上提高了目標(biāo)檢測(cè)的識(shí)別精度,通過(guò)運(yùn)用Focal loss函數(shù)進(jìn)一步提高目標(biāo)的識(shí)別率。
本文模型架構(gòu)如圖1所示。
圖1 模型網(wǎng)絡(luò)結(jié)構(gòu)圖
本文在MLFPN的基礎(chǔ)上,提出了運(yùn)用通道混洗ShuffleNet模塊代替MLFPN網(wǎng)絡(luò)模型中的TUM模塊,優(yōu)化了網(wǎng)絡(luò)的檢測(cè)精度與速度。使用骨干網(wǎng)和改進(jìn)的多級(jí)特征金字塔網(wǎng)絡(luò)(I-MLFPN)從輸入圖像中提取特征,其中I-MLFPN由三個(gè)模塊組成,即特征融合模塊(FFM)、通道混洗ShuffleNet模塊和基于尺度的特征聚合模塊(SFAM);通過(guò)FFMv1融合骨干網(wǎng)絡(luò)的特征圖,將語(yǔ)義信息豐富為基本特征;將基本信息輸入給ShuffleNet和FFMv2,F(xiàn)FMv2融合了基本特征和前一個(gè)ShuffleNet的最大輸出特征圖,將每個(gè)ShuffleNet提取出的具有多級(jí)多尺度的若干特征圖送入SFAM模塊,SFAM通過(guò)按比例縮放的特征連接操作和通道注意力機(jī)制將特征聚合到多級(jí)特征金字塔中,得出不同尺度的圖像特征;根據(jù)學(xué)習(xí)的特征生成密集的邊界框和類別分?jǐn)?shù);通過(guò)Focal loss損失函數(shù)進(jìn)行訓(xùn)練,用非最大抑制(NMS)操作以產(chǎn)生最終結(jié)果。
FFM融合了圖像中不同層次的特征,這對(duì)于構(gòu)建最終的多級(jí)特征金字塔至關(guān)重要。它們使用1×1卷積層來(lái)壓縮輸入特征的通道,并使用連接操作來(lái)聚合這些特征圖。特別地,由于FFMv1以骨干網(wǎng)絡(luò)中不同比例的兩個(gè)特征圖作為輸入,因此它采用一個(gè)上采樣操作,在連接操作之前將深度特征重新縮放到相同的尺度。FFMv1融合淺和深的特征以產(chǎn)生基本特征。同時(shí),F(xiàn)FMv2采用基本特征和前一個(gè)ShuffleNet的最大輸出特征圖融合,融合后的最大特征圖作為輸入,并產(chǎn)生下一個(gè)ShuffleNet的融合特征。FFMv1和FFMv2的結(jié)構(gòu)細(xì)節(jié)如圖2所示。
圖2 FFM結(jié)構(gòu)
ShuffleNet模塊用于對(duì)不同深度層次的特征信息進(jìn)行提取,生成多級(jí)多尺度特征。該模塊主要進(jìn)行兩個(gè)操作:逐點(diǎn)群卷積和通道混洗(channel shuffle),與現(xiàn)有先進(jìn)模型相比在類似的精度下大大降低了計(jì)算量。逐點(diǎn)群卷積幫助降低計(jì)算復(fù)雜度,但昂貴的逐點(diǎn)卷積造成有限的通道之間充滿約束,這會(huì)顯著地?fù)p失精度,降低通道組之間的信息流通和信息表示能力,故提出通道混洗幫助信息流通?;谶@兩種技術(shù)構(gòu)建的高效架構(gòu)為ShuffleNet,相比于其他先進(jìn)模型,對(duì)于給定的計(jì)算復(fù)雜度預(yù)算,ShuffleNet允許使用更多的特征映射通道,有助于編碼更多信息。
若允許組卷積能夠得到不同組的輸入數(shù)據(jù),那么輸入和輸出通道會(huì)是全關(guān)聯(lián)的。具體來(lái)說(shuō),對(duì)于上一層輸出的通道,可做一個(gè)混洗(Shuffle)操作(如圖3所示),再分成幾個(gè)組,提供給下一層,ShuffleNet可以允許使用更多的特征映射通道,這樣就可以編碼更多信息。
圖3 通道混洗結(jié)構(gòu)圖
圖4為構(gòu)建的一個(gè)ShuffleNet 單元,便于實(shí)現(xiàn)實(shí)際模型。
圖4 混洗單元
圖4是做降采樣的ShuffleNet 單元,主要做了兩點(diǎn)修改:(1)在輔分支加入步長(zhǎng)為2的3×3平均池化;(2)原本做元素相加的操作轉(zhuǎn)化為了通道級(jí)聯(lián),擴(kuò)大了通道維度,增加的計(jì)算成本卻很少。
ShuffleNet 單元可以高效地計(jì)算,歸功于逐點(diǎn)卷積和通道混洗。相比于其他先進(jìn)單元,在相同設(shè)置下復(fù)雜度降低,網(wǎng)絡(luò)模型速率得到提升。
第一個(gè)ShuffleNet沒(méi)有任何其他ShuffleNet的先驗(yàn)知識(shí),因此它只從Xbase學(xué)習(xí)。輸出多級(jí)多尺度特征的計(jì)算如下:
(1)
圖5 按縮放比例的特征聚合模塊
s=Fex(z,W)=σ(W2δ(W1z))
(2)
(3)
針對(duì)一階段檢測(cè)器提出Focal Loss函數(shù),訓(xùn)練過(guò)程中有前景和背景類別之間的完全不平衡存在,這會(huì)主導(dǎo)交叉熵?fù)p失。難分負(fù)樣本在梯度和損失中占據(jù)主導(dǎo)地位,將損失函數(shù)變形降低易分樣本的權(quán)重,專注于訓(xùn)練難分負(fù)樣本。Focal loss加了(1-mt)β到交叉熵上,β是可以調(diào)節(jié)的專注參數(shù)β>0,mt是不同類別的分類概率,則Focal loss定義為:
FL(mt)=-(1-mt)βlog(mt)
(4)
在實(shí)際中,可以運(yùn)用添加一個(gè)權(quán)重wt平衡的變體的Focal loss 函數(shù):
FL(mt)=-wt(1-mt)βlog(mt)
(5)
Focal loss通過(guò)調(diào)整loss的計(jì)算公式使單級(jí)結(jié)構(gòu)達(dá)到和Faster RCNN一樣的準(zhǔn)確度。1-mt為調(diào)制因子,當(dāng)mt很小時(shí),那么調(diào)制因子1-mt接近1,損失不受影響,當(dāng)mt→1,因子1-mt接近0,那么分的比較好的樣本的權(quán)值就被調(diào)低。專注參數(shù)β平滑地調(diào)節(jié)了易分樣本調(diào)低權(quán)值的比例,β增大能增強(qiáng)調(diào)制因子的影響。
本文算法在Ubuntu 16.04 操作系統(tǒng),采用深度學(xué)習(xí)框架Pytorch,實(shí)現(xiàn)了基于多層次特征金字塔的陸戰(zhàn)場(chǎng)目標(biāo)檢測(cè)算法。實(shí)驗(yàn)平臺(tái)采用CPU:Intel(R)Core(TM)i5-8600 3.10 GHz;內(nèi)存:16 GB;GPU:NVIDIA GTX 1080Ti。為了驗(yàn)證算法的準(zhǔn)確率和實(shí)時(shí)性,選取了當(dāng)前性能較好的幾種算法在同樣的環(huán)境下進(jìn)行對(duì)比測(cè)試。訓(xùn)練集是隨機(jī)從數(shù)據(jù)集中抽取的70%的數(shù)據(jù),測(cè)試集是從數(shù)據(jù)集中抽取的30%的數(shù)據(jù)。
考慮到實(shí)際陸戰(zhàn)場(chǎng)中所包含的目標(biāo)種類,本文所要識(shí)別的目標(biāo)種類包含坦克(Tank)、坦克炮塔(Cannon)、裝甲車(chē)輛(Car)、人(Person)和槍(Gun)。
由于目標(biāo)種類特殊,公開(kāi)資源較少。因此數(shù)據(jù)集一部分來(lái)自于內(nèi)部資料,包含上述所提目標(biāo)的圖片9 000幅。數(shù)據(jù)通過(guò)添加噪聲,以及一定程度上的尺度變換進(jìn)行擴(kuò)充后達(dá)到27 000幅。為了使數(shù)據(jù)更多樣化,自行從網(wǎng)絡(luò)上尋找包含目標(biāo)的相關(guān)視頻圖像制作數(shù)據(jù)集,采集了3 000幅。
經(jīng)過(guò)擴(kuò)充的原始資料以及網(wǎng)絡(luò)上的圖像,數(shù)據(jù)集一共有30 000幅圖片。每一幅圖片按照PASCAL VOC數(shù)據(jù)集的格式進(jìn)行了人工標(biāo)注,數(shù)據(jù)集部分圖片如圖6所示。
圖6 部分?jǐn)?shù)據(jù)集
本文將Focal loss作為模型的損失函數(shù)。為了證明使用Focal loss的優(yōu)越性,將本文所提目標(biāo)識(shí)別算法的其他部分保持不變,使用深度學(xué)習(xí)中其他常用的損失函數(shù)Cross entry和Center loss,在同樣環(huán)境下進(jìn)行訓(xùn)練和測(cè)試。
(1)Cross Entry 損失函數(shù):
(6)
交叉熵是用來(lái)評(píng)估當(dāng)前訓(xùn)練得到的概率分布與真實(shí)分布的差異情況,減少交叉熵?fù)p失就是在提高模型的預(yù)測(cè)準(zhǔn)確率。式中:p(x)是指真實(shí)分布的概率;q(x)是模型通過(guò)數(shù)據(jù)計(jì)算出來(lái)的概率估計(jì)。
(2)Center loss 損失函數(shù):
(7)
式中:cyi表示第yi個(gè)類別的特征中心;xi表示全連接層之前的特征;m表示小批梯度下降的大小。因此式(7)就是希望一批中的每個(gè)樣本的特征離特征的中心的距離的平方和要越小越好,也就是類內(nèi)距離要越小越好。
ROC曲線又稱接收者操作特性曲線,用來(lái)評(píng)價(jià)分類器的性能。橫坐標(biāo):偽正類率(False Positive Rate,F(xiàn)PR),預(yù)測(cè)為正但實(shí)際為負(fù)的樣本占所有負(fù)例樣本的比例;縱坐標(biāo):真正類率(True Positive Rate,TPR),預(yù)測(cè)為正且實(shí)際為正的樣本占所有正例樣本的比例,運(yùn)用ROC曲線繪制三種損失函數(shù),如圖7所示。
圖7 ROC測(cè)試曲線圖
可以看出,在二分類模型中,F(xiàn)ocal loss損失函數(shù)性能更好,使得分類器效果最優(yōu)。
為了驗(yàn)證算法的識(shí)別準(zhǔn)確率,將本文算法模型與當(dāng)前主流的目標(biāo)檢測(cè)模型對(duì)比,所對(duì)比的性能參數(shù)由FPS(每秒幀率)、AP(平均正確率)、AP50和 AP75(以0.5和0.75為IoU臨界值分別估計(jì)出平均準(zhǔn)確度),結(jié)果如表1所示。
表1 不同算法精度比較表
表1中:方法1為DSSD,添加了反卷積層融合多層特征的SSD網(wǎng)絡(luò);方法2為RefineDet,引入類似FPN網(wǎng)絡(luò)的特征融合操作用于檢測(cè)網(wǎng)絡(luò),檢測(cè)框架還是SSD;方法3為Cascade R-CNN,采用級(jí)聯(lián)結(jié)構(gòu)的RCNN網(wǎng)絡(luò);方法4為本文算法,其中骨干網(wǎng)絡(luò)采用ResNet-101;方法5為本文算法,其中骨干網(wǎng)絡(luò)采用VGG-16。
為了驗(yàn)證本文模型的速度,實(shí)驗(yàn)環(huán)境均采用GPU加速,讀取20 000幅圖片,圖片大小為460×460。采用FPS(每秒幀率)作為評(píng)價(jià)標(biāo)準(zhǔn),一幀即讀取一幅圖片的時(shí)間,F(xiàn)PS就是一秒讀取的幀數(shù)。本文采用的ResNet-101網(wǎng)絡(luò)模型的FPS可以達(dá)到24.8,優(yōu)于采用同樣骨干網(wǎng)絡(luò)的DSSD、RefineDet以及Cascade R-CNN算法。同時(shí),保持其他網(wǎng)絡(luò)參數(shù)與結(jié)構(gòu)不變,采用VGG-16作為骨干網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn),模型參數(shù)更少,相對(duì)于采用ResNet-101作為骨干網(wǎng)絡(luò)的方法,其檢測(cè)速度提升了1%,F(xiàn)PS達(dá)到25.1。
由表1可知,DSSD算法的平均正確率低于本文算法,由于通道混洗模塊減少參數(shù),本文算法正確率高出12.4%;RefineDet平均正確率接近于采用VGG-16作為特征提取網(wǎng)絡(luò)的本文算法;Cascade R-CNN方法平均正確率略高于采用VGG-16作為特征提取網(wǎng)絡(luò)的本文方法,但檢測(cè)速度更慢;采用ResNet-101作為骨干特征提取網(wǎng)絡(luò)的本文方法在平均正確率上優(yōu)于使用VGG-16方法,檢測(cè)精度提升了6%,檢測(cè)速度僅低了0.3幀/s。在每秒幀率與平均正確率上,本文算法均優(yōu)于現(xiàn)有其他主流目標(biāo)識(shí)別算法。綜合識(shí)別準(zhǔn)確率與目標(biāo)檢測(cè)速度的情況下,使用ResNet-101作為骨干提取網(wǎng)絡(luò)優(yōu)于使用VGG-16的方法。部分測(cè)試結(jié)果如圖8所示。
圖8 部分測(cè)試結(jié)果圖
本文提出了基于多層次特征金字塔的陸戰(zhàn)場(chǎng)目標(biāo)檢測(cè)算法。將骨干網(wǎng)提取的多層特征融合為基本特征,然后將其饋入交替連接的ShuffleNet模塊和特征融合模塊,以提取更具代表性的多層次多尺度特征。顯然,這些ShuffleNet層比主干中的層深得多,因此用于物體檢測(cè)時(shí)可以表現(xiàn)出更多的特征。運(yùn)用Focal loss 函數(shù)可以較好地處理正負(fù)樣本不均衡的問(wèn)題。與現(xiàn)有其他檢測(cè)算法相比,本文算法目標(biāo)檢測(cè)準(zhǔn)確率更優(yōu),但本文的整體網(wǎng)絡(luò)模型架構(gòu)較復(fù)雜,如果對(duì)模型進(jìn)行修建,未來(lái)可以實(shí)現(xiàn)嵌入式終端的移植。