秦億青 池明旻
(復(fù)旦大學(xué)上海市數(shù)據(jù)科學(xué)重點實驗室 上海 201203)
遙感具有許多應(yīng)用領(lǐng)域,包括資源勘測[1]、災(zāi)害檢測[2]和城市規(guī)劃[3]等。這些任務(wù)中往往需要應(yīng)用遙感分類圖,它是與遙感原圖相同大小的圖片,圖上每個像素標有一個語義類別。因此,如何對遙感圖像進行準確的像素級分類,從而獲得高質(zhì)量遙感分類圖,成為了遙感領(lǐng)域的關(guān)鍵問題。
傳統(tǒng)上,對遙感圖像像素級分類基于淺層機器學(xué)習(xí)方法,通過應(yīng)用支持向量機[4-5]、決策樹[6-7]等機器學(xué)習(xí)模型,可以對通道數(shù)較多的遙感圖像進行準確分類。在深度學(xué)習(xí)方法出現(xiàn)后,通過對像素使用自編碼器[8-9]或是卷積神經(jīng)網(wǎng)絡(luò)[10-11](Convolutional Neural Networks,CNN)提取特征,再使用淺層模型進行分類,對以RGB圖像為主的高分辨率遙感圖像的分類準確性也得到提升。
近年來,深度語義分割模型的出現(xiàn)為遙感圖像的像素級分類提供了一種新的解決方案。語義分割(Semantic Segmentation)是指對圖片中相同類別像素聚合的過程[12],它可以被用來解決像素級分類問題。深度語義分割模型,包括FCN[13]、U-Net[14]、SegNet[15]等,是一種端到端的像素級分類模型。在計算機視覺領(lǐng)域的研究表明,深度語義分割模型在像素級分類任務(wù)中表現(xiàn)優(yōu)于傳統(tǒng)的基于淺層機器學(xué)習(xí)的方法。然而,深度語義分割模型需要大量數(shù)據(jù)訓(xùn)練才能較好擬合,尤其是此類模型往往具有較深的網(wǎng)絡(luò)結(jié)構(gòu),使得訓(xùn)練時參數(shù)難以反向傳播至較淺的特征提取層[16],阻礙了模型的性能發(fā)揮。在常常缺乏像素級標記數(shù)據(jù)的遙感領(lǐng)域,該問題成為語義分割模型大規(guī)模應(yīng)用的障礙。
本文提出一種結(jié)合場景分類數(shù)據(jù)的高分遙感圖像語義分割方法,利用具有圖片級標記的遙感場景分類數(shù)據(jù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),并將訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)的輸入層與卷積層作為語義分割模型的一部分構(gòu)建像素級分類網(wǎng)絡(luò)。在語義分割模型的基礎(chǔ)上,通過更好地提取遙感圖像特征,從而達到提高像素級分類準確率的目標,同時不破壞語義分割模型端到端的特性。
為了提取遙感圖像的特征,本文采用卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過對卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)使用具有圖片級標記的遙感場景分類數(shù)據(jù)預(yù)訓(xùn)練,獲得能提取遙感圖像特征的卷積網(wǎng)絡(luò)結(jié)構(gòu)。
本文方法使用遙感場景分類數(shù)據(jù)對語義分割模型中用于提取特征的卷積網(wǎng)絡(luò)結(jié)構(gòu)進行預(yù)訓(xùn)練,使其提取的特征更符合遙感領(lǐng)域的圖像。
首先構(gòu)建適用于目標類別的卷積神經(jīng)網(wǎng)絡(luò)。利用計算機視覺領(lǐng)域已有的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(如基于ImageNet[17]預(yù)訓(xùn)練的VGGNet[18]),刪除其原有分類層,添加對應(yīng)目標任務(wù)類別的分類層。假設(shè)目標任務(wù)為對遙感圖像中每個像素分類至{C1,C2,…,Cn}中,則對應(yīng)此n個類別構(gòu)建n+1類Softmax分類器(第n+1個類別為未知,對應(yīng)實驗不需要的類別),由此獲得一個卷積網(wǎng)絡(luò)分類模型,其輸入為一幅圖像,輸出為一個類別。
包括VGGNet在內(nèi)的一些卷積神經(jīng)網(wǎng)絡(luò)在卷積層后連接有數(shù)層的全連接層,其作用是獲取更好的圖片級分類效果,但是在本文的語義分割模型構(gòu)建過程中,只采用卷積神經(jīng)網(wǎng)絡(luò)的卷積層用以提取特征,因此減少全連接層的層數(shù),使得圖片級訓(xùn)練數(shù)據(jù)的影響可以被迅速傳至前面的卷積層,提高卷積層提取遙感圖像特征的能力。
隨后,使用遙感場景分類任務(wù)數(shù)據(jù)訓(xùn)練該卷積網(wǎng)絡(luò)模型。在訓(xùn)練過程中,不固定網(wǎng)絡(luò)中任何一層的參數(shù),使得網(wǎng)絡(luò)參數(shù)可以從分類層反向傳播到用于提取特征的卷積層,其目的是使得網(wǎng)絡(luò)的卷積層能更好地提取遙感圖像的特征。
用于場景分類的數(shù)據(jù)集與語義分割目標數(shù)據(jù)集的任務(wù)并不相同,因此它們的類別分布也不相同,為了更趨近目標任務(wù),將場景分類數(shù)據(jù)集中的各類別映射至目標任務(wù)類別上,并在訓(xùn)練時根據(jù)目標數(shù)據(jù)集中訓(xùn)練集已有類別分布分配每輪訓(xùn)練所用數(shù)據(jù)比例。由于訓(xùn)練集是目標數(shù)據(jù)集的一部分,該方法本質(zhì)上是基于目標數(shù)據(jù)集上的后驗概率調(diào)整訓(xùn)練數(shù)據(jù)的分布概率。
假設(shè)目標任務(wù)為對遙感圖像中每個像素分類至{C1,C2,…,Cn},語義分割訓(xùn)練集中各個類別概率為{P1,P2,…,Pn},則將遙感場景分類數(shù)據(jù)集中的各個類別映射至{C1,C2,…,Cn},獲得n個類別的場景分類數(shù)據(jù)。隨后在每輪訓(xùn)練中,根據(jù)訓(xùn)練集上的類別概率分配各類別輸入到模型中的樣本數(shù):
N1:N2:…:Nn=P1:P2:…:Pn
(1)
式中:Nk(k=1,2,…,n)為第k個類別在某輪訓(xùn)練中被輸入到模型中的樣本數(shù)。實際每輪訓(xùn)練中,各類別樣本分布只需趨近于訓(xùn)練集上類別分布即可。如此可以使得卷積神經(jīng)網(wǎng)絡(luò)所提取的特征更符合目標遙感任務(wù)中數(shù)據(jù)的分布。
語義分割模型中使用卷積結(jié)構(gòu)提取圖像深層特征,因此可以在預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上構(gòu)建語義分割模型。預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)提取的深層特征越貼近分類任務(wù),語義分割模型的效果就會越好。
在使用遙感場景分類數(shù)據(jù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上,刪去用于圖像級分類的分類層與全連接層,只保留輸入層與卷積層用于特征提取,隨后根據(jù)語義分割模型的結(jié)構(gòu)利用上采樣將特征還原回原圖大小從而獲得用于像素級分類的模型。
以卷積神經(jīng)網(wǎng)絡(luò)與語義分割模型中典型的結(jié)構(gòu)VGG19與FCN為例,在VGG19結(jié)構(gòu)的基礎(chǔ)上,刪去最后分類層與之前的3層全連接層,只保留輸入層與前16層卷積層用于特征提取。在原有卷積層后,添加3層卷積層替代原有全連接層,其目的是提取更符合目標遙感圖像的深層特征。在卷積層之后,添加3個反卷積層,將特征還原至原圖大小,最后添加Softmax分類層達到像素級分類的需求。
圖1展示了本文所構(gòu)建的共享卷積層的場景分類網(wǎng)絡(luò)與語義分割網(wǎng)絡(luò),通過圖片級標記的數(shù)據(jù)訓(xùn)練場景分類網(wǎng)絡(luò),其目的是獲得更能提取遙感圖像特征的卷積層,并以此搭建語義分割網(wǎng)絡(luò)。
圖1 共享卷積層的遙感圖像場景分類網(wǎng)絡(luò)與遙感圖像語義分割網(wǎng)絡(luò)
為了驗證本文提出的利用場景分類數(shù)據(jù)構(gòu)建用于特征提取的網(wǎng)絡(luò)并在此基礎(chǔ)上構(gòu)建語義分割模型的有效性,本文在Potsdam數(shù)據(jù)集上進行實驗,比較本文方法與原有方法的性能。
實驗?zāi)繕藶樵赑otsdam數(shù)據(jù)集[19]上進行像素級分類的任務(wù),目標類別為三類,即{建筑,道路,植被}。Potsdam數(shù)據(jù)集為高分辨率數(shù)據(jù)集,空間分辨率0.05米,包含4個通道,本文選取其中三個通道(紅、綠、藍通道)進行實驗。
為了提取遙感圖像特征,實驗使用場景分類數(shù)據(jù)集UC Merced Landuse[20]來訓(xùn)練CNN并構(gòu)建語義分割網(wǎng)絡(luò)中用于提取圖像特征的卷積層。該數(shù)據(jù)集空間分辨率0.3米,包含3個通道(紅、綠、藍通道),具有圖像級標記,有21個地面類別。根據(jù)前文,將這21個類別映射至3個目標類別中,部分無法映射的類別被舍棄,不輸入到模型中進行訓(xùn)練。實驗構(gòu)建的映射關(guān)系如表1所示,映射的原則是根據(jù)占圖片區(qū)域較大的類別進行映射,而非簡單根據(jù)原始類別名稱映射,因此像“低密度住宅”這樣的原始類別被映射至“植被”目標類別中。
表1 實驗構(gòu)建的類別映射關(guān)系
實驗在VGG19結(jié)構(gòu)的基礎(chǔ)上構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),先使用UC Merced Landuse數(shù)據(jù)集訓(xùn)練,隨后刪除分類層和全連接層,并構(gòu)建各語義分割模型。本文根據(jù)FCN和SegNet結(jié)構(gòu)構(gòu)建了語義分割模型,并分析利用場景分類數(shù)據(jù)提取特征的方法對這些模型的有效性。實驗使用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如表2所示,為了能在訓(xùn)練卷積網(wǎng)絡(luò)時將影響盡快傳至卷積層,減少了全連接層的數(shù)量。
實驗采用總體準確率(Overall Accuracy)作為評價指標。不同方法在Potsdam數(shù)據(jù)集上準確率如表3所示??梢钥闯?,對于典型的語義分割模型FCN及SegNet,通過本文方法,先利用場景分類數(shù)據(jù)訓(xùn)練可以提取特征的CNN,再將其作為語義分割模型的一部分構(gòu)建網(wǎng)絡(luò),其分類準確率比直接使用像素級分類數(shù)據(jù)訓(xùn)練的傳統(tǒng)方法高。
分析表3各方法的第2-3行可以發(fā)現(xiàn),在利用場景分類數(shù)據(jù)訓(xùn)練CNN的情況下,根據(jù)像素級標記的訓(xùn)練集分布來調(diào)整訓(xùn)練CNN的場景分類數(shù)據(jù)各類別比重,可以進一步提升模型的像素級分類效果。這是因為本文使用的場景分類數(shù)據(jù)集(UC Merced Landuse)與目標數(shù)據(jù)集(Potsdam)不是同一個數(shù)據(jù)集,它們具有不同的類別分布,而通過引入訓(xùn)練集上數(shù)據(jù)的分布情況,使得網(wǎng)絡(luò)提取的特征更符合目標數(shù)據(jù)集的實際特征,從而提高了最終的像素級分類準確率。
圖2展示了采用場景分類數(shù)據(jù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)不同輪數(shù)后構(gòu)建的FCN模型在語義分割訓(xùn)練開始階段模型損失的變化情況。為了便于比較,學(xué)習(xí)率被固定為10-4。明顯地,采用場景分類數(shù)據(jù)先對卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練后構(gòu)建的FCN模型可以更快擬合,其中表現(xiàn)最好的情況為在構(gòu)建FCN前使用場景分類數(shù)據(jù)對卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練100輪。比較模型在語義分割模型訓(xùn)練開始前(訓(xùn)練輪數(shù)為0輪時)的模型表現(xiàn)可以發(fā)現(xiàn),對卷積神經(jīng)網(wǎng)絡(luò)預(yù)訓(xùn)練后構(gòu)建的FCN模型在初始情況的模型損失大幅降低,在最好的情況下(預(yù)訓(xùn)練100輪),模型的損失相比不預(yù)訓(xùn)練的情況從122.18下降到了43.51。這證明采用遙感場景分類數(shù)據(jù)對卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練可以幫助語義分割模型更快地進行擬合。
圖2 采用場景分類數(shù)據(jù)對網(wǎng)絡(luò)預(yù)訓(xùn)練不同輪數(shù)后FCN模型在訓(xùn)練開始階段模型損失的變化情況
本文提出了一種結(jié)合場景分類數(shù)據(jù)的高分遙感圖像語義分割方法。利用遙感場景分類數(shù)據(jù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),并將其用于構(gòu)建語義分割模型中的特征提取網(wǎng)絡(luò),提高語義分割模型的特征提取能力,并最終獲得更好的像素級分類性能。在訓(xùn)練用于特征提取的卷積網(wǎng)絡(luò)過程中,基于后驗概率對訓(xùn)練樣本的類別進行了映射與平衡,對模型起到了優(yōu)化的作用。實驗證明:采用本文方法后遙感語義分割模型的分類準確率提高,模型擬合加快。
本文采用Potsdam數(shù)據(jù)集及UC Merced Landuse數(shù)據(jù)集作為實驗數(shù)據(jù)集,其中,Potsdam數(shù)據(jù)集使用了紅、綠、藍三個通道,這是為了與UC Merced Landuse數(shù)據(jù)集統(tǒng)一,滿足模型的輸入需求。在實際情況中,存在著遙感通道不一致的問題,如何解決不同數(shù)據(jù)集間的差異問題,進而采用更多的場景分類數(shù)據(jù)集幫助進行遙感語義分割模型的訓(xùn)練,是今后值得研究的問題。