左溪冰,劉 冰,余旭初,張鵬強,高奎亮,朱恩澤
1. 信息工程大學,河南 鄭州 450001; 2. 武警安徽省總隊機動支隊,安徽 合肥 230041
高光譜遙感能夠同時獲取地物空間維和光譜維信息,具有圖譜合一的特點[1]。高光譜影像分類是高光譜影像應用的重要環節,其主要任務是為圖像中的每一個像元點賦予唯一的類別標識。高光譜影像的分類任務通常需要大量的標記樣本,而標記樣本的獲取是一項費時費力的工作。同時,高光譜影像分類中高維和小樣本的特性也容易產生維數災難問題[2]。
早期的高光譜影像分類方法側重于探索影像的光譜特征在分類中的作用,在這些方法中,K近鄰[3](KNN)分類器和支持向量機[4](SVM)因其良好的分類性能而得到了廣泛的應用。此外,基于圖的方法[5]、極限學習機[6]、基于稀疏表達的方法[7]也被進一步應用于高光譜影像分類。然而,這些像素級分類器沒有考慮影像的空間上下文信息,得到的分類結果不盡人意。后續研究表明,綜合利用高光譜影像的空間和光譜信息能有效提高分類精度,因此,拓展形態學剖面[8](EMP)、馬爾可夫隨機場[9](MRF)、局部二值模式[10](LBP)、Gabor濾波器[11]等方法被應用于高光譜影像的空間特征提取,進一步提高了影像的分類精度。雖然早期的分類方法在影像分類中扮演了重要的角色,但是它們在很大程度上依賴于人為設計的特征,具有很強的經驗性。
在深度學習時代,基于卷積神經網絡的方法能夠通過一系列的層次結構從原始影像數據中自動提取抽象的特征,避免了復雜的人為特征設計,因此取得了廣泛應用。目前大多數基于卷積神經網絡的高光譜影像分類方法大致可以分為光譜特征提取網絡、空間特征提取網絡和空譜特征提取網絡[12]。光譜特征提取網絡旨在通過堆疊的層次結構提取影像的深層光譜特征。經典的光譜特征提取網絡有堆棧式自編碼器[13](SAE)、深度置信網絡[14](DBN)、一維卷積神經網絡[15](1D-CNN)、一維生成對抗網絡[16]和循環神經網絡[17](RNN)。此外,文獻[18]利用卷積神經網絡探索了高光譜影像像素對的光譜特征。文獻[19]利用字典學習來訓練卷積神經網絡,取得了更好的分類效果。與光譜特征網絡不同,空間特征提取網絡利用深度網絡提取影像的空間信息,并將學習到的空間特征與其他特征提取技術提取的光譜特征進行融合,以獲得更高的分類精度。文獻[20]將主成分分析(PCA)和二維卷積神經網絡(2D-CNN)相結合,提取了影像的空間和光譜信息。文獻[21]提出了一種多尺度的空間特征提取網絡,并使用權重機制融合了不同尺度的空間結構信息和光譜信息,取得了更佳的分類效果。空譜特征提取網絡能夠同時提取影像的空譜聯合信息。其中,三維卷積神經網絡[22](3D-CNN)利用三維卷積層對高光譜影像立方體進行端到端的空譜特征提取,取得了較好的分類結果。文獻[23]利用殘差學習模塊構建了深層三維卷積網絡(Res-3D-CNN),有效地解決了三維卷積網絡的深層退化問題。上述基于卷積神經網絡的方法雖然取得了一定進展,但是它們只對影像的規則格網區域進行卷積,在特征提取過程中無法很好地表達影像的不規則局部區域,導致在訓練樣本較少的情況下出現誤分類。
近年來,圖神經網絡(GNN)引起了越來越多的關注。文獻[24]在不動點理論的基礎上首次提出了GNN模型,它可以聚合圖的節點特征,并將整個圖嵌入到新的特征空間中。文獻[25]在頻譜圖理論的基礎上提出了卷積神經網絡的表述。在頻譜圖理論的基礎上,文獻[26]提出了GCN模型,該模型基于非歐幾里得數據進行運算,通過隱含層的學習,可以聚合圖中每個圖節點的鄰居特征信息,進而對節點特征和局部圖結構進行編碼。若將高光譜影像中的每個像素視作一個圖節點,則可以將高光譜影像轉換為圖結構數據,進而利用GCN對影像中的不規則局部區域進行表達,以提高影像在小樣本情況下的分類精度。
本文設計了一種基于圖卷積網絡的高光譜影像分類方法(rotation-invariant uniform local binary pattern and graph convolutional neural network,RULBP+GCN),該方法在紋理特征提取的基礎上,通過K近鄰方法將影像構建為拓撲圖結構,并輸入圖卷積網絡模型進行影像分類,以提高影像在小樣本情況下的分類精度。
本文方法的總體流程如圖1所示,該方法主要由3部分組成:LBP紋理特征提取,K近鄰構圖和圖卷積網絡分類。對于原始高光譜影像,首先,通過主成分分析(PCA)將影像降維至3個波段;然后,提取3個波段的LBP紋理特征,并利用K近鄰方法對影像進行構圖;最后,使用圖卷積網絡提取圖節點的特征,并利用softmax函數生成每個節點的預測標簽,進而得到影像的分類結果圖。
文獻[10]指出,結合高光譜影像的LBP紋理特征和光譜特征能夠顯著提升影像在小樣本情況下的分類精度。本文方法利用局部二值模式(LBP)提取影像的局部空間特征,并將提取得到的空間特征與影像的光譜特征相結合,綜合利用影像的空間信息和光譜信息。另外,在特征提取的基礎上,使用K近鄰方法將影像構圖,充分建立影像不同樣本點之間的全局關聯。隨后,基于樣本點之間的關聯關系,利用圖卷積網絡聚合不同樣本點的特征,以充分利用影像的樣本信息,提高影像在小樣本條件下的分類精度。下文將分別介紹圖卷積網絡、K近鄰構圖和局部二值模式。

圖1 基于圖卷積網絡的高光譜影像分類方法流程Fig.1 Flow chart of hyperspectral image classification method based on graph convolution network
圖卷積網絡是一種可以直接對圖結構數據進行操作的特征提取器,它可以通過圖卷積操作,充分利用節點之間的依賴關系和每個鄰居節點的特征信息。因此,與基于卷積神經網絡的深度學習模型不同,GCN可以直接應用于不規則數據。

gθ·x=UgθUTx
(1)
式中,U是歸一化圖拉普拉斯矩陣的特征向量組成的矩陣;UTx是x的圖傅里葉變換。圖拉普拉斯矩陣的計算公式為
(2)
式中,L為圖拉普拉斯矩陣;Λ是L的特征值組成的對角矩陣。考慮到高光譜影像構圖時像素節點較多,為便于在大圖中計算L的特征值分解,使用切比雪夫多項式Tk(x)直到第K階的截斷展開來近似式(2),得到的計算公式為
(3)

(4)
隨后引入“再歸一化”,即

(5)
式中,H(0)=X為原始高光譜影像構圖后的數據;H(l)是第l+1層的輸入;W(l)是第l+1層的權值矩陣;σ代表激活函數。GCN的損失函數為
(6)
式中,yL是標記像素點的索引集合;F是輸出層的特征圖個數,在本文中對應高光譜影像的地物類別數量;Ylf和Zlf分別是真實標簽的索引矩陣和預測標簽的索引矩陣。在訓練過程中,通過反向傳播算法對GCN模型的所有參數進行優化,使得損失函數L最小。
由于圖卷積網絡只能直接作用于圖結構數據,因此需要將高光譜影像構建為拓撲圖結構。這里將影像的每一個像素視作圖的節點,通過K近鄰方法構建拓撲圖。高光譜影像視為特征矩陣X∈RN×C,其中N為像素個數,C為特征向量的維數。兩個樣本xi與j之間的歐氏距離dij的計算公式為
(7)
所有樣本對的距離度量可以構成對稱距離矩陣D=[dij]∈RN×N。例如,矩陣D中的dij表示第i個像素到第j個像素的歐氏距離。為了方便構圖,這里選擇距離像素xi最近的K個像素作為像素xi的鄰居節點,并將它們用邊連接起來,最終將高光譜影像構造成一個無向圖。
為進一步提高影像的分類精度,通過LBP的方法提取影像的紋理特征,并結合光譜特征進行分類。LBP是一種用來描述圖像局部紋理特征的算子,具有原理簡單、計算復雜度低、旋轉不變性和灰度不變性等優勢[27]。對于一個給定的中心像素(x,y),其LBP碼的計算公式為
(8)
式中,R表示中心像素的鄰域半徑;P表示鄰域內采樣的像素點個數;LBP特征提取的(P,R)一般取值為(8,1);gc表示中心像素(x,y)的灰度值;g0,g1,…,gP-1表示鄰域內像素的灰度值。由式(8)可知,中心像素的LBP碼共有2P種,這將會增加特征提取過程中的空間復雜度和時間復雜度,因此考慮采用基于旋轉不變性的等價LBP(rotation-invariant uniform local binary pattern,RULBP),該方法計算出的RULBP碼取決于二進制中0和1的跳變次數,中心像素RULBP碼的具體計算公式為
(9)
式中,U表示二進制編碼中從0到1或從1到0的跳變次數。圖2給出了(P,R)取(8,1)時中心像素RULBP碼的兩種計算示例,在圖2(a)中,二進制數00011000對應的U值為1,因此中心像素的RULBP碼為2,在圖2(b)中,二進制00110011對應的U值為4,因此中心像素的RULBP碼為9。由式(9)可知,當以中心像素的8鄰域為窗口計算其RULBP碼時,中心像素的LBP碼由原來的256種減少為10種,因此采用RULBP能夠有效地減少LBP碼的種類,提高了LBP特征提取的穩定性。

圖2 8鄰域窗口內中心像素的LBP碼計算示例Fig.2 Example of LBP code calculation of center pixel in eight-neighborhood window
對于高光譜影像數據,可以將影響的每個波段視為灰度圖像,直接應用RULBP模型獲取各波段中每個像素的RULBP碼,并采用中心像素圖像塊的統計直方圖作為該像素的RULBP特征。值得注意的是,統計直方圖的橫軸代表RULBP碼的種類,其范圍為[0,9],縱軸代表圖像塊內各RULBP碼出現的頻率。圖3以Pavia大學數據集為例,給出了高光譜影像RULBP特征提取的具體流程,由于高光譜影像具有高維特性,且相鄰波段具有高度相關性,因此首先使用主成分分析將高光譜影像降維至3個波段,然后分別對3個主成分進行RULBP特征提取,最終結合3個主成分特征與3個RULBP特征,為影像的每一個像素生成33維的特征向量。最終提取的特征包含了主要的光譜特征及RULBP提取的局部紋理特征,同時利用了高光譜影像的空間信息和光譜信息。
試驗的硬件環境為16 GB內存,IntelCorei7-9750H處理器,RTX 2070顯卡。本文設計的圖卷積網絡基于python語言和深度學習庫Tensorflow-GPU開發實現。在網絡的訓練過程中,設置網絡的迭代次數為2000次,每隔10次記錄測試樣本集上模型的分類準確率,并以10次為周期對學習率實施動態衰減,在訓練過程中,使用Adam函數對模型的訓練損失進行優化。

圖3 高光譜影像RULBP特征提取流程(以Pavia大學數據集為例)Fig.3 Flow chart of RULBP feature extraction from hyperspectral images (taking the University of Pavia dataset as an example)
為驗證圖卷積網絡在高光譜影像分類方面的優勢,選取3個常用的高光譜數據集進行分類試驗,分別為Pavia大學數據集、Indian Pines數據集和Salinas數據集。
(1) Pavia大學數據集。Pavia大學數據集是由德國的機載反射光學光譜成像儀(reflective optics spectrographic imaging system,ROSIS-03)在2003年對意大利的帕維亞城成像的一部分高光譜數據,光譜覆蓋范圍為430~860 nm,影像大小為610×340像素,其中包含地物的像素有42 776個,空間分辨率為1.3 m,去除受噪聲影響的波段后,剩余103個波段可用于分類。該數據集對9種地物進行了標注。地物類別、選取的訓練樣本數量、測試樣本數量見表1。

表1 Pavia大學數據集劃分情況
(2) Indian Pines數據集。Indian Pines數據集是由機載可視紅外光譜儀(airborne visible infrared imaging spectrometer,AVIRIS)傳感器于1992年對美國印第安納州一塊印度松樹區域進行成像獲得,光譜覆蓋范圍為400~2500 nm,影像大小為145×145像素,其中包含地物的像素有10 249個,空間分辨率為20 m,去除受噪聲影響的波段后,剩余200個波段可用于分類。該數據集對16種地物進行了標注。地物類別、選取的訓練樣本數量、測試樣本數量見表2。值得注意的是,第9類地物僅包含20個像素,因此在每類地物選取的訓練樣本數目超過20時,第9類地物仍選取20個樣本。

表2 Indian Pines數據集劃分情況
(3) Salinas數據集。Salinas數據集是AVIRIS光譜儀獲取的美國加利福尼亞州薩利納斯山谷區域的高光譜影像,影像大小為512×217像素,其中包含地物的像素有54 129個,空間分辨率為3.7 m,原始影像共有224個波段,去除受噪聲影響的波段后,剩余204個波段可用于分類。該數據集對16種地物進行了標注。地物類別、選取的訓練樣本數量、測試樣本數量見表3。

表3 Salinas數據集劃分情況
在GCN正式訓練之前,首先需要確定最佳試驗參數。試驗中需要確定的參數包括每個節點的鄰居節點數量K,GCN模型的網絡結構以及學習率。
在K近鄰構圖的過程中,參數K的含義是圖中每個節點的鄰居數量,在試驗過程中,如果K太小,則無法充分表達節點之間的依賴關系,不利于分類精度的提高;如果K取值過大,則節點會聚合鄰居節點中不利于分類的信息,進而降低分類精度。圖4(a)給出了不同K取值情況下3個數據集的分類精度,由圖4(a)可知,隨著K的增加,分類精度呈現先上升后下降的趨勢。為確定參數K的最佳值,在最高分類精度對應的參數附近進行K值的細粒度查找,如圖4(b)所示。在圖4(b)中,Pavia大學在K值為200時分類精度最高,Indian Pines在K值為30時分類精度最高,Salinas在K值為70時分類精度最高。因此最終在K近鄰構圖的過程中,Pavia大學、Indian Pines和Salinas的K值分別取為200、30和13。

圖4 不同鄰居節點對應的分類精度(%)Fig.4 Classification accuracy corresponding to different neighbor nodes (%)
與卷積神經網絡類似,GCN的網絡結構會影響到網絡的學習能力,最終影響影像的分類精度和分類效率。表4給出了不同網絡結構對應的影像總體分類精度和訓練時間,本文使用不同的節點組合來表示GCN不同的網絡結構,例如,8表示包含8個節點的單個隱藏層;8-16表示分別包含8個節點和16個節點的兩個隱藏層;8-16-32表示分別包含8個節點、16個節點和32個節點的3個隱藏層。表4中加粗的數據為最高的分類精度或最少的訓練時間。由表4可知,對于3組高光譜數據集,不同網絡結構對應的訓練時間差別不大,因此最終選取總體分類精度較高的節點組合作為最終的網絡結構,Pavia大學數據集對應的網絡結構為包含32個節點的單個隱藏層,Indian Pines數據集和Salinas數據集對應的網絡結構為包含64個節點的單個隱藏層。
參照深度學習應用于高光譜影像分類試驗的一般經驗,將學習率分別設置為0.1、0.01、0.001和0.000 1,圖5展現了不同學習率對應的損失函數值。由圖5可知,較大的學習率(如0.01)將會導致損失函數值波動較大,不利于模型的訓練;較小的學習率(如0.001)將產生較低的損失函數值,使得模型的擬合能力更強。因此3個試驗數據集的學習率均設置為0.001。

表4 不同網絡結構對應的總體分類精度和訓練時間

圖5 不同學習率對應的損失函數曲線Fig.5 The loss function curve corresponding to different learning rates
為驗證本文提出的方法(RULBP+GCN)應對小樣本問題的有效性,每類地物分別隨機選取5、10、15、20、25個訓練樣本進行分類,并將本文方法與支持向量機(SVM)[28]、直推式支持向量機(transductive support vector machine,TSVM)[29]、一維卷積神經網絡(1DCNN)[15]、二維卷積神經網絡(2DCNN)[20]、三維卷積神經網絡(3DCNN)[22]、半監督生成對抗網絡(SGAN)[30]以及深度少樣例學習方法(DFSL+SVM)[31]進行對比分析。其中,SVM是一種常用的監督分類器,其核函數采用高斯徑向基函數;TSVM是一種半監督分類方法,其核心思想是嘗試為未標記樣本找到合適的標簽值,使得超平面劃分后的間隔最大化;1DCNN、2DCNN和3DCNN是常用的深度學習方法;SGAN是一種半監督的深度學習方法;DFSL+SVM在訓練深度三維卷積神經網絡的過程中模擬小樣本分類的情況,并將提取到的特征輸入支持向量機中進行分類,能有效解決小樣本分類問題。值得注意的是,上述對比方法均以原始高光譜影像作為輸入,未進行PCA降維和RULBP特征提取,因此為了保證對比試驗的公平性,設置一組未進行PCA降維與RULBP特征提取的圖卷積網絡分類試驗,記作GCN。表5至表7分別給出了RULBP+GCN和不同對比方法在3組高光譜影像數據集上的總體分類精度。表中數據為10次試驗結果的總體分類精度的均值和標準差。
觀察并分析表5—表7中的試驗結果可知,所有方法的總體分類精度隨著每類地物訓練樣本數量L的增加而提升,表明增加監督樣本的數量和引入未標記樣本可以提高高光譜影像的分類精度。由于半監督方法能夠有效利用未標記樣本,一定程度上緩解了標記樣本不足的問題,因此半監督支持向量機TSVM的分類精度高于傳統支持向量機SVM的分類精度。1DCNN、2DCNN、3DCNN、SGAN、DFSL+SVM、GCN以及RULBP+GCN等深度學習方法的分類精度總體上均高于傳統的支持向量機方法,表明深度學習方法具備更強的特征提取能力。

表5 不同方法在Pavia大學數據集上的分類結果

表6 不同方法在Indian Pines數據集上的分類結果

表7 不同方法在Salinas數據集上的分類結果
將GCN與其他深度學習方法(1DCNN、2DCNN、3DCNN、SGAN、DFSL+SVM)的分類精度進行對比分析可知,在每類地物隨機選取5個訓練樣本的情況下,GCN的分類精度高于1DCNN、2DCNN、3DCNN和SGAN,但明顯低于DSFL+SVM。這表明即使不進行影像的PCA降維和紋理特征提取,GCN取得的分類精度仍高于卷積神經網絡取得的分類精度。由于DFSL+SVM在訓練過程中模擬了高光譜影像的少樣例學習問題,因此在每類地物隨機選取5個訓練樣本的條件下,能夠取得更高的分類精度。但是,隨著訓練樣本數量的增加,GCN的分類精度會出現低于2DCNN、3DCNN、SGAN和DFSL+SVM的情況,這主要是因為GCN僅僅捕捉了影像像素點之間的全局關聯,忽略了影像中存在的空間信息和光譜信息,而2DCNN、3DCNN、SGAN和DFSL+SVM等方法以影像像素的鄰域塊作為網絡的輸入,一定程度上聯合利用了影像的空間信息和光譜信息。
相比而言,本文提出的方法(RULBP+GCN)的總體分類精度最高,表明了RULBP+GCN在小樣本情況下分類的有效性。該方法首先提取影像的局部紋理特征,并通過K近鄰方法將影像構圖,建立像素點之間的全局關聯,其中的每個節點都包含了豐富的空間信息和光譜信息。在此基礎上,GCN充分利用了節點之間的依賴關系,通過聚合鄰居節點的特征信息,對高光譜影像中的局部區域進行了充分表達,進而提高了影像在小樣本情況下的分類精度。另外,在3組高光譜數據集上,RULBP+GCN的總體分類精度均高于GCN的分類精度。表明了使用RULBP進行紋理特征提取的有效性。
為了更加直觀地觀察RULBP+GCN方法的分類效果,圖6、圖7、圖8分別給出了3組數據集的假彩色影像(第10、50、100波段合成),地物真實標記,以及選取不同數量訓練樣本的情況下,RULBP+GCN取得的分類結果圖。觀察圖6、圖7、圖8可知,隨著每類地物選取的訓練樣本數量L的增加,分類圖的分類噪聲逐漸減少,這也更加直觀地反映了RULBP+GCN在小樣本情況下的有效性。

圖6 Pavia大學數據集上選取不同數量的訓練樣本獲得的分類結果Fig.6 The classification results obtained by selecting different number of training samples from Pavia University dataset

圖7 Indian Pines數據集上選取不同數量的訓練樣本獲得的分類結果Fig.7 The classification results obtained by selecting different number of training samples from Indian Pines dataset
為進一步研究RULBP+GCN的計算效率,本文選擇SVM、TSVM、1DCNN、2DCNN、3DCNN、SGAN和DFSL+SVM進行對比分析,見表8,其中深度學習方法1DCNN、2DCNN、3DCNN、SGAN和DFSL+SVM的迭代次數均為2000次,每種方法的執行時間包括訓練時間和測試時間。監督分類器SVM具有較少的超參數,因此執行時間很短[32-33],但其在3個數據集上的分類精度均低于RULBP+GCN。RULBP+GCN的訓練時間比TSVM、1DCNN、2DCNN、3DCNN、DFSL+SVM的訓練時間少,且分類精度均高于所有的對比方法,表明RULBP+GCN在保證分類精度的同時,也具備更快的執行速度。

圖8 Salinas數據集上選取不同數量的訓練樣本獲得的分類結果Fig.8 The classification results obtained by selecting different number of training samples from Salinas dataset

表8 在3個數據集上的效率對比(每類地物選取5個標記樣本作為訓練樣本)
為改善高光譜影像在小樣本情況下的分類精度,本文提出了一種基于圖卷積網絡的高光譜影像分類方法。該方法首先從高光譜影像中提取RULBP特征并將其組織成圖結構,隨后使用GCN模型對圖數據進行分類。采用Pavia大學、Indian Pines和Salinas 3組高光譜影像數據進行試驗驗證,試驗結果表明:RULBP紋理特征提取能夠有效地利用影像空間特征,有利于提高影像的分類精度;GCN模型充分利用了像素節點之間的依賴關系,通過聚合鄰居節點的特征信息,有效改善了高光譜影像在小樣本條件下的分類精度。
雖然本文提出的方法在小樣本條件下取得了一定的成效,但影像的構圖方法直接決定了各像素點之間的鄰接關系,進而決定圖卷積模型從鄰居節點中聚合到的特征信息的優劣,最終影響影像的分類精度。進一步的研究工作將結合更加有效的影像構圖方法和圖卷積模型,以期在每類地物選取5個樣本的條件下,獲得更高的分類精度。