左宗成,張 文,張東映
1. 武漢大學遙感信息工程學院,湖北 武漢 430079; 2. 歐特克(中國)軟件研發有限公司,上海 200122; 3. 鄭州大學水利與環境學院,河南 鄭州 450002
高分辨率遙感影像已經在制圖、城市規劃、災害監測、房地產管理、計量經濟學、作物分類和氣候研究等多領域得到應用[1]。遙感影像語義分割作為高分辨率遙感影像信息提取與目標識別的前提和基礎,是實現從數據到信息的對象化提取的過渡環節和關鍵步驟,具有十分重要的意義[2]。圖像語義分割不同于圖像分類或物體檢測等任務,圖像語義分割是一個空間密集型的預測任務,換言之,這需要預測一幅圖像中所有像素點的類別[3]。語義分割旨在分類每一個像素到指定的類別,是一種對于理解和推理對象以及場景中物體之間關系的重要任務。作為通向高級任務的橋梁,在計算機視覺和遙感領域中,語義分割被用在了多種應用中,例如自動駕駛、姿態估計、遙感影像解譯及3D重建等[4]。傳統的特征提取難以應付空間變換的要求,并且手工特征設計難度大。自從FCNs[3]首次被用于圖像的語義分割之后,新的方法不斷被創造。近年來,由于深度卷積神經網絡的廣泛使用使得密集型預測的語義分割取得了長足的發展。最近的工作都表明,在許多圖像處理任務中,深度學習模型往往顯著優于傳統的方法[5]。
標準的卷積操作通常是在特征圖譜固定的位置上進行采樣,對于復雜目標對象的檢測來說不是很合理,這是因為不同位置對應的目標大小是不同的。如果能夠使得感受野[6]在不同位置的大小進行自適應調整,那么對于語義分割任務必然有很大的幫助。
其次,對于深度卷積神經網絡來說,從分類器獲取以對象為中心的決策需要空間不變性,其內在特性限制了深度卷積神經網絡(DCNNs)的空間精度模型,并且DCNNs的最后一層通常沒有充分地對局部對象進行分割,所以本文通過采用全連接的條件隨機場來提升本文方法捕獲細節的能力[7]。條件隨機場(CRF)已廣泛應用于語義分割,以便將由多方向分類器計算的類別得分與由像素和邊緣的局部交互所捕獲的低級信息進行綜合[8]。因此本文提出一種融合可變形卷積與條件隨機場的方法來解決標準卷積操作對空間自適應能力的欠缺以及采用條件隨機場的方法來提高局部分割精度。
本文方法主要分為3個步驟:①對常規的標準卷積添加了一項二維偏移量到采樣網格中,得到一種可變形卷積網絡[9],該項偏移量的添加使得卷積網絡可以自由形成變形,這些偏移量是通過卷積層抽取的特征圖譜進行學習而來;②訓練的網絡采用VGGNet網絡的參數進行初始化,反卷積網絡作為分割結果層進行預測每個像素的分類結果;③對輸出的粗糙預測分割結果進行CRF操作,得到精細化的分割圖。
1.1.1 可變形卷積
傳統的二維圖像上的卷積操作包含兩個步驟:①在輸入特征圖譜x上采用常規網格R進行采樣;②由w加權的采樣值的求和。網格R定義了感受野的大小和步幅。例如:R={(-1,-1),(-1,0),(-1,1),(0,1),(0,0),(0,-1),(1,1),(1,0),(1,-1)}定義了一個步幅為1的3×3卷積核。對于輸出特征圖譜y上的每個位置p0可得到
(1)
可變形卷積使用偏移{Δpn|n=1,…,N}擴充了常規網格R,這里的N=|R|。上述方程變為
(2)
現在,采樣在不規則和偏移位置pn+Δpn之上。由于偏移Δpn通常是小數形式的,式(2)通過雙線性插值變換之后變為

(3)
式中,p代表一個任意位置(p=p0+pn+Δpn);q枚舉特征圖譜x中的所有的積分空間位置;G(.,.)代表雙線性插值核。這里的G是二維的,它可以被分為兩個一維的內核
G(q,p)=g(qx,px)g(qy,py)
(4)
式中,g(a,b)=max(0,1-|a-b|)。式(4)是快速計算,因為G(q,p)僅對于部分q的取值是非零的。
如式(2)所示,可變形卷積是通過在相同的輸入特征圖譜上應用卷積層來獲得偏移??勺冃尉矸e核與當前卷積層也是具有相同的空間分辨率。輸出偏移量與輸入特征圖譜具有相同的空間分辨率。當通道維數為2N時,需要編碼N個二維偏移向量。在神經網絡訓練期間,可以學習用于產生輸出特征和產生偏移量的卷積內核。在可變形卷積模塊上執行的梯度可以通過式(3)和式(4)中的雙線性運算來反向傳播。
文獻[10]發現,感受野中并不是所有的像素都有助于輸出單元響應。由于靠近中心的像素具有更大的影響,所以有效感受野只占理論感受野中的小部分,并服從高斯分布。雖然理論感受野尺寸隨著卷積層的數量線性增加,但讓人感到意外的是,有效感受野尺寸是隨著卷積層數量的平方根線性增加,因此以比預期慢得多的速率進行收斂[10]。這一發現表明,即便是CNNs中的頂層單元也可能沒有足夠大的感受野。這部分也解釋了為什么空洞卷積[11]被廣泛應用于視覺任務。它揭示了可自適應性感受野學習的必要性??勺冃尉矸e能夠自適應地學習感受野,如圖1所示。
在標準卷積中的空間采樣位置增加了額外的偏移量就可以得到可變形卷積。這些偏移量是從目標任務驅動的數據中學習的。當可變形模塊堆疊成多層時,復合變形的影響是巨大的。相較于標準卷積而言,對于復雜目標可變形卷積有著強大的自適應提取能力。如圖1所示,標準卷積濾波器中的感受野和采樣位置在上層特征圖譜上是固定的(圖1(a));當使用可變形卷積時,它們會根據物體的尺度和形狀進行自適應調整(圖1(b))。特別是對于非剛性物體增強了目標定位能力。

圖1 標準卷積與可變形卷積Fig.1 Standard convolution and deformable convolution
1.1.2 可變形卷積的網絡結構
可變形卷積與標準卷積有著相同的輸入和輸出。因此,在神經網絡結構中可變形卷積可以很容易替換標準卷積操作。在訓練期間,可以學習用于產生輸出特征和產生偏移量的卷積內核。在可變形卷積模塊上執行的梯度可以通過式(3)中的雙線性運算來反向傳播。他們通過反向傳播訓練,通過方程式中的雙線性插值運算,所得到的CNNs稱為可變形網絡(deformable ConvNets)??勺冃尉W絡自動學習預測影像中物體對象的位置,它是基于增強空間采樣位置的能力為考量并使用非監督方法從目標任務中學習偏移量。
為了將可變形ConvNets與現有的CNNs架構相結合,本文提出由3個階段組成的流程來實現可變形卷積網絡。首先,深度全卷積網絡(DFCNs)在整個輸入圖像上生成特征圖譜;其次,從特征圖譜中生成分割結果;最后,對于粗糙的結果進行反卷積得到精細化的分割圖。以下詳細說明這3個步驟。
(1) 可變形卷積的特征提取。本文采用廣泛使用且具有良好性能的特征提取架構VGGNet[12]作為特征提取層。網絡的初始化參數在ImageNet[13]分類數據集上進行了預訓練。這個VGGNet模型是由卷積層、平均池化層和一個用于ImageNet分類的1000路全連接層組成。本文刪除了平均池化層和全連接層。像通常的做法[14]一樣,本文將最后卷積塊中的有效步幅從32像素減少到16像素,以增加特征映射分辨率。本文中可變形卷積層被施加在最后3層作為特征提取層。
(2) 語義分割網絡。當前有許多可用的語義分割的網絡架構。本文選擇SegNet架構[15](圖2),因為它提供了精度與計算成本之間的良好平衡。以此結構為基礎,嵌入可變形卷積結構。SegNet的對稱架構使得它對池化層及反卷積的使用非常有效,這對于遙感數據來說至關重要。除了SegNet,還對DeepLab[16]進行了初步試驗,結果顯示并沒有顯著改善甚至沒有改善。因此,沒有必要切換到更昂貴的計算架構。請注意,本文方法可以輕松地適應其他架構,而不是限定于SegNet的架構。SegNet具有VGG-16的卷積層的編碼器與解碼器架構[17-18]。編碼器由一系列卷積層組成,每個卷積層后面緊跟著的是批量歸一化[19]和整流線性單元。卷積塊之后是池化層,本文采用步幅為2的最大池化層操作。沒有試驗其他的激活函數,如PReLU[20]或ELU[21],也沒有進一步改變SegNet架構。這樣做的目的是為了在后續試驗中對比可變形卷積的性能。
(3) 反卷積網絡。解碼器的結構與編碼器是對稱的,解碼器對于輸入結果進行上采樣,本文使用文獻[24]中的策略隨機初始化解碼器中網絡的權重。在一般的CNNs結構中,如AlexNet、VGGNet均使用了池化操作來縮小輸出圖片的尺寸,例如VGGNet,5次池化操作后輸入圖像的尺寸被縮小了32倍。本文目的是得到一個與原圖像尺寸相同的分割圖,因此需要對最后一層特征提取層進行上采樣。卷積網絡輸出的特征圖譜是縮小的尺寸,因為最終預測的分割圖是基于像素的,所以需要對卷積網絡的輸出進行反卷積操作。反卷積就是卷積計算的逆過程,可以從卷積過程中來推導反卷積的過程
Wn+1=(Wn+2p-k)/s+1
(5)
Hn+1=(Hn+2p-k)/s+1
(6)
式中,W表示寬度;p表示填充像素大小;k表示卷積核尺寸;s表示卷積的步幅??梢院苋菀淄茖У椒淳矸e的公式
Wn=s+k-2p(Wn+1-1)
(7)
Hn=s+k-2pHn+1
(8)
本文使用卷積特征圖譜的后3層作為反卷積的輸入特征。

(9)
式(9)即為訓練網絡的損失函數。

圖2 帶有編碼器和解碼器的SegNet架構Fig.2 SegNet architecture with an encoder and a decoder
DCNNs得分圖可以可靠地預測圖像中已知的對象和粗略位置,但不太適合用于指向其精確的輪廓。卷積網絡的分類準確度和定位精度之間有一個合適的權衡:具有多個最大池化層的深層模型在分類任務中被證明是成功的,然而過多的池化層所帶來的對空間不變性的提升與有效感受野增大的同時也使得從網絡輸出層根據得分推斷位置變得更具挑戰性。
解決這個問題目前有兩種方法:第1種方法是利用卷積網絡中多尺度的信息來更好地估計對象邊界[3,22];第2種方法是采用超像素表示,基本上將定位任務委托給低級分割方法,這種解決思路由文獻[23]提出。
條件隨機場已被廣泛應用于平滑噪聲分割圖[24-25]。通常,這些模型包含耦合相鄰節點的能量項,有利于對空間鄰近像素的類別分配[26]。本質上,這些短距離CRF的主要功能是清理基于局部手工設計的弱分類器的虛假預測。嚴格來說,這種模式適合于有效的近似概率推理[27]。本文通過融合DCNNs的識別能力和全連接的條件隨機場(CRF)的細粒度定位精度來尋求新的替代方向,通過試驗表明它在解決逐像素定位與分類方面取得了良好的結果,產生了準確的語義分割結果以及恢復對象邊界的細節能力。
圖3所示為模型的分割流程。通過可變形卷積采樣POI區域,然后得到特征圖譜,使用特征圖譜來生成粗糙的縮小分割圖,再通過反卷積插值得到同尺寸的預測分割圖,最后將此粗糙的分割圖使用CRF進行精細化分割,得到精細化的分割圖。

圖3 語義分割流程Fig.3 The flowchart of the proposed approach
本文使用ISPRS Vaihingen 2D語義標簽遙感數據集[28]來評估本文提出的方法。這是一個開放的基準數據集。數據集由33幅大小不同的圖像組成,每幅圖像為300萬至1000萬像素,圖像是在德國Vaihingen地區拍攝的高分辨率正射影像,影像的平均尺寸約2493×2063像素,分辨率為9 cm。除了正射影像之外,數據集中還包含具有相同空間分辨率的數字表面模型(DSM)圖像。此外,文獻[29]提供了歸一化的DSM,以限制不同地面高度的影響。33幅圖像中的16幅圖像已被正確標注,其中所有像素都被標記,總共分為6個類別,即道路、建筑物、植被、樹木、車輛及雜類地物(例如集裝箱、網球場、游泳池等)。如以前在其他方法中所做的那樣,試驗中不包括雜類,因為雜類的像素面積僅占總圖像像素的0.88%。
ISPRS只提供16幅標注的圖像進行訓練,而其余17幅圖像未標注用于評估提交的方法。為了評估本文方法,有標簽分類的數據集被分為訓練集和驗證集。按照文獻[30]的例子,訓練集包含11幅圖像(圖幅區域為1、3、5、7、13、17、21、23、26、32、37);驗證集包含5幅圖像(圖幅區域為11、15、28、30、34)。
高分辨率遙感圖像通常尺寸較大,無法整幅圖像通過卷積進行處理。例如,來自Vaihingen數據集的ISPRS瓦片的平均尺寸為2493×2063像素,而大多數卷積操作的分辨率為256×256。鑒于目前的GPU內存限制,本文使用滑動窗口將原始的遙感影像分割成較小的圖像塊。如果卷積步幅小于圖像塊尺寸,在連續圖像塊重疊的情況下,對多個預測進行平均,以獲得重疊像素的最終分類。這可以平滑每個圖像塊邊界的預測,并消除可能出現的不連續性。
本文的目標是將當前計算機視覺領域中的典型的人工神經網絡結構應用到地球觀測數據中,因此,使用最初為RGB數據設計的人工神經網絡,處理后的圖像必須遵守這種3通道格式。ISPRS數據集包含Vaihingen的IRRG圖像,因此,3個通道(近紅外、紅色和綠色)將被處理為RGB圖像。該數據集包含從空載激光傳感器獲取的數字表面模型(DSM)的數據。本文還將使用文獻[30]中的歸一化數字表面模型(NDSM),然后從近紅外和紅外通道計算歸一化差異植被指數(NDVI),最終使用DSM,NDSM和NDVI信息為每個IRRG圖像構建一個相對應的合成圖像。
本試驗中深度學習網絡的訓練設備為4核心8線程Intel I7-7700K CPU;32 GB內存;NVIDIA GTX 1080顯卡,8 G顯存。軟件環境為Ubuntu16.04.01操作系統;開發平臺是Anaconda 4.3.1;內置的Python版本為3.6.1;深度學習軟件框架是TensorFlow1.2。本次試驗訓練迭代次數為5e5,總訓練時間為32 h 30 min。
本文使用隨機梯度下降方法訓練網絡。學習率采用固定大小,本文使用的學習率為5e-3,學習率過大容易無法收斂,太小訓練時間過長。批處理數量(batch)受到顯存大小的限制,所以本文設置batch=10。本文網絡特征提取層的權重使用了VGGNet[20]上進行預訓練的權重,遷移預訓練的權重可以增強網絡在特征提取的性能。
本文使用ISPRS[28]定義的評估方法來評估結果,用F1分數來評估試驗的結果
(10)

2.4.1 分割結果的比較
本文模型在ISPRSVaihingen數據集上獲得了良好的分割結果,分割結果參見表1。表1比較了采用CNNs、FCNs及SegNet作為自編碼器的網絡。圖4展示了采用本文方法與采用其他當前主流人工神經網絡結構的分割結果,分割圖中白色代表道路,藍色代表建筑物,青色代表植被,綠色代表樹木,黃色代表車輛。其中圖4(c)為文獻[31]中提出的傳統CNNs方法的影像分割結果;圖4(d)為文獻[32]中提出的FCNs方法的影像分割結果;圖4(e)為本文提出的方法的影像分割結果。

表1 ISPRS Vaihingen數據集語義分割結果
從試驗結果中可以看出,CNNs算法難以很好地分割不同地物類別的邊界,且整體分割精度較低,僅為85.9%。由圖4(c)可以看出植被、建筑物與道路之間的分割邊界很模糊并且不規整;其次是分割的地物中出現了很多類別錯誤,例如在植被區域出現了圖斑狀的樹木類別,導致植被的分割精度只有77.8%。究其原因,文獻[31]中已經提及這是由于CNNs網絡對于空間變換沒有很強的自適應能力。FCNs方法在邊界分割能力上有一定的提升。從圖4(d)可以看出,相較于CNNs方法,FCNs方法的分割邊界更加清晰并且更加規整,但是依然存在較多的分割錯誤,例如房屋的邊界不連續并且在車輛類別上的分割精度只有57.3%。從文獻[32]中得知,FCNs某種程度上解決了CNNs的一些缺點。該方法的內在本質是利用現有的CNNs作為強大的視覺模型,使得網絡能夠學習特征的層次結構。盡管FCNs模型具有強大的性能和靈活性,但它仍然具有局限性,其內在的空間不變性并沒有考慮有用的全局上下文信息,導致FCNs對細節不敏感。究其原因主要有兩點:一是固定尺寸的感受野,對于大尺度目標而言,只能獲得該目標的局部信息,導致目標的某些部分將被錯誤分類,對于小尺度目標而言,很容易被忽略或當成背景處理;二是目標的細節結構容易被丟失,導致邊緣信息不充分,這是由于FCNs得到的特征圖譜過于粗糙,這樣用于上采樣操作的信息過于簡單。
本文提出的可變形卷積在空間變換上具有很強的自適應性。因為在不同區域對應的目標尺寸是不相同的,如果感受野在不同區域的尺寸能夠進行自適應調整,這對于語義分割必然有很大幫助。從圖4(e)中可以看出,分割的邊界相較于CNNs與FCNs更加清晰規整,整體分割精度達到了90.7%。可以看到本文方法相比以CNNs和FCNs作為自編碼器網絡的方法在各個類別的分割精度上均有提升,尤其在車輛這個類別上提升最多達到了85.7%的分割精度,說明本文方法對于小目標物體的分割有著很高的適應性。

圖4 試驗結果Fig.4 The experimental results
2.4.2 可變形卷積的理解
可變形卷積的理念是建立在一個容易理解的想法之上的。可變形卷積是將空間采樣位置增加額外的偏移量,這些偏移量是以目標任務為驅動的數據中學習到的。當可變形模塊堆疊成多層時,復合變形的作用是顯著的。對于同一區域的5幅圖像,本文選取了不同尺度大小的地物(依次為車輛、建筑物、樹木、植被和道路)作為激活單元,分別展示不同地物的采樣位置,以此來可視化可變形卷積濾波器的工作原理。如圖5所示,其中綠色點代表激活單元的位置,藍色點代表對該地物的采樣位置,每幅圖像中展示了93=729個采樣點的位置。
2.4.3 可變形卷積與CRF的性能比較
為了定量量化本文提出的兩個模塊對于分割精度的作用,將CRF模塊與可變形卷積模塊單獨嵌入SegNet網絡中進行試驗,以此來定量對比模塊的效果。CRF可以細化模型的分割輸出并提高其捕捉細粒度細節的能力。CRF能夠將低級圖像信息(如像素間的交互)與產生逐個像素的類別得分的多類推理系統的輸出進行組合。這種組合對于捕獲卷積層未能考慮的遠程依賴關系特別重要,并且可以保留良好的局部細節。從圖6(b)中可以看到采用全連接的CRF顯著改善了分割結果,使模型能夠準確捕獲復雜的對象邊界,尤其是車輛這類小目標物體,可以看出相對于單獨使用SegNet網絡分割精度提升了11.9%。從局部分割圖中也可以看出,分割的邊界更加清晰,并且錯誤分類的孤立圖斑更少。經過試驗比較,一般對CRF的迭代次數取為10次,多于10次以上性能提升不明顯,應用CRF操作之后整體精度可以提升1%~2%左右。從圖6(c)可以看出對于道路、建筑物及樹木這些不規則的地物,可變形卷積有著很好的提升效果,尤其在道路的分割精度上提升了1.7%。這也證明了可變形卷積在空間變換上有著很好的自適應能力。

圖5 可變形濾波器的采樣位置Fig.5 Sampling locations of deformable filters

圖6 可變形卷積與條件隨機場的分割對比Fig.6 Comparing deformable convolution with conditional random field segmentation
本文研究了深度卷積神經網絡在遙感影像語義分割中的應用。當前使用卷積網絡來分割影像已經取得了很大的進展,但是由于傳統的卷積方式無法有效地模擬幾何變換,導致分割能力受到限制。相比之下,本文采用的可變形卷積方法對空間變換有著很強的自適應能力。準確捕獲復雜地物的邊界一直都是語義分割的難點,為此本文在神經網絡的輸出層加入了結構化的后處理步驟——條件隨機場,并通過試驗驗證其有效性。本文也展示了如何為這種級聯方法構建訓練實例,并在ISPRS 2D Vaihingen數據集上驗證了本文方法。由表1可以看出,本文方法獲得了良好的分割結果。今后,殘差校正是否能改善不同拓撲網絡的分割性能是下一步研究目標。