方希祿,付 偉,胡正言,竺凡超,周建含
哈爾濱師范大學 計算機科學與信息工程學院,哈爾濱 150025
隨著遙感技術以及計算機視覺的發展,高分辨率遙感圖像(High-Resolution Remote Sensing,HRRS)的分類也逐漸成為了研究熱點問題之一。高分辨率遙感圖像的分類主要是通過圖像豐富的空間信息進行分類,它的光譜信息相對匱乏。早期的高分辨率遙感圖像分類主要是基于手工特征的提取,比如:圖像關鍵點(SIFT)[1]、紋理特征(LBP)[2]、顏色直方圖(CH)[3]等。但是淺層特征難以表達遙感圖像中更高級的語義信息,于是有研究者將淺層特征進行編碼[4],以表示更高級的語義特征,最為流行的BOW“詞袋”模型[5]是一種有效的淺層特征聚合方式,它將目標淺層特征進行聚類得到一個“詞袋“,然后通過“詞袋”對圖像進行編碼得到一個直方圖來描述特征。由于BOW“詞袋”模型忽略了圖像局部的空間分布特征,后又相繼提出SPM[6]、ScSPM[7]等算法改進,其中SPM彌補了BOW中對空間分布的忽略,其中ScSPM算法采用稀疏編碼代替K-means。通過對淺層特征編碼得到的特征被稱為中級特征,由于淺層特征的表達能力有限,且容易受到其他因素干擾,因此中層特征也很難實現很高的語義表達和性能。隨著深度學習的發展,VGG[8]、AlexNet[9]等多層深度卷積網絡[10](Convoulutional Nenral Network,CNN)的相繼提出,使得卷積神經網絡在自然圖像上的分類取得了顯著成果。于是有研究者將深度卷積網絡用于高分辨率遙感圖像的分類,由于卷積神經網絡可以自動提取特征,從而降低了很多其他因素的干擾,使得提取的特征更具有魯棒性。通過深度卷積神經網絡提取的特征具有較好的分類精度,缺點是需要大量的人工標注和大量的標簽數據進行訓練。而在大多數遙感數據中,難以獲取充足的訓練數據,且目前公開的遙感數據集的圖片數量不足以很好地完成深度卷積神經網絡的訓練。于是有研究者引入遷移學習[11-13],將在大型自然數據集(Image-Net 數據集)預訓練好的網絡模型遷移到高分辨率遙感圖像中[12],通過對在大型自然圖像數據集上預訓練好的CNN 的模型參數進行微調(fine-tune)[14],對遙感數據集進行分類,得到了顯著的效果,但是微調網絡參數,會消耗大量時間,需要通過不斷的實驗來調整某些超參數,如學習率等參數。Hu等人[15]從不同深度的CNN全連接層以及卷積層提取圖像特征,并直接作為淺層特征進行特征編碼作為分類依據,還有研究者將淺層人工特征和深度特征進行多尺度深度特征融合[16-17]取得了較好的分類效果。
但這些方法沒有考慮到遙感圖像本身的圖像特點,由于自然圖像數據集多以圖像物體中心作為整張圖像的判別,而遙感圖像的局部信息便可以作為場景表達的重要依據。如圖1所示。從遙感圖像中分割出一部分仍可以識別整張圖像的場景表達;而自然圖像中分割出來的圖像若缺少了中心物體則無法分辨整張圖像表達的場景信息。經統計,目前公開的常用高分辨率遙感數據集95%以上的圖像都具有這種單元圖案規則復制的特點。
由于遙感圖像的單元圖案規則復制特性,本文提出一種基于隨機子圖像提取并帶有金字塔池化模型的卷積神經網絡,并將其運用到高分辨率遙感圖像場景的分類。具體步驟:首先,將HRRS 圖像數據集的圖像進行隨機裁剪,然后將這些剪切后的不同尺寸的子圖像與原圖像使用相同標簽,由于普通卷積神經網絡的全連接層的特性,使得卷積神經網絡的圖像輸入尺寸需固定大小,若使用傳統的拉伸或縮小圖像的方法將圖像固定到相同尺寸,會造成圖像的部分像素失真,導致識別精度下降,于是使用帶有空間金字塔池化模型[18]的卷積神經網絡、帶有空間金字塔池化的網絡可以輸入任意尺寸的圖像,將每張圖像的子圖像送入神經網絡模型進行預測,取子圖像的分類眾數作為最終分類。
本文提出結合隨機剪切子圖像和空間金字塔池化模型的遙感圖像場景分類方法,如圖2所示。由于遙感圖像本身的性質,即使從圖中抽取一小部分局部圖像,也可以表達整張圖像的場景表達信息,例如森林、農田、湖泊等,所以首先對原始圖像進行隨機剪切,得到原圖像的多張子圖像,然后通過卷積神經網絡模型對每個碎片進行類別預測,在對子圖像的預測過程中,使用空間金字塔池化模型代替傳統的拉伸或壓縮圖片的方式,可將不同大小的碎片直接送入神經網絡模型訓練及預測,最后得到一組預測直方圖,取預測數最多的做為最終預測結果。

圖2 本文分類框架
由于目前公開的高分辨率遙感圖像數據集圖像局部信息可以做為場景表達的特性,本文采用對輸入的原圖像進行隨機剪切的方式,得到一組標簽相同而大小表現范圍不同的子圖像,考慮到剪切過小的圖像無法表達圖像的語義信息,于是對隨機剪切時對圖像的大小通過設定閾值進行限制,并采用基于柯西分布的方式對圖像進行隨機剪切。由于柯西分布的概率度函數有更長的尾巴。一方面兩端較長的分布使得剪切獲得的圖像有更高的概率逃離峰值,能夠得到更多與原圖像尺寸相差較大圖像,更能提高訓練模型的魯棒性;另一方面,位于中心點的峰值使得剪切的圖片有更高的概率與原圖像吻合,能夠提供訓練模型的穩定性。柯西分布與正態分布比較如圖3所示。

圖3 兩種分布比較圖
所以只需采用一個服從柯西分布的變量X,對原數據集的圖像進行隨機剪切,圖像隨機剪切尺寸公式:

其中,L是原圖像尺寸,P是子圖像尺寸,X~C(r,x),其中x為定義分布峰值位置的位置參數,r為最大一半處的一半寬度的尺度參數。本文中采用X~C(0.5,0)的柯西分布,并對子圖像尺寸限制在原圖的十分之一以上。柯西分布的概率密度函數:

獲取到子圖像的隨機尺寸后,隨機在原圖像中采集子圖像,為防止在采集子圖像時出現超越圖像輪廓的情況,在采集中只取在圖像邊界內的以L為邊長的正方形子圖像。
卷積神經網絡是一種帶有卷積結構的多次監督學習神經網絡,由卷積層、降采樣層、全連接層組成,其中隱藏層的卷積層和降采樣層是特征提取的關鍵部分。卷積神經網絡具有稀疏連接和權值共享的特性,使得該模型非常適合大規模圖像處理,稀疏連接解決了前饋全連接神經網絡規模過大,參數太多的缺點,而權值共享保證了在卷積操作時只需要對一個參數集進行學習,進一步減少了參數數量。權值w往往通過激勵層進行非線性化處理做為下一層的輸入,本文采用的是較為流行的ReLU函數,由于ReLU函數只有線性關系的特性,使得神經網絡在前向傳播和反向傳播的計算優于sigmod、tanh函數,且x在正區間內時永遠不會產生神經元飽和現象,函數公式如下:

如圖4所示,該網絡模型通過梯度下降最小化損失函數的方法對網絡前向傳播的權重參數逐層進行反向傳播優化,不斷地迭代訓練提高網絡的精度,最終通過全連接層輸出一維向量和softmax 層對輸入圖像進行分類。

圖4 卷積神經網絡模型
卷積層是網絡模型的特征映射層,卷積運算的目的是提取不同的特征,在前幾層可以提取部分初級特征,隨著層數的增多可以在初級特征中提取出更復雜的特征。
池化層是網絡模型的特征提取層,它將從卷積層得到的維度大的特征分割為幾個區域,在每個區域中提取最大值或平均值。
全連接層是將提取到的特征整合為全局特征,如圖4中,全連接層將特征整合為一維向量。
輸出層通常采用Softmax 函數解決多類的分類問題,通過Softmax 函數將輸出映射為(0,1)的值,而這些值的累和為1,值最大的點即預測目標。
由于通過隨機剪切得到的子圖像,尺寸各不相同,而傳統的CNN模型中,由于全連接層的特性,使得在網絡輸入的時候,要求固定輸入圖片的尺寸或大小。為了解決CNN 輸入尺寸的問題,通常會采用對原圖像進行拉伸或放縮的辦法處理。本文中通過柯西分布的隨機剪切會得到一小部分尺寸較小的子圖像,若采取傳統的拉伸壓縮圖像的處理方法,會嚴重扭曲原始圖像,破壞原本的語義信息,對分類的精度產生影響。傳統處理公式如下:

其中P為子圖像的尺寸,n為子圖像的個數,Q為統一子圖像的尺寸大小。
如圖中,空間金子塔池化模型通過在卷積層和全連接層之間加入金子塔池化層,對任意尺寸的輸入圖像進行三種不同尺度的劃分,得到21個圖像塊,對每個圖像塊進行最大池化特征提取,即得到21 維特征向量。即用多個窗口對卷積層得到的特征圖分別進行池化處理、合并得到固定的全連接輸出,使得卷積神經網絡可以輸入任意尺寸、縱橫比的圖片。在本文中,通過加入金字塔池化層,使得通過預處理得到的不同尺寸的子圖像能夠直接送入卷積神經網絡訓練。空間金字塔池化模型如圖5所示。

圖5 金字塔池化層示意圖
本文采用的是兩個常用的高分辨率遙感數據集。
第一個數據集為RSSCN7 數據集,包含了7 個場景類別,每個類別有400張圖像,每張圖像由400×400像素組成。包含的場景類別有草地、農田、工業用地、河流湖泊、森林、住宅以及停車場。圖6 所示為RSSCN7 數據集的部分樣例。

圖6 RSSCN7數據集示例
第二個數據集為SIRI-WHU DataSet[19],包含了12個場景類別,每個類別有200 張圖像,每張圖像由200×200 像素組成。包含的場景類別有草地、池塘、港口、工業區、公園、河流、居民地、立交橋、農田、商業區、水域、閑置地。圖7 所示為SIRI-WHU DataSet 數據集部分樣例。

圖7 SIRI-WHUDataSet數據集示例
在將圖像送入網絡模型之前,先對數據集進行分配處理,將數據集分為訓練集和測試集,從每類場景中分別選取訓練集和測試集。為簡單計算在對圖像數據進行隨機剪切之前進行歸一化化處理,即將像素除以最大像素將像素歸一化到0到1之間:

式中,M為原像素,Mmax為最大像素,Mn為歸一化后的像素。

其中,mob代表對圖像旋轉u度,而u取值為0°、90°、180°、270°,通過歸一化預處理及隨即剪切隨機旋轉處理后,將圖像訓練集擴充。
由于遙感圖像數據集與大型自然數據集相比數量遠遠不足以完成深度神經網絡的訓練,因此像VGG、ResNet 等深度模型無法直接使用,本文采用類VGG 的深度模型結構,每兩個卷積層后跟一個最大池化層,最后加入空間金字塔池化層。表中的卷積層后面的n×n表示卷積核的大小,后面的數字k,代表卷積核的個數,本文的模型結構如表1所示。

表1 實驗模型網絡參數
Kappa系數在圖像分類工作中應用廣泛:

Kappa 系數的計算基于混淆矩陣,在混淆矩陣中,每列代表預測類別,每列的總數為預測為該類別的數目,每行代表真實類別,每行的總數代表真實類別的數目。式中r為混淆矩陣行的個數,xii為對角線上類型組合的個數,xi+表示行i的總觀測個數,x+i表示為列的總觀測個數,N為混淆矩陣總體單元格個數,P0表示總體分類精度,即在混淆矩陣中對角線的上數據和除以總樣本數。Pk表示偶然性因素導致的錯誤的解釋的比例。
圖8、圖9 的混淆矩陣直觀地展示了本文方法在RSSCN7數據集和SIRI-WHU DataSet數據集下每類場景類別的的分類準確率及場景判別錯誤的情況。

圖8 RSSCN7場景分類混淆矩陣

圖9 SIRI-WHU DataSet場景分類混淆矩陣
兩個數據集的分類正確率為6 次獨立重復實驗后所得的平均值,總體分類正確率分別達到了96.75%和96.67%。從混淆矩陣中可以看出本文方法對河流湖泊、森林、居民區等語義信息在整張圖像較為普遍的場景分類精度較高,對停車場、閑置地、農田等分類精度較低,一方面草地和農田的語義信息相似度較高導致分類錯誤,另一方面像閑置地這種圖像小部分類似于自然圖像,只有很小的中心物體做為整張圖像的場景判別。
為了比較本文提出方法的分類效果,使用兩個不同的數據集,對圖像采取子圖像預處理的方式從訓練圖像中截取等同數目的等尺寸子圖像,利用其訓練網絡,以同一幅測試圖像中所有子圖的預測類別眾數作為測試圖像的最終類別,具有代表性的幾種方法與本文方法作對比如表2所示。
幾種代表性方法在SIRI-WHU DataSer數據集上與本文方法對比如表3所示。
表2、表3中的TSCNN方法采用了與本文方法模型層數相同的卷積神經網絡,該方法是將隨機剪切得到后的子圖像通過傳統的處理方式,即將所有子圖像拉伸或壓縮到統一尺度后再送入網絡模型,由于拉伸或壓縮到統一尺寸的操作會對圖像信息帶來部分損失,使用其方法與本文采用金字塔池化的方式做對比,其中SISCNN-N是采用正態分布進行子圖像選取方法,SISCNN-C是本文采用柯西分布進行子圖像選取方法,結果表明本文分類效果相對其他方法較好。

表2 RSSCN7不同方法的分類精度%%

表3 SIRI-WHU DataSet不同方法的分類精度%
本文提出了一種基于隨機子圖像模型的卷積神經網絡,利用了遙感圖像單元圖案規則復制特點,即局部信息也可以表達整張圖像場景的語義特性進行分類,使用金字塔池化模型輔助訓練,在提出的模型中,基于柯西分布得到的子圖像具有隨機性,對網絡模型的訓練具有一定的魯棒性,將裁剪好的圖像送入帶有金字塔池化的網絡模型,可以解決CNN固定輸入尺寸的問題,最后設定由每張子圖像與原圖像具有相同的標簽,得到一組預測分布圖,取所有子圖的預測類別眾數做為測試圖像的最終預測。通過在數據集上的實驗表明,該方法可以取得較高的分類精度,與典型的分類方法相比,該方法取得了較好的分類精度。通過實驗得出結論:(1)大部分的遙感場景適用于本文方法,有個別遙感圖像不具備單元圖案規則復制特點或不明顯,導致分類結果不佳;(2)驗證了在遙感圖像分類任務中,柯西分布準則可以有效地確定隨機子圖像尺寸。(3)驗證了遙感圖像與自然圖像的語義表達區別,針對遙感圖像的近似單元圖案特征采取將遙感圖像切塊的方法可以有效地提高分類精度。