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