仇 龍
(北京科技大學資產(chǎn)經(jīng)營公司 北京 100083)
遙感技術是在20 世紀60 年代逐步發(fā)展起來的新興技術[1]。 通過非接觸傳感器接收目標地物的電磁波信息,遙感圖像的獲得能夠測量目標地物的幾何和物理特性,并以可視化的形式展現(xiàn)出來。 由于不同地物在遙感圖像中具有獨特的特征,因此可以通過提取和學習這些特征來區(qū)分不同的地面物體。 隨著遙感技術的不斷發(fā)展,遙感數(shù)據(jù)被廣泛應用于都市規(guī)劃、農(nóng)林、地質(zhì)、生態(tài)等行業(yè),這些應用也在一定程度上推動了遙感技術的進步。 高光譜圖像已成為遙感技術發(fā)展的重要趨勢,相對于傳統(tǒng)遙感技術,高光譜遙感利用數(shù)百個成像波段,每個波段的寬度通常小于10 nm,并在某個光譜范圍內(nèi)連續(xù)分布。 高光譜圖像蘊含豐富的光譜和空間信息,因此在農(nóng)業(yè)、環(huán)境、監(jiān)測、醫(yī)學等許多重要領域廣泛應用。 高光譜圖像分類作為上述應用中的關鍵技術,是遙感領域中的一項重要任務。
在過去幾十年中,針對高光譜圖像分類的傳統(tǒng)方法得到了不斷發(fā)展,這些方法通過將每個像素點分類為獨特的土地覆蓋標簽,例如最大似然、最小距離、K 近鄰、隨機森林、貝葉斯模型、神經(jīng)網(wǎng)絡等。 其中,基于核的支持向量機是最重要的分類器之一。 支持向量機通過建立最佳的超平面來分離訓練樣本,從而獲得較高的高光譜分類精度。然而,這些傳統(tǒng)方法通常只用來提取邊緣、紋理等淺層次特征,難以應對高光譜遙感圖像的類內(nèi)差異性高和類間差異性低的挑戰(zhàn)。 例如,類內(nèi)差異性高是指同一類別的像素在鄰域內(nèi)可能具有不同的形狀,其中一些是直線形狀,而其他一些是彎曲形狀,僅從它們的淺層特征來進行判斷和分類,可能會導致這些像素被模型誤判定為不同類別。 類間差異性低是指不同類別的像素的紋理可能極其相似,模型易誤判定其為相同類別。 在這些情況下,傳統(tǒng)的底層特征提取方法可能無法獲得最優(yōu)的分類結(jié)果。 因此,研究人員開始探索更好的高光譜圖像分類方法。
自2006 年Geoffrey Hinton 提出深度置信網(wǎng)絡后,深度學習得到了眾多學者的廣泛關注,深度學習的主要目的就是建立能夠模擬生物體的大腦進行分析新知識和學習所需特征的神經(jīng)網(wǎng)絡[2]。 Yann LeCun 于1998 年設計的卷積神經(jīng)網(wǎng)絡是深度學習的典型應用。 卷積神經(jīng)網(wǎng)絡由卷積層、池化層和全連接層組成,是一個多層神經(jīng)網(wǎng)絡。 近年來,各種經(jīng)典模型的不斷提出使得卷積神經(jīng)網(wǎng)絡的識別準確率持續(xù)提高,使計算機具備超越人類的識別能力。圖像可以直接作為卷積神經(jīng)網(wǎng)絡的輸入,無需任何處理,并可進行端到端的訓練任務,省去了傳統(tǒng)機器學習中的手工設計特征提取和數(shù)據(jù)重建過程。 隨著深度學習技術的不斷推陳出新,遙感圖像場景分析也迎來了新的變革[3]。
目前,許多學者開展了深度學習技術在遙感圖像處理上的應用。 趙爽[4]將卷積神經(jīng)網(wǎng)絡用于遙感影像的處理,并將其與傳統(tǒng)人工神經(jīng)網(wǎng)絡方法進行對比。 劉大偉等[5]將深度學習中的深度信息網(wǎng)絡應用于高分辨率遙感影像的研究。 基于深度學習的高光譜遙感圖像分類方法可以提取更高層次的特征,從而獲得更好的分類結(jié)果。 與傳統(tǒng)的機器學習方法相比,基于深度學習的高光譜遙感圖像分類方法不僅省去了手工設計特征提取的過程,還在分類精度上有了顯著的改進。 然而,目前仍存在三個普遍的問題:第一,過度增加卷積神經(jīng)網(wǎng)絡的層數(shù)可能會阻礙網(wǎng)絡的融合。 第二,大多數(shù)現(xiàn)有方法忽略了不同層之間的相關信息。 第三,在聯(lián)合提取光譜特征和空間特征時仍然存在一定的挑戰(zhàn)。 為了解決這些問題并提高分類性能,本研究構(gòu)建了一種新的雙流密集殘差網(wǎng)絡,詳細介紹了網(wǎng)絡框架和一些參數(shù)設置,并在一個知名的高光譜圖像數(shù)據(jù)集上進行了實驗。 實驗結(jié)果表明,與其他先進的分類方法相比,本研究提出的雙流密集殘差網(wǎng)絡具有更優(yōu)越的分類性能。
Indian Pines 數(shù)據(jù)集是由美國印第安納州的農(nóng)林地區(qū)于1992 年使用波長范圍為0.4 ~2.5 μm 的機載可視紅外成像光譜儀,通過連續(xù)的220 個成像波段對地物信息進行收集。 該數(shù)據(jù)集實際上是一張像素分辨率為145×145 的圖像,其空間分辨率為20 m。 在實際分類中,背景像素被排除,剩下的10 249 個像素是地物像素。 這個數(shù)據(jù)集總共包含16 類地物,主要以農(nóng)作物為主。 圖1 為Indian Pines 圖像的偽彩圖,由第25、19、8 這三個波段組成,顯示了真實地物標簽。
圖1 Indian Pines 數(shù)據(jù)集可視化偽彩圖(左)和真實標簽(右)
為了處理高光譜遙感圖像分類問題,首先需要建立整個實驗平臺的軟硬件環(huán)境。 在軟件配置方面,本文選擇使用TensorFlow 框架,并需要在系統(tǒng)中配置相應的環(huán)境。 實驗將在Linux 系統(tǒng)下進行,因此需要配置統(tǒng)一計算設備架構(gòu)(compute unified device architecture,CUDA)。 本文使用Windows 系統(tǒng)通過PyCharm 軟件進行遠程操作,并使用Python 語言編寫模型代碼。 此外,為了生成偽彩圖,本實驗還將使用MATLAB 軟件。 在硬件配置方面,本文使用一臺配備Ubuntu 系統(tǒng)的計算機,并配備一塊NVIDIA GeForce GTX 1080Ti 圖像處理器(graphics processing unit,GPU)。 該GPU 將提供計算能力支持,加速深度學習模型的訓練和推理過程。 通過以上軟硬件環(huán)境的搭建,可以為高光譜遙感圖像分類問題的研究提供必要的計算平臺和工具支持。
高光譜數(shù)據(jù)是一個具有三個維度的立方體形狀數(shù)據(jù),包括一維光譜信息和二維空間信息。 本文的方法是通過兩個分支分別學習光譜特征和空間特征。 因此,需要對三維高光譜數(shù)據(jù)進行劃分,將每個像素塊對應的光譜向量和相鄰的空間區(qū)域送入網(wǎng)絡。 這里的空間相鄰區(qū)域是由三個波段組成的偽彩圖,大小為21×21 像素,由像素點及其上下左右的10 個相鄰像素組成。 主成分分析(principal component analysis,PCA)是常用的數(shù)據(jù)降維技術。 通過采用PCA 將空間分支的成百個光譜帶壓縮為三個光譜帶,不僅可以減少光譜帶的冗余,還可以減輕計算負擔。 通過PCA,保留了光譜帶的主要特征,雖然會丟棄一些光譜特征,但空間特征保持不變。 由于空間分支主要關注空間特征,因此丟棄少量光譜特征對分類結(jié)果的影響不大。
本文設計的雙流密集殘差網(wǎng)絡的整體分類系統(tǒng)框架如圖2 所示。 將高光譜遙感數(shù)據(jù)劃分為一系列譜向量及其相應的空間鄰域。 對于這些空間鄰域:首先引入PCA 對光譜信息進行壓縮,以提高訓練速度。 然后,將訓練數(shù)據(jù)送入雙流密集殘差網(wǎng)絡中,利用反向傳播來更新參數(shù)。 最后,利用最優(yōu)模型的參數(shù)對測試數(shù)據(jù)進行預測。
圖2 高光譜遙感圖像分類整體框架
如圖3 所示,雙流密集殘差網(wǎng)絡主要由三部分組成:光譜特征學習、空間特征學習和特征融合。 所設計的網(wǎng)絡具有兩個分支,上面的分支輸入一維光譜向量,且該分支中所有的卷積和池化操作都屬于一維計算,用于光譜特征學習。 下面的分支輸入每一個像素對應的空間近鄰區(qū)域,且該分支中所有的卷積和池化操作都屬于二維計算,用于空間特征學習。 在空間分支中,由于高光譜數(shù)據(jù)的通道有上百個,先通過PCA 選取三個光譜帶形成偽彩圖,對所得到的偽彩圖提取空間特征。 考慮上下文信息可以提取更豐富的特征,將像素的近鄰區(qū)域塊被設置為空間分支的輸入。 為了公平比較,采用跟其他方法相同的21×21 像素塊作為空間分支的輸入。 該深度卷積網(wǎng)絡的兩個分支,首先通過一維/二維卷積層和池化層得到淺層特征,隨后通過密集殘差網(wǎng)絡得到深層特征。 同時,如圖3 中的殘差塊上方的曲線箭頭所示,通過跳躍連接將淺層特征和深層特征結(jié)合,進一步提高分類結(jié)果。 最后,將得到光譜特征和空間特征通過全連接層結(jié)合起來。 需要注意的是,最后一層全連接層的隱藏卷積神經(jīng)元節(jié)點的個數(shù)必須等于分類的類別數(shù),而且還需要通過一種常用的激活函數(shù)——Softmax函數(shù)來預測每個類的概率分布,輸出分類結(jié)果以及整體分類精度。
圖3 雙流密集殘差網(wǎng)絡結(jié)構(gòu)圖
如圖3 所示,雙流密集殘差網(wǎng)絡主要由三個部分組成:光譜特征學習、空間特征學習和特征融合。 該網(wǎng)絡采用兩個分支的設計:上面的分支(光譜分支)接收一維光譜向量作為輸入,其中的卷積和池化操作都屬于一維計算,用于學習光譜特征。 下面的分支(空間分支)接收每個像素對應的空間近鄰區(qū)域作為輸入,其中的卷積和池化操作都屬于二維計算,用于學習空間特征。 在空間分支中,由于高光譜數(shù)據(jù)的通道數(shù)較多以及更好地捕獲上下文信息,使用經(jīng)過PCA 降維后的圖像像素的近鄰區(qū)域塊作為空間分支的輸入。 為了公平比較,采用與其他方法相同的21×21 像素塊作為空間分支的輸入。 該深度卷積網(wǎng)絡的兩個分支首先通過各自的卷積層和池化層提取淺層特征,然后通過密集殘差網(wǎng)絡獲得深層特征。 同時,通過跳躍連接(如圖3 中殘差塊上方的曲線箭頭所示),將淺層特征和深層特征結(jié)合起來,進一步提高分類結(jié)果。 最后,將得到的光譜特征和空間特征通過全連接層進行融合。需要注意的是,最后一層全連接層的隱藏神經(jīng)元節(jié)點數(shù)量必須與分類的類別數(shù)相等,并通過Softmax 函數(shù)輸出每個類別的概率分布,以得到分類結(jié)果和整體分類精度。
受到ResNet[6]和DenseNet[7]的啟發(fā),這樣的結(jié)構(gòu)在一定程度上減輕了在訓練過程中的梯度消失問題,并證明了增加網(wǎng)絡的層數(shù)可以同時提高模型的準確性。 為了實現(xiàn)這一目標,本文設計了密集殘差模塊,如圖4 所示。 密集殘差模塊包括淺層的特征提取層、級聯(lián)的殘差塊、密集特征融合模塊和反卷積上采樣模塊,通過殘差連接的方式,既沒有引入額外的參數(shù),也沒有增加模型的復雜度。 具體來說,殘差塊采用了“瓶頸塊”設計,以減少參數(shù)數(shù)量。 光譜分支的殘差塊包含三個階段的卷積層,卷積核的尺寸分別為1×1、3×1 和1×1。 空間分支的殘差塊也包含三個卷積層,卷積核的尺寸分別為1×1、3×3 和1×1。 第一層的1×1 卷積將通道數(shù)從75 降低到17,最后一層的1×1 卷積將通道數(shù)恢復到75。 與傳統(tǒng)的普通卷積神經(jīng)網(wǎng)絡相比,該設計將網(wǎng)絡的總參數(shù)減少了約95%,顯著提高了訓練效率。 為了驗證其有效性,本文還比較了具有相同層數(shù)的普通網(wǎng)絡,結(jié)果表明其精度達到飽和后迅速下降。 因此,本文重點關注這種結(jié)構(gòu),以增加網(wǎng)絡深度。 為了解決下采樣過程中卷積和池化操作導致的信息丟失問題,網(wǎng)絡的后端采用反卷積操作來恢復信息。 反卷積并不能完全恢復卷積前的矩陣,但可以恢復尺寸,通過自動填充以使輸出矩陣與指定的輸出矩陣形狀相同。
圖4 密集殘差網(wǎng)絡細節(jié)圖
同時,深度卷積神經(jīng)網(wǎng)絡的超參數(shù)選擇非常重要。 本文通過實驗分析了殘差塊數(shù)目和殘差塊中卷積核數(shù)目對模型分類精度的影響,并得出了最優(yōu)網(wǎng)絡的超參數(shù)配置,如表1 所示。 其中,n 表示波段數(shù)目,m 表示像素點數(shù)目。光譜分支采用一維卷積,空間分支采用二維卷積,每個殘差塊包含三個卷積層,前兩層的通道數(shù)設置為17,最后一層的通道數(shù)設置為75。
表1 網(wǎng)絡的超參數(shù)配置
損失函數(shù)的設計在卷積神經(jīng)網(wǎng)絡的優(yōu)化中起著至關重要的作用。 在理想情況下,損失函數(shù)能夠衡量實際輸出與期望輸出之間的接近程度,通??梢允褂媒徊骒刈鳛榫W(wǎng)絡的損失函數(shù)。 交叉熵的值越小,代表兩個概率分布越接近[8]。 交叉熵公式如式(1)所示。
式(1)中n表示參與訓練的數(shù)據(jù)集樣本的個數(shù),概率分布p(xi)為期望的模型的輸出,即標簽,概率分布q(xi)為實際的模型的輸出,H(p,q)表示交叉熵的值。 整個網(wǎng)絡的損失函數(shù)被定義為平均交叉熵值。 在卷積神經(jīng)網(wǎng)絡迭代學習過程中,當損失值達到最小且基本不再變化時,可以終止訓練,即網(wǎng)絡參數(shù)如權重和偏差達到最佳值。 此外,為了優(yōu)化學習過程,常使用Adam 算法作為優(yōu)化算法,它具有高效和易于實現(xiàn)的特點。
在本節(jié)中,設計了實驗以重點驗證密集雙流殘差網(wǎng)絡在高光譜遙感圖像分類中的效果。 為了公平比較,本文的數(shù)據(jù)劃分方式將按照以前的高光譜遙感圖像分類方法的設置,從Indian Pines 數(shù)據(jù)集中隨機抽取10%的訓練樣本。
為了評估神經(jīng)網(wǎng)絡模型的性能,需要使用評價指標來確定分類結(jié)果的準確性。 一種常見的方法是將預測的分類結(jié)果與實際的標簽進行比較,從而創(chuàng)建一個混淆矩陣?;煜仃嘋是一個r階方陣,具有r行r列,這里r指的是類別數(shù)。 如式(2)所示,Cij表示應該分到第i類樣本卻被分到第j類樣本的所有總數(shù)。 因此,混淆矩陣對角線上的元素表示被正確分類的樣本數(shù)量,而非對角線上的元素表示被錯誤分類的樣本數(shù)量。 因此,混淆矩陣對角線上的元素之和越大,模型的分類效果就越好。 相反,如果非對角線上的元素之和較大,則模型的分類效果較差。
在高光譜圖像分類中,通常使用三個指標進行評估,即總體準確度(overall accuracy, OA)、平均準確度(average accuracy,AA)和一致性系數(shù)(Kappa)[9]。 具體而言,總體準確度OA 表示被正確分類的像素數(shù)量占整個圖像的比例,可以根據(jù)混淆矩陣計算得出[10],如式(3)所示。平均準確度AA 是各個類別精度的平均值。 Kappa 通過對精度進行加權測量來計算,代表了一致性程度和穩(wěn)健性的度量標準,也是基于混淆矩陣計算的,如式(4)所示。
式(3)、式(4)中N代表測試集像素點總數(shù),Ni表示測試集樣本中第i類的像素點總數(shù),r為類別數(shù),Cii表示第i類被分為第i類的像元素,Ci+表示第i類的真實像元素,C+i表示被分為第i類的像元素。
為了驗證所提出的方法的有效性,在實驗中將本文提出的方法與其他高光譜遙感圖像分類方法進行了比較,包括支持向量機(support vector machine,SVM)、卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)、深度卷積神經(jīng)網(wǎng)絡(deep convolutional neural networks,DCNN)、雙分支卷積神經(jīng)網(wǎng)絡(two?branche deep CNN,Two?CNN)、像素對卷積神經(jīng)網(wǎng)絡(CNN with pixel?pair features,CNN?PPF)和波段自適應光譜空間網(wǎng)絡(band?adaptive spectral?spatial Net,BASS?Net)。 為了進行公平的比較,訓練樣本選擇使用與之前方法相同的數(shù)量,從Indian Pines 數(shù)據(jù)集中隨機抽取了10%的訓練樣本用于訓練網(wǎng)絡。 表2 顯示了在不同方法下使用Indian Pines 數(shù)據(jù)集時的性能比較結(jié)果。 顯然,傳統(tǒng)的機器學習方法SVM 的性能表現(xiàn)不佳。 此外,CNN 方法的性能也不佳,這是因為它忽略了空間信息。 相比較于其他方法,提出的方法在性能上有所提升。 圖5 展示了所有方法的分類圖像,本文所提出的方法具有最少的誤分類像素。
表2 Indian Pines 數(shù)據(jù)集在不同分類方法下的精度
圖5 Indian Pines 數(shù)據(jù)集下不同方法的分類結(jié)果圖
為了解決高光譜遙感圖像分類問題,本文設計了一種能高效處理有限訓練樣本的雙流密集殘差網(wǎng)絡。 從雙流結(jié)構(gòu)、密集殘差網(wǎng)絡兩個方面提高了高光譜遙感圖像分類精度。 該框架包含提取光譜特征的一維密集殘差網(wǎng)絡和提取空間特征的二維密集殘差網(wǎng)絡。 將光譜特征與空間特征相結(jié)合,可以顯著提高分類性能。 通過在可公開獲取的高光譜數(shù)據(jù)集Indian Pines 上所進行的實驗表明,本文搭建的框架不但能夠提取出比其他方法更加深層次的特征。 而且與傳統(tǒng)的方法和其他深度學習網(wǎng)絡相比,本文所設計的網(wǎng)絡可以獲得較高的分類性能。