閆利, 李瑤, 謝洪
(武漢大學測繪學院,武漢 430079)
利用三維模型描述和分析地表空間信息被認為是人類掌握地球表面信息最好的方式[1]。建筑物作為城市空間的主要內容,是攝影測量與遙感、計算機視覺等領域研究三維建模的重點對象。目前,獲取建筑物空間信息的方式主要有機載LiDAR技術和車載LiDAR技術。機載LiDAR技術可大范圍獲取建筑物的屋頂信息,但存在缺乏立面信息和屋頂輪廓精度低等缺點,只能重建CityGML標準中由詳實的屋頂結構和簡易墻面構成的LoD2模型[2];車載LiDAR技術能夠獲取豐富的立面細節并構建建筑物立面模型,與機載LiDAR技術形成優勢互補[3]。由詳實的屋頂和立面結構構成的LoD3模型在城市規劃、光照分析、能源需求估計和房價預測等方面有廣泛的應用空間[4],因此研究綜合利用機載與車載LiDAR數據生成建筑物精細模型的方法具有重要的理論和應用價值。
目前,利用機載LiDAR數據生成LoD2建筑物模型的研究已臻于完善[5-7]。Xiong[8]采用模型驅動的方法,將復雜建筑物的屋頂面根據拓撲圖分解為預定義基元庫中的基元分別進行模型重建;Zhou等[9]采用2.5D雙輪廓法,將建筑物屋頂點云數據掃描轉點到二維網格后聚類成超點集,最后構建建筑物的多邊形網格模型。利用車載LiDAR數據提取或重建立面的研究也日趨豐富[10]。楊必勝等[11]基于維數特征等局部幾何特征對掃描點進行粗分類和分割處理后,根據分割面片的語義信息提取出建筑物立面;岑子政[12]提出了一種基于八叉樹的建筑物立面自動建模算法,將點云數據組織到包圍盒中以改善建模效果。目前,綜合利用機載與車載LiDAR數據生成LoD3建筑物模型仍處于剛起步階段。張志超[13]采用半自動的方法配準機載與地面LiDAR數據,之后根據屋頂和立面的形狀語法重建建筑物精細模型;陳焱明[14]首先使用迭代最近點(iterative closest point,ICP)算法初步集成機載與車載LiDAR數據,然后采用基于多尺度格網和結構單元探測的方法重建建筑物屋頂和立面模型,并融合成LoD3模型。這2種方法僅通過重復結構推測窗戶的幾何信息,也沒有重建其他立面細節,不適用于真實表達具有復雜結構的建筑物。
針對立面內容和幾何結構不具備顯著重復特征的復雜建筑物,提出了一種基于數據驅動的重建策略。該策略的主要貢獻有:①在利用地理空間定位資源實現粗配準的基礎上,引入機載與車載LiDAR數據的相互約束,實現了精配準;②提出了立面包圍盒算法,直接定位車載LiDAR數據到對應的建筑物立面,使立面提取簡單、高效化;③通過隨機抽樣一致算法(random sample consensus,RANSAC)剔除車載LiDAR數據“低于”立面的非立面噪聲點,提高了重建結果的正確性;④基于數據驅動的2.5D雙輪廓方法重建建筑物屋頂和立面模型,生成具有窗戶和陽臺等詳實細節的LoD3建筑物模型。
生成城市建筑物LoD3模型的技術流程主要分為3個模塊(如圖1所示),包括:數據預處理模塊、生成LoD2模型模塊和生成LoD3模型模塊。

圖1 本文技術路線
實驗數據為武漢大學科技園某棟建筑物的機載與車載LiDAR數據。機載LiDAR數據使用無人機搭載Velodyne 16線三維激光雷達VLP-16采集,點云密度為623 點/m2;車載LiDAR數據使用RIEGL VZ-400采集,點云密度為95 點/m2。
機載LiDAR數據的預處理包括點云濾波和屋頂面提取2個階段。對不同類型非建筑物點云采用不同的濾波方法,地面點云采用布料模擬濾波(cloth simulation filter,CSF)濾除[15]; 植被和噪聲點采用機器學習方法剔除[16]。點云濾波后,通過基于歐氏距離的區域增長分割點云數據,提取單個建筑物屋頂面。車載LiDAR數據的預處理只需要采用CSF濾波器剔除地面點。數據預處理的最終目的就是為了獲取配準好的建筑物點云數據,并剔除植被、地面和噪聲點。實驗數據經預處理后結果如圖2所示。

(a) 機載LiDAR數據 (b) 車載LiDAR數據
1.2.1 降采樣
提取屋頂面片點云數據后,首先使用2.5D雙輪廓法生成只包含建筑物屋頂信息的LoD2模型。采用該方法需要保證點云數據的2.5D特性,即點云呈水平分布,沿豎直方向投影沒有重疊。真實環境得到的掃描數據密度較高且通常不具備2.5D特性,直接使用原始數據處理效率較低,也不能得到理想的LoD2模型。因此,在生成模型前需要對屋頂面片點云數據在高程方向降采樣。在一定范圍內建立單位邊長為ds的水平格網后,將點云數據投影到網格中并刪除冗余點,使每個單位網格內只保留一個最高點,最終得到2.5D點云。
1.2.2 生成屋頂面模型
采用2.5D雙輪廓方法得到LoD2模型,需要經過3個主要步驟。
首先,將2.5D點云投影到支持四叉樹操作的規則2D格網中進行掃描轉換,網格邊長設為dh。在每個格網點通過平均4個最鄰近點高程和法線,生成表面Hermite插值點表示局部區域的幾何特征;在連接不同屋頂圖層的網格邊上用2D支持向量機將點云數據分割到不同圖層,估計出邊緣Hermite插值點。
其次,使用融合聚類算法自適應生成幾何結構。通過最小化2.5D二次誤差方程式E(χ),在每個四叉樹結點由Hermite點計算得到由水平坐標相等、高程等于對應Hermite點的點列{x0,x1,…,xk},即{x,y,z1,…,zk}組成的超點χ,其表達式為
(1)
x0={x,y,0}
(2)
xi={x,y,zi}
(3)
式中:B表示邊界Hermite插值點;Si表示圖層i的表面Hermite插值點;p和n分別表示Hermite點坐標和法線;w為權重。
考慮到建筑物的平面特征,對過于破碎化的超點通過子樹合并的方法進行幾何簡化,從而得到新的超點。
最后,將相鄰超點兩兩相連,生成屋頂表面的三角網模型,并將三角網邊緣的相鄰超點連線投影至地面作為立面墻體,最終生成用三角網表示的LoD2建筑物模型。
1.2.3 邊緣規則化
2.5D雙輪廓方法完全基于數據驅動,沒有預設建筑物形狀的先驗信息,由此生成的三角網外輪廓線過于破碎化,不能反映建筑物墻體的真實結構??紤]到城市建筑物的規則幾何結構,通過3個主要步驟調整建筑物輪廓:①提取輪廓線,從生成的立面墻體結構中依序提取所有角點,組成若干條輪廓線,將輪廓線投影到水平面;②利用道格拉斯—普克算法[17]平滑輪廓線,得到輪廓線壓縮后的新角點;③根據新角點與原角點的對應關系,調整建筑物輪廓線,得到規則化的LoD2建筑物模型,結果如圖3所示。

圖3 規則化后的屋頂三角網模型
粗配準得到的車載和機載LiDAR數據仍然存在較大的系統誤差,不能直接用于LoD3模型的生成。通過引入幾何約束,使車載和機載LiDAR數據較好地吻合。
1.3.1 立面包圍盒算法
由圖2(b)可見,真實環境中車載LiDAR技術獲取的建筑物信息不僅包括在水平方向環繞建筑物的墻體,還有門窗、室內結構和陽臺等豐富的細節。門窗一般可視為墻體的內嵌構件,其水平投影和建筑物輪廓線重疊,從門窗結構處獲取到的點云一般“低于”墻體結構。室內結構位于建筑物內側,一般依附于門窗結構,其點云數據整體呈不規則分布。從門窗和室內結構獲取到的點云數據視為冗余點。陽臺等其他豐富細節可視為墻體的凸出構件,是LoD3模型的重要組成部分。為了保留立面的豐富信息,并使算法具有較好的魯棒性,提出了一種立面包圍盒算法。
基于1.2節規則化后的LoD2模型,立面包圍盒算法對模型每一個立面分別進行處理。LoD2模型的立面是1個底邊水平、2條側邊豎直的四邊形,立面信息都依附在這個四邊形上。以該四邊形作為基準面沿立面法線方向分別偏移-db和db的距離,通過這種方式獲得的四棱柱稱為立面包圍盒。立面包圍盒中偏移距離為db的四邊形與立面之間的四棱柱空間稱為“高出”立面部分,剩余部分稱為“低于”立面部分。遍歷車載點云數據,所有空間位置在包圍盒內的點云視為定位到立面上的點云。將包圍盒沿基準面底邊向建筑物內側旋轉90°,得到和屋頂點云數據一樣呈水平分布的立面點云數據。
1.3.2 生成立面模型
定位到立面上的點云包含豐富的立面信息,其中墻體是最重要的內容。墻體能反映建筑物的輪廓特征,是其他立面信息的依附,也是車載和機載LiDAR數據精配準的關鍵。墻體本身也可能有復雜的結構,通常呈現為平面的組合結構,其中面積最大的墻體稱之為主墻體,其余墻體均可以視為依附于主墻體的平面。提取主墻體的主要步驟為:①遍歷立面包圍盒點云,用RANSAC算法提取所有平面;②計算平面法向量,剔除法向量不水平的平面;③計算平面面積,面積最大的平面視為候選主墻體;④剔除低于主墻體的冗余點,其平面距離閾值設為hw。之后,將主墻體視為2.5D雙輪廓法中的水平地面,生成定位到立面點云的LoD2模型。該LoD2模型呈水平方向,將其逆旋轉至豎直方向。
1.3.3 模型融合
機載與車載LiDAR數據生成的LoD2模型不能完全吻合,存在一定的誤差。通常機載LiDAR數據更能反映建筑物的整體輪廓,而車載LiDAR數據的水平精度更高,因此進一步引入兩者的相互約束,計算2種數據生成的立面之間的旋轉角度和位移距離。若均小于閾值θ和df,調整車載數據三角網模型的外輪廓點到屋頂LoD2模型立面的輪廓線上,使模型緊密貼合;否則,將屋頂LoD2模型的立面水平旋轉或平移,使其與車載LiDAR數據生成的LoD2模型立面重合,重復進行立面包圍盒算法,最終生成精配準的LoD3模型。
實驗中所設置的部分參數如表1所示。

表1 實驗部分參數設置
基于機載與車載LiDAR數據,通過本文方法LoD3建筑物模擬重建結果及其實景影像如圖4所示。

(a) 屋頂影像 (b) 立面影像 (c) LoD3建筑物模型
實驗結果表明,通過本文方法重建的建筑物模型能夠較詳實地反映建筑物的真實形態。由圖4可知,本文方法可以生成陽臺(A)、窗戶(B)和屋頂(C)的幾何模型。異源數據生成的屋頂和立面緊密貼合,沒有出現錯位的現象,實現了機載和車載LiDAR數據的精配準。
根據剔除冗余點后的原始點云到模型表面的平均距離評定模型的幾何精度,其中車載LiDAR數據到模型表面的平均距離為0.02 m,機載LiDAR數據到模型表面的平均距離為0.04 m。定量分析表明,本文方法重建的建筑物模型具有可靠的幾何精度。但是,由于本文方法完全基于數據驅動,建模結果對數據質量比較敏感。如圖4(c)中D處是由于遮擋造成的模型空洞,E處是由于窗戶反射、噪聲等原因造成的模型異常。但這些問題都可以通過提高數據質量解決。
本文提出一種融合機載和車載LiDAR數據生成LoD3建筑物模型的策略,實現了城市建筑物的自動化建模。該方法采取數據驅動的策略,通過融合聚類的方法生成能夠表達建筑物幾何結構的特征點,并將特征點構建成三角網模型,使模型能夠詳實反映屋頂、門窗和陽臺等建筑物要素的真實形態。
提出的立面包圍盒算法,快速建立了車載LiDAR數據和建筑物立面之間的關系。通過引入機載和車載LiDAR數據的相互約束進行精配準,既加快了重建速度,也使屋頂和立面模型能夠緊密貼合,最終生成具有較高重建精度的LoD3建筑物模型。
但是由于缺乏語義信息,難以從模型中提取出門窗等立面細節進行后續處理,也難以將門窗形成的立面空洞與遮擋形成的數據缺失加以區分,對建筑物模型的質量優化和模型分析尚有很大桎梏。后續研究中將引入建筑物各要素的語義信息,進一步改善模型質量。