左俊皓,趙 聰,朱曉龍,任洪娥,2*
(1. 東北林業大學 信息與計算機工程學院,黑龍江 哈爾濱150040;2. 黑龍江省林業智能裝備工程研究中心,黑龍江 哈爾濱 150040)
近些年來,科學研究從高分辨率遙感影像獲取更加精細豐富的影像信息。在遙感影像的各類地物信息中,其中建筑物提取是城市高分辨率遙感影像的主要應用研究之一。建筑物的分布以及對目標建筑物的提取包含許多信息,提取遙感影像中的建筑物是遙感圖像解譯中的重要研究課題之一。由于建筑物在結構和定位信息上特征明顯,適合采用深度學習自動提取其空間特征,所以利用深度學習算法在遙感影像中快速自動地提取建筑物十分具有現實意義,并且可以為城市規劃管理提供一定的指導意見,從而推進數字城市的建設。
目前,國內外對于遙感圖像建筑物提取進行了很多研究。單一的基于像元的信息提取方法不能充分利用高分遙感影像信息豐富的優勢[1],因此存在很大的應用局限。針對高分影像的特點,Baatz M和Schape A提出將圖像分割技術應用到遙感影像領域,即為面向對象的影像分析方法[2]。Taejung Kim等通過邊緣線段尋找可以建筑物構成的目標線段,從而提取出建筑物,但是該算法存在時間代價和誤差較大的問題[3]。Karantzalos[4]提出建筑物形狀模型結合建筑物自身幾何屬性,結合水平集分割算法,取得較好的建筑物提取結果;梁華等[5]利用深度學習技術對航空影像對地面目標進行檢測;周筑博等[6]利用深度卷積神經網絡對輸電線路的可見光圖像進行目標檢測。
高分辨率遙感影像單類目標識別算法需要具有夠快速準確地識別出盡可能多的目標的特點和一定程度的泛化能力。針對在高分辨率遙感影像單類目標識別問題中存在的部分問題,本文提出了一種由粗到精的目標識別算法。首先,使用Faster-RCNN網絡下的VGG16模型代替 Level-Set算法中人工確定初始輪廓的步驟,在高分辨率遙感影像上快速提取一定的候選目標區域,可以視作目標的粗略識別過程。然后,利用Level-Set算法對候選目標區域精細的提取,該過程是對粗略識別結果的進一步精細處理,是目標的精細識別過程。
傳統水平集方法存在初始輪廓線必須包含目標物體或完全置于目標的內部(或外部),并且初始輪廓的確定受人為因素影響較大等問題。本文提出Faster-RCNN框架下的VGG16的模型和Level-Set算法結合,來解決Level-Set算法中圖像分割結果初始輪廓受人為標記框選的影響較大的問題,利用Faster-RCNN模型確定初始化輪廓,再對初始輪廓進行精細化分割。
遙感影像包含信息量大、背景環境復雜,而單類目標在影像中所占比例較小。傳統的區域生成算法雖然能夠粗略提取感興趣區域,但該感興趣區域中包含大量冗余的背景信息。與需求提取的目標信息有著一定的出入,這些背景區域對于進一步的分析研究有著很大的干擾。而本文利用Faster-RCNN粗提取目標建筑物的輪廓,只需要簡單的特征提取和分類器就能判斷出是否包含目標,為之后的精細化分割做準備。
Faster-RCNN是把整張高分影像進行歸一化處理后直接傳入CNN,并在之后的卷積層輸出的feature map上,添加相應的候選框信息,這樣使得之前的CNN運算結果得以共享。此種算法的特點之一是對每張圖像CNN特征和建議區域都一次性提取完畢,訓練數據之接存儲在GPU內存中的Loss層,因此候選區域的計算過程中,前幾層特征不需要再重復計算而且不再需要在硬盤中存儲大量實驗數據,這一優點使其非常適用于解決大量樣本中的快速分類問題。
Girshick[7]提出主要應用于目標檢測的Faster-RCNN模型,該模型特點是將特征提取、分類等問題統一集中在一個網絡模型中,由此開辟了候選框選取的新方向,與以往的滑動窗口和金字塔的辦法有不同,該方法對窗口采用1∶1,1∶2,2∶1三種比例進行選取候選框,提高檢測準確率并加快了檢測速度。
Faster-RCNN是一種深度卷積神經網絡的目標檢測算法,結構如圖1所示。Faster-RCNN主要分為RPN(Region Proposal Network和Fast-RCNN)兩大模塊。其中RPN模塊主要用于預測輸入的遙感影像中可能包含目標的候選區域,也就是區分是目標還是背景;而Fast- RCNN用劃分候選區域,并修正候選區域的邊界框即為檢測模塊。兩個模塊使用共享的卷積神經網絡來提取感興趣目標區域。

圖1 Faster-RCNN網絡結構Fig.1 Faster-RCNN network structure
將待檢測的圖像輸入卷積層,通過卷積層計算之后得到該圖像對應的feature maps,將原始圖片輸入RPN(并不是feature maps),ROI池化層的作用是提取卷積層輸出的feature maps和RPN輸出的候選框特征塊,將上一步的結果輸入全連接層,全連接層將會進行分類和回歸輸出結果。
卷積層由卷積函數、relu函數和池化層3部分構成。其中卷積層的主要功能是提取輸入遙感影像的特征塊[8]。卷積核大小設定為3×3,進行卷積運算之前需要對目標影像進行0值填充。假設輸入圖片大小是M×N,經過填充之后大小變為(M+2)×(N+2),之后進行卷積運算卷積操作后圖片大小變為M×N。


(1)
第一步將RPN輸出的候選特征塊平移,平移使特征塊和目標塊二者的中心點重合,即:平移只改變特征塊的中心點坐標px和py,公式如下:

(2)

(3)
然后將RPN輸出的候選框特征塊縮放,使得輸入原始的初始輪廓經過縮放得到一個跟目標塊更接近特征塊,縮放改變特征塊的寬pw和高ph,公式如下:
(4)
(5)
最后通過對RPN輸出的候選特征塊進行平移和縮放操作,從而回歸最接近標定(Gx,Gy,Gw,Gh)是回歸的主要任務。
前一階段的Faster-RCNN對目標輪廓的粗識別階段剔除了大量不包含目標的背景區域,提取少量感興趣區域。但這些感興趣區域通常包含部分或者完整的待識別目標,必須對粗識別結果進行精細分割,才能對更復雜的特征加以區分。因此,在對高分遙感的提取目標精細識別階段,對目標粗識別的結果使用Level-Set算法精細分割,最終收斂到目標建筑物邊界輪廓。該算法在抗噪性、魯棒性和分割精度3個指標上都較傳統的圖像分割方法有優勢。
傳統的Level-Set算法雖然已經成為了一種重要的圖像分割方法,但仍然存在一些缺點: 例如確定初始輪廓受人為因素影響較大繼而影響實驗精度,迭代次數和權系數γ的值等不具有自適應性[9]。
水平集方法(Level Set Method)由Osher和Sethain于1988年最早提出,早先用于計算火苗的外形變化過程[10]。火苗外形是動態變化的并且其拓撲結構也在不斷變化,利用水平集方法解決[11]。
Level-Set的基本思想是將變換的曲線作為零水平集然后嵌入進高一維的函數中,由高維曲面演化過程就可以推演出零水平界面的點的位置,就可以得到函數的演化方程。

(6)
(7)

在計算曲線變化方程中水平集函數的一階導數和二階導數時,利用水平集函數的有限差分進行計算。如定義6個有限差分算子:

(8)
將式(7)改成滿足“熵守恒”條件的有限差分迭代格式為:

(9)

(10)

(11)
這種差分方法就稱為迎風有限差分法(Upwind finite differential method)[13]。
當利用水平集方法分割圖像時,需要設置速度函數,用以確保零水平集曲線演化到圖像邊界時能夠恰好停止。通常,可將式(6)中的速度函數F寫成如下形式:
F=Fprop+Fcurv+Fodv,
(12)
其中,Fcurv=-εk表示曲率演化速度,Fprop=Vo為常量演化速度,Fodv=U·N表示水平對流速度,U=(u(x,y,t),v(x,y,t))。因此,式(11)可改寫為:
(13)
通過解算上述差分方程式,利用迭代時刻更新水平集函數,更新完成之后再利用輪廓檢測方法獲得最新的零水平集,最終得到了的閉合輪廓線[14]。
本文選用IAILD數據集作為研究數據集。其中每幅遙感影像是覆蓋地理面積為405平方公里,空間分辨率為0.3 m的航空正射高分辨率遙感影像 。這些高分遙感影像覆蓋了不同的城市居民點,從人口稠密地區到郊區鄉村人口密度較小的地區。IAILD數據集具有180張5 000×5 000像素高分遙感影像,并提供了相應的掩碼圖片,如圖2所示。

圖2 芝加哥地區部分遙感影像Fig. 2 Partially remotely sensed images of the Chicago area
由于原始圖片尺寸過大,直接使用進行目標建筑提取會造成內存溢出等一系列的問題。因此,我們對每幅遙感影像進行分割,調整成為500×500像素大小的影像。最終,將圖片以2∶1∶1的比例分成3個數據集,得到了訓練集(2 500張)、驗證集(1 250張)、測試集(1 250張)。
在目標建筑的粗提取階段,采用Faster-RCNN網絡下的VGG16模型對目標區域進行提取,過程如圖3所示。

圖3 Faster-RCNN網絡模型Fig.3 Faster-RCNN network model
(1)RPN網絡訓練。
該網絡使用ImageNet預訓練的模型進行初始化,然后利用訓練數據進行訓練,訓練中,利用零均值標準差為0.01的高斯分布隨機初始化所有新的圖層,訓練為模型M1。下一步使用M1生成建議區域P1。
(2)Fast-RCNN 檢測網絡訓練。
Fast-RCNN檢測網絡利用ImageNet預訓練的網絡初始化Fast-RCNN模型,使用第一步RPN生成的建議區域P1得到訓練模型M2。
(3)聯合調優
RPN和Fast-RCNN兩者都需要一個原始特征提取網絡[15]。利用上一步的網絡訓練得到的檢測網絡初始化區域的生成網絡。用M2初始化RPN訓練的得到模型M3,并生成建議區域P2。接下利用M3以及P2訓練Fast-RCNN得到最終模型M4,不同的是這一階段的訓練固定了共享的卷積層的參數,只微調區域生成網絡的全連接層。由以上訓練可知,RPN和Fast-RCNN最終可共用同一個卷積神經網絡,結果使得整個提取識別過程轉換為既定的卷積運算,即可完成檢識提取過程,構生成一個統一的網絡,徹底解決了以前存在的時間長開銷大的瓶頸問題。每一階段的迭代次數如表1所示。
表1 Faster-RCNN各階段迭代次數
Tab.1 Number of iterations of each phase of Faster-RCNN

訓練階段網絡迭代次數1RPN40 0001Fast-RCNN20 0002RPN40 0002Fast-RCNN20 000
3.2.1 確定初始輪廓曲線
因為在水平集算法中,活動輪廓只能根據符號進行單向演變,而初始化曲線必須全包圍目標區域或者位于目標區域外部[16]。本文采用了Faster-RCNN網絡模型測試出來的結果來確定建筑物的初始輪廓曲線,在這一步驟中提高了Level-Set算法的精度。
3.2.2 自適應控制水平集演化
由于距離保持水平集的中值是固定值,這將導致零水平集在捕捉目標輪廓和不發生邊界泄漏兩方面無法兼顧。自適應控制演化停止距離保持水平集方法的迭代次數是固定值,如果設定的迭代次數偏少時,圖像將出現還沒有分割完成但是迭代就已經停止,不能達到對目標的合理分割效果; 當設定的迭代次數較多時,對目標的分割已經完成,但是零水平集卻還在進行冗余的演化,等于增加了程序運行的時間成本。本文提出的解決方法是檢測相鄰 10 個的初始輪廓曲線對應的系數值,假設這 10個值的方差小于某一設定的閾值,則迭代停止。
3.2.3 結合Level-Set算法實現圖像精細化分割
從圖4可以看出,利用Faster-RCNN分割出的建筑物還有一些小的瑕疵,過擬合、識別率低、無法精確到輪廓、有一小塊區域建筑物部分,在分割的時候漏掉了。因此,本文結合Level-Set法,對前文利用Faster-RCNN分割出的建筑物輪廓再次進行精細分割。具體步驟如下:
(1)選取適量的輪廓進行測試,確定收斂所需要的迭代次數以及能量參數。
(2)將初試區域信息保存到表格中,按行分類,方便批量讀取。
(3)編寫批處理程序,每次循環讀取表格中一個框區域,并根據參數進行收斂,收斂完畢后記錄區域。
(4)完成全部收斂后進行區域合并。

圖4 使用Faster-RCNN網絡模型訓練后的測試結果Fig.4 Test results after training using the Faster-RCNN network model
本文方法在高分遙感影像上進行了多組實驗以驗證其分割效果。
實驗 1 中, 待分割影像是包含部分缺損的建筑物影像,建筑部分被遮擋且圖像受高斯噪聲干擾。 圖5(a)SVM方法由于僅考慮遙感影像自身的像素信息,無法將目標檢測為建筑;圖5(b) K-Means方法對噪聲較敏感,提取了無意義的建筑物邊緣;圖5(c) 方法利用了Faster-RCNN框架下的VGG16模型進行對建筑物的初步識別與提取,圖5(d) 使得輪廓曲線在向目標邊緣運動的同時再利用Level-Set精細分割, 故Faster-RCNN框架與Level-Set算法結合可將被遮蓋的建筑物正確提取出來。實驗1表明: 由于利用Faster-RCNN提取建筑物的初始輪廓,使得本文方法可以更有效分割被遮蓋的目標建筑物,并對噪聲魯棒。


圖5 實驗1:帶有噪聲的遙感部分建筑物缺損影像的分割結果Fig.5 Experiment 1:Segmentation result of building defect image of remote sensing part with noise
實驗 2 中,待分割影像為受樹木陰影遮擋的建筑物。 受背景中部分與目標相近的深色像素影響,圖6(a)SVM方法提取了一些無意義的邊緣; 由于目標被遮擋,圖5(b) K-Means方法僅考慮圖像的本身的像素信息,故無法正確分割出完整的目標建筑物;圖6(c,d)方法集成了由粗到精的遙感影像單類目標識別方法的優點,并且利用Level-Set使得曲線的當前形狀與建筑物輪廓盡量地靠近。故Faster-RCNN網絡模型與Level-Set算法結合可以將建筑物被遮蓋的部分正確分割。實驗 2表明: 本文方法能夠正確分割遙感影像中被樹木陰影遮擋的建筑物。


圖6 實驗2:對受樹木陰影遮擋的建筑物影像提取過程與結果Fig.6 Experiment 2:Image extraction process and results of buildings obscured by trees
實驗3中,待分割圖像建筑物因為光照而產生陰影遮擋,導致建筑物與背景更加難以區分。 圖7(a)SVM方法受到周邊建筑的干擾,無法準確識別每一個建筑;圖7(b)方法也將建筑物的陰影當作目標建筑物的邊緣錯誤地分割;圖7(c,d)方法通過Faster-RCNN識別提取建筑物輪廓,Level-Set再進行精細分割準確的提取目標建筑實驗 3 表明: 本方法能夠有效地分割遙感影像中被遮擋的目標建筑物,受到背景中與目標灰度值近似的像素的影響較小。


圖7 實驗3:待分割目標的建筑物之間緊密連接影像提取過程與結果Fig.7 Experiment 3: The process and results of image extraction with close connection between buildings to be segmented
本文通過對圖像分割中的Level-Set算法以及Faster-RCNN框架下的VGG16的模型進行研究,并給出了這兩者結合之后的建筑物提取模型。利用這兩者算法的結合對高分遙感影像進行了建筑物提取實驗,并與傳統的遙感影像提取方法作比較,結果顯示本文所提出的結合Faster-RCNN框架下的VGG16的模型的Level-Set算法對于高分遙感影像的建筑物提取效果較好,解決了Level-Set算法中圖像分割結果初始輪廓受人為標記框選的影響較大以及Faster-RCNN框架無法精確提取目標輪廓的問題。實驗表明在提取被遮蓋目標建筑物和與背景灰度值相近的取建筑物時,該方法能夠更好地完成對目標的提取分割。能夠實現只需將高分遙感影像數據集輸入到訓練好的網絡模型中,即可提取建筑物的輪廓,具有高效以及精準的特點。