孫 笛,車昇昆,段渭超,蔣慶仙
1.西安測繪研究所,陜西 西安,710054;
2.地理信息工程國家重點實驗室,陜西 西安,710054;
3.68029部隊,甘肅 蘭州,730020
隨著高光譜遙感技術(shù)的不斷發(fā)展,人們可以獲得越來越多、越來越可靠的高光譜影像數(shù)據(jù),從而對高光譜影像數(shù)據(jù)所蘊含的豐富信息進(jìn)行充分的挖掘利用也就更加緊迫。高光譜影像地物分類則是開展各類應(yīng)用的重要環(huán)節(jié)之一,因此,高光譜影像地物分類識別得到了廣泛的研究,但高光譜影像分類仍面臨高維和小樣本的挑戰(zhàn)。
國內(nèi)外專家學(xué)者為解決高光譜遙感影像分類問題,引入了最近鄰[1]、支持向量機(jī)[2](support vectormachine,SVM)、稀疏表達(dá)[3]等分類器。 但在不進(jìn)行特征提取的情況下,傳統(tǒng)分類器很難在高光譜影像分類中取得理想結(jié)果。深度學(xué)習(xí)能夠提取更加抽象的特征,進(jìn)而獲得更高的分類精度,近年來已經(jīng)被成功用于目標(biāo)識別、圖像理解、機(jī)器翻譯等不同領(lǐng)域。深度學(xué)習(xí)為高光譜影像分類識別提供了一種新的思路和途徑,堆棧式自編碼器[4]作為一種簡單有效的深度學(xué)習(xí)方法,最早被用于高光譜影像分類。近年來,卷積神經(jīng)網(wǎng)絡(luò)也被引入到高光譜影像分類中,文獻(xiàn)[5]設(shè)計了一種1D-CNN模型,利用光譜特征對高光譜影像進(jìn)行分類,取得了優(yōu)于SVM的分類結(jié)果。高光譜影像能夠提供豐富的光譜和空間信息,近年來研究表明充分利用空間信息進(jìn)行高光譜影像分類能夠有效提高分類精度,而1D-CNN模型僅僅利用光譜信息進(jìn)行分類,沒有充分利用高光譜影像提供的空間信息。文獻(xiàn)[6]利用2D-CNN模型,提取高光譜影像空間特征,并與光譜特征進(jìn)行結(jié)合取得了較好的分類效果。但該方法需要事先對高光譜影像進(jìn)行降維處理,且光譜和空間特征是分別提取。目前深度學(xué)習(xí)方法已經(jīng)被廣泛用于高光譜影像分類,且在標(biāo)注樣本足夠的情況下能夠取得優(yōu)于傳統(tǒng)分類器(如SVM)的分類精度,但基于深度學(xué)習(xí)的高光譜影像分類仍然面臨小樣本分類的挑戰(zhàn)。
高光譜的不同波段影像是高度相關(guān)的,且可以被看作不同的特征映射。本文設(shè)計了一種改進(jìn)的CNN模型用于高光譜影像分類,該模型直接將高光譜數(shù)據(jù)立方體作為CNN的輸入,不需要事先降維度處理,能夠充分從數(shù)據(jù)中挖掘光譜和空間特征,因此,即使在標(biāo)注樣本數(shù)量有限的情況下,也能夠取得較傳統(tǒng)方法更好的分類效果。
CNN是一種由若干交替的卷積層和池化層組成的深度神經(jīng)網(wǎng)絡(luò)模型,已經(jīng)被廣泛應(yīng)用于圖像分類識別領(lǐng)域。CNN具有很高的非線性擬合能力,可以保留輸入的鄰域關(guān)系和空間局部性。因此,CNN非常適合對高維和非線性的高光譜數(shù)據(jù)立方體進(jìn)行分析。本文設(shè)計的CNN結(jié)構(gòu)如圖1所示,其中包括1層卷積層、1層池化層和3層全連接層。
圖1 CNN結(jié)構(gòu)圖
通常來說,神經(jīng)網(wǎng)絡(luò)層數(shù)越多,對非線性函數(shù)的擬合能力越強(qiáng)。但層數(shù)越多,需要優(yōu)化的參數(shù)就越多,需要標(biāo)注的訓(xùn)練數(shù)據(jù)也就越多。然而,高光譜影像分類標(biāo)準(zhǔn)樣本費時費力,且CNN卷積層的層數(shù)受輸入高光譜數(shù)據(jù)立方體對應(yīng)空間大小的限制。本文輸入高光譜數(shù)據(jù)立方體大小為9×9×B,其中9×9為以輸入樣本為中心的鄰域區(qū)域的大小,B為高光譜影像波段數(shù)。綜合考慮以上因素,本文采用1層卷積層來提取高光譜影像的空譜特征;采用1層池化層來減少參數(shù)數(shù)量;并采用3層全連接層來保證CNN網(wǎng)絡(luò)的非線性擬合能力。
CNN的權(quán)值共享和稀疏連接網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。卷積層可以定義為:
其中,*表示卷積操作;h表示輸入的特征映射,也就是高光譜數(shù)據(jù)立方體;W1和b1分別表示卷積核和偏置;h1表示輸出的特征映射;g(·)表示激活函數(shù)。CNN網(wǎng)絡(luò)結(jié)構(gòu)中通常會使用多個卷積核,以保證特征提取的多樣性,但考慮到高光譜影像標(biāo)注樣本較少,且高光譜不同波段間具有高度的相關(guān)性,因此,本文設(shè)置卷積層輸出特征映射數(shù)為B1(B1<B)以減少網(wǎng)絡(luò)參數(shù)。
池化層的輸入為上一個卷積層輸出的特征映射,主要作用是提供了很強(qiáng)的魯棒性,并減少了參數(shù)的數(shù)量,防止了過擬合現(xiàn)象的發(fā)生。池化層可以定義為:
其中,h1為卷積層輸出的特征映射;h2為經(jīng)過池化操作的特征映射;down(·)為下采樣函數(shù),g(·)為激活函數(shù)。
經(jīng)過池化操作的特征映射需要展平,與全連接層相連,3層全連接層可以定義為:
其中,hl為全連接層輸入;hl+1為輸出;Wl和bl分別為權(quán)重和偏置;g(·)為激活函數(shù)。全連接層主要用于提取更加抽象的特征,以提高分類精度。
基于CNN的高光譜分類流程主要包含采用訓(xùn)練數(shù)據(jù)對CNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練,當(dāng)網(wǎng)絡(luò)充分訓(xùn)練后,將測試樣本輸入到網(wǎng)絡(luò),得到預(yù)測的類別標(biāo)簽,并與已知類別標(biāo)簽進(jìn)行比較,得到總體分類精度。本文CNN網(wǎng)絡(luò)的訓(xùn)練與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練相似,包含前向傳播和反向傳播兩個過程。前向傳播就是輸入數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)得到輸出,根據(jù)輸出和已知標(biāo)簽計算損失函數(shù)。反向傳播就是根據(jù)損失函數(shù)更新相應(yīng)參數(shù),以使損失函數(shù)最小。本文采用分批隨機(jī)梯度下降法對CNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
為驗證本文算法的有效性,選取了Pavia大學(xué)和Pavia中心兩組高光譜影像數(shù)據(jù)進(jìn)行實驗。實驗軟件環(huán)境為Ubuntu16.04,實驗硬件環(huán)境為:內(nèi)存 32G、顯卡為 GTX970M、處理器為 i7-5700HQ。 CNN、1D-CNN、PCA(principle component analysis)+CNN采用Tensorflow開源庫實現(xiàn),SVM采用Scikit-learn開源庫實現(xiàn)。
Pavia大學(xué)高光譜影像數(shù)據(jù),是由ROSIS(reflective optics system imaging spectrometer)傳感器在2003年獲取的,該影像的成像區(qū)域為意大利Pavia大學(xué)及其周圍市區(qū)。原始的ROSIS數(shù)據(jù)包含115個波段,在試驗中,去除受噪聲影響嚴(yán)重的波段,使用剩余的103個波段的數(shù)據(jù)。數(shù)據(jù)具有610行、340列,空間分辨率為1.3m,影像范圍內(nèi)具有9個類別的42776個樣本像元,對應(yīng)訓(xùn)練樣本個數(shù)和測試樣本個數(shù)見表1。
表1 Pavia大學(xué)數(shù)據(jù)訓(xùn)練和測試樣本
Pavia中心高光譜影像數(shù)據(jù),是由ROSIS傳感器在2003年獲取的,該影像的成像區(qū)域為意大利Pavia市中心區(qū)域。原始的ROSIS數(shù)據(jù)包含115個波段,在試驗中,去除受噪聲影響嚴(yán)重的波段,選取了102個波段的數(shù)據(jù)。該數(shù)據(jù)原始影像大小為1096×1096,去除381列空白數(shù)據(jù),因此,影像大小為1096×715,空間分辨率為1.3m,影像范圍內(nèi)具有9個類別的148152個樣本像元,對應(yīng)訓(xùn)練樣本個數(shù)和測試樣本個數(shù)見表2。
表2 Pavia中心數(shù)據(jù)訓(xùn)練和測試樣本
本文CNN用于對Pavia大學(xué)和Pavia中心高光譜數(shù)據(jù)進(jìn)行分類的網(wǎng)絡(luò)結(jié)構(gòu)見表3。
表3 網(wǎng)絡(luò)結(jié)構(gòu)
本文采用分批隨機(jī)梯度下降算法對CNN網(wǎng)絡(luò)進(jìn)行優(yōu)化,其中批尺寸為50,即每批輸入50個樣本進(jìn)行訓(xùn)練。訓(xùn)練時期數(shù)為200(一個訓(xùn)練時期為所有訓(xùn)練樣本完成一個正向傳播和一個反向傳播)。卷積核大小均為3×3×3,因此,卷積層需要對原始輸入進(jìn)行補邊處理,補邊大小為1(即9×9大小的輸入,補邊為11×11),卷積核個數(shù)為80,卷積層的步長為1。激活函數(shù)采用ReLu(rectified linear units),該激活函數(shù)能夠有效抑制梯度消失。池化層采用最大池化,學(xué)習(xí)率根據(jù)經(jīng)驗設(shè)置為0.001,其中權(quán)重和偏置參數(shù)初始化從-0.001到0.001區(qū)間均勻隨機(jī)取值。
將本文算法分別與SVM、1D-CNN和PCA+CNN等現(xiàn)有算法進(jìn)行對比。其中Pavia大學(xué)數(shù)據(jù)和Pavia中心數(shù)據(jù)對應(yīng)的各個地物類別分類精度和總體分類精度分別見表4和表5。Spec-SVM為直接采用光譜特征作為SVM輸入的分類結(jié)果。根據(jù)表4和表5的實驗結(jié)果可知,1D-CNN僅僅利用光譜特征進(jìn)行分類,分類精度略低于SVM;PCA+CNN能夠利用空間信息,分類精度優(yōu)于SVM和1D-CNN,但該方法需要使用PCA對高光譜影像進(jìn)行降維處理,且空間信息和光譜信息是分別提取的,因此,不能有效利用高光譜影像提供的空譜信息;而本文CNN網(wǎng)絡(luò)不需要進(jìn)行降維處理,直接以高光譜數(shù)據(jù)立方體作為網(wǎng)絡(luò)輸入,能夠更加有效地利用高光譜影像的空譜信息,因此,其分類精度優(yōu)于SVM、1D-CNN和PCA+CNN。
表4 Pavia大學(xué)數(shù)據(jù)分類精度
表5 Pavia中心數(shù)據(jù)分類精度
Pavia大學(xué)數(shù)據(jù)和Pavia中心數(shù)據(jù)各方法分類圖如圖2和圖3所示。其中,圖2(a)和圖3(a)為已知分類圖。由圖可知使用本文CNN獲得的分類圖噪聲比 SVM、1D-CNN和 PCA+CNN更少。
圖2 (a)已知分類圖
表6給出了各方法的訓(xùn)練和測試計算時間。其中,Spec-SVM核函數(shù)和懲罰系數(shù)參數(shù)采用交叉驗證的方法需要選取,訓(xùn)練時需要大量時間尋找最優(yōu)參數(shù)。CNN算法采用GPU并行計算,而SVM僅僅使用CPU進(jìn)行計算,因此基于SVM的方法測試時間相比于基于CNN的方法要慢。1D-CNN需要較多的訓(xùn)練時間才能收斂,因此,訓(xùn)練時間最長,但由于參數(shù)最少,使得測試時間最短。而PCA+CNN由于使用PCA進(jìn)行降維處理,參數(shù)要明顯少于本文CNN網(wǎng)絡(luò),因此,訓(xùn)練和測試時間相對于本文CNN均較快。本文方法訓(xùn)練和測試耗時適中,但有效提高了分類精度。
圖3 (a)已知分類圖
表6 訓(xùn)練和測試計算時間統(tǒng)計
深度學(xué)習(xí)能夠在中大規(guī)模數(shù)據(jù)上取得較好分類效果,而高光譜分類標(biāo)注樣本有限,通常屬于小樣本分類,因此,深度學(xué)習(xí)方法用于高光譜影像分類仍面臨小樣本的挑戰(zhàn)。本文設(shè)計了一種CNN網(wǎng)絡(luò)用于高光譜影像分類的方法,該方法不需要降維等預(yù)處理,直接以高光譜數(shù)據(jù)立方體為輸入,能夠更好地利用高光譜影像提供的豐富的空譜信息,且使用較少的訓(xùn)練樣本(每類200個訓(xùn)練,剩余測試)能夠取得較 SVM、1D-CNN和 PCA+CNN更好的分類效果。
[1]黃鴻,鄭新磊.加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類[J].光學(xué)精密工程,2016,24(4):873-881.
[2]Camps-Valls G,Bruzzone L.Kernel-Based Methods for Hyperspectral Image Classification[J].IEEE Transactions on Geoscience&Remote Sensing,2005,43(6):1351-1362.
[3]唐中奇,付光遠(yuǎn),陳進(jìn)等.基于多尺度分割的高光譜圖像稀疏表示與分類[J].光學(xué)精密工程,2015,23(9):2708-2714.
[4]CHEN Y S,LIN Z H,ZHAO X,et al.Deep Learningbased Classification of Hyperspectral Data[J].IEEE Journal of Selected Topics in Applied Earth Observations&Remote Sensing,2014,7(6):2094-2107.
[5]Hu W,Huang Y,Wei L,et al.Deep Convolutional Neural Networks for Hyperspectral Image Classification[J].Journal of Sensors,2015,2015(2):1-12.
[6]Yue J,ZhaoW,Mao S,et al.Spectral-spatial Classification of Hyperspectral Images Using Deep Convolutional Neural Networks[J].Remote Sensing Letters,2015,6(6):468-477.