許來祥,劉 剛,劉 森,曹冰許,張培根
(河南科技大學信息工程學院,河南 洛陽 471023)
紅外成像自動目標識別[1]基于紅外輻射成像方式能夠使武器系統(tǒng)對指定目標進行自動追蹤、捕獲和識別,實現(xiàn)對目標指向的正確導引和精確打擊,是紅外導引頭精確制導武器的核心技術之一。
常用的傳統(tǒng)目標識別算法有基于支持向量機(SVM)算法[2]、基于G-Radon 旋轉不變算法[3]、基于尺度不變特征變換[4](Scale-Invariant Feature Transform,SIFT)與極速學習機[5](Extreme Learning Machine,ELM)算法等,這些傳統(tǒng)算法難以適應自動目標識別系統(tǒng)所面臨戰(zhàn)場環(huán)境的復雜化和目標不確定性問題,造成目標識別率低。
近年來深度學習技術在圖像識別方面表現(xiàn)出驚人的效果,可以對目標特征進行自動提取、識別和分類。常用的模型有卷積神經(jīng)網(wǎng)絡[6]、循環(huán)神經(jīng)網(wǎng)絡[7]、深度置信網(wǎng)絡[8]、堆棧自編碼網(wǎng)絡[9]等,其中卷積神經(jīng)網(wǎng)絡應用最廣泛。在物體識別賽ImageNet 中,2012 年AlexNet[10]、2013 年ZFNet[11]、2014 年VGG[12]和GoogleNet[13]以及2015 年ResNet,這些取得了冠軍的模型都是在卷積神經(jīng)網(wǎng)絡的基礎上改進的。
傳統(tǒng)的紅外目標識別系統(tǒng)需要人工設計特征,而基于深度學習技術的紅外目標識別方法與傳統(tǒng)方法的差異之處在于可以直接從大量訓練數(shù)據(jù)集中自動學習特征,省去了傳統(tǒng)識別算法中復雜的特征構建過程。
目前國內外已有一些將CNN 用于紅外目標識別分類的相關研究中。2016 年Zhan[14]等人設計的兩階段CNN 網(wǎng)絡架構,在合成孔徑雷達紅外圖像分類任務中,識別率達到92.86%。2017 年Aparna[15]等人提出基于CNN 的深度學習紅外圖像中民用目標自動識別框架,其分類精度達到98.24%。2018 年Nasrabadi[16]等人提出一種新的基于深度卷積神經(jīng)網(wǎng)絡(DCNN)的框架,用于檢測和識別前視場景中的紅外目標,其準確率高達99.85%。
本文利用改進的卷積神經(jīng)網(wǎng)絡ZFNet 模型對紅外目標實現(xiàn)自動識別。首先,介紹卷積神經(jīng)網(wǎng)絡的結構組成,接著分析在傳統(tǒng)的ZFNet 模型上識別率較低的原因,結合紅外目標特性改進網(wǎng)絡結構,添加Dropout 層并引入空間變換網(wǎng)絡。然后,可視化分析丟棄率對紅外目標識別率的影響,并給出選取原則。在此基礎上,對改進的ZFNet 模型、經(jīng)典ZFNet 模型和SIFT+ELM 算法在紅外目標自動識別問題上進行了試驗分析。最后,對后續(xù)研究工作進行了展望。
在卷積層,前一層的特征圖通過卷積核參與卷積運算,將得到的結果經(jīng)過激活函數(shù)處理后又形成新的一層輸出特征圖。每一層的輸出特征圖與上一層的輸入特征圖彼此建立卷積關系。其表達式為:
式(1)中,l 表示網(wǎng)絡層序數(shù),k 表示卷積核,m 表示特征圖在初始圖像上感受區(qū)域的大小,b 表示偏移量。
池化層往往配在卷積層之后使用,對上一層中提取的每一張?zhí)卣鲌D進行局部最大值或均值等操作。主要起到了降低特征圖的維度、簡化卷積層的輸出、加快網(wǎng)絡計算速度等作用。特征圖進行池化運算的表達式為:
式(2)中,down()表示下采樣函數(shù),ρ 和b 表示特征圖進行采樣時所用的不同常數(shù)。
卷積神經(jīng)網(wǎng)絡在最后幾層通常會配上全連接層,為了將原來的高維特征向量降為低維向量,去除高維特征向量中的冗余和噪聲信息,提高準確率。
CNN 中采用Dropout 技術,隨機地將某些單元隱藏,使其不參與CNN 的訓練過程,防止網(wǎng)絡發(fā)生過擬合。不帶Dropout 層的卷積層計算公式為:
式(3)中,b 為偏置,w 為權重,f 為神經(jīng)元的激活函數(shù)。
帶Dropout 層的丟棄率計算公式為:
式(5)中,Bernoulli 函數(shù)表示伯努利分布,在Dropout層,它以概率p 隨機生成一個0、1 的向量。r 表示由Bernoulli 函數(shù)生成的概率向量。在網(wǎng)絡的訓練過程中,按照一定的概率將其暫時從網(wǎng)絡中丟棄,即讓某個神經(jīng)元的激活值以一定的概率p 停止工作(激活值以概率p 變?yōu)?)。
將第l 層第i 個神經(jīng)元的輸入乘以式(5)產(chǎn)生的隨機數(shù)作為這個神經(jīng)元新的輸入:
此時,第l 層第i 個神經(jīng)元的輸出為:
式(8)中,k 為第l 層的神經(jīng)元個數(shù)。
ZFNet 網(wǎng)絡于2013 年在ILSVRC 上取得冠軍,它能夠對特征的邊緣、物理輪廓、紋理等進行深層次的可視化學習。但本文用傳統(tǒng)的ZFNet 模型對紅外目標訓練后發(fā)現(xiàn)識別率不高,分析主要有以下3點原因:
1)雖然加深網(wǎng)絡層數(shù)能夠使含有稀疏噪點和低分辨率圖像之間的復雜關系精確地映射,但是嚴重引發(fā)了回傳誤差極限的問題,增加了模型訓練和優(yōu)化難度,因此,需要精簡傳統(tǒng)網(wǎng)絡結構。
2)由于紅外目標樣本集缺乏,造成輸入數(shù)據(jù)量不能滿足更深層次的ZFNet 進行特征間的提取、學習、處理等。通常卷積操作越多,網(wǎng)絡的適應能力越強,有利于目標特征提取,但是過多的卷積核會造成內存占用和計算量增加,且大的步幅影響分類精度。此外,如果池化方法采用不當,多層池化操作會降低目標學習特征的效率和目標的識別率,因此,需要精簡傳統(tǒng)網(wǎng)絡卷積層和池化層的參數(shù)。
3)經(jīng)典網(wǎng)絡不能充分學習紅外目標在不同仿射變換下的特征時,會影響識別的準確率,因此,需要考慮在傳統(tǒng)網(wǎng)絡中引入能夠適應仿射變換的層次。
經(jīng)上述分析后,本文從簡化經(jīng)典ZFNet 模型和加入空間變換網(wǎng)絡兩個方面改進。
本文在傳統(tǒng)的ZFNet 基礎上去掉2 個卷積層和1 個池化層,改進后的模型由3 個卷積層C1、C2、C4,兩個池化層P3、P5,兩個全連接層FC6、FC7 和輸出層組成。另外,在C1 卷積層之后加入仿射變換層,在第二個全連接層FC7 添加Dropout。改進后的網(wǎng)絡結構參數(shù)設置如圖1 所示,圖中k、s、p 分別表示卷積核(kernel size)、步幅(stride)、填充(pad)。
圖1 改進后的ZFNet 網(wǎng)絡結構參數(shù)設置
由于CNN 模型需要統(tǒng)一大小的圖像作為輸入,因此,將所有的紅外目標圖像都歸一化為64×64的尺寸作為輸入圖像。本文將紅外目標按照不同的飛行姿態(tài)分成n 類,因此,在第7 層經(jīng)過Dropout 和激活函數(shù)softmax 計算后輸出n 個1×1 的神經(jīng)元,即n 個結點所在類別中的概率。
為了提高CNN 的特征空間表達能力和分類精度,通常在其網(wǎng)絡結構中加入空間變換網(wǎng)絡(Spatial Transformer Networks,STN),它主要由定位網(wǎng)絡(localisation network)、網(wǎng)格生成器(grid generator)、采樣器(sampler)3 部分組成。
將插入CNN 當前層的特征圖U 作為輸入,經(jīng)過連續(xù)若干層訓練(如卷積層、池化層、全連接層等),回歸出空間變換參數(shù)θ,即一個大小為2×3 的仿射變換矩陣用于下一步計算。
根據(jù)已知輸入特征圖U 的像素點坐標位置以及仿射變換參數(shù)θ,可以求得目標特征圖V 中的像素點坐標位置,數(shù)學表達式為:
經(jīng)過交換坐標位置后,由式(10)可求出U 上的坐標點。為了使得到V 中的坐標點都是整數(shù),下一步選用雙線性插值求V,數(shù)學表達式為:
結合紅外目標特性,考慮到STN 可能產(chǎn)生額外的噪聲和幾何畸變,因此,將定位網(wǎng)絡設計為一個相對簡單的結構。本文設計兩層的卷積和兩層的池化運算,經(jīng)過兩個全連接層得到仿射變換矩陣,輸出一個(4,1)的一維向量,再轉換為2×3 的仿射變換矩陣。其中STN 的結構及參數(shù)設計如圖2 所示:
圖2 空間變換網(wǎng)絡層的結構及參數(shù)設計
經(jīng)過空間變換網(wǎng)絡后得到200 個28×28 的特征圖,用于下一步CNN 訓練。
試驗平臺CPU 主頻3.7 GHz,內存16 GB,一塊GTX1080tiGPU 顯卡,采用Cuda9.2+CuDNN7.0 加速,軟件平臺為win10 操作系統(tǒng)下的Anaconda3 5.2.0 spyder+Keras2.2.4。
本試驗的數(shù)據(jù)集一部分來自紅外飛機視頻中截圖,另一部分通過數(shù)據(jù)增廣技術得到,經(jīng)整理后,一共有7 131 幀圖像,根據(jù)不同的飛行姿態(tài)分成15類,用于訓練、測試和驗證。列舉其中的4 幀飛行姿態(tài)如圖3 所示:
圖3 紅外目標飛行姿態(tài)圖
對加入STN 的ZFNet 改進模型進行迭代訓練,其準確率損失函數(shù)變化情況如圖4 所示:
圖4 模型迭代訓練變化圖
從圖4 可以看出,訓練集和驗證集的損失函數(shù)始終保持在0~0.2 之間,沒有太大的波動。accuracy曲線緩慢上升,最終趨于飽和。說明迭代次數(shù)越大,模型的變化范圍越小,擬合狀態(tài)就越穩(wěn)定。
本試驗用經(jīng)典ZFNet 和SIFT+ELM 及加入STN的ZFNet 方法對紅外目標進行測試迭代100 次,其測試準確率結果如圖5 所示。從圖5 可以看出,傳統(tǒng)的SIFT+ELM 識別性能明顯低于傳統(tǒng)ZFNet;而加入STN 的ZFNet 模型比傳統(tǒng)的ZFNet 模型識別率高,說明加入空間變換網(wǎng)絡后,模型能夠有效地縮短特征提取時間,提高分類精度。
圖5 3 種算法模型測試結果圖
經(jīng)典ZFNet 網(wǎng)絡訓練時,由于每步的卷積操作不同,則同樣的兩個神經(jīng)元的狀態(tài)可能就不同。任意降低兩個神經(jīng)元之間的相關度,就等同于減少了部分神經(jīng)元之間的依賴性。如果把這個依賴性通過訓練的方式轉化成一個數(shù)值區(qū)間,那么在這個區(qū)間內進行自主學習就會擬合住這個相關性,進而增強整個網(wǎng)絡的魯棒性、穩(wěn)健性。而加入Dropout 層將丟棄率預先設置為一個0~1 之間的臨界值,在訓練的過程中,對丟棄率數(shù)值變化進行可視化,最終可得到表現(xiàn)最優(yōu)的丟棄率趨于一個平穩(wěn)的區(qū)間。在這個區(qū)間內逐次取值后再次對網(wǎng)絡模型訓練和預測,將使狀態(tài)不同的任意兩個神經(jīng)元之間具有較高相關性,提高模型的識別精度。
在模型訓練時對Dropout 丟棄率的變化趨勢進行可視化,如圖6 所示。
從圖6 可以看出,丟棄率在(0.5,1)之間上下波動較大,容易出現(xiàn)過擬合現(xiàn)象。在(0.1,0.5)之間,隨著迭代次數(shù)的增加,丟棄率快速地下降,出現(xiàn)欠擬合現(xiàn)象。在(0,0.1)之間,丟棄率逐漸趨于穩(wěn)定收斂狀態(tài),說明在此區(qū)間內取值比較合適。
圖6 Dropout 變化圖
本文在(0,0.1)內取4 個子區(qū)間,對其準確率變化進行試驗測試,結果如圖7 所示:
從圖7 可以看出,丟棄率取值在(0.075,0.090)區(qū)間內識別率最高,效果最好。說明在對Dropout 丟棄率進行可視化所得收斂區(qū)間的分析是正確的,試驗結果證實,在此區(qū)間內取不同的丟棄率數(shù)值使得紅外目標識別率有了提高。
圖7 不同丟棄率下的準確率
用加入STN 且Dropout 丟棄率取0.09 和不帶Dropout 層的網(wǎng)絡迭代100 次測試,結果如圖8 所示:
圖8 Dropout 對識別率的影響
從圖8 可以看出,加入STN 且Dropout 丟棄率取0.09 時識別率高達93.12 %,明顯高于不帶Dropout 層的識別結果。說明對Dropout 層丟棄率進行可視化分析確定丟棄率區(qū)間且結合STN 的改進ZFNet 模型是可行性的。
從測試集中隨機抽取10 幀進行識別,其結果如圖9 所示,分類結果全部正確。
圖9 識別結果示例圖
本文將Tensorflow 后端的框架keras 運用到復雜環(huán)境下紅外目標自動識別的問題上,結合紅外目標特性分析改進ZFNet 網(wǎng)絡結構并引入空間變換網(wǎng)絡;在ZFNet 卷積神經(jīng)網(wǎng)絡結構中加入Dropout 層,并通過可視化分析得出能夠提高紅外目標識別率的丟棄率取值。試驗結果表明,本文提出的結合丟棄率選取原則與空間變換網(wǎng)絡的ZFNet 模型優(yōu)于經(jīng)典ZFNet 模型和SIFT+ELM 算法,能夠實現(xiàn)復雜環(huán)境下的紅外目標自動識別。但是,基于深度學習理論的紅外目標自動識別技術仍然面臨著紅外圖像數(shù)據(jù)缺乏的問題。后續(xù)工作考慮利用生成式對抗網(wǎng)絡仿真出更多逼真的實驗圖像來訓練網(wǎng)絡,進一步完善ZFNet 模型結構,達到更好的識別效果,為紅外成像制導自動目標識別算法設計提供參考。