王莉影, 高心丹
(東北林業(yè)大學 信息與計算機工程學院,哈爾濱 150000)
遙感圖像的分類是進行社會資源保護和社會資源動態(tài)監(jiān)護的基礎,為劃分森林類型,進而為國家森林資源清查提供依據(jù),因此近年來遙感影像的分類一直是廣大科技者研究的重點[1-3]。文獻[4-6]中結合特征組與分層策略對高空間分辨率的遙感圖像進行逐層分類,有效提高了地表覆蓋類別解譯效率;徐佳慶等[7]采用基于二階矩空譜聯(lián)合稀疏編碼的遙感圖像分類方法,在天宮一號和KSC數(shù)據(jù)上的總體分類精度分別達到了95.74%和96.84%;Xue等[5]提出了兩種新的稀疏圖正則化方法,該方法在計算效率,分類準確性和對噪聲的魯棒性方面優(yōu)于一些最先進的方法;Liu等[6]使用一種多尺度深度特征學習方法用于高分辨率衛(wèi)星圖像場景分類,與其他方法相比性能有所提升。當前遙感影像分類研究已經(jīng)取得了長足的進展,但在樹種類型信息的獲取中仍存在很多突出問題,如分類精度不高、詳細程度差和數(shù)據(jù)量不足等技術難點。
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)作為優(yōu)化的神經(jīng)網(wǎng)絡,是圖像識別領域的研究熱點[8-9]。它通過局部感受野、權重共享和降采樣3種策略,能夠有效減少訓練參數(shù)的數(shù)量,更好地降低網(wǎng)絡復雜度,有效地抑制過擬合問題,使網(wǎng)絡具有更高的魯棒性[10-13]。CNN在識別位移、縮放以及其他形式扭曲不變性二維圖像的同時,能夠進行并行學習的特征使其對圖像特征的提取更有優(yōu)勢[14]。Zeiler等[15]利用通用的CNN特征,大幅提高了小樣本圖像識別的準確度。Nogueira等[16]通過CNN來區(qū)分具有少量標記樣本的植被物種。何海清等[17]提出了一種深度CNN遞歸識別模型,可適應不同尺度地物的變化,顯著提高了場景分類的精度。Zhang等[18]通過一種梯度增強隨機卷積網(wǎng)絡進行遙感的場景分類。
本文提出一種基于遷移學習思想的深度CNN識別模型,對所選研究區(qū)的樹種類型進行識別。該方法構建多層CNN,通過遷移學習方法提升CNN的分類識別能力,選擇有代表性的高分辨率遙感影像場景樣本對深度CNN進行訓練,利用Softmax函數(shù)輸出分類結果并計算各個類別的Kappa系數(shù),證實本實驗算法的可行性,然后使用模型對樹種類型進行識別和分類。
CNN是在對貓的視覺皮層中細胞研究的基礎上,對生物大腦皮層結構進行模擬而設計的含有多隱層的人工神經(jīng)網(wǎng)絡[16],其結構如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡結構
CNN采用卷積運算代替一般的矩陣乘法,可以抽象輸入的圖像,經(jīng)過幾次抽象操作后,提取出圖像的特征值,從而對樹種特征進行自主學習。對比傳統(tǒng)的神經(jīng)網(wǎng)絡結構,CNN不需要全部感知樹種圖像中的像素信息,局部感知的信息在高層合并生成特征圖,并對生成的特征圖進行降采樣操作,這些特點使CNN參數(shù)的數(shù)量和計算量都大大減小,并且增強了模型的特征泛化能力,因此對樹種圖像的識別和分類都更加迅速便捷。
(1) 卷積層。為了使用CNN對樹種進行識別,首先將針闊葉樹種圖像輸入,輸入圖像進入卷積層后,卷積層對樹種圖像的特征進行提取。樹種圖像經(jīng)過前向傳播得到特征圖的過程如下:
(1)
(2) 池化層。池化層使用最大值或者平均值操作對卷積層提取到的樹種特征圖降維。池化層的計算過程如下:
(2)
式中:down()表示子采樣函數(shù);β表示子采樣系數(shù);b是偏置。
池化層和卷積層共同組成的樹種圖像的兩次特征提取結構,使網(wǎng)絡對圖像的畸變有很好的容忍能力。
(3) 全連接層。全連接層能夠使通過卷積層和池化層提取到的樹種特征映射到樣本的標記空間中,然后使用激活函數(shù)傳遞給輸出層進行輸出。
(4) Softmax分類器。在多分類問題中,使用Softmax回歸將目標分類變成概率輸出。假設訓練樣本的集合為{(x(1),y(1)),…,(x(n),y(n))},模型參數(shù)為θ,共有l(wèi)個參數(shù),有k個類別,即y(i)∈{1,2,…,k},對于每個輸入的x,損失函數(shù)可以定義為:
(3)
針對當前現(xiàn)有的標準數(shù)據(jù)集中樹種圖像僅僅只有幾千張,達不到訓練深度CNN所需要的百萬數(shù)量級的問題,在樹種圖像的分類模型上引入了遷移學習的思想。
本文借助在大型數(shù)據(jù)集ImageNet上預訓練的CNN模型對樹種的圖像的特征進行提取分類,可以將在大型數(shù)據(jù)集上學習到的權重作為初始權重應用到樹種的識別分類上,使網(wǎng)絡的訓練僅僅使用幾千張樹種的標注圖像就能達到很高的分類精度。
為驗證本實驗模型分類方法的有效性,分別選用兩組數(shù)據(jù)集進行實驗。實驗數(shù)據(jù)集1為AID數(shù)據(jù)集,該遙感影像數(shù)據(jù)集由武漢大學研究團隊于2017年制作完成,取自全世界不同國家和地區(qū),空間分辨率為8~0.5 m。為研究本文方法對地表覆蓋及針闊葉分類的有效性,選取數(shù)據(jù)集中的裸地、農(nóng)田、森林、草地、山脈、湖泊和河流7種類別,種間相似性較小,分類難度較高。每個類別包含有250~420幅大小為600×600的圖像,選取地表覆蓋類型示例樣本圖像如圖2所示。
(a) 裸地
(b) 農(nóng)田
(c) 森林
(d) 草地
(e) 山脈
(f) 湖泊
(g) 河流
圖2 部分地表覆蓋示例樣本圖像
實驗數(shù)據(jù)集2為東北林業(yè)大學實驗林場的低空遙感數(shù)據(jù)影像。該林場共引進樹種118種,植樹近35 hm2。研究區(qū)域中包括興安落葉松林、樟子松林、紅皮云杉林、紅松林、水曲柳林等,為便于計算,本文將其分別歸類為針葉林和闊葉林進行分類。圖像的像素大小為4 000×2 250,經(jīng)過實驗選擇最優(yōu)分割尺度將圖像切割為大小100×90像素的針葉林圖像和闊葉林圖像各1 300張,通過解譯專家對所有目標圖像進行人工標注。部分針闊葉樹種樣本圖像如圖3所示。
(a) 針葉林
(b) 闊葉林
本文使用在ImageNet上訓練的性能較好的大型卷積神經(jīng)網(wǎng)絡Inception-v3作為遷移學習的模型。針闊葉分類模型的結構主要包括以下兩個部分:①使用ImageNet進行Inception-v3模型的預訓練,模型中間的隱含層對ImageNet中的圖像特征進行逐層地學習,使Inception-v3模型成為一個特征提取器,更好地對樹種圖像進行特征提取;②加載訓練好的模型并訓練一個新的全連接層及Softmax層輸出結果,將輸出的結果與目標輸出對比得出誤差,將誤差進行反向傳播實現(xiàn)參數(shù)的更新。
Inception-v3是由Google團隊提出基于Inception模塊的GoogleNet模型,Inception模塊在增加了網(wǎng)絡寬度的同時,可以有效降低維度,并對特征提取功能進行了強化。該模型共有46層,由11個Inception模塊組成。主要使用3×3的卷積核對樹種圖像進行濾波操作,同時使用2個1維卷積來模擬2維卷積,最后通過1×1的卷積核來進行特征組合,從而減少特征圖的數(shù)量,增加網(wǎng)絡模型結構的非線性。
實驗時將樹種圖像轉化為299×299×3數(shù)字矩陣輸入網(wǎng)絡,在第1個卷積層使用尺寸為3×3的卷積核對圖像數(shù)據(jù)集進行步長為2的濾波操作,此時特征向量的尺寸變?yōu)?49×149×32。在后面幾個非Inception Module的普通卷積層中進行類似的操作,最后得到的特征向量尺寸為35×35×192。隨后進入3個連續(xù)的Inception模塊組,第1個Inception模塊組包含3個Inception module,每個Inception module有4個分支,將4個分支的輸出合并在一起生成尺寸為35×35×256的特征向量。第2個Inception module與第1個模塊類似,只是最后連接1×1卷積,輸出尺寸為35×35×288的特征向量。最后將3個分支的輸出進行合并,輸出尺寸為8×8×1 280的特征向量。將輸出的特征向量依次放入第2個和第3個Inception模塊組,最后得到尺寸為8×8×2 048的特征向量。
將輸出的8×8×2 048特征向量進行8×8的全局平均池化操作,使特征向量尺寸由8×8×2 048變?yōu)?×1×2 048,然后連接一個Dropout層,將最后的輸出通道數(shù)改為2,使用尺寸為1×1卷積核進行濾波操作,最后通過Softmax層變?yōu)楦怕瘦敵鼋Y果。
實驗環(huán)境為Windows7 64 bit操作系統(tǒng),使用Tensorflow+slim+python3建立基于遷移學習的樹種分類識別模型,實驗結果中的損失曲線、準確率曲線均由 TensorBoard可視化得到。
首先分別將針葉林和闊葉林保存在不同目錄下以便網(wǎng)絡進行提取,根據(jù)目錄信息對所有數(shù)據(jù)進行打標簽處理,并將訓練數(shù)據(jù)隨機打亂從而獲得更好的訓練效果。將處理好的數(shù)據(jù)打入模型中進行訓練,進行卷積神經(jīng)網(wǎng)絡的訓練,訓練過程算法:
(1) 選定訓練樣本的集合為{(x(1),y(1)),(x(2),y(1)),…,(x(n),y(n))}。
(2) 初始化CNN需要學習的參數(shù)為W、b,設置初始學習率為0,001,將樣本讀入網(wǎng)絡中。
(3) 對于任意一個測試樣本(x,y),經(jīng)過式(1)、(2)進行正向傳播計算其損失函數(shù)。
(4) 采用batchsize為20的隨機梯度下降法最小化損失函數(shù)(3)。
(5) 根據(jù)輸出值和真實值之間的誤差,進行反向傳播算法調整參數(shù)。
(6) 若迭代未完成,返回(3)繼續(xù)調優(yōu),迭代完成,則結束。
在實驗過程中,訓練準確率較高,但測試準確率卻較低,產(chǎn)生了過擬合現(xiàn)象。為解決過擬合問題,本文在全連接層引入Dropout函數(shù)。Dropout函數(shù)在神經(jīng)網(wǎng)絡的訓練過程中,可以控制隱層神經(jīng)元的激活狀態(tài),從而減少隱藏層之間的相互作用,可以增強模型的泛化性能。
分別使用AID部分地表覆蓋數(shù)據(jù)集和東北林業(yè)大學實驗林場的針闊葉數(shù)據(jù)集對基于Inception-v3模型的遷移學習方法進行驗證。圖4展示了AID數(shù)據(jù)集中測試數(shù)據(jù)集的精度變化曲線和訓練數(shù)據(jù)集的損失函數(shù)變化曲線。由圖4可以看出,隨著迭代次數(shù)的增加,本文網(wǎng)絡模型在AID的部分數(shù)據(jù)集上的分類準確率逐步升高,損失逐步減小,迭代200步后準確率基本穩(wěn)定保持在95%以上。
將測試樣本放入訓練好的網(wǎng)絡中進行測試,得到地表覆蓋分類結果的混淆矩陣如表1所示。
計算結果表明,本文算法總體精度為98.8%,Kappa系數(shù)為0.987。其中,草地和山脈的分類精度達到了100%,類混淆主要發(fā)生在河流和湖泊等兩個類別之間,這是因為這兩種類別的種間差距較小。經(jīng)過對比,在AID部分數(shù)據(jù)集上本文實驗結果優(yōu)于文獻[24]中使用的基于CH手工特征進行編碼的場景分類方法。
(a) 準確率
(b) 損失函數(shù)
表1 本實驗算法對地表覆蓋類型分類的混淆矩陣
在本文實驗林區(qū)數(shù)據(jù)集上,模型的測試數(shù)據(jù)集的準確率變化曲線和訓練數(shù)據(jù)集的損失函數(shù)變化曲線如圖5所示。通過圖5可以看出,對比AID數(shù)據(jù)集,實驗林區(qū)數(shù)據(jù)集的損失下降的更加迅速,并且在400步左右損失就一直維持在0.1以下。為驗證本文方法的有效性,輸入樹種圖像進行測試得到東北林業(yè)大學實驗林區(qū)數(shù)據(jù)集樹種類型的混淆矩陣,通過計算得到Kappa系數(shù),如表2所示。
由表2可知,本實驗模型對東北林業(yè)大學實驗林區(qū)數(shù)據(jù)集中針闊葉的識別效果基本一致,兩樹種在1 300個樣本中都分別錯分了10個,總體分類精度為99.2%,Kappa系數(shù)為0.984。
可以看出,卷積神經(jīng)網(wǎng)絡模型在兩種數(shù)據(jù)的圖像分類中精度相當。由于不同數(shù)據(jù)源圖像特征的差異,AID數(shù)據(jù)集的準確率達到98.8%,而東北林業(yè)大學林區(qū)數(shù)據(jù)集的準確率穩(wěn)定在97.2%上,Kappa系數(shù)分別為0.987和0.984。在兩種數(shù)據(jù)的分類過程中,隨著迭代次數(shù)的增加,訓練樣本和測試樣本的損失值都在不斷減小,迭代200次后精度和損失都基本穩(wěn)定。由此說明使用遷移學習思想的卷積神經(jīng)網(wǎng)絡能夠準確地區(qū)分不同類型地表覆蓋及針葉林和闊葉林。證明本文算法模型在新的數(shù)據(jù)集上可以很快收斂的同時能夠保證較高的分類精度。
(a) 準確率
(b) 損失函數(shù)
表2 本實驗算法對樹種類型分類的混淆矩陣
本文使用卷積神經(jīng)網(wǎng)絡對遙感影像樹種類型進行識別和分類,運用遷移學習的思想,將在ImageNet上進行預訓練的Inception-v3模型使用AID數(shù)據(jù)集和東北林業(yè)大學實驗林場數(shù)據(jù)集重新訓練一個新的全連接層和Softmax層進行分類。對AID數(shù)據(jù)集中部分地表覆蓋類型的數(shù)據(jù)識別分類的總體精度為98.8%,Kappa系數(shù)為0.987,通過與其他分類方法的對比證明了模型提高了分類的準確性。然后使用模型進一步對東北林業(yè)大學實驗林場中的針闊葉樹種進行識別,最終得到的總體分類精度為99.2%,Kappa系數(shù)為0.984。證明了本實驗運用遷移學習的方法,可以充分利用大數(shù)據(jù)提取好的特征信息對模型進行重新訓練,使模型在只有限標注的樹種圖像樣本的情況下,能夠有效地對針闊葉樹種進行識別和分類。