劉 舸,鄧興升
(長沙理工大學交通運輸工程學院,湖南 長沙 410114)
建筑物是城市活動的主要載體,建筑物信息自動化提取對城市規劃、環境監測等領域有重要意義。由于高分辨遙感影像包含大量光譜、結構和紋理信息,這些信息為精確的建筑物檢測提供可能。然而手動提取這些圖像中的建筑物在區域內或全球尺度是不切實際的,因此有必要開發能夠自動或半自動提取建筑物的方法。文獻[1]采用多尺度對象分割與決策樹分類提取建筑物區域。文獻[2]通過手工構造建筑物的多星型約束,利用圖割法提取建筑物。文獻[3]對建筑物陰影自動定位建筑物的位置,再利用圖割法提取建筑物,達到全自動提取建筑物。文獻[4]使用一系列形態學操作得到建筑物的形態學特征,再利用支持向量機(support vector machine,SVM)提取建筑物信息。這些方法都需要人工設計一些建筑物特有的特征來獲取建筑物的位置,從而使建筑物和非建筑物區分開來。深度學習通過在淺層網絡中自動提取低級特征,在深層網絡中獲取高級特征,避免人工構造低級特征。文獻[5—6]利用深層卷積神經網絡(deep convolutional neural networks,DCNNs)檢測航空影像建筑物,能達到一定的精度,但存在結果邊界不完整的情況。
針對上述高分辨率遙感影像建筑物信息提取現存的問題,本文提出一種深度學習與圖割法融合處理的方法。用深度學習對建筑物進行檢測和定位,避免了人工設計低級特征,再用粗提取結果建立建筑物區域和非建筑物區域的高斯混合模型(GMM),減少圖割法中人工標記前景和背景的操作,提高自動化程度,然后用最大流/最小割法提取建筑物輪廓,最后優化圖割法結果,得到建筑最終輪廓。
本文建筑物輪廓信息提取方法流程如圖1所示。
卷積神經網絡(CNN)的起點是Necognitron模型,模型已經體現了大部分現代CNN的結構[7]。根據研究需要,本文設計的深度卷積神經網路結構為:輸入層、2個卷積層、2個批標準化層、2個池化層、解卷積層。其網絡結構如圖2所示。
構建深度卷積神經網絡模型,其中卷積過程為
(1)
式中,fij(1≤i≤M,1≤j≤N)表示二維單通道特征圖;kij(1≤i≤m,1≤j≤n)表示卷積核;b為噪音。
在批標準化和池化層之間加入ReLU激活函數[8],其公式為f(x)=max(0,x)。
批標準化(batch normalization):文獻[9]指出批標準化使損失空間更加平滑,這種平滑性能加速模型的訓練過程。具體的,批處理化分為歸一化和轉換重構兩個步驟:
(1) 歸一化求出樣本的零均值μ和單位方差σ。
常用池化層模型主要有兩種:最大池化層[10]和平均池化層[11]。根據文獻[12]和本文試驗結果,使用平均池化層。其平均池化層的公式為
(2)
式中,Gij為由卷積層得到特征圖矩陣;c為池化層正方形區域的邊長和池化步長;b1為偏移量。
解卷積是卷積的逆過程,即已知h,尋求合適的k,重構f。通過解卷積來恢復圖像的原始尺寸,以獲取端對端的預測圖像。
用訓練好的卷積神經網絡模型對遙感影像進行預測,遙感圖像為g(x,y),已訓練好的CNNs模型為CNNs( ),建筑預測圖為p(x,y)。p(x,y)為二值圖像,建筑物像素點值為1,非建筑物像素點值為0。
(1) 檢測建筑物輪廓。建筑物圖像p(x,y)通過連通分析將建筑物聚類,根據文獻[13]中提供的二值圖像外輪廓檢測方法檢測出預測圖p(x,y)中單個建筑物組成的像素點集合S={S(xi,yj)|i=1,2,…,n,j=1,2,…,n,且(xi,yj)=1}。
(2) 建筑物輪廓的粗差去除。根據圖像地面分辨率GSD的大小設置閾值去除微小建筑物輪廓,其經驗公式為
(3)
式中,num(Si)為第i個像素塊的數量;w和h分別為圖像中最小建筑的長和寬,GSD為圖像的地面分辨率,本文取值0.3 m。
(3) 提取建筑物圖斑。對第i個建筑物輪廓Si進行形態學膨脹后,獲取的膨脹的輪廓取外接矩形為
Ri={(x,y,(Δx,Δy)}
(4)
式中,(x,y)為外接矩形Ri的左上角坐標;(Δx,Δy)為Ri在X軸和Y軸的坐標值增量。
(4) 提取建筑物掩模。將建筑物輪廓S={Si|i=1,2,…,n}進行形態學濾波腐蝕處理,縮小輪廓獲得建筑物掩模SM={(x,y)|(x,y)∈SM}。
建筑物圖斑映射為對應的加權圖,用最大流/最小割算法尋找圖的最小割[14],構建加權圖的能量函數E(L),其公式為
(5)
式中,D(L)為數據項,表示像素n取標記L的費用;Vm,n(L)為邊界項;m,n為點鄰域r=4,8,16的近鄰區域;L為建筑物與非建筑物的分割標號,L=1表示建筑物,L=0表示非建筑物;N為圖像中所有鄰接像素對組成的集合。
初始化時用掩模對加權圖進行賦值,屬于掩模內的像素點賦值為1,計算所在位置的高斯混合模型,這樣能取代人工標記建筑物(前景)種子點和非建筑物(背景)種子點。根據上述的能量函數,采用標準最大流/最小割算法[15]求解能量函數的最小割,然后確定每個像素點的標記L。
圖割法處理后可能出現一些小的地物,如車輛等,通過圖像地面分辨率給定面積閾值Ta。通過連通分析將提取結果聚集為不同的對象,去除面積小于Ta的對象。本文Ta設置為5 m2。使用文獻[16]方法對圖割法提取的建筑物進一步優化,得到最終成果。
本文試驗使用Ubuntu下的PyTorch機器學習框架,采用Python語言編程實現,硬件環境為AMD RYZEN 5 2600,GPU Nvidia GTX1060 6 GB內存。為了驗證本文所提方法的可行性和有效性,利用文獻[17]提供的數據集,分辨率為0.3 m。
本次試驗選擇的建筑物為規則多邊形,且建筑物與周圍環境的光譜差別明顯,試驗流程如圖3所示。對本文算法詳細描述如下:
(1) 利用卷積神經網絡對原圖(圖3(a))上的建筑物進行檢測,得到建筑物預測圖(圖3(b))。其結果能覆蓋建筑物,但是建筑物的外輪廓不完整。
(2) 根據建筑物預測圖(圖3(b))檢測與提取建筑物輪廓(圖3(c)中的框線)和建筑物掩模(圖3(d)灰度部分)。
(3) 利用建筑物輪廓裁剪獲取建筑物圖斑(圖3(e))。
(4) 使用圖割法提取建筑物如圖3(f)所示。
(5) 對初步提取結果優化。
本文算法與其他方法的結果對比見表1。從圖3及表1可以看出,對于光譜值差別明顯、簡單的規則建筑,分割結果比較完整,但是存在建筑物邊緣模糊的情況。經過本文方法處理后邊緣較規則。

表1 本文算法與其他方法的結果對比
3次試驗采用定性和定量兩種分析方法來評價方法的優點。定量使用3個指標:精確率(Precision)、召回率(Recall)和F1值。
本次試驗的特點是建筑物規則,建筑物與周圍地物的光譜差別明顯,且部分邊緣不清楚,如圖4所示。
圖4中,圖4(b)為本文提取的建筑物輪廓,與參考數據較為吻合。圖4(c)由深度學習UNet模型提取的結果,存在邊緣不規則[18]。圖4(d)CNNs模型是本文構建的一個小型卷積神經網絡模型,能大致提取建筑物所在地區。
本次試驗的特點是所選的建筑物不規則,建筑物與周圍地物的光譜值差別不明顯,且部分邊緣不清楚。試驗結果如圖5及表1所示。
圖5中,圖5(b)為采用本文方法提取的建筑物,與參考數據較為符合。而UNet方法和CNNs無法正確提取復雜建筑物的邊界。
本次試驗的特點是所選建筑物不規則,且其光譜值與周圍地物的差別不明顯,如圖6所示。
從上述3個試驗來看,采用本文方法可以獲得較為符合實際的建筑物輪廓,無論是矩形建筑物,還是形狀復雜建筑物,其提取的精度都能達到0.9以上,能很好地優化卷積神經網絡提取的建筑物輪廓。提取過程只使用高分辨率影像數據。
本文利用卷積神經網絡對建筑物原圖進行定位與檢測,提取出建筑所在圖斑,然后用圖割法對建筑物進行處理,以提高檢測精度,其優點在于:
(1) 將卷積神經網絡定位建筑的能力和圖割法精度相結合,充分利用二者的優點。
(2) 可以減弱一定光照變化的影響,尋找出較為準確的建筑輪廓和拐角點,所提取的結果能夠反映建筑物的外形。
(3) 只需要高分辨率的遙感影像,不需要使用高程及回波強度等信息。
(4) 用卷積神經網絡將建筑物輪廓檢測與定位之后,可以使用其他的方法(如分水嶺法)。
需要說明的是,訓練一個卷積神經網絡的過程比較耗時,而且整個試驗流程受到卷積神經網絡精度的限制,同時本文算法的精度對太陽光照敏感,可能是由于本文算法利用像素點之間的差異來判斷是否屬于同一背景。今后將進一步解決這些問題,以提高算法的穩健性。