歐元漢,劉 進+,勞冬影
(1.廣西大學 計算機與電子信息學院,廣西 南寧530004;2.南寧有無科技有限公司,廣西 南寧530004)
目前,基于點云的三維重建成為城市建筑建模最常用的技術,根據(jù)點云獲取方式的不同分為兩類[1]:基于激光雷達 (LiDAR)點云和基于多視圖像MVS點云的重建。激光雷達點云可以較完整表示建筑物表面信息,但采集過程需要昂貴的設備,不適于大型復雜城市建筑重建;MVS(multi-view-stereo)點云是基于數(shù)碼相機拍攝的一系列多視圖像,利用SFM 和PMVS方法生成密集三維點云,具有成本低廉,自動化程度高等特點,且重建的模型紋理信息豐富[2]。本文研究基于MVS 點云的城市建筑三維重建方法,通過結合預處理和平面擬合,完成對泊松表面模型的改善。
點云三維重建過程主要包括預處理、表面重建、紋理映射等步驟,其中難點是表面重建。由于建筑物幾何模型的多樣性和復雜型,如何在表面重建過程中生成真實反映建筑物幾何信息的水密封閉網格成為建模的核心問題。
近年來,國內外學者針對點云表面重建問題進行了大量研究:ACztireli等提出了移動立方體RIMLS方法[3],能較好的生成三角網格模型,但對于復雜建筑物卻不能保證模型封閉,且有許多不連續(xù)部分;Marton等的貪婪投影三角化方法[4]能很快完成重建,但該算法基于點云表面光滑、密度變化均勻,對噪聲比較敏感,不能在三角化的同時對曲面進行平滑和孔洞修復;Li等提出的網格投影重建[5]也不能夠有效填充建筑物表面孔洞;Ohtake提出了一種隱函數(shù)模型,多層面單位分割隱函數(shù)曲面 (MPU)[6],用來滿足從大量收集的點中快速準確地建立曲面的需求,MPU 表面重建的核心是一系列加權函數(shù)把這個范圍的所有點合計成一個曲面;QY Zhou提出了一種2.5維雙輪廓的方法[7],對于2.5維激光點云而言,該算法能同時優(yōu)化屋頂層表面幾何和邊界,輸出較小擬合誤差的無裂紋網格模型,但對三維密集MVS點云不太適用;Kazhdan等[8]提出一種基于隱式函數(shù)的三角網格重建算法,將重建問題轉化為求空間泊松方程解的問題,進而產生一個的水密封閉的網格,該泊松重建算法對激光點云和MVS點云均有較好的曲面生成效果,能生成水密封閉的網格模型,相對其它重建方法而言,泊松表面重建更適用于MVS點云,但由于該算法基于對象是平滑的,因此對于建筑物的棱邊和尖銳特征會比較敏感。
為此,本文提出基于MVS點云的表面重建方法,以建筑物密集MVS點云作為輸入,先經過濾波去噪預處理過程,再通過高效RANSAC 擬合平面模型,最后通過泊松表面重建生成網格模型。通過實驗對比,經過本文方法處理后的泊松表面模型較處理前有顯著改善,幾何信息更加完整。該方法可以進一步拓展到大場景建筑物自動建模工作中去。
首先利用無人機拍攝的多角度傾斜航拍照片,通過Bundler獲得稀疏點云,接著使用PMVS 生成密集三維點云。使用meshlab從生成的城市區(qū)域MVS點云中提取單棟建筑物點云,作為本文實驗的數(shù)據(jù)輸入,如圖1所示。
圖1 單棟建筑初始MVS點云 (426 281個點)
在MVS點云獲取過程中,由于特征點匹配不準或數(shù)據(jù)拼接配準有誤等原因,導致生成的點云不可避免地出現(xiàn)一些噪聲或離群點。目前大多數(shù)的表面重建算法對帶有噪聲和離群點的點云較為敏感,若不加以處理將導致后續(xù)的重構曲面不光滑、表面存在孔洞或裂縫。因此,在表面重建之前,需要對點云進行濾波去噪處理,從而提高重建網格的質量和精度。
本文使用基于統(tǒng)計分析的濾波方法[9]去除MVS點云中噪聲及離群點。該方法基于在輸入數(shù)據(jù)中對點到鄰近點的距離分布的計算,通過對每個點的鄰域進行統(tǒng)計分析,修剪掉不符合一定標準的點。對于每個點,計算它到它的所有鄰近點的平均距離。假設得到的結果是一個高斯分布,其形狀由均值和標準差決定,平均距離在標準范圍 (由全局距離平均值和方差定義)之外的點,即可被定義為異常點,并從數(shù)據(jù)集中去除掉。具體算法流程如下:
(1)讀入初始MVS密集點云,記為樣本集S;
(2)搜索點云中任意一點pi∈S的K-近鄰Nb(p);
(3)計算當前點pi與其K-近鄰所有點之間的平均距離Mean(pi),即
(4)假設所有點的Mean(pi)是一個高斯分布,其中期望μ為全局距離平均值,標準差σ,定義標準范圍:μ±α·σ。其中α為給定的閾值,取決于點被分析鄰域的大小。
(5)對任意一點pi,若平均距離Mean(pi)不在μ±α·σ范圍內,則判斷為離群點或噪聲點,從點云中剔除。
圖2為使用該方法處理后結果,可以看出該算法能有效去除MVS點云邊緣及表面的噪聲和離群點,同時保持了模型的尖銳和邊緣特征。因此,將此方法運用到表面重建之前,有助于提高表面重建的質量。
圖2 濾波后結果 (405 284個點)
2.3.1 RANSAC
隨機采樣一致 (RANSAC)是一種隨機參數(shù)估計算法[10],通過RANSAC可以從點云中估算出平面模型參數(shù),從而檢測平面模型。由于一般RANSAC平面檢測在找到點云中的最優(yōu)平面內點算法即停止,對于平面特征豐富的建筑物而言,該方法難以有效檢測出所有平面段,且對于大規(guī)模點云執(zhí)行效率不高。
2.3.2 高效RANSAC平面檢測
本文采用文獻 [11]中基于局部采樣策略和評分函數(shù)的高效RANSAC方法,對經濾波處理后的點云進行平面檢測。在此之前,使用 “點云分塊”來提高處理海量點云的效率,實現(xiàn)平面快速擬合。
方法主要思想與RANSAC類似,不同的是該算法在檢測到一個最優(yōu)平面后保存平面內點,繼續(xù)對剩余點進行迭代RANSAC處理,最終有效檢測出模型中所有平面參數(shù),同時使用得分函數(shù)評估和局部采樣策略高效檢測出點云中所有平面模型。算法具體步驟如下:
步驟1 在點云P= {p1,p2..pn}中隨機選擇 {p1,p2..pn}3個點;
步驟2 根據(jù) {p1,p2..pn}的位置構造平面Ψ;
步驟3 計算平面Ψ的法向量n與 {p1,p2..pn}的法向量 {n1,n2,n3}的夾角,如果存在一個夾角過大,丟棄Ψ并重回步驟1,否則繼續(xù);
步驟4 計算點云P 中其余點pi到Ψ的歐氏距離d(Ψ,pi)以及和法向量n的夾角θi,并統(tǒng)計d(Ψ,pi)小于閾值ε且θi小于閾值α的點的個數(shù)作為平面Ψ的得分σ(Ψ),得分函數(shù)σ(Ψ)由以下兩個公式確定
其中,n(pi)是點pi的法線,n(Ψ,pi)是pi在Ψ上投影的法線,max component(Ψ,)提取了Ψ內由投影過來的最大連通組件點集;
步驟5 重復步驟1至步驟4T 次,選擇出最高得分的平面Ψ′,T 由以下公式確定
式中:τ——位于Ψ之外的點所占比例的估計值,pt——經過T 次采樣之后選中最優(yōu)平面的概率,由統(tǒng)計學規(guī)律可以得出;
步驟6 記錄Ψ′,同時將計入σ(Ψ′)的點從點云P 中去除;
步驟7 重復步驟1至步驟6,直到從剩余點中無法找出一個得分不小于閾值σ的平面。
通過以上步驟能有效檢測出點云中可能存在的平面。對于大場景城市建筑重建,需要處理海量點云,而計算機內存有限,直接處理將會影響平面檢測的效率。本文采用等格網分割方法[12]對海量點云數(shù)據(jù)進行分塊處理,將點云分割成適合內存大小的塊,采用 “分而治之”的思想,分別對各分塊點云進行RANSAC檢測,從而實現(xiàn)海量點云快速平面擬合。
圖3展示了運用點云分塊和高效RANSAC 方法對點云進行平面擬合的結果。實驗中距離閾值ε設置為0.008,法向量偏差α閾值缺省值為arccos0.8,約37度。由于對點云進行分塊處理,大大提高了算法執(zhí)行的效率??梢钥闯觯瑪M合后的模型由平面段組成,形狀平整、規(guī)則,真實反映了建筑物原有特征。
圖3 RANSAC平面擬合結果
為了驗證本文方法重建效果,使用無人機航拍141 張6000×4000像素的數(shù)碼照片,通過Bundler和PMVS獲得密集三維點云。實驗運行環(huán)境:CPU Intel E3-1230,主頻3.7GHz,內存8 GB,64 位操作系統(tǒng),運行平臺為Microsoft Visual Studio 2010,使用OpenCV 和PCL庫。
圖4展示了4種常用表面重建方法對單棟建筑物的重建結果:泊松重建產生一個水密封閉的網格模型如圖4 (a)所示,表面平整無裂縫、墻壁垂直性較好;2.5維雙輪廓方法產生的模型如圖4 (b)所示屋頂面不平整、墻壁畸變嚴重;Marching cubes RIMLS重建如圖4 (c)所示不能保證封閉且有許多不連續(xù)部分,屋頂缺失嚴重;多層面單位分割(MPU)表面重建如圖4 (d)所示大體上和泊松模型接近,但垂直墻壁缺失嚴重,表面凹凸不平。表1 顯示了4種方法重建單棟建筑物的耗時。通過以上對比,泊松重建生成的模型質量最好,同時算法簡單易執(zhí)行,比較適用于建筑物MVS密集點云的重建工作。
圖5顯示了應用本文處理方法前后泊松表面重建結果對比。初始泊松網格如圖5 (a)、圖5 (c)所示基本能達到水密和無裂縫,但在幾何細節(jié)方面效果不佳,如表面不夠光滑平整、邊緣不夠鋒利等。通過對初始點云進行預處理和快速平面擬合,生成的泊松模型如圖5 (b)、圖5 (d)所示平面及尖銳特征得以恢復,模型質量明顯改善。通過對比圖5 (a)、圖5 (b),處理后的泊松模型表面更加光滑,尖銳特征明顯,同時去除了之前生成的一些多余形狀。對比圖5 (c)、圖5 (d),屋頂面幾何形狀更加明顯,邊緣缺失部分得以修復,邊緣更加鋒利規(guī)則。
圖4 幾種表面重建方法重建結果
表1 幾種方法重建耗時對比
圖5 使用本文方法處理前后泊松重建結果
為驗證本文方法的適用性,將實驗對象拓展到大場景城市建筑,重建流程如圖6所示,依次是平面擬合和泊松重建的效果。可以看出,本文方法對大場景城市建筑具有不錯的重建能力。
圖6 大場景城市建筑重建過程
針對當前泊松等表面重建方法對MVS點云重建效果不佳的問題,本文提出了一種結合點云濾波及平面擬合來改善泊松重建質量的方法。通過統(tǒng)計分析濾波方法有效去除點云表面和邊緣的雜點,使用點云分塊和高效RANSAC 完成點云平面模型的快速擬合。實驗結果表明,本文方法具有一定的優(yōu)越性,可以有效恢復建筑物的平面和尖銳特征,改善了泊松重建模型的質量。最后,將本文方法應用于大場景建筑物建模中,驗證了該方法較好的適用性,對于虛擬城市三維環(huán)境的構建將會起到一定的作用。后續(xù)的工作將會圍繞大場景下重建的效率以及某些細節(jié)特征的恢復來展開,進一步提高城市重建的質量和完整性。
[1]Musialski P,Wonka P,Aliaga DG,et al.A survey of urban reconstruction [J].Computer Graphics Forum,2013,32(6):146-177.
[2]Vanegas CA,Aliaga DG,Wonka P,et al.Modelling the appearance and behaviour of urban spaces [J].Computer Graphics Forum,2010,29 (1):25-42.
[3]ztireli AC,Guennebaud G,Gross M.Feature preserving point set surfaces based on non-linear kernel regression [J].Computer Graphics Forum,2009,28 (2):493-501.
[4]Marton ZC,Rusu RB,Beetz M.On fast surface reconstruction methods for large and noisy point clouds[C]//IEEE International Conference on Robotics and Automation,2009:3218-3223.
[5]Li R,Liu L,Phan L,et al.Polygonizing extremal surfaces with manifold guarantees[C]//Proceedings of the 14th ACM Symposium on Solid and Physical Modeling.ACM,2010:189-194.
[6]WEN Peizhi,NING Ruhua,HUANG Jinfang.Parameter optimization based mutil-level partition of unity surface reconstruction [J].Computer Application,2011,31 (7):1811-1814(in Chinese).[溫佩芝,寧如花,黃錦芳.基于參數(shù)優(yōu)化的多層次單元劃分曲面重建 [J].計算機應用,2011,31 (7):1811-1814.]
[7]Zhou QY.Neumann U.2.5Ddual contouring:A robust approach to creating building models from Aerial LiDAR point clouds[M]//Computer Vision-ECCV.Berlin:Springer Berlin Heidelberg,2010:115-128.
[8]Bolitho M,Kazhdan M,Burns R,et al.Advances in Visual Computing [M].Berlin:Springer Berlin Heidelberg,2009:678-689.
[9]Zhang B,Cao Q.Proceedings of 2013Chinese Intelligent Au-tomation Conference[M].Berlin:Springer Berlin Heidelberg,2013:1-10.
[10]ZHOU Chunlin,ZHU Hehua,LI Xiaojun.Research and application of robust plane fitting algorithm with RANSAC [J].Computer Engineering and Applications,2011,47 (7):177-179 (in Chinese). [周春霖,朱合華,李曉軍.隨機抽取一致性平面擬合及其應用研究 [J].計算機工程與應用,2011,47 (7):177-179.].
[11]Schnabel R,Wahl R,Klein R.Efficient RANSAC for pointcloud shape detection [J].Computer Graphics Forum,2007,26 (2):214-226.
[12]Johnson-Roberson M,Bohg J,Bjorkman M,et al.Attention-based active 3D point cloud segmentation [C]//IEEE/RSJ International Conference on Intelligent Robots and Systems,2010:1165-1170.