陳 彪,彭欣月,周素紅,陳家亮,孔憲娟,卞明月,林高遠
(1.奧格科技股份有限公司,廣州510000;2.中山大學 地理科學與規劃學院,廣州510275)
中國農村地域遼闊,建筑物作為典型的地物要素,是農村生活空間的主體,同時也是鄉村振興用地的重要保障之一(徐濤 等,2022)。此外,農村建筑物的三維場景一張圖是鄉村信息化建設的重要數據之一,通過對農村建筑物識別可有效分析當前農村的密集程度和土地利用率(古杰 等,2013;王利忠 等,2019),同時對優化鄉村發展布局、促進鄉村振興實施具有重要的現實意義。但現階段農村房屋數據較為稀缺,如何快速、準確地構建農村三維建筑模型是鄉村信息化建設的首要內容。
早期三維建筑建模依靠人機交互,在二維矢量數據的基礎上,利用3dsMAX、CAD等軟件手動構建建筑物三維模型(謝小魁 等,2016;單杰 等,2019)。該方式模型精度高,但存在建模成本高、耗時長、覆蓋范圍小、真實紋理采集困難等問題,無法滿足大范圍快速建模的需要(張春敏 等,2018;張俊輝 等,2020)。隨著傾斜攝影技術的廣泛應用,自動化三維建筑建模取得很大進展。也有研究結合航空立體像對與3dsMAX軟件完成了三維建模以及紋理映射(程慧,2013;李德仁 等,2015;文雄飛 等,2016;張春敏 等,2018)。陳良超等(2018)提出一種基于底面紋理的傾斜攝影模型動態單體化方法。周曉敏等(2016)采用傾斜影像聯合空中三角測量技術,通過多視影像密集匹配和自動紋理關聯,實現城市高精度真三維模型的構建。傾斜攝影技術為三維模型領域帶來新的方法,但該類方法計算過程復雜且對數據質量具有較高的要求,所構建的三維模型在近地面時常存在紋理模糊、丟失、扭曲形變等問題,無法還原精細、完整的真實建筑物的空間信息(王琦 等,2012;張茂正 等,2022)。此外,建筑單體化還需進行二次操作(包括建筑結構重建與紋理貼圖),耗時更長。
近年來,高分辨率衛星的飛速發展,為地物識別分析提供更豐富的途徑和資源(王艷陽 等,2020)。高分辨率衛星數據集空間分辨率高,地物邊界、形狀和紋理也更加清晰,足以支撐對目標地物的識別,且覆蓋范圍大、采集周期較短、成本相對較低、受氣象條件影響較小,使得利用高分辨率衛星影像快速制作大范圍三維建筑物模型成為現實(陳良超 等,2018)。如曹治國等(2006)利用IKONOS衛星立體像對實現城市場景的快速三維重建。龍北平等(2021)基于無人機遙感影像利用遷移學習法實現鄉村建筑物的快速檢測,并結合參數化建模方法完成鄉村區域建筑物的三維模型重建。為了更好地滿足精細化實景三維建模的需求,基于多源數據融合的三維建模成為主流研究方向。目前,常見的融合建模方法主要結合航空攝影技術與LiDAR或地面近景攝影技術(連蓉 等,2017)。如張俊輝等(2020)利用WorldView-3 衛星、Geo-Eye-1 衛星影像和互聯網眾源影像完成迪拜市建筑物單體化建模。孫保燕等(2019)融合航攝影像與地面照片重建桂林市靖江王陵的三維模型。Yu 等(2021)利用深度學習從航空影像中提取建筑輪廓并構建一級細節(LOD1)模型。上述研究中,最優紋理的挑選與映射仍是三維重建需攻克的關鍵技術。大多數研究方法均圍繞城市三維建模展開,鮮少有針對農村地區三維建筑建模的一套完整方案。若直接將城市三維建模方法應用在農村地區,會存在投資成本高、維護周期長等問題。
鑒于此,本文提出一種基于多源數據融合的農村建筑智能識別與三維建模方法,基于高分遙感影像識別建筑的輪廓,形成基礎白模,然后依靠現場采集人員利用手機設備完善模型細節,最后提供多端設備及三維技術展示建模成果。并以廣東省云浮市新興縣河村單體建筑為建模對象,采集建立了村莊的精細化三維建筑模型,以期實現鄉村精細化的管理。
在農村地區,眾包建模在資金投入方面顯然比傾斜攝影等建模方法更具成本優勢,但眾包建模往往需要在操作流程上簡單易用,以便公眾參與。本文提出的基于多源數據融合的農村建筑智能識別與三維建模方法,分為粗模生成和深化建模2個階段。在粗模生成階段,基于高分辨率遙感影像利用深度學習算法初步勾勒建筑基本形態,包括位置、尺寸及方位;為解決由模型精度不高引起的建筑輪廓畸形等問題,提出建筑輪廓正則化算法和自適應的建筑校正算法;融合農村的建筑高度信息則可拉伸成基礎三維白模。在深化建模階段,現場采集人員在基礎白模的基礎上,通過模型替換、尺寸調整、紋理貼圖等方式,逐步深化為精細化的三維建筑模型。最后,通過自動化的三維模型融合技術形成完整的農村電子沙盤,支撐智慧農村建設的各項應用。總體技術流程如圖1所示。

圖1 農村建筑建模總體技術流程Fig.1 Overall technical flow of rural building modeling
基于深度學習的建筑目標提取已被證明比傳統的方法更有效(Bittner et al., 2018;胡舒 等,2020),其中,Mask R_CNN 算法(He et al., 2017;陸清嶼 等,2021)在建筑物識別方面表現出魯棒性,因此,利用Mask R_CNN算法實現建筑物的自動識別,其技術路線如圖2所示,主要分為模型訓練和模型測試2個階段。首先,從影像數據截取建筑物遙感影像建立樣本訓練集,利用LabelMe標注工具標記出遙感影像中建筑物的輪廓;然后,將訓練集輸入到Mask R_CNN網絡架構中,經過多次迭代得到最優的建筑目標識別模型。Mask R_CNN能同時分割出建筑與背景部分,對于每一個建筑都能產生與原圖相同大小的分割掩膜。

圖2 建筑物目標識別技術路線Fig.2 The technology route of building object recognition
基于Mask R_CNN算法的建筑物目標識別方法步驟為:首先,將裁剪好的遙感影像輸入到預訓練好的神經網絡(卷積層1)中進行卷積、池化,得到對應的特征圖(圖3);接著,對特征圖的每個像素設定固定的感興趣區域(ROI)數量,從而獲得多個候選ROI;然后,將候選ROI輸入至區域建議網絡(RPN)進行前景(建筑物)和背景分割以及邊界框優化,精煉出前景得分最高的ROI;下一步,將精煉后的ROI 進行ROI Align 操作,使得特征圖像素能與原圖像素完全對齊;最后對ROI通過卷積層2進行建筑分類、邊框回歸和建筑掩膜生成。

圖3 Mask R_CNN算法的核心網絡結構Fig.3 The core network structure of the Mask R_CNN algorithm
建筑物目標識別模型輸出的結果為掩膜圖像,而粗模生成需得到建筑的底部輪廓,因此需要從掩膜圖像中提取建筑外輪廓,并對建筑輪廓正則化。本文結合Ostu算法(Ostu, 2007;宋森森 等,2019)對掩膜圖像進行閾值分割并提取建筑外輪廓。Ostu算法原理是根據直方圖確定閾值將灰度圖像分割成目標和背景2部分,使得目標與背景的類間距離最大。結合k-means 聚類算法,建筑輪廓提取與正則化步驟為:
1)輸入掩膜圖像,利用Ostu 算法進行分割,取9×9 的內核執行2 次開運算,平滑圖像邊緣、消除細狹縫、截斷細連通;
2)提取分割后的幾何輪廓,得到多個輪廓多邊形Pi(i= 1,2,...,n);
3) 計算圖像中每個多邊形的面積APi(i=1,2,...,n),如果APi值在十分位數以下則直接刪除;利用k-means聚類算法對APi進行分類,將聚類集合中數量少且面積過小的多邊形刪除;

5)利用Douglas-Peucker 算法對Pi進行優化,減少建筑輪廓中重復或過于密集的點,并以最終的優化結果為建筑輪廓。
通常,由于影像分辨率、樹木遮擋、算法識別精度等影響因素,識別的建筑輪廓并不能完美匹配真實情況,會出現多個建筑識別為一個建筑、建筑方位抖動、建筑邊角缺失等問題。考慮到農村建筑一般具有尺寸和方位的一致性,提出自適應的模型校正方法,對建筑大小和方位施加約束。
1.3.1 建筑分割 遙感影像中的農村地區成片建筑在尺寸和風格上基本一致且布局緊密,如圖4-a 所示。但受樹木、地面等干擾物的影響,或因相鄰建筑分布緊密、建筑物目標識別模型精度不足等,掩膜圖像會存在較小或很大的建筑輪廓。通過計算掩膜面積發現:一定區域范圍的建筑面積呈近似正態分布。因此,可利用正態分布閾值控制方法對識別后的建筑大小進行校正。

圖4 建筑掩膜面積正態分布驗證 [a.原始遙感建筑影像;b.建筑掩膜圖像;c.掩膜像素面積計算;d.原始影像與掩膜像素面積疊加圖;e.掩膜面積直方圖及正態曲線;f.根據正態分布閾值控制刪除的建筑(紅色線框)]Fig.4 Verification of normal distribution of building mask area[a.Original remote sensing building image; b.building mask image;c.calculation of mask pixel area; d.overlay of original image and mask pixel area; e.mask area histogram and normal curve;f.controlled deletion of buildings according to normal distribution threshold (red frame)]
假設目標區域內有n個建筑,且所有的建筑像素面積AM={A1,A2,...,Am,...,An}可用正態分布表示:
式中:Aμ為區域內建筑像素面積的均值;Aσ為區域內建筑像素面積的標準差。
如果第m個建筑像素面積Am(m=1,2,...,n) 在 區 間(Aμ-Aσ*λ1,Aμ+Aσ*λ2)內,則不做處理;其中,λ1、λ2為正態分布閾值控制參數。如果Am<Aμ-Aσ*λ1,則將該建筑剔除;如果Am>Aμ+Aσ*λ2,則將該建筑分割為面積較小的2個建筑。
1.3.2 建筑旋轉 由于建筑一般為成片修建,所以相鄰的建筑朝向應該是一致的。建筑分割后,對其進行方位矯正,具體步驟如下為:
1)遍歷目標區域內所有建筑,計算第j(j=1,2,...,n)個建筑的底面面積Aj;


4)比較dkj與R的大小,如果dkj≤R,則將此相鄰建筑記入集合S,集合S包括第j個建筑;
5)設建筑輪廓的長底邊為標準,計算集合S中所有建筑房屋朝向,并將結果記入集合ε={εj,εk,...,εn}。
6)對集合ε中的元素按一定的角度閾值進行聚類,若相近角度的建筑數量超過一定閾值,則認為該片區建筑呈現相同的建筑朝向,并對這些建筑進行旋轉,使該緩沖區內的建筑旋轉角度一致。
構造實體幾何(CSG)的基本思想是通過對基本CSG 體素如球、圓柱體、立方體等進行幾何變換、局部修改和布爾運算構造空間實體(隋剛 等,2003)。該方法建模速度快,對農村地區簡單型建筑模型的適配性較強,可用于本文建筑模型庫的構建。
建筑物CSG 建模流程包括2 個部分:1)分析三維建筑模型的基本CSG體素;2)對基本CSG體素進行空間幾何變換和布爾運算構建三維建筑模型。如圖5所示,構建過程為:首先,根據測量的長寬高確定房屋最大外輪廓(M1)、陽臺輪廓(M2)以及第一層平臺輪廓(M3);然后,利用差運算(?):M1?M2?M3,最后得到二層全敞開式陽臺型房屋模型。

圖5 二層全敞開式陽臺型建筑構造過程Fig.5 Construction process of two-floor fully open balcony type building
同理,利用CSG 對不同的屋頂樣式進行構造,如帶女兒墻的平屋頂、人字形屋頂,步驟見表1。

表1 基本屋頂模型生成算法Table 1 Basic Roof Model Generation Algorithm
分別建立建筑數據庫,包括場景表(scene表)、建筑單體信息表(building 表)、建筑模型模板表(template表)和建筑紋理表(texture表),如圖6所示。scene表是以村或其他區域為單元,方便數據對接和業務管理。building 表和texture 表分別存儲遙感影像識別建立的建筑數據及紋理數據。template表存儲CSG 三維建模模版,通過傳遞對應參數可生成三維模型。需要注意的是,CSG引擎生成的模型并不一定能直接用于紋理貼圖,會出現錯亂等問題,可通過頂點關系和參數重新計算UV 及補充頂點。

圖6 建筑數據組織Fig.6 Building data organization
本文以廣東省云浮市新興縣河村為研究區域,該地區建筑既保留原始農村風貌,又有不少新式建筑,單體面積小,樓高一般不超過3層。基于必應影像數據識別建筑物,并以手機攝影圖像作為建筑立面紋理,采用眾包的方式實現河村地區的三維建筑重建。
2.1.1 基于遙感影像識別建筑物 采用Mask R_CNN 建筑目標識別模型,在必應影像地圖上截取大量建筑數據集,圖片數據包括中國各大城鄉建筑樣式,具有形狀、樣式、光譜特征等內容多樣化的特點,能滿足模型訓練的需要。為了更好地評估模型,將數據集按照8∶2劃分訓練集和驗證集。訓練集用于模型算法訓練,共800 張。測試集共200張用于測試模型的性能。數據集的樣例見圖7。

圖7 建筑樣本示例Fig.7 Building sample example
精度分析方面,采用精度(Accuracy Precision, AP)指標及交并比(Intersection over Union,IoU)進行評估,結果表明:要求交并比為AP50時,模型精度為0.578;AP60時,模型精度為0.443;AP70時,模 型 精 度 為0.298;其 中,AP50、AP60、AP70分別表示交并比(Intersection over Union,IoU①*IoU = Area of Overlap Area of Union,表示檢測結果掩膜與直值掩膜之間的重疊程度,其中Area of Overlap為檢測掩膜與直值掩膜的交集,Area of Union為檢測掩膜與真值掩膜的并集,通常情況下,當IoU ≥50%時即認為檢測成功。)在50%、60%和70%時的識別精度。
為了展示模型的分割效果,從測試集中隨機挑選4個樣本圖像,包括均勻分布型建筑、疏松型建筑和密集型建筑,從不同角度且密集度較高的建筑物圖片展示實驗結果,如圖8所示。
從圖8 可知,模型識別精度與建筑物的形態、布局、清晰度高度相關,當建筑物形態規則且分布整齊時,模型識別精度高,檢測效果良好,如圖8-c2和d2所示,而當建筑物呈密集式分布,輪廓清晰度低,人眼也難以分辨時,模型識別精度較低,檢測難度也更大,如圖8-a2 和b2 所示。在圖8-b 中,圖像背景噪音也是影響識別精度的因素之一。

圖8 不同密集程度建筑物識別與輪廓提取結果Fig.8 The results of building recognition and contour extraction with different degrees of density
2.1.2 生成基礎白模 建筑輪廓提取后,根據先驗知識自定義建筑初始高度拉伸成基礎三維白模,如河村地區的建筑多為2~3層,高度約為7~10 m,可將白模統一高度初始設置為10 m,為鄉村管理和鄉村規劃提供基礎數據。若存在無法識別或需補充的建筑,可通過手工操作補充添加。
2.2.1 建立農村建筑模型庫 上述基礎白模可用于初步認識該地區的建筑分布及簡單的農村信息化管理。但模型精細度不足以反映河村的真實場景,因此可在基礎白模上繼續深化建模。調研人員預先對河村地區建筑進行摸底調查,對該地區的建筑類型進行分析整理,利用CSG 方法構建河村建筑模型庫,最大程度地還原當地建筑風格,部分模型如圖9 所示,包括老式建筑、新式建筑、附屬類建筑和公共設施等多套模型。

圖9 河村建筑模型庫Fig.9 Building model library of He Village
此外,考慮到農村地區建筑類型多樣性以及屋頂樣式復雜化,分別從建筑類型、樓層、屋頂和騎樓風格4個維度對建筑模型進行分類,各維度的下級內容如表2 所示,能夠覆蓋實驗區域河村的90%建筑風格類型。用戶可通過層數、屋頂樣式等快速過濾篩選,定位到目標建筑模型,如圖10所示。為了滿足后續的紋理貼圖、模型尺寸調整等建模步驟,建立CSG模型時采用按層、按模塊(如屋頂模塊、陽臺模塊等)的組合方式,并具備單面選擇和參數化修改的能力。

表2 建筑庫模型分類Table 2 Classification of building library models

圖10 建筑庫模型快速檢索Fig.10 Fast retrieval of building library models
2.2.2 建筑尺寸調整 外業采集人員根據現場情況將基礎白模替換為基于CSG的精細化模型,此時的模型尺寸為模板尺寸,故需根據測量結果重新生成。外業人員借助外部測量工具,如步數測量、卷尺,可得到農村建筑層長寬高尺寸,接著可在手機端上應用測量結果實現建筑模型尺寸調整,具體操作如圖11所示。圖11-a為原模型展示,圖11-b效果圖為模板模型的尺寸示意圖,指明CSG構造時可調整的參數。采集人員根據現場測量結果輸入對應的參數,如建筑每一層的長寬高及陽臺的長寬高,最后利用CSG的參數化構造技術實時生成調整尺寸后的模型,在圖11-a1展示。

圖11 三層筒子樓模型尺寸調整示例Fig.11 An example of model size adjustment of a three-floor bungalow
2.2.3 建筑紋理貼圖 為了進一步還原真實場景,需對建筑模型賦予紋理信息。為提升作業效率,預設樣本紋理庫,包括標準紋理庫和樣本紋理庫。標準紋理庫是指地面、墻、欄桿、廊檐等無明顯差異特征的紋理庫,用于重復鋪滿某個建筑表面;樣本紋理庫是指具備一定普適性的、多要素疊合的建筑立面,如農村房屋側面帶窗戶的墻面,用于單張鋪滿某個建筑表面。房屋正面具備較強的識別特征,如門、窗、對聯、店面等均具有區域特征,宜采用手機拍攝的方式采集補充。由于CSG建模已采用分層、分模塊的方式,故手機拍攝時也應逐層、逐模塊補充紋理信息,以此實現最佳的建模效果。此外,拍攝得到的照片將保存到紋理庫中,方便后續紋理復用,提高效率。
利用手機拍攝時具有一定局限,如因拍攝不便造成的拍攝不正或拍攝不全。因此需通過裁剪、拼接及校正等操作形成正射立面紋理圖像。圖12為某個建筑第一層的立面紋理獲取流程,首先,分別對3張采集照片圖12-a~c裁剪出對應的紋理圖像區域,裁剪范圍如圖12-a1~c1所示,然后,利用透視變換算法將其拉伸矯正。最后將裁剪后的紋理圖像進行拼接,形成正射建筑立面紋理圖像,如圖12-d 所示,通過這種方式得到的建筑紋理真實感較強。紋理拼接完成后,通過紋理映射技術將圖12-d所示的紋理圖像賦予三維模型對應的表面,形成帶豐富立面紋理風格的三維建筑模型,結果如圖13所示。

圖12 圖像裁剪與拼接Fig.12 Image cropping and stitching

圖13 紋理貼圖Fig.13 Texture mapping
2.2.4 模型深化 根據上述步驟構建精細化模型后,在單獨瀏覽的情況下比較順暢,但在大范圍模型展示時則會出現卡頓現象,不利于全場景的展示和應用。基于此,本文提出模型優化策略,利用三維輕量化技術從模型優化、紋理治理、多級LOD等方面提升渲染性能,同時結合地形高程數據進行貼地融合,最終滿足在手機端順暢瀏覽的需求。最終效果如圖14所示。

圖14 云浮市新興縣河村三維建筑模型Fig.14 3D building model of Hecun Village, Xinxing County, Yunfu City
針對現階段農村房屋數據較為稀缺,鄉村信息化建設不足等現狀,本文將高分辨率遙感影像與手機拍攝圖像相結合,通過粗模生成和深化建模2個階段實現三維建筑建模。在粗模生成過程中,利用Mask R_CNN算法基于高分辨率遙感影像識別建筑物,生成基礎白模,勾勒建筑基本形態,包括位置、尺寸和方位,并提出了建筑輪廓正則化算法和自適應的建筑校正算法提高模型精度。在深化建模過程中,現場采集人員通過模型替換、尺寸調整、紋理映射等操作,逐步深化為精細化的三維建筑模型。最后,通過自動化的三維模型融合技術形成多端可訪問的農村電子沙盤,支撐智慧農村建設的各項應用。并結合實地調研,實現廣東省云浮市新興縣河村的三維建筑模型重建。與手工建模和傾斜攝影建模方法(謝小魁 等,2016;張春敏 等,2018;單杰 等,2019))相比,在數據獲取方面更加便捷,可實現眾包建模,節省了大量人力物力,具有采集成本低、更新周期短、簡單易用等優點,對推進農村建筑智能化建模具有較強的實用價值及良好的應用前景。
當前本文所述農村智能建模方法還有一些需要改進和深化的地方:①對于遙感影像數據質量差和建筑分布密集的地區,模型識別精度還有待提高;②建筑的準確定位和方位比較難以把控,需補充完善策略幫助現場采集人員進行精準定位;③需建立一個能覆蓋大范圍地區的農村建筑模型庫;④建筑立面紋理提取過程較為復雜,需要提高自動化能力。