孫振華 李新德
(東南大學自動化學院 江蘇 南京 210000)
目標識別是計算機視覺、模式識別和圖像處理領域的研究熱點之一,而飛機識別作為目標識別的重要部分,在現代戰爭中的空中偵察和敵我身份識別等方面都有著重要的應用。尤其隨著圖像處理和人工智能的迅速發展,飛機識別系統會成為未來武器的主要組成部分,而飛機識別的準確率一直是影響該技術應用的重要因素。因此,如何充分利用已有信息設計出更為準確的飛機識別系統,是當前該領域的重點研究方向。
多標簽飛機識別問題目前主要是分成單個標簽分開處理。一種是基于傳統圖像處理的方法,如:朱旭鋒等[1]提出基于多不變量和多分類器融合的識別方法;李新德等[2]提出基于Hu矩、PNN和DSmT融合的方法;Hussein等[3]提出轉換特征和模糊聚類的飛機識別方法;Zhu等[4]提出基于優化的BoW模型識別方法;Molchanov等[5]提出融合多普勒相干特征進行飛機識別的方法。另一種是基于深度學習的方法,主要采用的基礎網絡模型是CNN,如:Chevalier等[6]提出基于深度學習的LR-CNN方法;Li等[7]提出PCNN模型用于飛機識別;Malekzadeh等[8]提出采用DNN模型提取飛機特征的方法;Xu等[9]提出“端到端”的FCN用于飛機的快速識別方法。
傳統卷積神經網絡結構在處理多標簽識別問題時,是根據每個標簽分別訓練獨立的網絡,然后通過每個獨立的網絡,分別對每個標簽進行分類預測。經分析得知,該方法主要有兩個問題:(1) 由于采用的網絡數目過多,且相互無關聯,從而增加了網絡訓練的成本,造成信息冗余,以致時間效率低下;(2) 忽略了不同標簽之間固有的關系,丟棄了一部分有用的先驗知識,限制了識別效果的提升。
鑒于此,本文提出一種基于卷積神經網絡的多標簽飛機識別算法,并在多標簽飛機圖像數據集上進行訓練與測試。
多標簽飛機識別問題和單個標簽的飛機識別問題實質上是相同的,都是要對飛機圖像進行圖像預處理,再輸入到特征提取器中提取適當的特征。然后將提取到的特征輸入到特定的分類器中,以獲取標簽的預測值。
本文將飛機識別問題建模為一個可以用卷積神經網絡求解的一個多標簽分類問題,并基于Softmax回歸構建分類概率模型。借助于卷積神經網絡強大的特征提取能力和對非線性關系的回歸能力,獲得更準確的識別效果。
Softmax回歸是邏輯斯蒂回歸在多類別分類問題上的推廣,其分類目標損失函數為:
(1)
式中:ω為網絡結構參數,xl為第l個樣本的輸入,N為訓練樣本數目,C為單個標簽所包含的類別數,1{yl=i}在滿足yl=i時為1,否則為0。
由于直接代數求得目標函數顯式的解析解是難以實現的,因此采用梯度下降法逼近代價函數的極小值點,并將所求極小值點對應的參數作為網絡的系統參數估計值,其梯度公式如下:
(2)
將式(2)代入梯度下降算法中,在每一次迭代時進行如下的權重更新,直到目標損失或訓練步數達到要求為止。

(3)
卷積神經網絡是一種前饋人工神經網絡,區別于其他人工神經網絡模型,其最主要的特點為卷積運算操作。因此,相比傳統方法甚至其他深度網絡模型,卷積神經網絡在圖像識別任務上具有更為優異的表現。
對多標簽飛機識別任務而言,由于不同型號飛機在結構和紋理上具有較高的相似性,尤其是同一廠商的不同型號飛機之間(如圖1中Boeing 737-600與Boeing 737-300,Airbus 320與Airbus 321),除了結構設計上的微小差異,其他方面基本相同,具有極大的類間相似度,因此相比一般物體識別具有更大難度。

圖1 不同型號飛機對比圖
針對傳統卷積神經網絡在處理多標簽識別時存在的問題,采用如圖2所示的MLCNN網絡結構,利用各標簽之間的關系,將多個標簽的特征提取和分類融合到一個完整的網絡。

圖2 MLCNN網絡結構示意圖
如圖2所示,MLCNN網絡主要包括三大部分:數據輸入部分、CNN特征提取部分Ci(i=1,2,…,n)和分類器部分Li(i=1,2,…,n)。每個標簽Li的分類器都有與之相對應的特征提取器Ci。其中n為采用該網絡的分類問題所具有的標簽數目,且各標簽之間具有如下的包含關系:
L1?L2?…?Li…?Ln
(4)
式中:Li?Lj表明標簽Li中的任意一個類包含標簽Lj中的一個或多個類,也就是說標簽Lj具有比標簽Li更多、更細分的類別。可以看出,從屬于標簽Lj的不同類之間的相似性更大,具有更高的識別難度,因此需要比標簽Li更加抽象的特征,也就需要構建更深層的卷積網絡來進一步進行特征提取。
因此,在網絡MLCNN中位于最低層的特征提取部分C1,主要負責對圖像的特征進行初步提取,所得特征被用作L1標簽分類器和更深層網絡C2的輸入。然后,特征提取部分C2對特征圖進行更高層的語義抽象,所得特征被用作L2標簽分類器和更深層網絡C3的輸入。依次向下直到最細分的標簽Ln和最高語義的特征提取部分Cn。
就多標簽飛機識別問題而言,所采用的數據集具有多個標簽,且每個標簽之間又具有一定的邏輯關系。每一級標簽都具有一定的先驗信息,在下一層次的標簽分類中,可以利用這些先驗知識,減少冗余的干擾信息,引導特征提取向更深層的標簽靠攏,提高最高層次標簽的識別準確率。
同時,將n層標簽的識別放到一個網絡當中,比起傳統上每個標簽設計一個網絡,極大地減少了網絡的復雜程度。使用一個網絡就可以完成原本多個網絡的分類任務,提高了卷積神經網絡的特征提取效率,整體上減少了卷積神經網絡的訓練時間,也避免了特征重復提取和抽象。
數據輸入層主要負責對初始數據集進行擴充和數據預處理,從而增強數據的多樣性,防止模型過擬合。該層實現數據擴充的方法,主要包括水平翻轉、尺度變換、旋轉變換和Fancy PCA[10]等。
在對數據集進行擴充以后,需要對輸入圖像進行中心式歸一化操作,即對每個特征減去訓練集圖像的平均值,以凸顯圖像個體差異。
如圖3所示,“CNN特征提取”部分主要采用CNN的核心算法思想——卷積對輸入特征圖進行局部特征提取。為了能夠更高效地控制網絡的深度和調整參數,卷積核大小固定為3×3。由于該多標簽網絡整體結構較深,為減少梯度彌散的發生,同時避免ReLU函數常見的“死區”問題,故該部分采用指數化線性單元ELU(Exponential Linear Unit)函數[11]作為卷積后特征值的激活函數,其函數公式如下所示:
(5)

圖3 CNN特征提取部分結構
在多次卷積之后,采用最大值池化的方式對卷積后的特征圖進行降采樣,以減小特征圖的大小,并保證一定程度的特征不變性和防止過擬合。
MLCNN網絡的分類器部分共包含n個結構相似的分類器,分別對應于n個層級的標簽。該分類器的基本結構如圖4所示。

圖4 分類器結構
特征提取部分獲取的特征圖,需要首先經過卷積核尺寸為1×1的卷積操作降維后,再輸入到采取dropout策略進行訓練的全連接神經元。然后將神經元輸出的特征向量輸入到Softmax層進行回歸分析。最終根據回歸所得的概率值,判斷出當前標簽下的類別。
為了保證實驗結果的可靠性和針對多標簽分類問題的適用性,使得實驗能夠準確測試出本文算法的有效性,在數據集構建時主要選擇Boeing和Airbus兩個具有多種型號飛機的廠商,同時針對不同標簽數據的數量進行了適當平衡。
本文數據集所采用的圖像和標簽,主要采集自FGVC-Aircraft數據集。同時根據需要按飛機型號標簽采用爬蟲的方式從網絡爬取圖片,對相應標簽數據進行擴充,共包含1萬幅飛機圖像。如圖5所示,其主要包含三級標簽:“廠商”、“系列”、“型號”,且三者具有如下的包含關系:一個廠商包含一個或多個系列,一個系列包含一個或多個型號。“廠商”共包含2類,“系列”共包含14類,“型號”包含35類,每幅飛機圖像都具有唯一的“廠商”、“系列”、“型號”標注。

圖5 飛機數據集標簽層級結構示意圖
數據集采集構建完成后,將數據集的2/3分割出來作為訓練集,剩余1/3作為測試集。其中訓練集被用作訓練神經網絡,使網絡在式(1)中目標函數的監督下能夠更新自身權重,以實現自我學習,而測試集被用作驗證算法的有效性。
由于本文采用的數據集具有3個標簽,所以第2節中MLCNN結構中所對應的n=3,也就是說實驗所采用的MLCNN共包含3個CNN特征提取部分(C1,C2,C3)和3個對應標簽(L1,L2,L3)的分類器。因為卷積層的層數直接決定了CNN特征提取的能力,而影響分類器的識別效果,所以在該MLCNN網絡中,3個CNN特征提取部分(C1,C2,C3)各自卷積層的層數,是影響其識別效果的主要結構參數。
為了在本文數據集上,選擇識別效果較好的MLCNN網絡。針對C1、C2、C3層數的不同比例分布,分別對不同的MLCNN網絡進行訓練和測試。同時為了保證各組網絡之間可以進行比較,固定每組MLCNN網絡的總層數均為15層。
該實驗共選取7組層數分布不同的MLCNN網絡。其中:第1組網絡對應包含5個卷積層的C1、5個卷積層的C2和5個卷積層的C3;第2組網絡對應包含6個卷積層的C1、6個卷積層的C2和3個卷積層的C3。同樣,后5組網絡C1、C2、C3所包含卷積層的數目,依次為:6層、3層、6層,3層、6層、6層,3層、3層、9層,3層、9層、3層,9層、3層、3層。所得的實驗結果如表1所示。

表1 不同特征提取層數分布的測試結果
從表1可以看出,當最細分標簽L3的識別率較高時,標簽L1和L2的識別率也較高;只比較最終標簽L3的識別率,發現第2組和第7組的識別率高于其他各組,此時C1+C2=12為幾組實驗中最高;只比較標簽L2的識別率,發現也是第2組和第7組的識別率最高,此時C1層數分別為6和9,不低于其他各組;只比較標簽L1的識別率,同樣是第2組和第7組的識別率最高。
由該實驗可以總結如下特征提取部分的層數選擇經驗:
(1) 當總卷積層數不限時,適當增加MLCNN的總層數可以提高最細分標簽的準確率。
(2) 當總卷積層數受限時,適當減小最后一個特征提取層C3的層數,增加C1和C2的層數,可以提高標簽L3的識別率;適當減小C2的層數,增加C1的層數,可以提高標簽L2的識別率。將其歸納為MLCNN特征提取層數選取的漸減策略:
C1≥C2≥C3≥…≥Cn
從實驗結果看出,當“CNN特征提取”層數采用漸減策略時,更能保證準確地提取出各層標簽分類器所需要的特征,從而總體上提高各個標簽的分類準確度。
綜合考慮多個標簽的識別效果,選用上述實驗第7組方案的結果作為MLCNN針對本文數據集的最優實驗結果。同時,采用另外兩種傳統方案,分別對相同數據集進行訓練和測試。一種是SIFT特征提取,再用SVM進行分類的方式;另一種是針對各個標簽分別訓練獨立的CNN。為了便于比較,各個CNN的層數與MLCNN中特征提取層數相對應,分別為:9層、12層和15層。實驗結果如表2所示。

表2 不同方法在本文數據集的測試結果
從表2可以看出,本文所提出的MLCNN在三個標簽的識別率均高于相互獨立的單標簽CNN,尤其在最高層級標簽“型號”上相比單獨的15層“型號”CNN分類網絡,在測試集上的識別率提高了7.54%。這表明,本文提出的MLCNN可以利用不同層級標簽之間的關系信息,將其作為特征提取的依據,從而減少干擾信息,優化網絡的識別效果。
為了測試MLCNN在訓練上的時間效率,在網絡訓練的同時進行了計時。實驗所使用的計算機配置為:GPU(TITAN XP)、CPU(E5-2650)和內存(64 GB)。對應于三個標簽的獨立CNN訓練用時分別為5、6.5和7 h,而MLCNN的訓練用時為7.5 h。可以看出,訓練一個MLCNN比起訓練三個獨立的CNN,在時間上節約了一半多。因此,MLCNN在時間效率上也有了較大的提高。
本文提出一種采用卷積神經網絡解決多標簽飛機識別問題的方法,并構建了多標簽飛機數據集,訓練和測試網絡模型。實驗結果證明,該方法明顯優于同深度的單標簽CNN和傳統的SIFT+SVM模型,能夠更好地利用不同標簽之間的層級關系,縮短了網絡總體的訓練和測試時間,并在測試集上取得了更高的識別率。如何在保證網絡深度的同時,調整網絡優化算法的網絡參數和計算復雜度是我們下一步的研究方向。