韓彥嶺,高儀,王靜,張云,洪中華
(上海海洋大學 信息學院,上海 201306)
高光譜圖像(hyperspectral image,HSI)通常由數十至數百個相同場景的光譜數據通道組成,實現了遙感數據圖像維與光譜維信息的有機融合,即在獲得地物目標二維空間圖像信息的同時,還可以獲得表征其物理屬性的高分辨率光譜信息,具有“圖譜合一”的特性。因此,高光譜遙感數據被廣泛應用于農業[1]、對地觀測[2]和環境科學[3]等領域。在上述應用中,通過對高光譜圖像進行像素級分類是其中的重要技術環節[4]。由于光譜和空間結構的復雜性、高維性以及有限的訓練樣本問題,高光譜圖像的分類仍然是一項具有挑戰性的任務。
由于高光譜遙感圖像數據包括不同波段的圖像,針對圖像中每一像素都可以獲得對應連續的光譜曲線,不同地物的光譜曲線也有所不同,因此傳統的高光譜圖像分類技術大多只利用了圖像中的光譜信息,如K近鄰(K-nearest-neighbors, KNN)、支持向量機(support vector machine, SVM)、羅杰斯特回歸(Logistic regression, LR)等。為了充分利用高光譜圖像中的空間信息,需要通過一定的提取方法來更好地表征空間特征[5],如Su等[6]提出了一種基于灰度共生矩陣(gray-level co-occurrence matrix,GLCM)紋理分析的渤海海冰檢測方法。Imani等[7]通過GLCM、Gabor濾波(gabor filtering)和形態學輪廓(morphology profiles, MPs)從相鄰像素中提取空間信息,研究空間特征與光譜特征的不同組合。其中,基于統計學的GLCM算法由于其提取的特征維度小、鑒別能力強,且具有較強的適應性和魯棒性,從而引起了人們的關注[8]。研究表明,引入空間信息能夠有效地彌補單獨使用光譜信息的不足,但是目前基于專家經驗和先驗知識所提取的淺層手工特征的方法往往忽略了深層特征,而且所提取的特征對于其他數據集的普適性也存在疑問,從而限制了高光譜圖像分類精度的提升。
近幾年,深度學習模型在計算機視覺領域獲得了較好的發展。由于其由淺層到深層、由簡單到復雜進行學習的特性,被廣泛地應用到遙感領域。在2014年,Chen 等[9]在遙感領域首次提出了一種基于深度學習的高光譜圖像分類方法,利用堆疊式自動編碼器(stacked auto-encoder, SAE)提取高光譜圖像的層次特征和魯棒性特征。Hu等[10]采用深卷積神經網絡(deep convolutional neural network, Deep CNN)直接對光譜領域中的高光譜圖像進行分類。Chen等[11]針對深度學習的優點,利用三維卷積神經網絡(3D-CNN)提取高光譜圖像的光譜空間特征。Zhao等[12]提出了一種基于光譜空間特征的分類框架,該框架分別利用平衡的局部判別嵌入(local discriminant embedding, LDE)算法和CNN進行光譜特征提取和空間特征提取。2017年, Li等[13]提出了更輕量、更易訓練的3D-CNN模型,有效地提取了深空譜組合特征。Chen等[14]提出了一種將Gabor濾波器和卷積濾波器相結合的高光譜圖像分類方法。Gao等[15]將從原始圖像中提取的各種特征作為輸入,結合CNN和多特征學習建立新的高光譜圖像分類框架。其中,CNN作為一種局部連接網絡,通過卷積核從輸入數據中自動地學習具有平移不變性的特征,將表示的特征與對應類別結合起來進行聯合學習,同時對特征進行自適應調整,獲得最佳的特征表示。而高光譜數據通常以三維數據立方體表示,契合了CNN中的三維卷積濾波器提取特征的輸入方式,為同時提取空譜聯合特征提供了簡便有效的辦法[13]。
基于以上研究,考慮到單獨使用空間信息或光譜信息的局限性,本文提出一種基于GLCM和3D-CNN的空譜聯合特征的高光譜遙感圖像分類方法。利用原始高光譜圖像,結合GLCM算法提取的相關紋理特征,并通過近鄰未標簽樣本的信息進一步增加標簽樣本信息的多樣性,最后利用三維卷積神經網絡進行深層次空譜特征的聯合提取,用于高光譜遙感圖像的像素級分類,可以獲得更高的分類精度。在高光譜遙感數據上的實驗結果表明,相比其他方法,本文建議的方法具有更好的分類性能。
本文建議的方法主要思想是利用手工提取的地物紋理特征增強樣本的空間特征,并融合標簽樣本及其近鄰未標簽樣本,以增加樣本信息的多樣性,在較少的訓練樣本下即可獲得較高的分類精度。該方法首先對高光譜原始數據進行主成分分析(principal component analysis, PCA),并基于第一主成分通過GLCM提取手工空間特征,將其與原始高光譜數據融合,形成標簽樣本數據。考慮到3D-CNN中包含大量的待訓練參數,為降低參數訓練的負擔,本文采用不含任何待訓練參數且簡單易實現的KNN算法來選擇一定數量的未標簽近鄰樣本,但未標簽樣本中同樣包含冗余的空間信息,因此通過相關性分析去除相關性較高的成分以降低3D-CNN訓練過程中的計算代價。將經過相關性分析之后的近鄰未標簽樣本數據與相應的標簽樣本數據融合(將未標簽樣本數據的特征作為標簽樣本新的特征屬性),作為3D-CNN網絡的輸入,利用3D-CNN挖掘深層空譜特征。本文高光譜圖像分類的總體框架圖如圖1所示。圖1中GLCM-CNN是將GLCM算法所提取的空間特征與原始數據相結合,然后將其輸入至CNN網絡。

圖1 本文高光譜分類方法框架圖
紋理特征是通過特征提取算法計算出來的一組度量,用來量化圖像的感知紋理[8]。紋理特征通常在移動窗口中計算,為圖像中的每一個像元設置一個明確和通用的鄰域集[16]。GLCM方法就是通過統計圖像中每個像元及其鄰域的灰度屬性來提取圖像的紋理特征信息,即對圖像上的分別具有某個灰度值的2個像元在給定偏置距離狀況下出現的頻率進行統計,它列出了像元對在不同灰度值下出現的聯合概率分布。一般地,在計算GLCM的過程中,取位移過程中為0°、45°、90°、135°的4個方向角,然后對4個方向的特征值取平均值作為紋理特征值矩陣。從GLCM中計算得到紋理特征,本文從中提取了8個紋理標量形成紋理特征波段,分別為均值、方差、同質度、對比度、相異性、熵、角二階矩、相關性。
如何找到有效的特征是圖像分類和模式識別中的核心問題。與基于譜特征的1D-CNN和基于空間特征的2D-CNN相比,基于空譜聯合特征的3D-CNN在一定程度上兼顧了二者的優勢,即同時自發地提取高光譜圖像中的光譜信息和空間信息。通過無監督的方式進行初始化,然后以有監督的方式進行微調,不斷從低層次特征中學習具有抽象性和不變性的高層次特征,有利于分類、目標檢測等多種任務。
在高光譜圖像分類中,3D-CNN可以將輸入的HSI像素映射到輸入像素標簽,從而HSI中每個像素點都可通過網絡來獲得其類別標簽,完成對HSI進行像素級分類的目的。相對而言,3D-CNN是從以某一像素點為中心像素點的小空間鄰域的立方體中提取空譜信息,將輸出層得到的類別標簽作為中心像素點的標簽。因此,3D-CNN的輸入為從HSI中提取出的三維立體像素塊,像素塊大小為K×K×B。其中K為像素塊的空間維大小,必須為奇數,B則是像素塊在光譜維的大小,為原始HSI的波段數。3D-CNN的計算可用式(1)表示。
(1)


(2)
另外,本文采用自適應矩估計(adaptive moment estimation,Adam)算法作為梯度優化算法[17]。該算法結合了AdaGrad算法善于處理稀疏梯度和RMSProp算法善于處理非平穩目標的優點,利用梯度的一階矩估計和二階矩估計,動態地調整每個參數的學習率,經過偏置校正后,為不同的參數進行更新,具體表達如下。
首先,假設在t時刻,目標函數對于參數的一階導數為gt。式(3)和式(4)是對梯度的有偏一階矩估計和有偏二階矩估計的更新,根據梯度通過式(5)和式(6)進行偏差修正,最后通過式(7)完成對參數的更新。
mt=β1mt-1+(1-β1)gt
(3)
(4)
(5)
(6)
(7)
式中:β1和β2為矩估計的指數衰減速率,分別為0.9和0.999;mt和vt為t時刻的一階矩和二階矩變量,初值均為0;η為學習率。為了防止分母為0,設置一個值為10-8小常數ε;θt為t時刻的3D-CNN參數變量,包含權重和偏置。
具體的算法實現描述如下。

開始 1)特征提取。輸入:原始HSI。①通過PCA算法對原始數據集進行主成分分析,取第一主成分PC;②根據GLCM算法,將滑動窗口在PC上按步長d和方向角滑動,每滑動一次計算該滑動窗口的灰度共生矩陣,并求得紋理特征值,將該窗口的紋理特征值賦值給窗口的中心像素;③重復步驟②,直到滑動窗口覆蓋PC;④對某一紋理標量,將4個方向角下的某一紋理特征矩陣進行求和取平均,作為該紋理特征最終的紋理特征矩陣,其他紋理特征亦是如此;⑤重復步驟④,直至獲得8個紋理特征;⑥特征提取完畢。輸出:紋理特征。2)近鄰未標簽樣本選擇。輸入:原始HSI。①對于原始數據中某一標簽樣本,計算其與所有未標簽樣本的歐式距離,并按升序排列;②重復步驟①,直到計算完所有標簽樣本;③所有標簽樣本的近鄰樣本提取完畢。輸出:標簽樣本與未標簽樣本的近鄰關系序列。3)輸入數據預處理。輸入:原始HIS、階段1提取的紋理特征、階段2輸出的近鄰關系序列。(1)標簽樣本。①將標簽樣本在階段1特征提取中提取的空間特征作為新的特征屬性,與原始數據進行融合;②標簽樣本數據獲取完成。(2)未標簽樣本。①對未標簽樣本在階段1特征提取中提取的空間特征進行相關性分析,剔除相關性較高的成分,獲得空間特征;②未標簽樣本數據獲取完成;③按照階段2中的近鄰關系,將a中的標簽樣本數據與b中未標簽樣本數據進行融合;④輸入數據獲取完成。輸出:CNN的輸入數據。4)3D-CNN。輸入:階段3獲取的CNN的輸入數據。將輸入數據按訓練策略隨機分為訓練樣本和測試樣本,每個樣本的輸入大小均為K×K×B。(1)訓練階段。①每次從訓練樣本中隨機輸入batch(batch=20)個訓練樣本到預先建立好的3D-CNN網絡中進行訓練;②假設第一層包含n個大小為C×C×D的卷積核,每個K×K×B大小的樣本經過第一層的卷積運算后,則會輸出n個(K-C+1)×(K-C+1)×(B-D+1)大小的數據立方體;第一層的輸出作為第二層的輸入,繼續進行卷積運算(類似于第一層);如此類推,最終的輸出被轉換成一個特征向量輸入進全連接層,將卷積過程中提取的局部特征映射融合,經Softmax交叉熵函數計算損失率后,通過反向傳播計算每個參數的梯度,利用Adam算法動態地更新網絡參數;③重復步驟①、②,直到完成預設定的迭代次數;④模型訓練完畢。(2)測試階段。①將測試樣本輸入到已訓練好的3D-CNN模型中,根據預測標簽與真實標簽,計算混淆矩陣,并得到分類精度;②測試完成。5)輸出混淆矩陣、總體分類精度、平均分類精度、Kappa。結束
為了驗證該方法的有效性,將它與3D-CNN和GLCM-CNN分類方法進行對比,并在3個被廣泛使用的不同環境的高光譜數據集上進行評估。文中所有分類算法的實驗結果均采用總體精度(overall accuracy, OA)、平均精度(average accuracy, AA)和Kappa值(kappa statistic, K)來評估,實驗結果形式為平均值±標準差。
1)Salinas數據集。Salinas數據集是1992年由AVIRIS(airborne visible/infrared imaging spectrometer)傳感器在美國加利福尼亞州Salinas山谷采集的,圖像大小為512像素×217像素,包含224波段,其空間分辨率為3.7 m。在去除吸水率和低信噪比波段后,使用204個波段進行分析。數據中共含有16個不同的類別,其圖像和地面真值如圖2所示,樣本信息見表1。

圖2 Salinas數據

表1 Salinas數據集中的類別和樣本(像素)量
2)Indian數據集。Indian數據集是由NASA的AVIRIS儀器于1992年在印第安納州西北部采集獲得。Indian數據共包含224個波段,圖像大小為145像素×145像素,空間分辨率為20 m。去除吸水率和低信噪比波段后,使用220個波段進行分析。該地點定義了16個類別,代表在此環境中產生的各種土地覆蓋類型,其對應圖像和類別信息分別如圖3和表2所示。

圖3 Indian數據

表2 Indian數據集中的類別和樣本(像素)量
3)Pavia University數據集。第3個數據集是2001年在意大利北部Pavia大學由ROSIS傳感器(reflective optics system imaging spectrometer)收集的。采集到的數據由115個波段組成,分辨率為1.3 m。在去除了覆蓋吸水率的無隔音帶和噪聲帶之后,只使用了103個波段。本文所使用的原始數據由610像素×340像素組成,包含了9種土地覆蓋類別,如圖4和表3所示。

圖4 Pavia University數據

表3 Pavia University數據集中的類別和樣本(像素)量
CNN中包含大量待訓練參數,而網絡的結構直接影響訓練參數的多少,結構越復雜,訓練參數越多,同時需要訓練出成熟穩定的模型所耗時間也就越多。本文通過GLCM算法從第一主成分波段提取8個紋理特征,其中滑動窗口的大小均為5×5。對于近鄰未標簽樣本的空間信息,采用相關性分析的方法,去除紋理特征中相關性較大的成分。表4、表5、表6分別為Salinas、Indian、Pavia University 3個數據集的紋理特征相關系數矩陣。在通過相關系數矩陣進行相關性分析時,有時需要去除冗余的變量成分。2個變量相關性較大時,可以對比變量與其他變量的相關性,保留整體相關性較小的變量。當2個紋理特征高度相關(相關系數絕對值大于0.8)時,則選擇平均絕對相關性(average absolute correlation, AAC)[2]較小的紋理成分進一步研究。某一特征的AAC為該特征與其他特征(含該特征本身)的相關系數絕對值和的平均。例如,表4中,Hom(同質度)與Ent(熵)之間的相關系數為-0.931 1,Hom的平均絕對相關值為0.583 2,Ent的平均絕對相關值為0.561 9,則去除高相關成分Hom。因此最終Salinas數據集中保留的紋理成分為均值(Mea)、方差(Var)、對比度(Con)、相異性(Dis)、角二階矩(ASM)、相關性(Cor)。Indian數據集保留的紋理成分為均值(Mea)、方差(Var)、熵(Ent)、角二階矩(ASM)、相關性(Cor)。Pavia University數據集保留的紋理成分為均值(Mea)、對比度(Con)、角二階矩(ASM)、相關性(Cor)。

表4 Salinas數據集的紋理特征相關矩陣

表5 Indian數據集的紋理特征相關矩陣

表6 Pavia University數據集的紋理特征相關矩陣
文獻[13]中所提出的模型更輕量,且易訓練、易調參,我們借鑒了其模型優勢,并在算法和模型上加以改進。在本文中,網絡的輸入統一設置為鄰域大小為5×5×B的三維數據塊,B為輸入的波段數。在近鄰未標簽樣本的選擇中,通過實驗分別為Salinas、Indian、Pavia University 3個數據集中每個標簽樣本選擇1、2、3個未標簽樣本。最終Salinas數據集的輸入大小為5×5×218,其中218=204+8+6×1,類似地,Indian數據集的輸入大小為5×5×218,Pavia University數據集的輸入大小為5×5×123。每種分類方法均在隨機選擇訓練樣本的前提下重復5次,將5次實驗結果累加求平均后的結果作為最終分類結果。根據輸入大小對所設計網絡的超參數進行微調,最終的網絡結構包含2層卷積層,1層Dropout層,1層全連接層以及輸入層和輸出層,最后通過Softmax分類器和交叉熵代價函數訓練模型。將輸入數據歸一化至[0, 1],模型的學習率設置為0.001,Dropout值為0.5,批量輸入網絡的數據量大小為20,Salinas、Indian、Pavia University 3個數據集的訓練迭代次數分別設置為15 000、6 000、20 000。3個數據集的網絡結構如表7、表8、表9所示。

表7 Salinas數據集的網絡結構

表8 Indian數據集的網絡結構

表9 Pavia University數據集的網絡結構
1)Salinas數據集分類結果。表10是3種分類算法在Salinas數據集上的分類結果,圖5為對應的分類結果圖,可以看出本文所提出的算法取得了較好的分類性能。三維卷積神經網絡具有同時提取深光譜-空間信息的特點,相較于3D-CNN、GLCM-CNN在原始高光譜圖像中提取紋理特征,進一步增強了空間信息,取得了較好的分類結果。而本文方法在保留標簽樣本光譜-空間信息的基礎上,通過引入近鄰的未標簽樣本的紋理特征,提高了隨機抽取訓練樣本過程中的樣本質量,同時提取標簽樣本與未標簽樣本的深層特征,增強了訓練樣本信息的多樣性。表10中,本文方法取得了更高的分類精度值,相較于3D-CNN、GLCM-CNN,整體分類精度分別提高了4.92%、2.52%,Kappa值分別提高了5.45%、2.89%。對于類別8、9、10,本文方法比GLCM-CNN分別提高了3.71%、2.38%、1.31%。另外,本文方法OA的標準差為0.445 8,相較于3D-CNN和GLCM-CNN,本文方法的整體分類結果離散程度較小,體現了該方法的穩定性,表明未標簽樣本信息的引入有效降低了噪聲樣本在訓練過程中產生的影響。

表10 Salinas數據集的分類結果 %

圖5 Salinas數據分類結果圖
2) Indian數據集分類結果。Indian數據集的分類結果如表11和圖6所示。與其他分類算法相比,本文提出的算法均獲得了最高的OA、AA、Kappa,進一步說明了本文算法的優越性。表11中,除類別3和類別7之外,類別5、6、8、13都獲得了與GLCM-CNN接近的精度,其他類別的分類精度都得到了一定提升。例如相較于GLCM-CNN,本文方法中類別11和類別15分別提高了5.10%、6.18%。從整體分類結果來看,引入近鄰未標簽樣本的信息適用于大多數類別,驗證了該策略的有效性。而且,從分類結果圖上看,本文方法有效地抑制了噪聲點,分類結果圖像更加平滑,對不同類間邊緣區域的區分更加精細。

表11 Indian數據集的分類結果 %

圖6 Indian數據分類結果圖
3) Pavia University數據集分類結果。表12是Pavia University數據集的分類結果,其可視化分類結果如圖7所示。與前2個數據類似,本文算法同樣取得了最好的分類性能。GLCM-CNN算法所提取的紋理特征增強了空間信息,但與3D-CNN相比,在個別類別上仍有不足。而本文算法在GLCM-CNN分類方法的基礎之上,結合未標簽樣本的多樣性信息之后進一步提取深層特征,有效緩解了Hughs現象,體現了該算法的有效性和普適性。

表12 Pavia University數據集的分類結果 %

圖7 Pavia University數據集分類結果圖
1)訓練樣本數量的影響。在CNN的訓練過程中,訓練樣本的數量是非常重要的因素。由于CNN中包含大量的待訓練參數,需要大量的訓練樣本來保證樣本的多樣性,以提取更具有健壯性和有效性的特征。而對HSI來說,由于其地物標簽獲取的代價高以及大量未標注樣本,如何通過少量樣本來獲取更高的分類精度是HSI分類領域中的重點和難點。
在本節討論了3個數據集在不同訓練樣本比例下的分類精度,其結果如圖8所示。通過圖8可以發現,隨著訓練樣本比例的增加,分類精度呈增長趨勢。對于Salinas和Pavia University數據集,分別對比了每類訓練樣本在100至300個像素點和100至500個像素點的總體分類準確率的情況。對于Indian數據集則在訓練樣本比例為10%至50%時進行了分析。在3個數據集中,本文分類方法在不同數量或比例的訓練樣本下均優于其他分類方法。對于Salinas數據集,本文方法在每類訓練樣本為200個像素點時,整體分類精度為94.25%,略小于GLCM-CNN在每類訓練樣本量為300個像素時的精度(94.43%)。在Indian數據集中,本文算法中訓練樣本比例在30%(OA=98.09%)就超過了其他算法在50%(如GLCM-CNN,OA=97.76%)訓練樣本比例下的精度。因此相較來看,相同條件下,本文算法可以獲得更高的精度;而獲得相同的精度,本文算法則需要較少的訓練樣本,從而可以減少標注成本。

圖8 訓練樣本數量的影響
2)GLCM滑動窗口大小的影響。GLCM算法通過在一定大小的滑動窗口中提取空間紋理信息,滑動窗口的不同影響特征的提取,而且計算代價隨著窗口大小的增大而增大。為了選取合適的滑動窗口,本節選取了3×3、5×5、7×7 3種大小的窗口應用于3個數據集進行了探究,結果如表13、表14、表15所示。表14中,Indian數據集在窗口為5×5下達到了最高分類精度,而Salinas數據集和Pavia University數據集均在窗口大小為7×7時分類效果最好。綜合3個數據集來看,窗口大小為5×5時優于3×3的分類結果,而窗口7×7與5×5時的分類精度相差較小。為綜合考慮計算時間與樣本信息問題,本文算法中滑動窗口大小為采用5×5。

表13 不同滑動窗口下的Salinas數據的分類結果 %

表14 不同滑動窗口下的Indian數據的分類結果 %

表15 不同滑動窗口下的Pavia University數據的分類結果 %
3)近鄰樣本數量的選擇。KNN算法中不包含任何待訓練參數,只有近鄰樣本數量的選取對結果產生影響。針對不同場景下的數據集,本文通過實驗選擇合適的近鄰未標簽樣本的數量。本節主要探究了近鄰樣本量處于1至10時對本文算法的影響。如圖9所示,隨著近鄰樣本數量的增多,Indian數據集和Pavia University數據集的分類精度值呈先升后降的趨勢,Salinas數據集整體呈下降趨勢,表明在地物類別較復雜的場景,少量近鄰未標簽樣本的引入有益于分類精度的提高,當未標簽樣本數量較多時,引起了Hughs現象,而且近鄰樣本的增多,也意味著CNN網絡訓練過程中的時間代價的增大,因此選擇合適的近鄰樣本量需要綜合考慮分類精度和模型的計算復雜度。本文使用的Salinas、Indian和Pavia University 3個數據集中,選擇的近鄰未標簽樣本量分別為1、2、3。

圖9 近鄰樣本數量的選擇
為充分挖掘標簽樣本的空間信息,本文采用GLCM算法增強空間特征和融合近鄰樣本信息的策略,提出了利用未標簽樣本的基于GLCM算法與3D-CNN算法的高光譜遙感圖像分類方法,并將該方法與3D-CNN和GLCM-CNN方法進行了對比分析。實驗結果表明,本文建議的方法可在較少的訓練樣本下,在總體上獲得較優的分類性能。
通過GLCM算法可以有效地提取空間紋理信息。由于不同地物類別的敏感紋理特性有所不同,利用3D-CNN算法可以進一步深度挖掘空譜聯合特征,適用HSI的三維數據結構和數據特征。同時利用高光譜圖像中大量的未標簽樣本不但可以降低樣本噪聲,豐富樣本信息,更可以減少CNN訓練過程中對標簽樣本數量的需求。對于引入未標簽樣本信息所帶來的額外的時間代價,通過相關性分析可以去除冗余特征,有效降低計算成本,獲得更好的分類效果,為高光譜遙感圖像分類提供了一種新的方法。