于 麗,劉 坤,于晟燾
1.上海海事大學 信息工程學院,山東 煙臺 264000
2.上海海事大學 信息工程學院,上海 201306
3.上海海事大學 信息工程學院,山東 臨沂 276000
隨著遙感衛星技術的不斷發展進步,高分辨率遙感圖像的識別成為研究熱點問題。其中遙感飛機的識別無論在民用還是軍事領域,都有巨大的研究和應用意義。現有的飛機識別算法主要有模板匹配[1]、支持向量機[2]和神經網絡[3]等。文獻[4]提出一種采用邊緣檢測[5]的模板匹配方法,原理是計算模板圖像與目標圖像之間的相似性實現目標識別,其識別準確率較高,但是計算量較大,對于遮擋、模糊等異常情況的魯棒性較差。文獻[6]提出一種基于主成分分析的支持向量機算法,其識別準確率有一定提升,且魯棒性較模板匹配更優,但是支持向量機的核函數、帶寬等很難確定。文獻[7]提出一種基于卷積神經網絡的飛機識別方法,設計了5層的卷積神經網絡對8類飛機進行識別,雖然對于旋轉魯棒性較好,但是對于遮擋、噪聲等效果不理想。目前飛機目標種類繁多,數據量大,且采集的圖像受環境、氣象等條件干擾較大,因此研究面向實際應用的飛機識別方法是必要的。現階段卷積神經網絡(CNN)[8]因其卓越的性能已成為機器視覺領域領頭羊。近來為改善深層卷積網絡出現的梯度消失問題,文獻[9]提出了Highway Network,文獻[10]提出100層殘差網絡,隨后文獻[11]提出的密集卷積神經網絡(DenseNet)在殘差基礎上又做了改進,其特征重用以及密集連接方式使它的訓練速度更快,準確度更高。
在卷積神經網絡的分類處理中,一方面,分層特征提取從圖像中獲得主要的局部特征(例如角度和點特征);另一方面,輪廓特征等一些重要的全局特征不可避免地丟失。卷積神經網絡識別對象的機制與人類的視覺系統還是有很大的不同,因為它忽略了結構化的全局特征,而人眼則集中在紋理和輪廓特征上來形成圖像的表示,因此有必要將輪廓特征提取方法與卷積神經網絡相結合,產生更加人性化和智能化的分類結果。本文采用方向梯度直方圖(HOG)方法來實現這一目標。
因此,本文基于密集卷積神經網絡提出一種結合局部與全局特征的聯合監督識別方法,利用密集卷積網絡結構的特征重用,密集連接等優勢,產生高度參數化的高效率模型。再將局部特征(密集卷積網絡得到的特征)與全局特征(方向梯度直方圖特征)結合后輸入分類器中,分類器損失函數使用softmax損失和中心損失的聯合監督,通過聯合監督,不僅擴大了不同類之間特征差異,而且減少了同類別的類內特征變化。實驗結果表明,本文算法能夠解決飛機識別時遇到遮擋、噪聲、模糊情況識別率低的問題,提高了網絡的判別力和魯棒性,是一種有效可行的遙感飛機識別方法。
康奈爾大學、清華大學、Facebook FAIR實驗室合作在2016年提出了密集卷積神經網絡(DenseNet)[11],并且在多個數據集驗證了其特征重用和降低梯度消失的特性,同時驗證了40、100、190、250層網絡結構的表現,其中圖1為40層密集卷積神經網絡結構。首先將圖像輸入卷積核為7×7的卷積層獲取圖像特征圖;再經過池化窗口為3×3,步長設為2的最大池化層簡化網絡計算復雜度;之后為進一步改善層與層之間的信息流,通過密集連接將密集塊(dense block)連接起來,每個密集塊中包含卷積核為1×1和3×3的卷積層。到第XL層時如圖1所示,XL層接收所有以前x0,x1,…,xL-1層的特征圖,即將等式中多個輸入變為單個張量,如公式:

其中復合函數HL表示批量歸一化(BN)、整流線性單元(ReLU)、池化(pool)以及3×3卷積(Conv)的復合操作;另外密集塊之間使用過渡層(transition layer)降低輸出維數,過渡層進行卷積和池化。通過控制卷積核數量(通道數),可以幫助減少模型參數;隨后經過池化層得到網絡特征,最后通過softmax函數輸出識別結果。
這種密集連接模式的優勢:不需要重新學習冗余特征圖,比傳統卷積網絡具有更少的參數。傳統的前饋架構可以被視為具有狀態的算法,從一層傳遞到另一層,每層從上層讀取狀態并寫入后續層,后續層得到前層特征。殘差網絡的最新研究[12]表明,許多卷積層的特征圖貢獻很少,因此可以在訓練過程中隨機丟棄。密集卷積神經網絡明確區分了添加到網絡的信息和保留的信息,它是通過特征重用來提高網絡的潛力,產生易于訓練和高度參數化的精簡模型。
遙感圖像會受到光照、氣象、遮擋等多種因素的干擾,增加了遙感飛機識別的難度。本文實驗基于密集卷積神經網絡(Densenet),通過分層特征提取得到10類飛機的卷積特征圖。其中第一個卷積層(conv1)輸出通道數設為16,得到16維特征圖,同理三部分的密集塊(dense block)分別得到不同維數的特征圖,最終得到196維特征圖送到分類器中。取一類飛機為例,其特征圖如圖2所示。在網絡訓練過程中將不斷放大不同類別飛機的關鍵特征權值,促使不同飛機特征分離,最后送到分類器中實現目標識別。但是由于卷積神經網絡提取的特征忽略了全局特征,導致飛機識別不準確,而人類的視覺系統集中于紋理、輪廓等全局特征來識別圖像,因此結合局部與全局特征,并減少同類飛機特征差異提高不同類飛機特征差異是本文關鍵點。

圖1 密集卷積神經網絡結構示意圖

圖2 卷積特征可視化示意圖
方向梯度直方圖[13]是結構特征表達方法之一。傳統的方向梯度直方圖方法可以在非常混亂和明亮的背景中提取物體輪廓信息,且檢測結果表明方向梯度直方圖描述符與其他全局特征檢測方法(如小波方法)相比更好[14]。方向梯度直方圖特征獲取分為以下幾個步驟:
(1)圖像灰度化和伽瑪校正,目的是使圖像中深色與淺色部分的比例值增大,提高對比度效果,伽馬校正公式如下:

其中(x,y)表示圖像中的像素點,取gamma=1/2。
(2)計算圖像每個像素的梯度,公式如下:

其中Gx(x,y)、Gy(x,y)、H(x,y)分別表示圖像的像素點(x,y)處的水平方向梯度、垂直方向梯度以及像素值。G(x,y)和β(x,y)表示像素點(x,y)處梯度幅值和梯度方向。
(3)將176×176像素的圖像分割為多個16×16像素的細胞單元,且直方圖通道為9。
(4)獲取方向梯度直方圖(HOG)特征。對細胞單元內每個像素用梯度方向在直方圖中加權投影,梯度幅值就是權值,得到細胞單元的HOG特征。然后每2×2個細胞單元組成塊,以16個像素為步長,那么在水平和垂直方向會有10個掃描窗口,得到4×9×10×10=3 600維特征向量。
來自方向梯度直方圖方法的輪廓表示顯示出各種優點。首先,方向梯度直方圖捕獲的邊緣和梯度結構是局部和全局形狀的重要特征。其次,方向梯度直方圖局部表示是可控的,并且在一定程度上對于局部幾何和光度轉換是不變的,特別是當旋轉比例小于局部定向單元大小時。方向梯度直方圖方法正確地檢測物體的輪廓如圖3所示。

圖3 遙感飛機圖像與其方向梯度直方圖特征
局部特征和全局特征均對圖像的識別有重要作用,因此結合現代深度神經網絡和早期的梯度直方圖方法形成一個新的算法,將使圖像識別更加智能和人性化。該識別算法基于密集卷積神經網絡和梯度直方圖將局部和全局特征相結合來提高分類性能,其算法結構圖如圖4所示,將密集卷積網絡得到的特征與梯度方向直方圖特征相結合,再輸入全連接層,最后通過聯合監督輸出A、B、C、D、E、F、G、H、I、J共10類飛機的識別結果。該算法結合輪廓和全局結構化特征方法的優點,使得圖像分類更具人性化,更加智能化。

圖4 結合局部與全局特征的算法結構圖
當遙感飛機圖像出現遮擋、模糊或者有噪聲異常情況時,不同類別飛機的特征差異變得不明顯,就會造成分類器的困惑,從而有很大的概率會分類錯誤,此時要求圖像特征不僅要分離,而且要有區別性,才能使復雜飛機圖像有較好的分類準確率,因此僅僅依靠softmax函數不能有效地識別飛機。這就需要中心損失函數,將有效地提高神經網絡對圖像深度特征的判別力。具體來說,中心損失函數在訓練過程中學習每個類的深度特征的中心,最小化深度特征與其對應的中心之間的距離[15]。
在卷積網絡中構造高效判別特征的損失函數是非常重要的。原始密集卷積網絡的損失函數是傳統的softmax損失函數Ls如下所示:

其中,xi代表d維空間中第i個深層特征;yi為深層特征的類別;d為特征空間的維度;W為全連接層的參數矩陣(W={d×n},d行n列);Wj為W 的第 j列;m為批處理的大小;n為類別數;b為偏置。
對于遙感圖像的異常情況,傳統softmax函數的缺點主要有兩方面:一是其提取到的特征在很多情況下類內間距要大于類間間距,不利于特征區分;二是softmax會使得訓練得到模型過分自信,導致分類結果非1即0,圖2里有些特征點分散在邊界但是softmax將不再對這些特征點進行修正。
由于softmax存在這些問題,使其對于飛機圖像異常情況(遮擋、噪聲、模糊)識別效果不佳,本文采用中心損失函數,來減少類內間距。中心損失函數Lc如下所示:

其中,Cyi代表第yi類深層特征的類心。理想情況下,Cyi應該隨著深度特征的變化來更新。也就是說,實驗中需要考慮整個訓練集,并在每次迭代中對每個類的特征進行平均運算,這是低效甚至不切實際的。因此,中心損失不能直接使用。
為了解決深度特征類心更新速度慢,不切實際的問題,本文采用一種基于小批量訓練集更新深層特征類心的訓練方法。在每次迭代中,通過平均相應類的特征來計算類心。計算中心損失函數Lc對xi的梯度和Cyi的更新方程如下:

其中當深層特征類別與標簽相同時δ=1,否則δ=0。
采用softmax損失和中心損失的聯合監督來訓練CNN進行判別性特征學習的公式如下:

其中,λ用于平衡兩個損失函數。如果將λ設置為0,那么可以看作是這種聯合監督的一個特例,表示僅用softmax損失函數。
聯合監督對深度學習特征分布的影響如圖5所示,其中圖(b)特征區域中間白圈表示深度特征類心。從圖5直觀地了解到,圖中10個分開的區域代表10類遙感飛機圖像的深層特征,公式(5)的softmax損失函數迫使不同類別的深層特征保持分離,但可以觀察到在每一類特征聚集區域邊緣有散落的特征,因為其類內間距甚至大于類間間距,所以softmax損失函數有很大的概率會將這些散落特征區分錯誤。

圖5 特征分布可視化圖
聯合監督會根據中心損失函數來最小化深度特征與深度特征類心的距離,并且根據損失誤差調整權重,減少離深度特征類心遠的特征權重,從而有效地將同一類的深度特征拉到了其類心附近。通過聯合監督,不僅擴大了10類遙感飛機之間特征差異,而且減少了每類飛機的類內特征變化,因此通過聯合監督能提高密集卷積網絡的判別能力,提高識別準確率。
算法實現過程如圖6所示,首先輸入訓練數據與標簽,其次經過卷積層并使用文獻[16]提出的Xavier方法進行權值初始化,隨后經過全連接層輸出得到的各種特征向量,再根據公式(9)計算聯合損失并與設定的閾值進行比較,未達到要求則對聯合損失求偏導計算反向傳播誤差,方程如下:


圖6 計算聯合損失函數輸出的算法流程圖
得到誤差后更新權值與深度特征類心的方程如下,最后進行權值以及類心調整,直到達到要求后輸出損失函數計算結果。在類心調整中,為了避免少量錯誤樣本造成的大擾動,使用α來控制類心的學習率,如公式(12)所示(t為循環次數)。

(1)建立實驗數據集
本文使用的數據集包含10類飛機機型,10類飛機圖是谷歌地圖美國圖森的飛機墓場中常見的10類目標。訓練集共有60 000張,驗證集10 000張,測試集33 000張。為了保障網絡輸入大小相同,本實驗將所有圖像大小設為176×176尺寸。其中部分飛機圖像如圖7所示。

圖7 遙感飛機部分圖像
訓練集的預處理包括4種方式:一是將圖像旋轉60°、120°、180°。二是給圖像加入兩種噪聲,分別為均值0,方差0.1、0.05的高斯白噪聲以及噪聲密度為0.1、0.2的椒鹽噪聲。三是加入運動模糊,運動像素分別為10、20、30。四是加入不同程度的遮擋,分別為24×24、48×48、72×72和96×96大小的黑塊遮擋遙感飛機的任意位置。
測試集中圖像處理方法與訓練集相似,不同的是采用不同的參數進行數據的預處理:給圖像加入均值0,方差0.15、0.08的高斯白噪聲以及噪聲密度為0.15、0.25的椒鹽噪聲;給圖像加入運動模糊,運動像素分別為15、25、35;給圖像加入不同程度的遮擋,分別為24×24、48×48、72×72和96×96大小的黑塊遮擋遙感飛機的任意位置。
(2)確定網絡訓練參數
學習率lr:在本次實驗中采用傳統的梯度下降法來進行算法的優化調整,需要把學習率[17]設為合適的值,合適的學習率能夠使算法快速達到最優值。如果學習率過大,很可能會越過最優值,造成曲線來回振蕩;反而如果學習率過小,容易陷入局部最優,算法長時間無法收斂。所以學習率對于算法性能的表現至關重要。其他訓練參數一致,不同學習率對于訓練過程的影響如圖8所示。從圖中曲線表現選擇學習率為0.01,之后進行實驗。

圖8 訓練過程中損失隨迭代次數的變化曲線
平衡參數λ以及中心學習率α:在softmax與中心損失聯合監督過程中,用公式(6)中λ平衡兩個損失函數,公式(9)中α控制中心的學習率。訓練網絡之前需要確定這兩個參數確保網絡有更高的識別準確率:首先我們將α固定為0.5,并將λ從0改變為0.1以學習不同的模型。這些模型在我們數據集上的準確率如圖9中λ代表折線所示。很明顯,僅僅使用softmax損失(在這種情況下λ是0)導致性能差,而當λ為0.01時識別準確率達到最高值,因此選擇λ值為0.01。另外模型的測試性能在很寬的λ范圍內基本保持穩定。其次修正λ=0.01,并將α從0.01改變為1,以學習不同的模型。其識別率如圖9中α代表的折線所示。同樣觀察得出α為0.4時,模型識別準確率達到最高,因此選擇α值為0.4。且模型的測試性能也在很寬的α范圍內保持穩定。

圖9 λ、α對識別準確率的影響折線圖
(3)開始訓練
本文實驗平臺為Windows7 64位操作系統,處理器:Intel?Core? i3-3110M CPU@2.4 GHz,內存:4 GB,深度學習框架:caffe。實驗參數根據(1)、(2)設定:學習率為0.01;平衡參數λ為0.01;中心學習率α為0.4;批處理數目設為10,因此每6 000次iter完成一次訓練集整體迭代。
為了驗證本文方法的有效性,訓練了兩種模型:一是僅使用softmax函數的密集卷積神經網絡模型;二是將局部特征與全局特征結合,再使用聯合監督作為損失函數的密集卷積神經網絡模型。取10類飛機中的D類飛機為例,經過密集卷積網絡最終得到196維卷積局部特征,取前100維進行可視化;同時對飛機圖像獲取方向梯度直方圖特征。之后將兩種特征結合后用直方圖表示,如圖10所示。最后,將結合后特征送入分類器。

圖10 密集卷積特征與HOG特征結合示意圖
訓練成功完成后,根據日志文件畫出兩種算法模型的準確率和損失變化曲線,如圖11所示。
從圖中可以觀察到,快速收斂的曲線是結合局部與全局特征的聯合監督密集卷積網絡,收斂較慢的是使用softmax損失函數的密集卷積網絡。觀察得出結論,結合局部與全局特征的聯合監督網絡識別準確率收斂后幾乎沒有振蕩,魯棒性更好,而單獨使用softmax損失函數的網絡識別準確率收斂后在約0.04范圍內持續震蕩,表明其對驗證集部分圖像擬合較差。
為驗證聯合監督對于同類特征分布的聚合作用,在softmax損失函數與聯合監督兩種條件下,對10類飛機特征的每類特征求方差,來表征特征分布狀況。為得到更加清晰的結論,將圖像按受干擾程度不同分別計算特征分布的方差,如圖12所示。從圖中觀察到,圖像的模糊像素為35、高斯噪聲方差0.15以及遮擋大小96×96時,softmax損失函數作用下的特征方差較高,表明當圖像受到較大干擾時,特征分散嚴重,容易分類錯誤。而聯合監督下的特征方差則保持在較低水平,從而得出結論:聯合監督能夠減少每類特征分布的方差,即將同類特征向類心靠攏,提高算法判別能力,實現飛機機型的高精度識別。
為豐富驗證本文網絡模型的性能,將實現文獻[18]提出的機器學習算法和傳統密集卷積網絡算法以及本文算法進行比較。文獻[18]首先采用密集SIFT特征和Hu輪廓特征矩的方法來精確地描述飛機特征,然后將這些目標特征輸入支持向量機中進行飛機識別。3種算法在測試集中的識別準確率如表1、2、3所示。定義識別準確率的公式如下,ti為每一類別里識別正確的樣本數量,C為樣本類別,N為樣本總數。

圖11 Densenet與本文算法網絡訓練的識別準確率以及損失變化曲線

圖12 不同損失函數條件下的特征方差

表1 算法對遮擋遙感飛機圖像的識別精度對比 %

表2 算法對模糊遙感飛機圖像的識別精度對比%

表3 算法對加噪聲遙感飛機圖像的識別精度對比 %

從表1、2、3得出結論,文獻[18]提出的傳統機器學習算法對于受到輕微干擾(24×24像素遮擋,15像素運動模糊,方差0.08高斯噪聲以及噪聲密度0.15椒鹽噪聲)的飛機圖像識別準確率在90%左右,但是當加大遮擋、模糊以及噪聲影響后,除了在48×48像素遮擋識別準確率下降4%左右,其余識別準確率下降9%以上,表明文獻[18]算法對于多種圖像干擾情況的魯棒性較差。而使用原始密集卷積網絡(densenet)時較文獻[18]算法有明顯進步,對于受到輕微干擾的飛機圖像識別準確率在95%以上,當加大遮擋、模糊以及噪聲影響后,除了在48×48像素遮擋識別準確率下降3%左右,其余識別準確率下降7%以上。相比原始密集卷積網絡,本文提出的算法平均準確率均提高了5%以上,充分表明結合全局特征與局部特征的聯合監督較僅僅使用softmax損失函數,更能夠實現每類圖像深度特征的類內聚合、類間分散,提高算法智能化。從表中還可以看出,本文算法有良好的穩定性,對于不同程度的干擾,識別準確率高且穩定。因此,本文算法能夠提高密集卷積網絡魯棒性,使其準確識別出受到不同程度干擾的遙感飛機圖像。
本文提出了一種基于深度學習的識別遙感飛機圖像新方法,采用40層密集卷積神經網絡結構,利用其密集連接特性,降低網絡參數的冗余,提高訓練速度,增強網絡泛化性;并且將全局特征與局部特征結合后采用聯合監督的損失函數,增強深度學習算法的判別能力。實驗結果表明,較傳統機器學習算法,深度學習的密集卷積神經網絡識別準確率有巨大優勢,并且結合局部與全局特征的聯合監督密集卷積網絡,能夠勝任對受到模糊、遮擋、噪聲影響的遙感飛機識別。