吳 嬌 王 鵬 喬夢雨 賀咪咪
(西安工業大學電子信息工程學院 陜西 西安 710021)
由于現代戰爭更加信息化、立體化,戰場信息瞬息萬變。所獲得的感知情報數量急劇膨脹,給利用情報進行目標的探測與識別造成了困難,僅僅通過人工判斷無法保證情報關聯的正確率和實時性[1]。因此,在新的作戰思想和作戰模式下,必須進一步提高系統的識別能力,增強現代陸戰場偵察與反偵察的能力和手段,以適應未來形勢發展的需要。尤其在反偵察過程中,陸戰場目標(如火炮、坦克、裝甲車、單兵)作為陸戰場中的信息感知和火力打擊的終端,在陸戰中有著重要的作用[2]。這些目標通常執行毀傷、偵察、潛伏等任務,而能否準確快速檢測出敵方目標不僅決定了我方戰斗力強弱,還影響著戰場態勢,因此指揮中心需要密切關注目標終端的檢測狀態,根據目標檢測狀態實時調整作戰策略[3]。針對陸戰場反偵察系統,如何準確快速地檢測出目標成為提升陸戰場上感知能力所亟待解決的關鍵問題,同時引起學者的廣泛關注[4]。
當前目標檢測領域主要有三大分支。第一種是基于候選區域的深度學習目標檢測算法,也稱為Two-stage目標檢測器,例如:R-CNN通過生成候選區域,可以保證在選取較少窗口的情況下保持較高的召回率,并提升特征魯棒性,但訓練分為多個階段,導致訓練耗時、占用磁盤空間大、速度慢等[5];SPP-NET算法解決了輸入圖片尺度限制的問題,加快目標檢測的速率,但訓練仍為多個階段,固定了卷積層,無法完全適用新任務[6];使用最廣泛的Faster-RCNN通過引入區域生成網絡來去除低層次的候選框算法,使檢測器更加高效[7],通過RPN與檢測網絡的聯合訓練,可實現端到端訓練,然而Faster R-CNN還是達不到實時的目標檢測[8];R-FCN將全連接子檢測網絡替換為完全卷積子檢測網絡,進一步提高了Faster R-CNN的檢測效率,但是檢測速度仍然不滿足需求[9]。第二種是基于回歸方法的深度學習目標檢測算法,也稱為One-stage目標檢測器。例如:YOLO算法將目標檢測轉換成一個回歸問題,大大加快了檢測速度,但沒有了候選區域機制,目標不能被非常準確定位,導致檢測精度不高[10];SSD(Single Shot MultiBox Detector)結合了YOLO中的回歸思想和Faster R-CNN中的錨機制,使用全圖各個位置的多尺度區域特征進行回歸,相對地提高了速度與精度[11]。第三種是基于殘差方法的深度學習目標檢測算法,使用殘差學習的思想學習更深的網絡,從而學習到更好的特征,以提升準確率,例如:COCO2015競賽中,提出的152層的深度殘差網絡ResNet,實現了高準確率的目標檢測;將殘差網絡運用于困難樣本挖掘的目標檢測中,在提高精度的同時使學習到的網絡模型有更強的泛化能力[12]。
針對上述問題,本文基于多層特征金字塔網絡(MLFPN)[13]提出一種更有效的改進的多層次特征金字塔網絡(Improved Multi-level Feature Pyramid Network,I-MLFPN),用于檢測不同尺度的物體,運用Focal loss損失函數解決正負樣本不均衡問題,同時避免上述現有方法的局限性。
本文的主要貢獻如下:
1)在多層次特征金字塔MLFPN的基礎上,提出了運用通道混洗模塊ShuffleNet[14]代替MLFPN網絡模型中的簡化U型模塊(TUM),用于生成一組多尺度特征,然后交替連接ShuffleNet和FFMv2s提取多級多尺度特征。運用尺度的特征聚合模塊SFAM將特征聚合為多級特征金字塔,以此提高目標準確率與檢測速率。
2)使用一種新的Focal loss損失函數進行訓練[15],解決正負樣本不均衡的問題,最后用非最大抑制(NMS)操作以產生最終結果從而提高精度[16]。
實例之間的尺度差異是對象檢測任務的主要挑戰之一,通常有兩種策略來解決由此挑戰引起的問題[17]。第一種是檢測圖像金字塔中的對象,如SNIP[18],這種方法只能在測試時使用,大大增加內存和計算復雜性,效率急劇下降。第二種是檢測從輸入圖像中提取的特征金字塔中的對象,如FPN[19],可以在訓練和測試階段進行利用。與使用圖像金字塔的第一種解決方案相比,第二種方案需要更少的內存和計算成本。此外,特征金字塔構建模塊可以很容易地嵌入到基于深度神經網絡的最先進檢測器中,從而產生端到端的解決方案。
盡管具有特征金字塔的物體檢測器取得了不錯的結果[20],但由于它們只是根據內在多尺度金字塔結構的骨架網絡構建了特征金字塔,這種骨架網絡實際上是為物體分類任務設計的,因此這些方法仍然存在以下兩個局限[21]:金字塔中的特征圖對于對象檢測任務而言不夠典型,它們只是簡單地從為對象分類任務設計的骨干網絡的特征中構造;金字塔中的每個特征圖主要或甚至僅從骨干網絡的單層構建,它僅包含單層信息。通常,較深層中的高級特征對分類子任務更具區別性,而較淺層中的低級特征可有助于對象位置回歸子任務。此外,低級特征更適合于表征具有簡單外觀的對象,而高級特征適合于具有復雜外觀的對象[22]。實際上,在相同尺寸(例如460×460)的圖像中,實際對象的外觀可能完全不同。例如,陸戰場中的坦克、火炮和單兵可能具有相同的尺寸,但是單兵的外觀要復雜得多(如單兵五官、肢體姿態等),其特征更難以提取。因此,金字塔中的每個特征圖(用于檢測特定尺寸范圍內的對象)主要或僅由單級特征組成將致使檢測性能欠佳。
本文提出的改進多層次特征金字塔網絡模型(I-MLFPN)將網絡中的不同深度的特征信息進行提取并融合,不僅解決了小目標特征信息遺漏問題,也很大程度上提高了目標檢測的識別精度,通過運用Focal loss函數進一步提高目標的識別率。
本文模型架構如圖1所示。

圖1 模型網絡結構圖
本文在MLFPN的基礎上,提出了運用通道混洗ShuffleNet模塊代替MLFPN網絡模型中的TUM模塊,優化了網絡的檢測精度與速度。使用骨干網和改進的多級特征金字塔網絡(I-MLFPN)從輸入圖像中提取特征,其中I-MLFPN由三個模塊組成,即特征融合模塊(FFM)、通道混洗ShuffleNet模塊和基于尺度的特征聚合模塊(SFAM);通過FFMv1融合骨干網絡的特征圖,將語義信息豐富為基本特征;將基本信息輸入給ShuffleNet和FFMv2,FFMv2融合了基本特征和前一個ShuffleNet的最大輸出特征圖,將每個ShuffleNet提取出的具有多級多尺度的若干特征圖送入SFAM模塊,SFAM通過按比例縮放的特征連接操作和通道注意力機制將特征聚合到多級特征金字塔中,得出不同尺度的圖像特征;根據學習的特征生成密集的邊界框和類別分數;通過Focal loss損失函數進行訓練,用非最大抑制(NMS)操作以產生最終結果。
FFM融合了圖像中不同層次的特征,這對于構建最終的多級特征金字塔至關重要。它們使用1×1卷積層來壓縮輸入特征的通道,并使用連接操作來聚合這些特征圖。特別地,由于FFMv1以骨干網絡中不同比例的兩個特征圖作為輸入,因此它采用一個上采樣操作,在連接操作之前將深度特征重新縮放到相同的尺度。FFMv1融合淺和深的特征以產生基本特征。同時,FFMv2采用基本特征和前一個ShuffleNet的最大輸出特征圖融合,融合后的最大特征圖作為輸入,并產生下一個ShuffleNet的融合特征。FFMv1和FFMv2的結構細節如圖2所示。

圖2 FFM結構
ShuffleNet模塊用于對不同深度層次的特征信息進行提取,生成多級多尺度特征。該模塊主要進行兩個操作:逐點群卷積和通道混洗(channel shuffle),與現有先進模型相比在類似的精度下大大降低了計算量。逐點群卷積幫助降低計算復雜度,但昂貴的逐點卷積造成有限的通道之間充滿約束,這會顯著地損失精度,降低通道組之間的信息流通和信息表示能力,故提出通道混洗幫助信息流通。基于這兩種技術構建的高效架構為ShuffleNet,相比于其他先進模型,對于給定的計算復雜度預算,ShuffleNet允許使用更多的特征映射通道,有助于編碼更多信息。
若允許組卷積能夠得到不同組的輸入數據,那么輸入和輸出通道會是全關聯的。具體來說,對于上一層輸出的通道,可做一個混洗(Shuffle)操作(如圖3所示),再分成幾個組,提供給下一層,ShuffleNet可以允許使用更多的特征映射通道,這樣就可以編碼更多信息。

圖3 通道混洗結構圖
圖4為構建的一個ShuffleNet 單元,便于實現實際模型。

圖4 混洗單元
圖4是做降采樣的ShuffleNet 單元,主要做了兩點修改:(1)在輔分支加入步長為2的3×3平均池化;(2)原本做元素相加的操作轉化為了通道級聯,擴大了通道維度,增加的計算成本卻很少。
ShuffleNet 單元可以高效地計算,歸功于逐點卷積和通道混洗。相比于其他先進單元,在相同設置下復雜度降低,網絡模型速率得到提升。
第一個ShuffleNet沒有任何其他ShuffleNet的先驗知識,因此它只從Xbase學習。輸出多級多尺度特征的計算如下:
(1)



圖5 按縮放比例的特征聚合模塊

s=Fex(z,W)=σ(W2δ(W1z))
(2)
(3)

針對一階段檢測器提出Focal Loss函數,訓練過程中有前景和背景類別之間的完全不平衡存在,這會主導交叉熵損失。難分負樣本在梯度和損失中占據主導地位,將損失函數變形降低易分樣本的權重,專注于訓練難分負樣本。Focal loss加了(1-mt)β到交叉熵上,β是可以調節的專注參數β>0,mt是不同類別的分類概率,則Focal loss定義為:
FL(mt)=-(1-mt)βlog(mt)
(4)
在實際中,可以運用添加一個權重wt平衡的變體的Focal loss 函數:
FL(mt)=-wt(1-mt)βlog(mt)
(5)
Focal loss通過調整loss的計算公式使單級結構達到和Faster RCNN一樣的準確度。1-mt為調制因子,當mt很小時,那么調制因子1-mt接近1,損失不受影響,當mt→1,因子1-mt接近0,那么分的比較好的樣本的權值就被調低。專注參數β平滑地調節了易分樣本調低權值的比例,β增大能增強調制因子的影響。
本文算法在Ubuntu 16.04 操作系統,采用深度學習框架Pytorch,實現了基于多層次特征金字塔的陸戰場目標檢測算法。實驗平臺采用CPU:Intel(R)Core(TM)i5-8600 3.10 GHz;內存:16 GB;GPU:NVIDIA GTX 1080Ti。為了驗證算法的準確率和實時性,選取了當前性能較好的幾種算法在同樣的環境下進行對比測試。訓練集是隨機從數據集中抽取的70%的數據,測試集是從數據集中抽取的30%的數據。
考慮到實際陸戰場中所包含的目標種類,本文所要識別的目標種類包含坦克(Tank)、坦克炮塔(Cannon)、裝甲車輛(Car)、人(Person)和槍(Gun)。
由于目標種類特殊,公開資源較少。因此數據集一部分來自于內部資料,包含上述所提目標的圖片9 000幅。數據通過添加噪聲,以及一定程度上的尺度變換進行擴充后達到27 000幅。為了使數據更多樣化,自行從網絡上尋找包含目標的相關視頻圖像制作數據集,采集了3 000幅。
經過擴充的原始資料以及網絡上的圖像,數據集一共有30 000幅圖片。每一幅圖片按照PASCAL VOC數據集的格式進行了人工標注,數據集部分圖片如圖6所示。

圖6 部分數據集
本文將Focal loss作為模型的損失函數。為了證明使用Focal loss的優越性,將本文所提目標識別算法的其他部分保持不變,使用深度學習中其他常用的損失函數Cross entry和Center loss,在同樣環境下進行訓練和測試。
(1)Cross Entry 損失函數:
(6)
交叉熵是用來評估當前訓練得到的概率分布與真實分布的差異情況,減少交叉熵損失就是在提高模型的預測準確率。式中:p(x)是指真實分布的概率;q(x)是模型通過數據計算出來的概率估計。
(2)Center loss 損失函數:
(7)
式中:cyi表示第yi個類別的特征中心;xi表示全連接層之前的特征;m表示小批梯度下降的大小。因此式(7)就是希望一批中的每個樣本的特征離特征的中心的距離的平方和要越小越好,也就是類內距離要越小越好。
ROC曲線又稱接收者操作特性曲線,用來評價分類器的性能。橫坐標:偽正類率(False Positive Rate,FPR),預測為正但實際為負的樣本占所有負例樣本的比例;縱坐標:真正類率(True Positive Rate,TPR),預測為正且實際為正的樣本占所有正例樣本的比例,運用ROC曲線繪制三種損失函數,如圖7所示。

圖7 ROC測試曲線圖
可以看出,在二分類模型中,Focal loss損失函數性能更好,使得分類器效果最優。
為了驗證算法的識別準確率,將本文算法模型與當前主流的目標檢測模型對比,所對比的性能參數由FPS(每秒幀率)、AP(平均正確率)、AP50和 AP75(以0.5和0.75為IoU臨界值分別估計出平均準確度),結果如表1所示。

表1 不同算法精度比較表
表1中:方法1為DSSD,添加了反卷積層融合多層特征的SSD網絡;方法2為RefineDet,引入類似FPN網絡的特征融合操作用于檢測網絡,檢測框架還是SSD;方法3為Cascade R-CNN,采用級聯結構的RCNN網絡;方法4為本文算法,其中骨干網絡采用ResNet-101;方法5為本文算法,其中骨干網絡采用VGG-16。
為了驗證本文模型的速度,實驗環境均采用GPU加速,讀取20 000幅圖片,圖片大小為460×460。采用FPS(每秒幀率)作為評價標準,一幀即讀取一幅圖片的時間,FPS就是一秒讀取的幀數。本文采用的ResNet-101網絡模型的FPS可以達到24.8,優于采用同樣骨干網絡的DSSD、RefineDet以及Cascade R-CNN算法。同時,保持其他網絡參數與結構不變,采用VGG-16作為骨干網絡進行實驗,模型參數更少,相對于采用ResNet-101作為骨干網絡的方法,其檢測速度提升了1%,FPS達到25.1。
由表1可知,DSSD算法的平均正確率低于本文算法,由于通道混洗模塊減少參數,本文算法正確率高出12.4%;RefineDet平均正確率接近于采用VGG-16作為特征提取網絡的本文算法;Cascade R-CNN方法平均正確率略高于采用VGG-16作為特征提取網絡的本文方法,但檢測速度更慢;采用ResNet-101作為骨干特征提取網絡的本文方法在平均正確率上優于使用VGG-16方法,檢測精度提升了6%,檢測速度僅低了0.3幀/s。在每秒幀率與平均正確率上,本文算法均優于現有其他主流目標識別算法。綜合識別準確率與目標檢測速度的情況下,使用ResNet-101作為骨干提取網絡優于使用VGG-16的方法。部分測試結果如圖8所示。

圖8 部分測試結果圖
本文提出了基于多層次特征金字塔的陸戰場目標檢測算法。將骨干網提取的多層特征融合為基本特征,然后將其饋入交替連接的ShuffleNet模塊和特征融合模塊,以提取更具代表性的多層次多尺度特征。顯然,這些ShuffleNet層比主干中的層深得多,因此用于物體檢測時可以表現出更多的特征。運用Focal loss 函數可以較好地處理正負樣本不均衡的問題。與現有其他檢測算法相比,本文算法目標檢測準確率更優,但本文的整體網絡模型架構較復雜,如果對模型進行修建,未來可以實現嵌入式終端的移植。