于麗
(上海海事大學信息工程學院,上海 201306)
如今計算機視覺領(lǐng)域發(fā)展迅猛,各種算法如雨后春筍層出不窮。在圖像識別領(lǐng)域,卷積神經(jīng)網(wǎng)絡(CNN)因其卓越的性能成為主流網(wǎng)絡。隨著計算機硬件升級和網(wǎng)絡結(jié)構(gòu)的改進,使我們更容易進行深層次神經(jīng)網(wǎng)絡的訓練,最經(jīng)典的LeNet5[1]由五層組成,后來發(fā)展的VGG[2]由19層組成,近來的Highway Network[3]以及殘差網(wǎng)絡[4]已突破100層,最近研究的殘差網(wǎng)絡甚至可以達到1000層。最近的密集卷積神經(jīng)網(wǎng)絡(DenseNet)[5]在殘差基礎上又做了改進,訓練速度更快,準確度更高。因此本文基于密集卷積神經(jīng)網(wǎng)絡進行實驗。
由于遙感飛機圖像在拍攝過程中會遇到很多干擾因素,如光照、噪聲、模糊、遮擋等,其中遮擋對于圖像影響較大,大范圍遮擋會使圖像關(guān)鍵信息缺失,進而導致識別結(jié)果不準確。對于受遮擋圖像的識別已經(jīng)有很多方法,如周克虎[6]等人提出的基于Struck算法的遮擋目標追蹤,對小范圍遮擋圖像的追蹤效果較好,但是對大范圍遮擋的魯棒性較差;王曉華[7]等人也提出了一種融合局部二值特征(LBP)的算法,雖然對于遮擋的效果較好,但是計算量較大。
綜上,本文將基于密集卷積神經(jīng)網(wǎng)絡結(jié)構(gòu),訓練得到密集卷積特征,然后將密集卷積特征與尺度不變特征結(jié)合,最后送入Softmax分類器中,進行目標識別。實驗結(jié)果表明,結(jié)合卷積特征與尺度不變特征的算法對于大幅度遮擋有很好的魯棒性,能夠勝任遮擋圖像的目標識別任務。
本文實驗基于密集卷積神經(jīng)網(wǎng)絡(DenseNet),其網(wǎng)絡結(jié)構(gòu)圖如圖1所示,通過分層特征提取得到十類飛機的卷積特征圖。其中第一個卷積層(conv1)輸出通道數(shù)設為16,得到16維特征圖,同理三個部分的密集塊(Dense Block)分別得到不同維數(shù)的特征圖,最終得到196維特征圖送到分類器中。取一類飛機為例,其卷積特征圖如圖2所示。在網(wǎng)絡訓練過程中將不斷放大不同類別飛機的關(guān)鍵特征權(quán)值,促使不同飛機特征分離,最后送到分類器中實現(xiàn)目標識別。但是由于卷積神經(jīng)網(wǎng)絡提取的特征忽略了一些有價值的特征,導致飛機識別不準確,而人類的視覺系統(tǒng)集中于紋理、輪廓以及局部特征來識別圖像,因此本文提取傳統(tǒng)特征——SIFT特征,將傳統(tǒng)特征與卷積特征結(jié)合,從而使特征信息更全面,提高算法魯棒性。
圖1 密集卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)示意圖
圖2 多個卷積層特征可視化示意圖
SIFT(Scale-Invariant Feature Transform)[8]特征是基于物體上的一些局部外觀的關(guān)鍵點,但是與圖像的大小沒關(guān)系,并且具有旋轉(zhuǎn)不變的特性,同時對于光線變化、噪聲也有較高的魯棒性。基于這些特性,SIFT特征是高度顯著且較容易獲取,如今在大數(shù)據(jù)背景下,我們會獲取到巨量特征數(shù)據(jù),其中顯著的SIFT特征能夠準確辨識物體。更重要的是,由于SIFT特征的關(guān)鍵點特性,使其對于遮擋物體的檢測率較高。
SIFT算法可分為以下幾個步驟:
(1)建立尺度空間
SIFT算法本質(zhì)就是在不同的尺度空間上查找關(guān)鍵點,且需要通過高斯模糊獲取尺度空間,研究證明高斯卷積核是實現(xiàn)尺度變換的唯線性核,所以一幅圖像的尺度空間定義如下:
其中 I(x,y)表示一幅圖像,(x,y)表示空間中的像素點,L(x,y,σ)表示尺度空間,G(x,y,σ)代表尺度可變的高斯卷積核函數(shù),σ越小表示尺度越小,卷積后得到圖像越精細。之后為有效得到尺度空間中的關(guān)鍵點,提出高斯差分尺度空間(DOG Scale-Space),用不同尺度高斯差分核與圖像卷積,公式如下:
接下來用高斯差分金字塔來直觀表示尺度空間。有一幅圖像I,建立其在不同尺度空間的子圖s層,從大到小自底向上排列,之后將其上下兩層圖像相減得到高斯差分金字塔,如圖3所示:
圖3 高斯差分金字塔示意圖
(2)檢測DOG尺度空間極值點
圖4 檢測空間極值點示意圖
獲得尺度空間的極值點,需要將空間中像素點和它的所有相鄰像素點進行比較,確保極值點是圖像域和尺度域的極值。如圖4所示:中間的一點需要與其相鄰的8個點以及上下相鄰層對應的18個點進行比較,如果這一點是這26點中最大或最小點,則這個點就是極值點。
但是圖像分層后的首尾兩層是沒辦法比較的,所以為保證尺度變換的連續(xù)性,用高斯模糊在頂層生成3張圖,得到s+3層高斯金字塔,s+2層高斯差分金字塔。
(3)定位特征點
①精確定位:由上述步驟從離散空間中得到候選極值點,但是由于離散空間的極值點并不是連續(xù)空間的極值點,因此需要進一步精確定位特征點。即需要用三維函數(shù)的泰勒級數(shù)展開式作為擬合函數(shù),舍去高階項后泰勒級數(shù)展開的矢量表示形式如下:
其中X0表示離散空間下的極值點,X表示擬合后連續(xù)空間下的極值點,X?=X-X0表示擬合后極值點相對離散空間極值點的偏移量。
對上式求導并令其為0,即可求出擬合后極值點相對離散空間極值點的偏移量X?如下:
將公式(4)代入公式(5)中得到方程的值:
其中如果X?大于0.5則表示極值點偏移到了臨近點,必須改變位置重新計算泰勒級數(shù)展開,反復迭代直到小于0.5。如果超出迭代次數(shù)仍未收斂,則剔除此極值點。另外,如果 f(X?)值過小容易受噪聲干擾變得不穩(wěn)定,因此設定閾值,使 f(X?)值小于0.03的極值點剔除。
②消除邊緣相應:極值點是在高斯差值尺度圖像中求出的,但高斯差值尺度圖像中,若極值點落在圖像邊緣,則這個點就是不穩(wěn)定點,需要剔除。找到這個邊緣極值點的原理是其高斯差分算子在橫跨邊緣的地方有較大主曲率,而垂直邊緣有較小主曲率,主曲率通過二階的Hessian矩陣H求出。主曲率與矩陣H的兩個特征值成正比,兩個特征值的比值越大表明在某方向有較大主曲率,另一方向較小。因此為剔除邊緣點,讓兩個特征值比值小于某一閾值即可。
(4)給特征點賦值方向參數(shù)
為了使SIFT特征具有旋轉(zhuǎn)不變性,用圖像的局部特征給SIFT特征點加上梯度方向算子,計算像素的梯度幅值和方向公式如下:
其中(x,y)表示空間中像素點位置,m(x,y)表示像素點的梯度幅值,θ(x,y)表示像素點的梯度方向,L(x,y)像素點在尺度空間的尺度值。實際上,計算的是以關(guān)鍵點為中心的鄰域像素的梯度方向,并且用直方圖統(tǒng)計鄰域像素的梯度方向,直方圖的峰值就作為關(guān)鍵點的方向。至此,關(guān)鍵點的位置、所處尺度、方向計算完畢,得到SIFT特征區(qū)域。
(5)生成關(guān)鍵點描述子
首先將坐標軸旋轉(zhuǎn)到關(guān)鍵點的方向,來保證算子的旋轉(zhuǎn)不變性。然后以關(guān)鍵點為中心取8×8的窗口,在這個窗口內(nèi)計算每個像素的梯度幅值和方向,進行高斯加權(quán)求和,得到128維SIFT特征向量,最后將特征向量歸一化處理,以便去除光照的影響。本文飛機圖像的關(guān)鍵點描述子可視化如圖5所示。
圖5 遙感飛機圖像中檢測到的關(guān)鍵點
建立A、B、C、D、E共五類受不同程度遮擋的遙感飛機圖庫,為模擬飛機圖像受遮擋的情況,將用不同大小的黑塊遮擋遙感飛機的任意位置,黑塊大小分別為24×24、48×48、72×72、96×96 像素,其中部分訓練集圖像如圖6所示。共建立訓練集20000張圖片,測試集8000張圖片。
圖6 部分遙感飛機圖像
本文實驗平臺為Windows7 64位操作系統(tǒng),處理器:Intel Core i3-3110M CPU@2.4GHz,內(nèi)存:4GB,深度學習框架:Caffe。為提高算法對于圖像受遮擋情況的魯棒性,本節(jié)將結(jié)合卷積特征與傳統(tǒng)特征進行實驗,傳統(tǒng)特征選取HOG特征與SIFT特征,并且通過實驗對比兩種方法對實驗結(jié)果的影響。其算法具體過程如圖7所示。
圖7 結(jié)合局部與全局特征的算法結(jié)構(gòu)圖
SIFT是通過將圖像中的每個點或像素轉(zhuǎn)換成特征向量來對局部特征進行詳細描述的一種方法。從而使包含相似內(nèi)容的圖像共享比其他圖像更相似的特征向量。即使在圖像發(fā)生大幅度遮擋時,這些點特征的矢量也是穩(wěn)健的。因此,通過結(jié)合卷積特征與SIFT特征,融合兩種特征的優(yōu)勢并補足各自的缺點,然后將結(jié)合后特征送入分類器中。
圖8 密集卷積特征與SIFT特征結(jié)合示意圖
同樣取十類飛機中的D類飛機為例,原始圖像經(jīng)過密集卷積網(wǎng)絡最終得到196維卷積局部特征,取前100維進行可視化;同時對飛機圖像獲取SIFT關(guān)鍵點描述子。之后將兩種特征結(jié)合后用直方圖表示,如圖8所示。
為了驗證實驗算法的有效性,本次實驗分別將SIFT特征與密集卷積特征結(jié)合,然后送入聯(lián)合監(jiān)督的分類器中輸出識別結(jié)果。并且將本次實驗結(jié)合SIFT特征的算法、原始密集卷積神經(jīng)網(wǎng)絡算法與文獻[9]提出的算法對比,文獻[9]算法主要是提取Hu輪廓特征矩的方法對飛機圖像進行識別,三種方法對十類飛機識別準確率的情況如表1所示。
表1 結(jié)合不同特征對遮擋遙感飛機圖像的識別精度對比(%)
從表1觀察到,三種算法對于小范圍遮擋(24×24黑塊遮擋)的識別準確率均在90%以上;對稍微大一點范圍的遮擋(48×48黑塊遮擋)魯棒性也較高,其中DenseNet較文獻[9]算法準確率提高3%左右,SIFTDenseNet較文獻[9]算法準確率提高 10%以上;DenseNet算法對較大范圍遮擋識別準確率下降較為明顯,遮擋 72×72與96×96時依次下降 10%左右,而SIFT-DenseNet算法的識別準確率均比DenseNet高且識別準確率穩(wěn)定。最后SIFT-DenseNet算法的表現(xiàn)最佳,對大幅度遮擋的識別準確率均在90%以上,平均識別準確率達到96%。由此得出結(jié)論SIFT特征對于遮擋飛機圖像的識別準確率提高較大,尤其對大幅度遮擋的飛機圖像有很高的魯棒性。因此SIFT-DenseNet算法能夠適應復雜背景下遙感飛機圖像的識別。
SIFT特征結(jié)合卷積特征為什么對遮擋圖像識別準確率有明顯提升?為了得到答案進行一個仿真實驗,首先提取未遮擋飛機圖像的SIFT特征,之后與大幅度遮擋圖像做SIFT特征點匹配如圖9、10所示,圖9表示不同類別飛機的特征點匹配情況,只有三個特征點匹配;圖10表示同類別飛機的特征點匹配情況,有十個以上特征點匹配成功;因此得出結(jié)論,SIFT特征點對于大幅度遮擋圖像的識別有較大幫助。
圖9 不同類別遮擋飛機的SIFT特征匹配情況
圖10 同類別遮擋飛機的SIFT特征匹配情況
本文提出了一種結(jié)合卷積特征與SIFT特征的遙感飛機識別方法,采用40層密集卷積神經(jīng)網(wǎng)絡結(jié)構(gòu),利用其密集連接特性,降低網(wǎng)絡參數(shù)的冗余,提高訓練速度,增強網(wǎng)絡泛化性。并且將卷積特征與SIFT特征結(jié)合,增強深度學習算法的判別能力。實驗結(jié)果表明較傳統(tǒng)機器學習算法,深度學習的密集卷積神經(jīng)網(wǎng)絡識別準確率有巨大優(yōu)勢,并且結(jié)合卷積與SIFT特征的密集卷積網(wǎng)絡能夠勝任受遮擋影響的遙感飛機識別。