于海洋,余鵬磊,謝秋平, 李 寧,盧小平
(1. 河南理工大學(xué) 礦山空間信息技術(shù)國家測繪地理信息局重點(diǎn)實(shí)驗(yàn)室,河南 焦作 454000; 2. 河南理工大學(xué) 礦山空間信息技術(shù)河南省重點(diǎn)實(shí)驗(yàn)室,河南 焦作 454000)
機(jī)載激光雷達(dá)(airborne light detection and ranging,LiDAR)能夠快速、精確地獲取建筑物的頂面信息,為建筑物三維模型重建提供了有效的數(shù)據(jù)支持。在模型構(gòu)建過程中,對建筑物頂面進(jìn)行精確分割,進(jìn)而通過擬合建筑物中各個部分來獲得最可靠的多面體模型,可實(shí)現(xiàn)建筑物的精確、快速重建。
目前,建筑物頂面分割算法主要有隨機(jī)抽樣一致性(random sampling consensus,RANSAC) 算法、聚類算法、區(qū)域增長算法、3D 霍夫變換(3D-Hough transform)等[1]。RANSAC 算法通過迭代方法抑制點(diǎn)云噪聲,但其模型參數(shù)的確定存在困難[2]。對于大范圍建筑物的提取,建筑物形式各異,面片大小不同,難以采用統(tǒng)一的參數(shù)對所有建筑物進(jìn)行面片分割處理,同時迭代運(yùn)算計(jì)算量大[3]。聚類算法需要建(構(gòu)) 筑物模型先驗(yàn)知識,往往難以獲得,導(dǎo)致模式聚類中心不穩(wěn)定,且算法過于復(fù)雜[4]。3D 霍夫變換頂面分割方法是將傳統(tǒng)的二維圖像霍夫變換拓展到三維點(diǎn)云參數(shù)空間,生成所有可能的平面,統(tǒng)計(jì)平面中點(diǎn)的個數(shù)來確定分割平面,此方法易產(chǎn)生偽平面,計(jì)算量大,速度慢[2]。區(qū)域增長算法復(fù)雜度低,計(jì)算速度快,但該方法對種子點(diǎn)選取及特征參數(shù)的設(shè)置要求較高。本文通過點(diǎn)云數(shù)據(jù)法向量的分析建立了一種建筑物頂面區(qū)域增長分割種子點(diǎn)選取和特征參數(shù)的設(shè)置方法。
表面法線是幾何體表面的重要屬性,在計(jì)算機(jī)圖形學(xué)等眾多領(lǐng)域應(yīng)用廣泛。對于一個已知的幾何體表面,獲取的點(diǎn)云數(shù)據(jù)集表現(xiàn)為一組特定樣本,根據(jù)垂直于點(diǎn)表面的矢量推斷表面某一點(diǎn)的法線方向方法較多[5],一般分為兩大類:一是使用曲面重建技術(shù),從獲取的點(diǎn)云數(shù)據(jù)集中擬合采樣點(diǎn)對應(yīng)的曲面,然后從曲面模型中計(jì)算表面法線;二是直接從點(diǎn)云數(shù)據(jù)集中近似推斷表面法線。本文擬采用第二種方法,已知一個點(diǎn)云數(shù)據(jù)集,在其中的每個點(diǎn)處直接近似計(jì)算表面法線[6]。該方法估計(jì)一個點(diǎn)的表面法線時,首先需要從周圍支持這個點(diǎn)的鄰近點(diǎn)搜索著手,確定某點(diǎn)的鄰域點(diǎn)集,以此為基礎(chǔ)采用主成分分析法計(jì)算法線和曲率。
本文選用了近似快速最近鄰搜索算法FLANN[7]。FLANN算法采用分層K均值樹和多重隨機(jī)k-d樹實(shí)現(xiàn),并能根據(jù)用戶輸入的高維數(shù)據(jù)和設(shè)定的準(zhǔn)確度自動選取最優(yōu)搜索算法和參數(shù)。
在實(shí)際應(yīng)用中確定查詢點(diǎn)pq的鄰域點(diǎn)集Pk主要有兩種途徑:一是確定與查詢點(diǎn)最鄰近的k個點(diǎn),即k_search算法;第二種是確定與查詢點(diǎn)距離在半徑r之內(nèi)的所有k個點(diǎn),即r_search算法。
LiDAR點(diǎn)云數(shù)據(jù)空間分布不均勻,密度變化較大(如植被點(diǎn)云),r_search算法計(jì)算結(jié)果不穩(wěn)定,k_search算法固定搜索一定數(shù)量鄰近點(diǎn),法向量計(jì)算結(jié)果較優(yōu)。
確定表面某點(diǎn)法線的問題近似于估計(jì)表面的一個相切面法線的問題,因此可轉(zhuǎn)化為一個在鄰域點(diǎn)集Pk中最小二乘平面擬合問題[5]。平面可采用點(diǎn)x及該點(diǎn)法向量n表示,點(diǎn)pi∈Pk到平面的距離為
di=(pi-x)·n
x和n采用最小二乘法計(jì)算,因此di=0。x定義為點(diǎn)集Pk擬合平面的中心,即
估計(jì)表面法向量n的問題可采用主成分分析法來解決。通過計(jì)算一個協(xié)方差矩陣C∈R3×3的特征矢量和特征值來獲得n,這個協(xié)方差矩陣從查詢點(diǎn)的鄰近點(diǎn)集Pk中創(chuàng)建。對于每一個點(diǎn)pi,對應(yīng)的協(xié)方差矩陣C為
式中,ξi表示pi的權(quán)重,一般設(shè)定為1;vj是第j個特征向量;λj是協(xié)方差矩陣的第j個特征值。C是對稱、半正定的矩陣,其特征值λj為實(shí)數(shù),正交標(biāo)架下的特征向量vj對應(yīng)著Pk的主成分[5]。如果0≤λ0≤λ1≤λ2,最小特征值λ0的特征向量v0即近似于+n={nx,ny,nz}或-n。另外,n也可表示為球面坐標(biāo)系統(tǒng)中的一對角度(φ,θ),即
協(xié)方差矩陣C的計(jì)算受噪聲的影響較大,可采用基于最優(yōu)擬合面的協(xié)方差矩陣C來消除噪聲的影響[6],即不再采用最小二乘擬合切平面,而是尋找最優(yōu)平面模型,根據(jù)點(diǎn)到最優(yōu)平面的距離di將鄰域Pk中的點(diǎn)分為內(nèi)部點(diǎn)(di≤dmax)和外部點(diǎn)(di>dmax),在計(jì)算協(xié)方差矩陣C時,內(nèi)部點(diǎn)和外部點(diǎn)采用不同的權(quán)重ξi
圖1 LiDAR數(shù)據(jù)法線計(jì)算
主成分特征分析既可以用于表面法線估計(jì),也可以用于給定點(diǎn)pq的表面曲率的推算。該方法采用協(xié)方差矩陣C特征值λ作為p點(diǎn)曲面變化度的近似。如果λ0=min(λi),p點(diǎn)沿曲面法線n的變化度可表示為
最小特征值和所有特征值總和的比值可近似表示以點(diǎn)p為中心的鄰域Pk的曲率變化大小,并且該比值具有尺度不變性[8]。較小的σp值意味著鄰域Pk中的所有點(diǎn)位于表面的切平面上,因此在建筑物頂面分割區(qū)域增長算法中選取具有最小曲率的點(diǎn)作為種子點(diǎn)。
區(qū)域增長分割算法實(shí)現(xiàn)流程如圖2所示。首先,按照點(diǎn)云曲率的大小對點(diǎn)云進(jìn)行排序。具有最小曲率的點(diǎn)最有可能位于平面上,因此可選作區(qū)域增長算法的種子點(diǎn)。具體區(qū)域增長算法實(shí)現(xiàn)過程如下。
1) 選取未處理點(diǎn)云中具有最小曲率的點(diǎn)作為種子點(diǎn)。
2) 搜索種子點(diǎn)鄰近點(diǎn)云,對比每個鄰近點(diǎn)與種子點(diǎn)的法向量和強(qiáng)度值差,如果兩者之間的角度差φ和強(qiáng)度值差I(lǐng)小于設(shè)定閾值,則將該鄰近點(diǎn)添加到該區(qū)域中。
圖2 區(qū)域增長分割算法流程
3) 檢測鄰近點(diǎn)的曲率值,如果小于設(shè)定閾值則將該點(diǎn)添加到種子點(diǎn)集中,同時將已經(jīng)處理過的種子點(diǎn)從點(diǎn)集中刪除。如果種子點(diǎn)集中的點(diǎn)全部處理完畢,則說明該區(qū)域增長已經(jīng)結(jié)束,統(tǒng)計(jì)點(diǎn)集數(shù)量并判斷是否符合最小數(shù)量閾值要求。
對于未處理的點(diǎn)云數(shù)據(jù)重復(fù)進(jìn)行上述操作,即可完成區(qū)域生長分割過程。
面片與面片鄰接處,法線計(jì)算會受到鄰接點(diǎn)云的影響,導(dǎo)致部分鄰接點(diǎn)不能正確分割。本研究中依據(jù)未分割鄰近點(diǎn)到分割點(diǎn)集擬合面的距離,將未分割鄰近點(diǎn)進(jìn)行正確分割。點(diǎn)A到平面α距離d計(jì)算采用向量法
式中,A是平面α外的一點(diǎn);P是α內(nèi)與A鄰近的一點(diǎn);n是α的法向量。
試驗(yàn)區(qū)位于鄭州市鄭東新區(qū),LiDAR數(shù)據(jù)由ALS60機(jī)載LiDAR系統(tǒng)獲取,獲取時間為2011年9月20日,試驗(yàn)區(qū)數(shù)據(jù)點(diǎn)云密度為2.19個/m2。原始數(shù)據(jù)已經(jīng)過濾波分類處理分離地面點(diǎn),建筑物頂部一般高度在1.5 m以上,試驗(yàn)數(shù)據(jù)只保留距離地面1.5 m以上的點(diǎn)云,主要由建筑物房頂和植被等構(gòu)成,具體處理方法如圖3所示。
圖3 LiDAR點(diǎn)云數(shù)據(jù)預(yù)處理
試驗(yàn)中法向量計(jì)算時k取值8,區(qū)域增長算法角度差閾值φ取值0.04π,強(qiáng)度值差I(lǐng)取值10,曲率閾值取值0.2,構(gòu)成面片點(diǎn)云數(shù)量最小閾值取值20。
試驗(yàn)區(qū)建筑物類型包括各種人字形頂面、穹頂、平頂?shù)龋瑓^(qū)域增長分割算法均能較好地進(jìn)行分割,部分房頂周邊有植被覆蓋,分割算法均能有效區(qū)分(如圖4所示)。處理結(jié)果中紅色點(diǎn)云為噪聲點(diǎn),主要由植被構(gòu)成,其他顏色點(diǎn)云構(gòu)成分割面片。根據(jù)點(diǎn)到面距離對鄰接點(diǎn)進(jìn)行處理,去除植被噪聲點(diǎn)。面片與面片鄰接處,法線計(jì)算會受到鄰接點(diǎn)云的影響,少量點(diǎn)未能正確分割,根據(jù)鄰近點(diǎn)到擬合面的距離進(jìn)行分割(如圖5所示)。
圖4 不同類型建筑物頂面分割結(jié)果
圖5 面片鄰接點(diǎn)云處理分割結(jié)果
本文分析了LiDAR點(diǎn)云的法線和曲率的計(jì)算方法,采用曲率最小點(diǎn)作為種子點(diǎn),以點(diǎn)云法向量角度差和灰度值差作為生長條件,構(gòu)建區(qū)域增長算法,實(shí)現(xiàn)了建筑物頂面點(diǎn)云分割。試驗(yàn)結(jié)果表明, 本文提出的算法能準(zhǔn)確地分割建筑物頂面,不受建筑物形狀、結(jié)構(gòu)等因素影響,并能夠有效分離植被,可為建筑物三維模型的構(gòu)建提供技術(shù)支持。
參考文獻(xiàn):
[1] 胡偉,盧小平,李珵,等. 基于改進(jìn) RANSAC 算法的屋頂激光點(diǎn)云面片分割方法[J].測繪通報(bào), 2012(11):31-34.
[2] TARSHAKURDI F, LANDES T, GRUSSENMEYER P. Hough-transform and Extended RANSAC Algorithms for Automatic Detection of 3D Building Roof Planes from LiDAR Data[C]∥Proceedings of ISPRS Workshop on Laser and Silvilaser 2007. Espoo: ISPRS, 2007: 407-412.
[3] 王植, 李慧盈, 吳立新,等.基于RANSAC模型的機(jī)載LiDAR數(shù)據(jù)中建筑輪廓提取算法[J].東北大學(xué)學(xué)報(bào):自然科學(xué)版,2012,33(2): 271-275.
[4] 李云帆, 馬洪超. 從LiDAR 數(shù)據(jù)中提取建筑物平面目標(biāo)的新方法[J]. 計(jì)算機(jī)工程與應(yīng)用,2011,47(10): 5-7.
[5] KLASING K, ALTHOFF D, WOLLHERR D, et al. Comparison of Surface Normal Estimation Methods for Range Sensing Applications[C] ∥Proceedings of the IEEE International Conference on Robotics and Automation. Kobe: ICRA, 2009: 12-17.
[6] RUSU R B, COUSINS S. 3D is Here: Point Cloud Library [C]∥Proceedings of the IEEE International Conference on Robotics and Automation. Shanghai: ICRA,2011: 9-13.
[7] MARIUS M, LOWE D G. Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration[C]∥Proceedings of the International Conference on Computer Vision Theory and Applications. Lisbon: VISAPP, 2009.
[8] PAULY M, GROSS M, KOBBELT L. Efficient Simplification of Point Sampled Surfaces[C]∥Proceedings of IEEE Visualization. Washington D.C.: IEEE Computer Society Press, 2002:163-170.