周嘉俊,李勇,何明,劉凌杰
(河海大學 地球科學與工程學院,南京 210098)
隨著社會信息化步伐的加快,三維建筑物模型作為數(shù)字城市的重要組成部分應用于生活的各個方面,然而城市中建筑物復雜多變,給整個城市的三維重建帶來了困難。激光雷達(airborne light detection and ranging,LiDAR)能快速獲取大范圍區(qū)域表面采樣點的三維空間數(shù)據(jù),因此激光點云成為獲取三維建筑物模型的重要數(shù)據(jù)源[1]。目前,國內(nèi)外很多學者對利用激光點云進行建筑物的重建進行了大量的研究。Chen等[2]利用隨機抽樣一致性(random sampling consensus,RANSAC)算法對屋頂面片進行分割,然后利用基于泰森多邊形的方法進行建筑物輪廓線的提取,從而完成建筑物的重建。Cheng等[3]通過屋頂特征直線的“分裂-合并”生成閉合的建筑物多邊形,再用RANSAC算法擬合出建筑物表面。但是上述兩篇文章都沒有針對特定建筑物進行RANSAC算法優(yōu)化,計算速度相對較慢。羅勝等[4]提出一種利用建筑物數(shù)據(jù)集與區(qū)域等級關(guān)系來保證多層建筑物屋頂輪廓一致的建筑物三維重建算法。但是無法完全消除相鄰輪廓的規(guī)則化誤差。周平華等[5]結(jié)合聯(lián)通分析和平面生長提取建筑物的外輪廓,再輔以人工完成階躍線的提取,從而完成建筑物的重建。但是人工的參與降低了自動化程度。Zheng等[6]使用模型驅(qū)動的方法,利用決策樹將建筑物分類,使用靜態(tài)力矩方程提取建筑物參數(shù),完成建筑物重建。但是模型驅(qū)動使得重建依賴于模型庫。
由于多層次建筑物在城市中普遍存在,且面片和輪廓線的提取算法仍舊有改進空間。本文針對此類建筑物的三維重建進行探討,提出了一種此類建筑物的自動化重建方法,主要包含3個主要步驟:激光點云面片分割、輪廓線提取、輪廓線關(guān)鍵點提取與規(guī)則化。
RANSAC算法主要是用于從包含異常數(shù)據(jù)的樣本中提取有效樣本。由于RANSAC算法具有良好的魯棒性,能精確識別正確的樣本,從而廣泛應用于點云面片的分割。李云帆等[7]利用結(jié)合高程差和坡度的三角形區(qū)域生長法對建筑物層次進行分解,提高RANSAC算法種子點選取的準確性,并提出了自動調(diào)節(jié)算法中關(guān)鍵參數(shù)的RANSAC算法。傳統(tǒng)的RANSAC算法在點云面片分割處理上的基本思想是:①設(shè)建筑物點集為S,距離閾值為Tdis,最小內(nèi)點數(shù)為TintP,迭代次數(shù)為K。②在點集S中隨機選取3個點Pseed作為種子點,利用種子點構(gòu)建平面模型M。③計算建筑物點集S中每個點到平面模型M的距離D,若D 盡管RANSAC算法能很好地分割建筑物點云,然而當建筑物點集數(shù)量較大時,計算速度將會快速下降。由于多層次平頂建筑物具有點云面片是水平的、點云面片之間具有一定高程差的特點,提出一種優(yōu)化的RANSAC算法以提高處理效率?;舅枷胧牵孩僭O(shè)建筑物點集為S,距離閾值為Tdis,最小內(nèi)點數(shù)為TintP,迭代次數(shù)為K,高程差閾值為Hdif。②在點集S中隨機選取3個點Pseed作為種子點,若3個點構(gòu)成的平面與XOY平面的角度差小于5°,則用這些種子點構(gòu)建平面模型M,否則重新選取種子點(由于3個種子點構(gòu)成的平面與XOY平面角度差小于5°,因此類似于墻面點構(gòu)成的垂直于XOY的平面將不會被分割出來,從而達到剔除墻面點的目的)。③計算建筑物點集S中每個點到平面模型M的距離D,若D 針對多層次平頂建筑物優(yōu)化的RANSAC算法在種子點的選取階段進行了篩選,需要種子點構(gòu)成的平面與XOY平面大致平行,從而不會分割垂直于XOY方向的平面,以達到提高算法效率、剔除墻面點的目的;優(yōu)化的RANSAC算法避免了求出最大點云面片后,從總的點集中刪除此面片重新迭代的過程,因此,優(yōu)化后的RANSAC算法在此類建筑物點云面片分割的執(zhí)行效率上具有顯著提升。兩組點云數(shù)據(jù)在傳統(tǒng)RANSAC算法以及優(yōu)化的RANSAC算法下激光點云面片分割的時間如表1所示,面片分割效果如圖1所示。 表1 RANSAC算法點云面片分割效率 圖1 屋頂面片分割結(jié)果 從圖1(b)、圖1(c)可以發(fā)現(xiàn),傳統(tǒng)的RANSAC算法會錯誤的將點數(shù)量大于最小內(nèi)點數(shù)的墻面點分割為一個平面,而優(yōu)化的RANSAC算法則能夠很好地避免這個問題。 激光雷達點云數(shù)據(jù)是不規(guī)則的離散三維空間數(shù)據(jù)點,可以通過構(gòu)建不規(guī)則三角網(wǎng)(triangulated irregular network,TIN)表達點之間的空間關(guān)系。李樂林等[8]利用建筑物等高線匹配提取建筑物的外部輪廓線。李云帆[9]等提出雙閾值A(chǔ)lpha Shapes算法提取建筑物輪廓點。經(jīng)過點云面片分割操作后,建筑物激光點云去除了墻面點;不同層次的激光點云被分割為不同的面片。分別為不同層次的點云面片進行Delaunay三角剖分,生成的TIN如圖2(a)所示。從圖2(a)中能看出,點云面片中間部分構(gòu)成三角網(wǎng)的邊都是兩個三角形的邊,即兩個三角形的公共邊,而位于建筑物邊緣的邊僅是一個三角形的邊。鑒于上述的特性,可以通過判斷構(gòu)成三角網(wǎng)的所有邊是否是公共邊,從而提取出包含輪廓點的邊,就能得到所有的輪廓點,如圖2(b)所示。 基于上述排序步驟后,可在程序中生成輪廓線,如圖2(c)所示。 圖2 輪廓線提取 經(jīng)過上面的處理后,得到的輪廓線是不規(guī)則的輪廓線,需要對輪廓線進行進一步處理,從而得到建筑的最終輪廓。主要包括:輪廓線關(guān)鍵點的提取、輪廓線的規(guī)則化。 輪廓線的關(guān)鍵點就是建筑物的重要轉(zhuǎn)折點,關(guān)鍵點處輪廓線的方向會發(fā)生劇烈變化,因此可以通過檢測每一個輪廓點處輪廓線轉(zhuǎn)折的角度來提取關(guān)鍵點。由于可能存在錯誤的輪廓點,或局部點發(fā)生較大的轉(zhuǎn)折,此方法可能會檢測出偽關(guān)鍵點,即檢測的關(guān)鍵點不是建筑物的重要轉(zhuǎn)折點,如圖3(a)黃圈中的2個紅點,其中一個是偽關(guān)鍵點。一般來說建筑物的拐角處只有一個關(guān)鍵點,在圖3(a)中的黃圈中,由于2個點都滿足角度閾值,所以錯誤地產(chǎn)生了連續(xù)的2個關(guān)鍵點。針對上述的問題,本文提出了一個新的多層次平頂建筑物關(guān)鍵點提取算法:①設(shè)輪廓點集為S,迭代次數(shù)為K,距離閾值T,最大允許局外點數(shù)n(迭代次數(shù)K根據(jù)輪廓點的數(shù)量決定,圖3(c)數(shù)據(jù)設(shè)置的k等于5 000;距離閾值T等于2倍平均點間距即可,圖3(c)數(shù)據(jù)設(shè)置的T等于1.3 m;最大允許局外點數(shù)n大致等于輪廓點數(shù)的1/20,圖3(c)數(shù)據(jù)設(shè)置的n等于8)。②在輪廓點集S中選取i個種子點(建筑物輪廓一般至少含有4個關(guān)鍵點,所以i的初始值設(shè)置為4),利用種子點之間間隔的輪廓點數(shù)以及第一個種子點到最后一個種子點之間包含的輪廓點數(shù)進行篩選,不滿足條件則重新選取種子點。③每2個相鄰的種子點構(gòu)成一條直線L,計算相鄰2個種子點之間的每個輪廓點到直線L的距離D,若D 上述算法能夠有效地減少偽關(guān)鍵點的生成,并且能夠抑制錯誤輪廓點的干擾。使用上述算法提取的輪廓線關(guān)鍵點如圖3(b)中的紅色點。 圖3 輪廓線關(guān)鍵點提取 連接關(guān)鍵點就能得到建筑物的平滑輪廓線,但是還需要對輪廓線進行規(guī)則化。由于輪廓線關(guān)鍵點處的拐角通常是直角,取最長的邊作為初始邊,然后依次將相鄰的邊進行正交約束調(diào)整,完成輪廓線的規(guī)則化[10-11]。最終得到的建筑物輪廓如圖4(b)所示。 將建筑物輪廓線賦予點云中的高程信息,完成建筑物的三維重建,最終模型如圖4(c)所示。 圖4 規(guī)則化及模型生成 本文針對多層次建筑物提出了一個新的三維重方法,主要過程包括激光點云面片分割、輪廓線的提取、輪廓線關(guān)鍵點的提取與規(guī)則化。其中激光點云面片分割使用的是優(yōu)化的RANSAC算法,相對于傳統(tǒng)的RANSAC算法點云面片分割,優(yōu)化了種子點的選取以及避免了刪除最優(yōu)面重新迭代的過程,從而大大提高了算法的執(zhí)行效率,且能有效地刪除墻面點。輪廓線的提取是基于Delaunay三角網(wǎng)剖分進行的,能夠精確提取建筑物的輪廓線。輪廓線的關(guān)鍵點提取采用了隨機抽樣的原理,能夠較好地提取建筑物的關(guān)鍵點,并能抑制錯誤輪廓點的干擾,減少偽關(guān)鍵點的生成。2 基于Delaunay三角剖分的輪廓線提取
3 輪廓線關(guān)鍵點的提取與規(guī)則化
4 結(jié)束語