楊建華
(上海大學 土木工程系,上海 200444)
建筑物作為城市中重要的地理標識,也是人類活動區域的重要特征,在復雜自然場景中實現對其精確的識別可為城市規劃、城市動態監測、地形圖更新等領域提供重要的支撐[1]。遙感技術是獲取特定區域圖像執行此類任務的普遍方法。目前,隨著影像傳感器和新興平臺(例如無人機)的技術發展,高分辨率建筑物圖像的可用性和普及性得到了極大的提高[2],海量的高質量圖像使得建筑物的高精度識別成為可能,但同時也對現有的處理手段提出了新的挑戰[3]。
高分辨率圖像雖然提供了豐富的結構和紋理信息,有助于檢測和區分地面上的各種物體,但同時也增加了圖像元素的類內差異,減小了類間差異[4],使得提取圖像合理的空間特征以實現像素的分類變得更加困難[5]。由于建筑物具有復雜的形狀和圖案,同時受到包括形狀、材料、空間大小和建筑物陰影的干擾,因而上述問題在高分辨率的建筑物圖像領域顯得格外突顯。
傳統的建筑物提取方法多利用圖像的中低級特征,如光譜、邊緣、陰影、幾何結構等。Huang等[6]提出了利用一組形態學運算來表示建筑物的固有光譜結構特性(例如亮度、對比度和大小),即形態建筑物指數,從高分辨率圖像中自動檢測建筑物。Ma[7]提出了一種提取地面點生成數字高程模型(digital elevation model,DEM),進而檢測圖像中屬于建筑物點的方法。Zhou等[8]提出了一種僅利用數字地表模型(digital surface model,DSM)的高度信息進行建筑物檢測的技術。Chen等[9]提出了圖像邊緣規則性指數和陰影線指數,將其作為細化特定建筑物檢測結果邊界的新特征。然而,在數據量愈發龐大以及建筑物越來越復雜的現實情況下,這些基于人工獲取圖像中低級特征的方法,無法實現建筑物的自動化準確識別。
近年來,隨著深度學習的發展,卷積神經網絡(convolutional neural networks,CNN)在計算機視覺任務中表現出優異的性能[10]。CNN通過學習圖像數據分層的語義來代替人工繁瑣的經驗特征設計過程,進而實現圖像特征提取的自動化[11]。自2012年以來,CNN被廣泛地應用于圖像分類,AlexNet[12]、VGGNet[13]、GoogLeNet[14]和ResNet[15]等新型CNN結構均在各個領域得以普遍的運用。然而,這些方法主要集中于圖像的標簽分類,缺乏圖像中對象的精確定位和其邊界表征的提取[16]。因此,為了檢測物體及其空間位置,像素標記的預測具有重要意義。
Long等[17]改善了目前通用的分類模型,通過用卷積層替換全連接層以輸出空間圖而不是分類概率,從而將CNN轉換為全卷積神經網絡(fully convolutional networks,FCN)。然而,普通FCN無法恢復輸入圖像的分辨率,并且在分割小細節方面表現不佳,而諸如SegNet[18]和U-Net[19]之類的解碼器-編碼器(Encoder-Decoder)網絡模型可以有效地解決此問題,通過在Encoder-Decoder之間設置多個跳躍連接結構以融合多級語義,進而更好地恢復對象的邊界信息。為了進一步提高準確性,Deeplab系列[20]通過擴展感受域、學習多尺度上下文信息和加入后處理結構來提高分割精度,例如條件隨機場(conditional random field,CRF)和空洞空間金字塔池化模塊(atrous spatial pyramid pooling,ASPP)。但是,這些基于FCN變體的Encoder-Decoder網絡模型,只使用了部分層來產生最終的輸出,使得待分割對象的邊緣精度較低。
由于建筑物的復雜性,使得目標具有多尺度特征,包括局部的建筑邊界拐角、紋理、宏觀的線形、邊界交叉等。小的局部特征有助于細節上的分割,而大規模的全局特征則有助于分類的準確性。因此,建立具備多尺度提取建筑物圖像特征能力的語義分割網絡是本研究的核心。
建筑物邊界識別的準確度直接影響著建筑物提取的最終效果。但是,建筑物邊界目標是細小的線性結構,而像素級分類中廣泛使用的損失函數,例如交叉熵(cross entropy,CE),往往會忽略像素之間的關系,造成分割結果包含大量不準確的模糊預測。因此,本文引入了對語義分割指標Jaccard指數(即IoU得分)直接進行優化的Lovász損失函數[21],通過減少Lovász損失獲得更高的Jaccard指數,從而得到更高質量的分割結果。
本文的主要貢獻總結如下。
1)提出了一種稱為BuildingNet的神經網絡結構。該模型基于特征金字塔(feature pyramid network,FPN)結構進行改進,并引入了ASPP模塊,具有針對不同分辨率圖像的良好特征提取性能。
2)在傳統二元交叉熵損失函數的基礎上引入了Lovász損失函數,將建筑物特征表示形式補充到一般的交叉熵損失函數無法達到的程度,從而提高了建筑物提取結果的質量。
3)實驗在兩個高分辨率建筑物數據集,即遙感影像數據集(Vaihingen城市遙感圖像數據集[22])和無人機城市圖像數據集(UDD數據集[23])上均有優異的表現,展示了模型良好的泛化能力。

圖1 本研究整體方案圖
語義分割可以看作是圖像像素級別分類問題,其輸出圖像和輸入圖像的分辨率需要一致。本文研究的建筑物圖像的邊界分割可以看作為一個二元語義分割問題,即將圖像中除建筑物以外的元素,如樹木、路面、車輛等均作背景元素處理。圖1顯示了本文對建筑物圖像進行語義分割的整體方案:基于FPN特征提取結構提出了一種用于建筑物特征增強的BuildingNet網絡,并改進了訓練過程中的損失函數,使其可以更好地適用于建筑物圖像的邊界分割。
FPN通過自上向下的路徑及橫向連接將分辨率低但語義強的圖像上層特征和語義弱但分辨率高的圖像下層特征進行融合,進而將建筑物圖像的語義信息和空間信息相結合,使得神經網絡對于特征的檢測性能有了很大的提升。
1)自下而上的路徑。本研究使用ResNet-101作為骨干網絡,并預先在ImageNet公共數據集上進行訓練獲得初始權重。ResNet-101由五個卷積塊組成,當通過骨干網絡提取隱藏在圖像中的特征時,圖像的空間維度每次減少一半,而連續兩個特征圖之間的通道深度相應增加(圖2)。ResNet-101中每個卷積模塊的輸出被標記為Ci(i=1,2,3,4,5),隨后作用于自上而下的路徑。因此,該路徑產生特征圖為{C1,C2,C3,C4,C5}。
2)自上而下的路徑。通過構建特征金字塔網絡{O2,O3,O4,O5}創建自上而下的路徑。過程中首先對C5應用1×1卷積濾波器,將其通道深度降低到256,這里創建的層稱為O5,成為第一個用于建筑物圖像分割的特征圖。當沿著自上而下的路徑往下進行時,上一層的空間維度會通過最近鄰上采樣(nearest)的方法擴大2倍。與之相應的是,對相應的特征圖進行1×1卷積,隨后,將這兩張特征圖逐元素添加,進行特征融合。所有特征金字塔輸出(O2,O3,O4,O5)都有256個輸出通道。以上過程如式(1)至式(3)所示。
TN=Conv2dm,s,d(CN)
(1)
O5=T5
(2)
(3)
式中:TN是通過將每個特征圖從自下而上的路徑用m=256個大小(d)和步長(s)都為(1,1)的核進行卷積降維。上采樣Up(Mi,CN)將Mi的大小調整為CN的大小。ON(N=2,3,4,5)為自上而下路徑的輸出特征圖。由于C1的空間維度過大,會消耗過多內存,因此過程在O2處停止。
BuildingNet圖像分割網絡基于FPN特征提取結構,其整體模型結構如圖3所示。

圖2 FPN特征金字塔提取結構

圖3 BuildingNet建筑物分割網絡整體結構圖
本文對FPN結構作出如下改進。首先,對FPN輸出特征圖{O2,O3,O4,O5}采用空洞卷積(Atrous_Convolution)來降低自下而上路徑中兩個特征圖融合時產生的混疊效應,并且與傳統卷積運算相比,空洞卷積可以在不增加計算參數的前提下擴大感受野。這個過程在式(1)至式(3)的基礎上可以總結如式(4)至式(5)所示。
P5=Atrous_Conv2dn,s,d′,r(O5)
(4)
PN=Atrous_Conv2dn,s,d′,r(Conv2dn,s,d′(ON))
(5)
式中:Atrous_Conv2d()為空洞卷積運算,其中濾波器個數n=256,大小d′=(3,3)。通過兩次3×3卷積(一次普通卷積,一次空洞卷積)來創建Pi(i=2,3,4),因此所有輸出的維度均為256-d。然后,對Pi融合后輸入ASPP結構。
ASPP架構已經被證明可以很好地在多個尺度上分割對象,并且使結果更具魯棒性。建筑物圖像中包含豐富的邊界細節信息,同時建筑物像素周圍會有大量背景像素干擾,因此本文在BuildingNet中保留了Deeplabv3+中的ASPP架構。

圖4 ASPP網絡結構圖
圖4顯示的ASPP由4個不同孔隙率的平行空洞卷積組成。具體來說,ASPP由一個1×1卷積、三個平行的孔隙率分別為6、12和18的3×3空洞卷積以及一個生成圖像級特征的全局平均池化層組成。這些模塊生成的特征圖通過雙線性插值上采樣到輸入大小,然后連接并通過一個1×1的卷積。ASPP應用于FPN部分產生的特征圖,隨后ASPP產生的特征圖被上采樣恢復至圖像原始尺寸,如圖3所示。
卷積分割網絡可以通過正向傳播算法對輸入的預處理圖像進行正向計算,并得到預測特征圖。圖1表明反向傳播算法(back propagation,BP)返還預測的結果和其對應的建筑邊界真實標簽之間的誤差(loss),同時計算損失函數的梯度并將其反饋到參數更新算法(優化器)更新神經網絡的加權參數,其迭代訓練過程即為權重參數不斷更新以及損失值不斷降低的過程,最終得到一個適用的權重模型。因此,損失函數用來評估預測值與真實值之間的不一致程度,損失函數越小,模型的魯棒性越好。
建筑物圖像具有高度結構化的特征,圖像中屬于建筑物的像素表現出很強的依賴性,特別是對空間關系的依賴。然而,目前在圖像語義分割領域普遍的方法是在驗證集上計算圖像分割的交叉熵損失,在評價兩幅圖像之間的相似度時,會給每個像素分配相等的權重,導致對于空間信息的忽視。二元交叉熵(binary cross entropy,BCE)損失函數如式(6)所示。
(6)


(7)
則其損失如式(8)所示。
(8)

式(8)可以改寫為式(9)。
(9)
由于圖像由像素組成,所以對式(9)做如下改變以適應離散對象,表達如式(10)所示。
(10)

本文將BCE損失函數與Lovász損失函數相結合來訓練BuildingNet網絡,最終的損失函數表達如式(11)所示。
(11)
通過最小化這個損失函數,建筑物像素的預測正確概率得到最大化,本研究中α取0.5。
為了驗證本文算法的有效性,本研究在Vaihingen城市遙感圖像數據集和UDD無人機城市圖像數據集上展開了實驗研究。
Vaihingen數據集是由德國Vaihingen小鎮上空拍攝的正射影像中提取出的33個2 500像素×2 500像素的圖像組成,圖像的地面采樣距離為0.09 m。其中,16個圖塊被標記為像素級的數據真實標簽,每一個地面真實標簽都由六個類別組成,分別為地表、建筑物、低矮植被、樹木、車輛和背景。本研究只識別其中屬于建筑物類別的像素,因此將其他五個類別均看作背景,其中建筑物像素占比約26.69%。
UDD數據集是由專業級無人機在中國北京大學、葫蘆島市、河南大學和滄州市等地于離地60~100 m的高度收集的無人機圖像,大小為4 096像素×2 160像素和4 000像素×3 000像素。
為了增加訓練樣本,本研究使用了諸如隨機縮放、旋轉、垂直/水平翻轉、對比度/亮度改變和高斯模糊等的圖像數據增強技術。數據增強有助于增加訓練數據的數量,防止模型過擬合,從而提高訓練性能。
上述兩個數據集分別被分為三個部分:訓練集、驗證集和測試集,在訓練集上訓練本文網絡,每輪迭代(epoch)結束時對其進行驗證,最后在測試集上測試網絡性能。
為了從多個方面定量評估建筑物圖像的分割結果,本文引入召回率(recall)、精確率(precision)、F1分數和平均交并比(mIoU)四個評價指標。
precision表示被正確分割為建筑物的像素點與所有分割為建筑物的像素點的比率。recall表示被分割為建筑物的像素點與真實建筑物像素點的比率。F1分數和mIoU是綜合recall和precision的評估指標,用于反映整體的分割效果。
為了提高模型的魯棒性,所有圖像都經過裁剪和標準化處理。首先,將輸入圖像隨機裁剪為512像素×512像素,裁剪有利于卷積神經網絡的下采樣操作,同時降低了計算水平;然后,通過0~1歸一化和平均值相減,將裁剪后的圖像歸一化為[-0.5,0.5]。
實驗平臺采用Intel-i7-8700四核CPU處理器、32 GB內存、NVIDIA-GTX-1080TI顯卡(GPU處理單元),操作系統為Windows 10。本實驗網絡模型基于Pytorch深度學習框架搭建,同時運用了Nvidia公司的CUDA10.0的GPU運算平臺。訓練中采用Adam優化器,batch size數量為2,epoch次數為500,初始學習率為0.000 1,每次以0.9的速率衰減,衰減系數為0.000 2。為避免過擬合,本研究在所有卷積中引入了L2正則化,權重衰減為0.000 1。
本文提出的BuildingNet網絡基于FPN結構進行改進,并引入了ASPP模塊。實驗選取了SegNet、U-Net和Deeplabv3+共三種常用的語義分割模型進行對比驗證。除了表1所示的網絡結構差異外,這四個模型的超參數(如卷積層、激活函數和優化器)不變。

表1 四種實驗模型網絡配置
FPN和ASPP的集成旨在捕獲圖像多尺度特征、融合圖像上下層語義信息來提高網絡的檢測性能。表2和表3顯示含有ASPP結構的Deeplabv3+和BuildingNet明顯優于未引入ASPP結構的U-Net和SegNet,以表1的Vaihingen數據集的表現為例,Deeplabv3+的F1得分比U-Net高約1.61%,而BuildingNet則高出約3.62%;在引入FPN特征提取結構之后,BuildingNet網絡的分割效果在Deeplabv3+的基礎上得到進一步提升,BuildingNet的F1分數達到94.58%,mIoU達到87.88%,這些量化結果證明了將FPN特征金字塔網絡和ASPP集成到神經網絡結構中的策略是有效的。為了揭示模型的性能并解釋量化指標,本文進一步將預測的結果可視化。

表2 BuildingNet與現有網絡結構的性能比較(Vaihingen數據集) %

表3 BuildingNet與現有網絡結構的性能比較(UDD數據集) %
圖5和圖6分別展示了四種網絡對來自Vaihingen和UDD數據集特定區域樣本的識別結果:對于特征較為簡單的建筑物圖像,如圖像1顯示,四種分割網絡均有良好的表現;圖像2和圖像3為具有復雜邊界特征的建筑物圖像,SegNet和U-Net無法準確或完全識別屬于建筑物的像素,而在第(e)列和第(f)列中,Deeplabv3+和BuildingNet通過ASPP結構增加的卷積模塊數量和孔隙率,來擴大網絡感受野,進而從多尺度信息中捕捉圖像更多的特征,從而表現出更好的復雜邊界特征提取性能;對于具有大小不同的建筑物元素且建筑物像素占圖像比重較高的圖像,如圖像4,BuildingNet網絡通過FPN結構融合分辨率低但語義強的圖像上層特征和語義弱但分辨率高的圖像下層特征,從而比Deeplabv3+在恢復特征和抑制誤報方面展示出更高的性能。第(g)列通過將BuildingNet的分割結果(圖中綠色部分)與原始圖像進行疊加,進一步直觀地觀察實驗結果與原始圖像間的差別。圖7和圖8展示了完整的測試集預測結果。

圖5 BuildingNet與現有網絡結構的可視化比較(Vaihingen數據集)

圖6 BuildingNet與現有網絡結構的可視化比較(UDD數據集)

圖7 Vaihingen數據集提取實例

圖8 UDD數據集提取實例
本文引入改進的損失函數來提高建筑物邊界的分割準確度和預測圖像的質量,從而得到更精確的建筑物圖像分割效果。
為了驗證損失函數對實驗結果的影響,本文以Vaihingen數據集為例,設計了消融實驗作進一步驗證。改進的Lovász損失函數實驗結果如圖9所示。圖像1展示了由于特征的提取和分類過程中的不精確導致錯誤檢測的分割圖,通過改進的Lovász損失函數消除了這些錯誤檢測;圖像2、圖像3顯示了改進的Lovász損失函數消除了零星噪聲點的結果,說明了損失函數對改善圖像質量的附加影響。表4展示了改進的損失函數對分割網絡性能上的定量提升。

表4 消融實驗的定量結果 %

圖9 消融實驗的可視化結果
高分辨率的圖像為建筑物及其邊界的分割提供了更豐富的空間和結構信息。隨著高分辨率建筑物圖像的可用性和普及性的提高,快速準確地提取建筑物及其邊界信息意義重大。本文提出了一種基于特征金字塔FPN結構的BuildingNet網絡,使得卷積神經網絡具有針對不同分辨率圖像的良好特征提取性能。同時,本文設計了一種改進的Lovász損失函數來訓練所提出的網絡,有效地提高了提取結果的圖像質量。通過對比實驗和消融實驗驗證了本文方法在建筑物識別與提取的準確性和適應性方面具有更高的性能,且過程高度自動化,可進行大規模的建筑物提取。
盡管本文提出方法在建筑物圖像精確分割中取得了良好的效果,但仍然有較大的改進空間,主要集中在兩個方面。一是數據集圖像的改進。雖然本文選取的數據集已經在建筑物圖像語義分割領域得到了充分的驗證,但其在建筑物邊界方面仍然需要一定改進。如圖10所示,由于數據集制作環節,未標注樹木遮擋下隱藏的建筑物邊界,導致本來屬于建筑物邊界的像素被錯誤地歸類為樹木,因此提高標注方式,獲得高精度的數據集是一個值得關注的研究方向。二是識別速度的提升。高準確性和高適應性必然帶來圖像分割速度的問題,特別是高質量圖像的廣泛使用,但由于本文模型復雜,并且FPN特征提取結構基于較深的ResNet-101網絡,因此存在大量參數使得訓練時間較長。在不降低計算精度的基礎上,尋找合適的方法縮短檢測時間,從而進一步提高深度學習模型的能力是下一階段亟待解決的問題。

圖10 樹木影響下的分割結果