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