袁偉,許文波,周甜
1. 成都大學 建筑與土木工程學院,成都 610106 2. 電子科技大學 資源與環境學院,成都 610097
道路在人們生產和生活中是不可缺少的要素,如導航、電子地圖、城市規劃等。在測繪領域中,道路是地理信息數據的主要內容之一。雖然從遙感圖像上采集道路信息,已經可以滿足大多數應用的需求,但道路的數據采集工作非常繁重,于是不少學者嘗試從遙感影像上自動提取道路。之前的分割算法,多是利用光譜的特征,輔以形態學算法,再選取適當的閾值來分割道路。如Ribbon Snake算法在遙感影像上分割道路[1],文獻[2-3]利用形態學算法分割遙感影像上的道路。文獻[4]利用歸一化水指數(NDWI)和歸一化差分植被指數(DNVI)獲得道路潛在區域,再依據道路光譜特征分割,以形態學開、閉運算進行優化。文獻[5]提出一種融合馬爾可夫隨機場分割與數學形態學處理的高分辨率SAR圖像道路提取算法。這些方法普遍存在分割精度低、閾值難以確定的缺點。
隨著深度學習技術的出現和發展,不少研究將深度學習技術應用到遙感影像道路分割上,取得了一定的進展。文獻[6]基于SegNet網絡和ELU激活單元,提升了道路分割效果。文獻[7]將樣本標簽附近的像素在交叉熵中的權重加強,以提高道路的識別正確率。文獻[8]將UNet網絡預測的圖像用條件隨機場進行后處理來提高精度。文獻[9]針對道路特征較簡單的特點,簡化了UNet,并針對道路與背景比例相差大的問題,在交叉熵損失函數中附加權重系統來平衡。文獻[10]將UNet改進為雙UNet,同時將網絡預測的圖像用形態學做后處理。文獻[11]改進了PSPNet網絡,并將坡度,坡向,數字高程信息與光譜信息一同訓練,取得了不錯的效果。文獻[12]將道路看成是有方向的,并設計了方向損失函數來提升道路的連通效果。
以上用于道路分割的深度學習網絡都是通用方法,也可以用來分割房屋等其他地物,并未考慮道路的獨特性,雖說有學者將形態學應用到道路的提取中,但多作為預處理或后處理優化深度學習的預測結果,并未作用于深度學習網絡。文獻[12]的方向損失函數雖說是直接作用于深度學習網絡,但是要求標注是矢量的,且計算復雜。鑒于道路與房屋等塊狀地物不同,呈現出相互連通的線狀形態,本文提出一種深度學習網絡的形態損失函數來改善分割效果。
交叉熵損失函數是現使用最多的損失函數,
CrossEntropyLoss=
(1)

線性度損失如圖1所示。因為道路是線形的,而且道路之間總是連通的,幾乎不可能出現圖1(a)白色區域所示的孤立塊狀的情況,所以可以使用線形程度作為深度學習的損失函數,讓深度學習模型預測的結果盡可能呈現線形形狀,且線形程度越高,損失函數值越小,反之損失函數值越大。
要衡量道路的線形程度,可以采用道路面積與外接矩形面積的比值這一指標。道路面積代表道路的實際范圍,外接矩形面積代表道路所涉及的區域大小,如圖1中的紅色矩形所示。損失值

圖1 形態損失示意Fig.1 Schematic diagram of morphological loss

(2)
式中:Aroad為道路實際面積,可通過像素個數計算;Arectangle為外接矩形面積,可通過像素的最大行、最小行、最大列、最小列位置計算。
使用道路面積與外接矩形面積的比例這一指標,最大的問題在于同一形狀的道路隨著旋轉角度的不同,外接矩形面積會發生變化,如圖1(b)(c)中的紅色矩形所示。為了克服同一形狀的道路旋轉角度不同帶來的指標變化這一現象,本文提出道路面積與外接圓面積的比值這一指標,命名為形態損失,

(3)
式中:Aroad為道路實際面積;Acircle為外接圓面積。道路如果表現為塊狀,如圖1(a)所示,那么其面積與外接圓面積的比值將向1靠近。如果道路表現為線形形狀,如圖1(b)(c)所示,那么其面積與外接圓面積的比值將向0靠近。
由于一幅遙感圖像預測的結果可能是多條彼此分離的道路,盡管實際上它們應該是相互聯通的。所以,首先將批次的預測結果通過形態學中的連通性算法劃分為m個相互分離的連通區域,分別計算每個區域的形態損失,最后取平均值作為批形態損失,再與交叉熵按一定的權重加和作為最終的損失值。最終損失和形態損失為

(4)
式中:K為形態損失ShapeLoss的權重。
UNet++[13]是在UNet[14]的基礎上發展而來,UNet結構如圖2所示。輸入圖像大小為572×572×1像素,經過兩次3×3的卷積后變為通道數為64的矩陣,接著進行2×2的最大池化操作,圖像長寬減小為原來的一半,這樣完成了第1次下采樣。依照相同的過程,做4次下采樣之后,圖像變為32×32×512的矩陣,再經過2次3×3的卷積操作得到最終的特征圖。上采樣是2×2的反卷積,然后與同一層的下采樣特征圖進行拼接,再經過2次3×3的卷積操作完成第1次上采樣。依照相同的過程,做4次上采樣之后得到388×388×64的圖像,再經過一次3×3的卷積操作,變為388×388×2的圖像(這里假設為二分類)即為推理結果。

圖2 UNet網絡Fig.2 UNet network
在實際應用中,并不是對所有的數據都是下采樣4次為最優。對于有些數據來說,4次下采樣提取的特征還不夠,而對于另一些數據來說,4次下采樣卻已冗余。為了解決這個問題,Zhou等[13]提出一個由多個深度不同的UNet分支共享同一下采樣編碼過程的UNet++網絡,如圖3所示。圖3中向下的實線箭頭代表最大值池化的下采樣編碼過程,向上的實線箭頭代表反卷積的上采樣解碼過程,虛線箭頭代表的是將兩個結果融合連接在一起。每一個Xi,j代表的2次3×3的卷積。

圖3 UNet++網絡Fig.3 UNet++ network
UNet++借鑒了DenseNet[15]的結構,每次上采樣的結果都與同一層的所有更淺的UNet網絡分支相融合,有效增強了特征的提取能力。但這樣做的結果導致參數增加,反向更新參數難度加大,所需的計算資源也相應增加。為了解決梯度回傳的問題,采用深監督的方法,對每個分支都計算一個Loss,然后取平均值作為總的Loss。
SegNet[16]網絡是一種類似UNet的深度學習網絡,結構如圖4所示。其本質上與UNet類似,都是經過3次卷積運算后,進行1次池化操作,將圖像進行下采樣,4次下采樣之后,進行上采樣操作,直到輸出圖像大小與輸入尺寸相同。不同之處在于,UNet使用的是雙線性插值上采樣,而SegNet是在下采樣過程中記下了池化的索引,在上采樣時將像素值填充到對應的索引位置,其余位置以0補充。

圖4 SegNet網絡結構[16]Fig.4 SegNet network[16]
采用MassachusettsRoads Dataset[17]數據集作為試驗數據。共有1 108幅訓練影像、14幅驗證影像、49幅測試影像,以及對應的標注影像,數據格式為tiff,通道數為3,大小為1 500×1 500像素,空間分辨率為 1 m。
本次試驗不做驗證,因此將驗證影像和測試影像合并為測試數據,共63幅。由于計算機處理能力的限制,將每幅影像裁剪為512×512像素。因原始數據中無影像部分值為255,為了保持一致,所以不足的部分以255補充,最后保存為24位的jpg圖片。標注影像按相同的方法裁剪,并轉換為8位的灰度圖像。為了損失函數計算方便,將道路部分的值設為1,背景值為0。共得到9 972幅訓練數據和567幅測試數據。
為了更客觀地驗證本文方法的優勢,采用平均交并比(MIoU)、準確度(ACC)、F1-Score三個評價指標進行對比分析。
平均交并比MIoU為

(5)
準確度ACC的計算公式為:

(6)
F1-Score的計算公式為:

(7)
其中Precision的計算公式為:

(8)
而Recall的計算公式為:

(9)
式中:c為前景分類數量,加上背景總共為c+1類,本文c取1;TP為真正,表示正確分為道路的像素個數;FP為假正,表示背景被分為道路的像素個數;TN為真負,表示正確分為背景的像素個數;FN為假負,表示道路被誤分為背景的像素個數。式(5)先將背景和道路分別作為正樣本求出評價指標后,再取平均值便可得到所有類的平均評價指標。其余式(6)~(9)中正樣本為道路。
本文試驗的硬件環境為:CPU Intel I5-9400F,內存8G,顯卡NVIDIA GeForce RTX 2060 Super 8G,GPU 加速庫采用 CUDA10.0。深度學習框架是TensorFlow和官方的高級封裝庫Estimator。
深度學習模型采用最新的UNet++網絡,采用AdamOptimizer 算法[18]尋找最優解,學習率為0.0001。此外,對權重采用L2正則化[19],以防止過擬合,提高泛化能力??偟膿p失為預測結果與真實標簽的交叉熵CrossEntropyLoss加上L2正則化結果,再加上0.1倍的形態損失:

(10)
式中:w為深度學習網絡的所有權重。迭代訓練周期epoch最大值為100,每個epoch之后在測試集上進行評估,若連續10個epoch的評價指標MIoU都不再升高,則采用文獻[20]中提前終止模型訓練的策略(Early Stopping)結束模型訓練。
從測試集的預測圖來看,附加了形態損失函數的預測結果要好于沒有附加的結果,如圖5和圖6所示。附加了形態損失之后,輸出的道路更為連續,在路口斷開的現象明顯好轉,如第1行所示。在道路中間,由于衛星圖像上可能存在車輛或者樹木遮擋路面的情況,沒有附加形態損失時,道路會出現斷開的現象,而附加形態損失之后,這類現象有明顯的改善,如第2~4行所示。

圖5 UNet++附加形態損失函數前后的預測結果對比Fig. 5 Comparison of prediction results before and after the addition of morphological loss function by UNet++

圖6 SegNet附加形態損失函數前后的預測結果對比Fig. 6 Comparison of prediction results before and after the addition of morphological loss function by SegNet
從表1的評價指標上來看,UNet++附加形態損失之后,MIoU提升了1.3%,F1-score提升了2.6%,ACC也提升了0.1%。而SegNet模型附加形態損失之后,MIoU提升了1%,F1-score提升了2.2%,ACC雖說未提高,但也并無明顯的降低。

表1 附加形態損失函數前后的評價指標對比
附加形態損失之后,雖然評價指標有所提高,但是并未達到圖5那么明顯的效果。其原因在于,有些預測出的道路并未在真實標簽中,但是從人的角度判斷應該是屬于道路,尤其是通往房屋的小路尤其明顯,如圖7圓圈部分所示。這些情況會被認為是誤判,導致了評價指標有所降低,從某種角度來說,可以認為是數據標注的精度不夠準確所致,并非是分割方法的原因。

圖7 部分有爭議的誤判結果Fig.7 Some controversial misjudgments
本文針對遙感影像中的道路呈線形形狀的特點,提出了一種基于形態學的深度學習網絡的形態損失函數。在Massachusetts Roads Dataset數據集上,將UNet++和SegNet網絡與附加了形態損失函數前后作對比試驗。結果表明,附加了本文提出的形態損失函數,道路的連續性大大增強,尤其是在路口,未附加形態損失函數時多是斷開形態,而附加了形態損失函數后多是連續形態;從評價指標來看,UNet++附加形態損失之后,MIoU提升了1.3%,F1-Score提升了2.6%,ACC也提升了0.1%。而SegNet模型附加形態損失之后,MIoU提升了1%,F1-score提升了2.2%,ACC雖未提高,但也并無明顯的降低。同時,本文發現附加了形態損失函數后,對于一些未標注的道路也能很好地識別,從而形成了偽誤判,如果標注數據的精度更高,實質上各項指標的提升應該更顯明。因此,本文提出的形態損失函數在遙感影像中道路的語義分割方面有顯著作用。
方法中有一個超參數K,下一步的研究重點是如何自動確定K值。