鄒 伊,雷志勇
(西安工業大學 電子信息工程學院,西安 710021)
隨著人工智能等技術的不斷更新、研究,將深度學習的方法與傳統圖像處理的方法進行對比,使得圖像處理領域不斷走向智能化。在武器測試中,彈丸爆炸的瞬間對彈丸毀傷能力的評估具有重要意義[1]。對彈丸爆炸的瞬間檢測即炸點的檢測,通常要考慮到在試驗時,無人機與彈丸之間拍攝距離遠,而且背景復雜,因此傳統的幀差法[2]、背景差分[3]等方法存在檢測到的運動目標可能屬于干擾對象的問題。利用深度學習對炸點目標進行檢測,不僅能檢測到目標而且能判斷檢測到的目標的類別,可以減少誤檢現象。此外,傳統的檢測方法需要對炸點視頻逐幀對比,而深度學習的方法可以對炸點視頻直接檢測,減少工作量。
基于深度學習的目標檢測技術可以利用不同網絡模型及訓練算法來自適應地學習圖像高級語義信息[4]。深度學習在目標檢測領域分為2 種方法:單階段檢測法(one-stage)和雙階段檢測法(twostage)[5]。兩個方法各有優劣,兩階段檢測法雖然在檢測速度上略遜于單階段檢測法,但是在檢測精度方面更具有優勢。經典的兩階段檢測法中常用的是R-CNN 及其衍生網絡,其中Faster R-CNN 比其他幾個網絡不僅在檢測精度上有所提升,而且檢測速度也比較快。
深度學習依賴大量的已知標注信息進行訓練,但是在實際應用場景中,要得到每類訓練對象的大量標注數據是極其困難的,特別是在炸點目標檢測方面,炸點數據集不屬于公開數據集并且實驗中數量少,因此小樣本學習(Low-shot learning)[6]在炸點目標檢測領域具有重要意義。小樣本學習可以分為3 類:遷移學習、模型微調和數據增強[7]。小樣本學習近幾年受到廣泛關注,在圖像分類任務中有很多性能優異的算法模型。其中遷移學習中的元學習方法在小樣本學習中得到廣泛應用并取得很好的效果。基于元學習的方法更多關注圖像分類方面而在目標檢測中檢測效果不好,兩階段微調方法[8]在該方面展現出很好的檢測效果,TFA 只是簡單地凍結在基礎類別上學習網絡參數,然后在新數據上微調,卻取得了比元學習器更好的效果。
綜合分析,本文選用兩階段檢測法,考慮到訓練集的數量,采用小樣本學習中的兩階段微調法(TFA)進行研究,利用Faster R-CNN 網絡作為基礎算法的網絡模型。通過引入自我注意力機制和底層信息,對網絡模型的結構改進展開研究。
TFA 使用Faster R-CNN 作為基本檢測模型,其結構如圖1 所示,包括4 個部分。該算法分為2 個階段:第1 階段在大數據集上進行模型訓練,得到最佳訓練結果的權重文件;第2 階段在新數據集上使用第1 階段的權重文件,并在該階段進行模型的微調和訓練,得到最佳的檢測結果。TFA 在第2 階段對Faster R-CNN 的網絡結構進行部分修改。

圖1 Faster R-CNN 網絡結構圖Fig.1 Network structure diagram of Faster R-CNN

圖2 AC-FPN 模塊結構圖Fig.2 Structural diagram of AC-FPN
從炸點數據集的特性出發,對TFA 算法進行改進:①使用上下文注意力引導模塊(AC-FPN)[9]替換FPN,解決FPN 中高分辨率輸入的特征映射分辨率和接收域之間的矛盾和多尺度接收域之間缺乏有效的通信;②根據路徑聚合網絡[10]的思想,為增強小目標檢測,將金字塔底層輸出送入到金字塔頂層輸出中;③為了讓模型更好地學習數據集,將模型中部分網絡的參數解凍,參與新數據集的訓練。
AC-FPN 該網絡結構通過融合多路不同感受野特征,增大物體感受野,增加獲得的上下文信息,更好地給出分類結果。AC-FPN 包括2 個部分:上下文抽取模塊(CEM)和注意引導模塊(AM)[9]。
CEM 中的特征包含了大量的上下文信息,有利于對不同尺度的目標進行檢測。如圖3 所示,CEM包括擴展卷積層和上采樣層。

圖3 CEM 結構圖Fig.3 Structural diagram of CEM
擴展層通過使用不同膨脹率(Rate=3,6,12,18,24)的多路徑擴展卷積層,可以從不同的大接收域捕獲豐富的上下文信息,并且使用密集連接每一層都接受來自前面所有層的信息,減少梯度消失現象,更好地檢測小目標。但是連續的卷積在獲得豐富信息的同時容易導致特征的流失,因此通過上采樣層,保留輸入原始數據的特征信息。最后對擴展層和上采樣層的結果進行融合。
雖然使用CEM 會帶來大量的感受野信息,但并不是所有的特征對于目標檢測都是有利的,過多的信息可能會給定位和識別造成混淆,導致模型的精度可能會降低。為了解決上述問題,提出了一種注意力引導模塊(AM),引入了自我注意力機制來捕獲有效的上下文依賴關系。注意力引導模塊包括:上下文注意模塊(CxAM)和內容注意模塊(CnAM)。
上下文注意模塊(CxAM)是基于自注意力機制的一個模塊,該模塊對CEM 帶來的大量信息進行識別,更關注語義信息而非空間信息。如圖4 所示。

圖4 CxAM 結構圖Fig.4 Structural diagram of CxAM
對輸入特征圖FCEM∈R(C,H,W)通過卷積層Wq,Wk,Wv得到潛在空間,轉換公式如式(1)所示:
式中:{Q,K,V}∈R(C′,H,W)。
然后將Q 和K 轉換成向量{Q,K,V}∈RC′×N,其中N=H×W。然后利用Q 和K 構造出矩陣R,如式(2)所示:
然后通過Sigmoid 和平均池化對矩陣R 進行歸一化處理得到矩陣R′∈1×H×W,最后將R′與V 相乘得到注意力矩陣E,如式(3)所示:
式中:Ei是通道維數C 的第i 個特征圖。
內容注意模塊(CnAM)同樣是基于自注意力機制,與上一個模塊不同在于該模塊有2 個輸入,分別是特征金字塔頂端輸出F5和該特征圖通過CEM 得到的輸出FCEM。如圖5 所示,對上一層輸出的特征圖F5∈R(C″,H,W)通過卷積層Wp,Wz得到潛在空間,轉換公式如式(4)所示:

圖5 CnAM 結構圖Fig.5 Structural diagram of CnAM
式中:{P,Z}∈R(C′,H,W)。
然后將P 和Z 轉換成向量{P,Z}∈RC′×N,其中N=H×W。然后利用P 和Z 構造出矩陣S=PTZ。然后通過Sigmoid 和平均池化對矩陣R 進行歸一化處理得到注意力矩陣S′∈1×H×W,最后將S′與V 相乘得到矩陣D,如式(5)所示:
式中:Di是第i 個輸出特征圖。
最后將CxAM、CnAM 的輸出特征圖與CEM 的輸出特征圖相加得到頂端輸出特征圖。AC-FPN 可以很容易地插入到現有的基于FPN 的模型中,進行端到端的訓練。
在特征金字塔網絡中,隨著特征圖變小,對底層信息的利用也隨之減少。而底層信息包含定位準確的信息,并且在FPN 中底層與頂層信息之間的路徑過長,會導致底層特征信息丟失。參考路徑聚合網絡結構,為了避免在增加底層信息的同時,由于網絡層數增加,帶來大量的計算量。本文通過僅僅將輸出的P2層信息送到P5層中,在縮短路徑減少底層信息丟失的同時,減少計算量。
此外,在訓練過程中為了更好地學習新數據集,通過解凍ROI Head 部分和主干提取網絡的頂層權重來進行改進。
TFA 分為兩階段進行,對TFA 的修改只在第2階段即微調階段進行。主要是針對主干提取網絡進行改進,如圖6 所示。將輸出的P2~P6送入RPN 網絡,P2~P5和RPN 輸出送入ROI,最后將上述輸出進行分類回歸。

圖6 修改后的主干網絡結構圖Fig.6 Network structure diagram of modified backbone
實驗軟硬件平臺如表1 所示。

表1 實驗環境配置Tab.1 Experimental environment configuration
訓練時輸入端可以輸入不同尺寸的圖片,單批處理圖像數量(Batch size)設為16,將初始學習率設置為0.001,動量設置為0.9,預熱迭代數為200。
3.2.1 Pascal VOC 數據集
TFA 算法通過隨機抽取PASCAL VOC2007 和PASCAL VOC2012 數據集組成小樣本數據集,將數據集中的20 類目分為15 個基本類目和5 個新類目。并且在K=1,2,3,5 和10 的情況下,將新類數據集分為3 部分,分別是Novel Split 1、2 和3。本文使用Pascal VOC Novel Split 1 進行分析。
3.2.2 炸點數據集
本文采用高速相機進行拍攝,利用鞭炮模擬彈丸爆炸。使用PCC 軟件對相機進行參數設置,對炸點視頻進行拍攝、保存及炸點圖像幀提取并制作數據集共608 張,并將其按照7∶2∶1 比例劃分為訓練集、驗證集和測試集。
目標檢測領域常用準確率(Precision)、召回率(Recall)以及平均精度(Average Precision)來綜合衡量算法的檢測效果。但是在通常情況下,單獨使用準確率和召回率無法準確評估模型的性能,因此在TFA 中使用AP 來進行評估。AP 指的是在以準確率和召回率為坐標軸得到的PR 曲線下的面積。
通過將原始的TFA 網絡和優化后的網絡在訓練集上進行訓練并且對結果進行分析和比較,此外對優化后的網絡進行消融實驗來分析每個修改部分對整體網絡的影響。
Pascal VOC Novel Split1 數據集上進行實驗得到的mAP50 結果如表2 所示。

表2 算法mAP 值對比Tab.2 Comparison of algorithm mAP
通過表2 發現優化后的網絡檢測平均精度比原始TFA 網絡平均精度均有提高。
在炸點數據集上進行實驗結果如表3 所示。

表3 算法AP 值比較Tab.3 Algorithm AP value comparison
在炸點數據集上進行測試,發現原始的TFA 網絡AP 只能達到21%左右。通過修改后測試結果達到55.2%,提高了1 倍左右。TFA 算法對自制數據集檢測精度低主要原因在于TFA 算法凍結了網絡大部分權重,導致對新訓練集的學習不足,通過對權重進行解凍,可以讓網絡更好地學習與第1 階段訓練集相關性不大的新訓練集。
對本文修改后的網絡結構分別在Pascal VOC數據集上進行消融實驗,由于在數據集上進行訓練,對權重的解凍貫穿了整個訓練過程,因此在消融實驗中不單獨對權重解凍進行對比。
通過對比發現同時對網絡結構進行兩種改進可以達到更好的效果。如表4 所示,單獨在本文網絡上使用AC-FPN 模型的效果要優于路徑縮短,但是在本文網絡上使用兩種修改方法要好于單獨使用一種。

表4 消融實驗AP 值比較Tab.4 Comparison of ablation experiments AP value
本文針對TFA 算法在炸點數據集存在的學習能力不足導致識別效果不好的問題,提出一種通過加入基于自我注意力機制的AC-FPN 和更多的底層信息改進TFA 算法。通過上述實驗數據發現,在公開數據集上,本文算法比TFA 算法在精度上提高了2~5 個點左右。通過消融實驗發現兩種修改方法對TFA 算法在精度上均有提高,但是同時使用效果更好。本文方法相比于TFA 算法,在與第1 階段數據集相關性小的新數據集上進行檢測的有效性更好,并且在公開數據集上驗證了算法的可行性。