任彥,高曉文,楊靜,葉玉偉,王佳鑫
(內蒙古科技大學 信息工程學院,內蒙古 包頭 014010)
高光譜三維圖像數據包含了大量空間和光譜信息,能反映出豐富的地物信息,因此被廣泛應用于生態環境監測[1]、礦物探測[2]、醫學圖像[3]、農作物病蟲害防治[4]等領域。高光譜圖像數據結構復雜,尤其是在樣本數少、樣本類間信息相關性強的情況下實現精確分類十分困難,并且隨著光譜波段數量的增加,會出現分類精度下降的休斯現象[5]。
近年來,支持向量機[6]、隨機森林(random forest,RF)[7]、馬爾可夫條件隨機場(markov random field,MRF)[8]等方法被應用于解決高光譜圖像遙感分類技術中的上述難題。Heras等[9]將極限學習機(extreme learning machine,ELM)應用在分類問題中并取得了良好的效果,相比SVM的分類精度和速度有明顯改善。Yang 等[10]2020年在樹種識別實驗中,采用粒子群優化極限學習機方法實現的分類精度優于線性貝葉斯正態分類器和k近鄰算法。Gao 等[11]將并行異構極限學習機(parallel extreme learning machine,PELM)應用于鋰電池壽命預測中,運行效率遠高于ELM。由于ELM的特征提取能力較弱,將其應用于高光譜圖像的分類技術中無法取得良好的效果,Cao 等[12]采用CNN提取高光譜圖像特征,并利用ELM對其進行特征分類,取得了良好的效果。
高光譜圖像存在“同物異譜”和“異物同譜”現象,上述方法只考慮了圖像的光譜信息,沒有考慮空間的上下文信息,所以分類結果往往伴隨有許多噪點,如何充分利用空間信息是近幾年研究人員一直關注的熱點問題。Fauvel等[13]指出對像素及其鄰域進行特征提取時可獲得圖像的空間信息。Fang等[14]將每個像素定義為一個局部區域,結合局部區域內的訓練樣本,采用自適應系數策略來表示高光譜圖像的空間信息。Chen 等[15]使用線性濾波器提取空間邊緣和紋理特征,極大地改善了高光譜圖像的分類精度。
傳統方式提取空-譜聯合特征能力十分有限,考慮到深度學習應用在圖像分類的良好效果,Chen 等[16]2014年利用堆棧式自動編碼器提取特征,將深度學習的概念引入到高光譜數據的分類中,2015年在充分考慮空間信息的基礎上,使用深度置信網絡提高了高光譜圖像的分類精度[17]。隨著深度學習的發展,人們開始將CNN應用于高光譜圖像的分類,Hu等[18]采用1D-CNN完成了光譜特征提取,Makantasis等[19]2015年使用2D-CNN提取高光譜圖像空間鄰域的特征,Chen等[20]提出的3D-CNN網絡分類精度優于2D-CNN網絡,但計算過程中參數較多。Lee等[21]提出基于上下文信息的深度CNN,利用多尺度濾波器獲得空間和光譜聯合特征圖。Fang等[22]利用2D-CNN提取空間信息,1D-CNN提取光譜信息,相比三維卷積(three-dimensional convolution,3D-CNN)減少了參數量,提升了運算速度。
綜上,CNN具有較強的特征提取能力,PELM分類效率較高,本文充分結合二者的優點,提出一種新型的空-譜聯合SSCNN-PELM(spatial-spectral convolutional neural network and parallel extreme learning machine)高光譜圖像分類模型,該模型采用并行CNN結構實現對高光譜圖像空間特征和光譜特征的提取;采用PELM實現高光譜圖像的信息融合和高精度分類。
ELM具有輸入權重及偏差隨機設定、權重一次性求解的特點。輸出權重一旦確定,便可確定ELM的唯一模型。然而ELM也存在矩陣運算及逆運算會占據大量運行時間等缺點[23]。
PELM是在ELM的基礎上提出來的,該模型把輸入層的數據通過不同的非線性激活函數同時映射到并行隱藏層,兩個隱藏層同時進行計算求出網絡的輸出權重,進而求出網絡的輸出值,實現在減少網絡運算時間的同時提高模型的分類精度。
CNN的特征提取能力在圖像識別、自然語言處理等領域有廣泛的應用。2D-CNN通常應用于提取圖像的深層特征;1D-CNN能提取深層語義特征,常應用于自然語言處理、光譜圖像分類等領域。
CNN網絡一般由卷積層、池化層、全連接層等組成。其中卷積層提取深層特征,池化層降低時間和空間復雜度,全連接層進行特征融合。空-譜聯合卷積神經網絡(spatial-spectral convolutional neural network,SSCNN)模型由兩個并行的CNN模型組成,2D-CNN模型提取全部空間特征和部分光譜特征,1D-CNN提取光譜特征。2D-CNN輸入數據經過2D卷積核提取特征,1D-CNN使用1D卷積核代替2D卷積核作用于輸入向量。
高光譜數據類間特征十分接近,使用線性分類器很難達到預期效果,使用傳統的特征加權融和方式很難充分結合空間和光譜特征。PELM的特征提取能力不足,但PELM的兩個輸入層權重和隱藏層的偏差可以隨機設定,且設定后不需要再反向調節,減少了網絡的運算量;隱藏層和輸出層之間的連接權值也不需要再迭代調整,可以通過方程組一次性求解。因此PELM能充分結合光譜和空間信息且分類精度高。
由SSCNN負責提取深層空間特征和光譜特征,PELM實現特征融合與分類,SSCNN使用softmax作為分類器進行訓練,得到特征提取器后使用PELM代替softmax進而得到最終的分類結果,充分發揮了SSCNN特征提取能力強及PELM分類精度高、速度快的優點。SSCNN-PELM模型整體框圖如圖1所示。
針對2D-CNN中高光譜圖像全部波段輸入網絡中會導致參數量過大、計算時間增加的問題,利用主成分分析法(principal components analysis,PCA)將高光譜數據降維,得到數據的主要特征分量。文獻[24]通過實驗驗證,在降維至10~30個波段范圍內時高光譜數據能保留完整的空間信息和大部分光譜信息,同時可以減少參數量,避免因數據維度過多造成的休斯現象。2D-CNN模型由輸入層、兩個卷積層、兩個全連接層構成,將圖像分割成m×n×l大小的數據塊輸入網絡,采用線性整流函數(rectified linear unit,ReLU)作為卷積層激活函數,每個卷積層后添加歸一化層和隨機失活層,優化器選擇帶牛頓動量自適應學習率的梯度下降法(nesterov accelerated adaptive momentestimation,NADAM)。1D-CNN由輸入層、兩個卷積層、一個池化層、兩個全連接層構成,池化層選擇最大池化,為防止過擬合添加隨機失活層,優化器選擇隨機梯度下降法(stochastic gradient descent,SGD)。CNN網絡的全連接層輸出數據直接輸入PELM網絡,PELM網絡為了增強學習能力選擇兩個不同的激活函數。
實驗硬件環境為Intel Core i9-9900KF CPU @ 3.60 GHz,NVIDIA RTX2080 GPU,32 GB內存。使用python語言編程,其中SSCNN模型搭建部分使用tensorflow框架。實驗中每類樣本隨機選取10%作為訓練樣本,90%作為測試樣本,使用每類樣本分類精度、總體分類精度(overall accuracy,OA)、平均分類精度(average accuracy,AA)、Kappa系數、分類時間來評價實驗模型的性能,實驗重復10次取平均值。
為了體現SSCNN-PELM模型的泛化能力,實驗選擇Indian pines和Pavia university兩個數據集驗證。Indian pines圖像由AVIRIS傳感器采集,光譜范圍是400~2 500 nm,數據維度為145×145×200,空間分辨率20 m,共有16類樣本,其中標記樣本總數10 249。樣本類別名稱、顏色表示、樣本數量見表1,數據集的遙感圖像見圖2。Pavia university圖像由ROSIS傳感器采集,光譜范圍是430~860 nm,數據維度是610×340×103,空間分辨率1.3 m,共有9類樣本,標記樣本總數42 776。樣本類別名稱、顏色表示、樣本數量見表2,數據集的遙感圖像見圖3。

表1 Indian pines數據集

表2 Pavia university 數據集
1)Indian pines數據集。該數據集分類難度較大,表3、表4是各模型的對比實驗結果,其中SVM核函數選擇linear,ELM隱藏層節點數為500,激活函數為sigmoid;PELM的兩個ELM網絡結構隱藏層數都設置為1層,節點數為500,激活函數分別選擇sigmoid和tanh;2D-CNN鄰域大小選擇25×25,epoch設為300;3D-CNN像素塊大小設置為11×11×30,epoch設為300。
SSFCN-PELM模型在2D-CNN部分輸入為45×45×10數據塊,使用兩個卷積層,卷積核數量分別設為10、30,大小設為3×3,學習率設為0.001,epoch設為50,1D-CNN部分使用兩個卷積層,卷積核大小設置為5,數量為64,學習率設為0.001,epoch設為100。圖4是模型在兩個隱藏層不同節點數影響下的分類精度。由圖4可知,PELM兩個隱藏層的節點數分別達到180、120時,總體分類精度達到最優,當隱藏層節點數超過300時,總體分類精度出現下降的趨勢,這是因為Indian pines數據集樣本數較少,隨著隱藏層節點數增加,網絡結構復雜,出現了過擬合現象。
2)Pavia university數據集。表5、表6是各算法模型的對比實驗結果,其中SVM核函數9選擇linear;ELM隱藏層數為1層,節點數為1 500,激活函數為sigmoid;PELM的兩個ELM網絡結構隱藏層數都設置為1層,節點數為500,激活函數分別選擇sigmoid和tanh;2D-CNN鄰域大小選擇9×9,epoch設為300;3D-CNN像素塊大小選擇9×9×30,epoch設為300。

表3 Indian數據集各算法分類精度對比 %

表4 India數據集各算法Kappa系數和運行時間
SSFCN-PELM模型在2D-CNN部分輸入為35×35×10數據塊,使用兩個卷積層,卷積核數量分別設為10、30,大小設為3×3,學習率設為0.01,epoch設為50,1D-CNN部分使用兩個卷積層,卷積核大小設置為5,數量為64,學習率設為0.01,epoch設為100。圖5是模型在兩個隱藏層不同節點數影響下的分類精度,由圖5可知,PELM兩個隱藏層節點數分別達到60、40時,總體分類精度達到99%以上,雖然隨著隱藏層節點數增加模型總體分類精度仍在提升,但考慮時間因素和過擬合的情況,最終兩個隱藏層節點數分別設為60、40。

表5 Pavia university數據集各算法分類精度對比 %

表6 Pavia university數據集各算法Kappa系數和運行時間
從表3至表6可以得到以下結論。
1)所有對比算法中,ELM的分類速度最快、精度最低,尤其是在訓練樣本較少的情況,如Indian pines中C1、C3、C4,Pavia university數據集中C3、C7的分類精度在70%以下;PELM相比ELM在兩個數據集中精度分別提升了5%和4%,相比SVM提升了2%和8%,分類時間相比SVM更短,測試集樣本數越多,效果越明顯,PELM在Pavia university數據集中的分類時間只有SVM的十分之一,在3種分類算法中效率最高。
2)SSCNN-PELM在 Indian pines數據集中有6類樣本分類精度達到100%,Pavia university數據集中有5類樣本分類精度達到100%,而且在分類時間上也有明顯的優勢。只有Indian pines數據集中C16的表現上弱于3D-CNN。圖6和圖7是各個對比實驗的分類圖,SVM、ELM、PELM完成高光譜圖像分類會產生很多的椒鹽噪聲,而在2D-CNN、3D-CNN以及SSCNN-PELM中因為考慮了空間信息,分類效果更加平滑。
3)與3D-CNN相比,SSCNN-PELM在 Indian pines數據集中分類精度提升了2.26%,分類時間降低了94.50%;在Pavia university數據集中分類精度提升了0.77%,分類時間降低了91.31%。說明與常用深度學習方法相比,SSCNN-PELM具有更強的優越性。
本文針對高光譜圖像的分類問題,結合SSCNN和PELM的優勢,提出了新型的SSCNN-PELM模型。利用SSCNN提取高光譜圖像的空間信息及深層光譜信息,將2D-CNN和1D-CNN輸出特征輸入PELM進行融合;利用PELM分類優勢對空-譜信息進行分類。在Indian pines和Pavia university 兩個數據集上進行實驗驗證,實驗結果表明,SSCNN-PELM模型提高了高光譜圖像的分類精度及速度,并在小樣本訓練條件下也能取得良好的效果。
在實驗過程中發現,SSCNN-PELM模型雖然分類精度高,但是模型存在訓練時間較長的問題,在后續的研究工作中可以嘗試繼續改進CNN模型,減少模型參數,以達到保證分類精度的同時降低訓練時間的目的。