秦億青 池明旻
(復旦大學上海市數據科學重點實驗室 上海 201203)
遙感具有許多應用領域,包括資源勘測[1]、災害檢測[2]和城市規(guī)劃[3]等。這些任務中往往需要應用遙感分類圖,它是與遙感原圖相同大小的圖片,圖上每個像素標有一個語義類別。因此,如何對遙感圖像進行準確的像素級分類,從而獲得高質量遙感分類圖,成為了遙感領域的關鍵問題。
傳統(tǒng)上,對遙感圖像像素級分類基于淺層機器學習方法,通過應用支持向量機[4-5]、決策樹[6-7]等機器學習模型,可以對通道數較多的遙感圖像進行準確分類。在深度學習方法出現(xiàn)后,通過對像素使用自編碼器[8-9]或是卷積神經網絡[10-11](Convolutional Neural Networks,CNN)提取特征,再使用淺層模型進行分類,對以RGB圖像為主的高分辨率遙感圖像的分類準確性也得到提升。
近年來,深度語義分割模型的出現(xiàn)為遙感圖像的像素級分類提供了一種新的解決方案。語義分割(Semantic Segmentation)是指對圖片中相同類別像素聚合的過程[12],它可以被用來解決像素級分類問題。深度語義分割模型,包括FCN[13]、U-Net[14]、SegNet[15]等,是一種端到端的像素級分類模型。在計算機視覺領域的研究表明,深度語義分割模型在像素級分類任務中表現(xiàn)優(yōu)于傳統(tǒng)的基于淺層機器學習的方法。然而,深度語義分割模型需要大量數據訓練才能較好擬合,尤其是此類模型往往具有較深的網絡結構,使得訓練時參數難以反向傳播至較淺的特征提取層[16],阻礙了模型的性能發(fā)揮。在常常缺乏像素級標記數據的遙感領域,該問題成為語義分割模型大規(guī)模應用的障礙。
本文提出一種結合場景分類數據的高分遙感圖像語義分割方法,利用具有圖片級標記的遙感場景分類數據訓練卷積神經網絡,并將訓練好的卷積神經網絡的輸入層與卷積層作為語義分割模型的一部分構建像素級分類網絡。在語義分割模型的基礎上,通過更好地提取遙感圖像特征,從而達到提高像素級分類準確率的目標,同時不破壞語義分割模型端到端的特性。
為了提取遙感圖像的特征,本文采用卷積神經網絡結構,通過對卷積神經網絡結構使用具有圖片級標記的遙感場景分類數據預訓練,獲得能提取遙感圖像特征的卷積網絡結構。
本文方法使用遙感場景分類數據對語義分割模型中用于提取特征的卷積網絡結構進行預訓練,使其提取的特征更符合遙感領域的圖像。
首先構建適用于目標類別的卷積神經網絡。利用計算機視覺領域已有的卷積神經網絡結構(如基于ImageNet[17]預訓練的VGGNet[18]),刪除其原有分類層,添加對應目標任務類別的分類層。假設目標任務為對遙感圖像中每個像素分類至{C1,C2,…,Cn}中,則對應此n個類別構建n+1類Softmax分類器(第n+1個類別為未知,對應實驗不需要的類別),由此獲得一個卷積網絡分類模型,其輸入為一幅圖像,輸出為一個類別。
包括VGGNet在內的一些卷積神經網絡在卷積層后連接有數層的全連接層,其作用是獲取更好的圖片級分類效果,但是在本文的語義分割模型構建過程中,只采用卷積神經網絡的卷積層用以提取特征,因此減少全連接層的層數,使得圖片級訓練數據的影響可以被迅速傳至前面的卷積層,提高卷積層提取遙感圖像特征的能力。
隨后,使用遙感場景分類任務數據訓練該卷積網絡模型。在訓練過程中,不固定網絡中任何一層的參數,使得網絡參數可以從分類層反向傳播到用于提取特征的卷積層,其目的是使得網絡的卷積層能更好地提取遙感圖像的特征。
用于場景分類的數據集與語義分割目標數據集的任務并不相同,因此它們的類別分布也不相同,為了更趨近目標任務,將場景分類數據集中的各類別映射至目標任務類別上,并在訓練時根據目標數據集中訓練集已有類別分布分配每輪訓練所用數據比例。由于訓練集是目標數據集的一部分,該方法本質上是基于目標數據集上的后驗概率調整訓練數據的分布概率。
假設目標任務為對遙感圖像中每個像素分類至{C1,C2,…,Cn},語義分割訓練集中各個類別概率為{P1,P2,…,Pn},則將遙感場景分類數據集中的各個類別映射至{C1,C2,…,Cn},獲得n個類別的場景分類數據。隨后在每輪訓練中,根據訓練集上的類別概率分配各類別輸入到模型中的樣本數:
N1:N2:…:Nn=P1:P2:…:Pn
(1)
式中:Nk(k=1,2,…,n)為第k個類別在某輪訓練中被輸入到模型中的樣本數。實際每輪訓練中,各類別樣本分布只需趨近于訓練集上類別分布即可。如此可以使得卷積神經網絡所提取的特征更符合目標遙感任務中數據的分布。
語義分割模型中使用卷積結構提取圖像深層特征,因此可以在預訓練卷積神經網絡的基礎上構建語義分割模型。預訓練卷積神經網絡提取的深層特征越貼近分類任務,語義分割模型的效果就會越好。
在使用遙感場景分類數據訓練的卷積神經網絡基礎上,刪去用于圖像級分類的分類層與全連接層,只保留輸入層與卷積層用于特征提取,隨后根據語義分割模型的結構利用上采樣將特征還原回原圖大小從而獲得用于像素級分類的模型。
以卷積神經網絡與語義分割模型中典型的結構VGG19與FCN為例,在VGG19結構的基礎上,刪去最后分類層與之前的3層全連接層,只保留輸入層與前16層卷積層用于特征提取。在原有卷積層后,添加3層卷積層替代原有全連接層,其目的是提取更符合目標遙感圖像的深層特征。在卷積層之后,添加3個反卷積層,將特征還原至原圖大小,最后添加Softmax分類層達到像素級分類的需求。
圖1展示了本文所構建的共享卷積層的場景分類網絡與語義分割網絡,通過圖片級標記的數據訓練場景分類網絡,其目的是獲得更能提取遙感圖像特征的卷積層,并以此搭建語義分割網絡。

圖1 共享卷積層的遙感圖像場景分類網絡與遙感圖像語義分割網絡
為了驗證本文提出的利用場景分類數據構建用于特征提取的網絡并在此基礎上構建語義分割模型的有效性,本文在Potsdam數據集上進行實驗,比較本文方法與原有方法的性能。
實驗目標為在Potsdam數據集[19]上進行像素級分類的任務,目標類別為三類,即{建筑,道路,植被}。Potsdam數據集為高分辨率數據集,空間分辨率0.05米,包含4個通道,本文選取其中三個通道(紅、綠、藍通道)進行實驗。
為了提取遙感圖像特征,實驗使用場景分類數據集UC Merced Landuse[20]來訓練CNN并構建語義分割網絡中用于提取圖像特征的卷積層。該數據集空間分辨率0.3米,包含3個通道(紅、綠、藍通道),具有圖像級標記,有21個地面類別。根據前文,將這21個類別映射至3個目標類別中,部分無法映射的類別被舍棄,不輸入到模型中進行訓練。實驗構建的映射關系如表1所示,映射的原則是根據占圖片區(qū)域較大的類別進行映射,而非簡單根據原始類別名稱映射,因此像“低密度住宅”這樣的原始類別被映射至“植被”目標類別中。

表1 實驗構建的類別映射關系
實驗在VGG19結構的基礎上構建卷積神經網絡結構,先使用UC Merced Landuse數據集訓練,隨后刪除分類層和全連接層,并構建各語義分割模型。本文根據FCN和SegNet結構構建了語義分割模型,并分析利用場景分類數據提取特征的方法對這些模型的有效性。實驗使用的卷積神經網絡結構如表2所示,為了能在訓練卷積網絡時將影響盡快傳至卷積層,減少了全連接層的數量。
實驗采用總體準確率(Overall Accuracy)作為評價指標。不同方法在Potsdam數據集上準確率如表3所示。可以看出,對于典型的語義分割模型FCN及SegNet,通過本文方法,先利用場景分類數據訓練可以提取特征的CNN,再將其作為語義分割模型的一部分構建網絡,其分類準確率比直接使用像素級分類數據訓練的傳統(tǒng)方法高。
分析表3各方法的第2-3行可以發(fā)現(xiàn),在利用場景分類數據訓練CNN的情況下,根據像素級標記的訓練集分布來調整訓練CNN的場景分類數據各類別比重,可以進一步提升模型的像素級分類效果。這是因為本文使用的場景分類數據集(UC Merced Landuse)與目標數據集(Potsdam)不是同一個數據集,它們具有不同的類別分布,而通過引入訓練集上數據的分布情況,使得網絡提取的特征更符合目標數據集的實際特征,從而提高了最終的像素級分類準確率。
圖2展示了采用場景分類數據訓練卷積神經網絡不同輪數后構建的FCN模型在語義分割訓練開始階段模型損失的變化情況。為了便于比較,學習率被固定為10-4。明顯地,采用場景分類數據先對卷積神經網絡訓練后構建的FCN模型可以更快擬合,其中表現(xiàn)最好的情況為在構建FCN前使用場景分類數據對卷積神經網絡訓練100輪。比較模型在語義分割模型訓練開始前(訓練輪數為0輪時)的模型表現(xiàn)可以發(fā)現(xiàn),對卷積神經網絡預訓練后構建的FCN模型在初始情況的模型損失大幅降低,在最好的情況下(預訓練100輪),模型的損失相比不預訓練的情況從122.18下降到了43.51。這證明采用遙感場景分類數據對卷積神經網絡進行訓練可以幫助語義分割模型更快地進行擬合。

圖2 采用場景分類數據對網絡預訓練不同輪數后FCN模型在訓練開始階段模型損失的變化情況
本文提出了一種結合場景分類數據的高分遙感圖像語義分割方法。利用遙感場景分類數據訓練卷積神經網絡,并將其用于構建語義分割模型中的特征提取網絡,提高語義分割模型的特征提取能力,并最終獲得更好的像素級分類性能。在訓練用于特征提取的卷積網絡過程中,基于后驗概率對訓練樣本的類別進行了映射與平衡,對模型起到了優(yōu)化的作用。實驗證明:采用本文方法后遙感語義分割模型的分類準確率提高,模型擬合加快。
本文采用Potsdam數據集及UC Merced Landuse數據集作為實驗數據集,其中,Potsdam數據集使用了紅、綠、藍三個通道,這是為了與UC Merced Landuse數據集統(tǒng)一,滿足模型的輸入需求。在實際情況中,存在著遙感通道不一致的問題,如何解決不同數據集間的差異問題,進而采用更多的場景分類數據集幫助進行遙感語義分割模型的訓練,是今后值得研究的問題。