香玫元,李 赟,艾海濱,張 力
(1.蘭州交通大學,蘭州 730070;2.中國測繪科學研究院,北京 100830)
目前,室內三維導航定位正在迅速的發展,三維模型對于室內三維導航定位有著至關重要的作用,直接影響著用戶使用體驗感,而其中一些場景往往含有雕塑,如博物館、大型商場等。室內雕塑的三維建模是一項費時費力的工作,常用的方法是用三維構建軟件(如3ds max,Maya等),由人工手動構建,這不僅非常耗時,并且大大提高了成本。所以,室內雕塑三維模型構建急切需要一種自動建模方法。在此領域,國內外研究者提出了多種三維建模的方法。文獻[1]針對當前常用的計算機建筑建模方法,對三維(3D)建模技術和建模方法作了系統、全面、深入的分析。文獻[2]利用三維激光掃描技術進行建筑物室內外一體建模方法研究,為室內外場景三維重建提供了有效方法。文獻[3]利用三維激光點云數據和圖像信息來實現對室內場景的三維重建,為未知環境下的移動機器人導航提供輔助。本文利用已有的離散點云數據,對其預處理,然后進行三維模型構建,可以快速得到雕塑三維幾何模型。

圖1 數據預 處理流程
由于使用不同的測量方法,測量設備存在缺陷,獲得到的點云數據通常不可避免地存在一些問題,包括噪聲點的產生、數據失真和數據冗余等問題。帶有許多雜點、噪聲點的點云數據會影響后續的曲面重構過程,就需要進行異常點剔除;另外,各種測量方法的速度不斷加快,效率不斷提高,測量產生的點云數據量往往非常龐大,所以需要進行數據精簡。因此,在曲面重構前,需要對點云進行一些必要的處理,以獲得滿意的數據,即點云預處理。主要包括:異常點剔除、數據精簡。預處理流程如圖1所示。
點云數據上的異常點,可能使該點及其周圍的曲面片偏離原曲面,使得重構獲得的幾何模型與物體的真實模型不一致,所以必須對原始點云數據進行預處理,以剔除異常點。不同測量方式得到的點云數據的呈現方式各不相同,根據點云中點的分布特征將點云分為:散亂 點云、掃描線點云、網格化點云。實際工程中常用的是散亂點云和掃描線點云,本文中使用的數據為離散點云數據。找出并剔除異常點的判斷方法主要是:首先計算所有點云到他們的k最近鄰的平均平方距離,然后根據計算到的平均平方距離對點云進行升序排列,最后剔除其中最大值的點。異常點剔除效果如圖2所示。

圖2 原模型(左圖)與經過異常點剔除后的模型(右圖)
通常在數據測量時,為了盡可能地獲得更多的表面細節,最終得到的點云數據通常數據量較大,并且可能存在大量的冗余。為了提高曲面重建的效率和質量,需要按一定的要求減少點云的數量,即進行數據精簡。本文中首先使用體包圍盒來約束點云,然后將體包圍盒分解成若干個大小相等的小包圍盒,最后在每個小包圍盒中選取最靠近包圍盒中心的點來代替整個包圍盒中的點。數據精簡效果如圖3所示。

圖3 原模型(左圖)與經過數據精簡后的模型(右圖)

圖4 三維模型 重建流程
三維模型的曲面重建是幾何造型中的一個重要研究領域。曲面重建的是為了恢復實物模型的曲面形狀,并且使得模型的形狀盡可能地反映現實實物的形狀特征。根據重建曲面的表現形式不同,可以將曲面重建方法分為參數曲面重建、多面體網格重建、細分曲面重建和隱式曲面重建等。本文選用的是隱式曲面重建中的泊松曲面重建方法[4]。泊松曲面重建方法的優點是抗噪性好,受非均勻采樣影響小,重建結果光滑,并可以控制結果的光滑與精細程度。泊松曲面重建方法需要知道點數據的法方,所以在曲面重構前需要計算法向,并對法向重定向盡可能地確保法向的正確。三維模型重建流程如圖4所示。
點的法向是泊松曲面重建必不可少的信息。點云法向估計的可靠性對于曲面重建質量很重要。點云法向估計越可靠,曲面重建質量越高。目前已有的法向估算方法可分為基于 Delaunay/Voronoi劃分的方法、基于局部表面擬合的計算方法和基于魯棒統計的方法。其中基于局部表面擬合的計算方法主要是主元分析(principal component analysis,PCA)估算方法[5],以及在PCA基礎上的一些改進方法。本文中估算點法向采用PCA估算方法。
PCA原理為:假定點集Np是點p的鄰域點集,其3×3協方差矩陣C定義為:
(1)

C·νI=λI·νI,I∈{0,1,2}
(2)
協方差矩陣是一個矩陣,其每個元素是各個向量元素之間的協方差。協方差矩陣C是對稱半正定矩陣,所以特征值λI是實數,并且特征向量νI形成一個正交坐標系,與由Np定義的點集的元主成分一致。
λI表示pi,i∈Np沿與λI相應的特征向量方向的方差大小。這樣就可以計算出總方差值,也就是pi到它們的重心之間的距離平方和,可表示如下:
(3)
假設λ0≤λ1≤λ2,滿足這樣一個平面
(4)

這樣,協方差矩陣C最小特征值的特征向量可被作為點p的法向量。通過這種方法就能夠得到所有點的法向量。
求出每個點的法向量之后,還需要對法向量的方向進行調整,使得所有法向量都指向模型的外側。因為在泊松曲面重建中法向量本身的精確度并不是很重要,重要的是通過法向量的方向來區分模型的內側和外側。
算法中認為每個點和它的最近鄰的法向量方向差別不大,所以它們的法向量內積應該是大于0的。這樣就可以通過判斷一個點的法向量和它的最近鄰的法向量方向內積是否大于0決定是否應當調整它的法向量的方向。
具體實現的方法就是先找到圖形的最低最左點,容易看出這一點的法向量應當指向Z坐標為負的方向。這一點的法向量方向調整好以后,就可以對所有的點建一棵最小生成樹,以最低最左點為根深度優先地遍歷整棵樹,并根據每個頂點在樹中的父節點調整其法向量的方向。通過這樣的調整,就可以得到在全局意義上一致的法向量。
室內雕塑點云模型往往對重建結果的準確性及細節方面要求很高。泊松重建方法作為一種經典的隱式重建方法,在已知點云精確法向量的基礎上,能高效處理上述問題,同時能生成不同表示層次上的模型,滿足室內導航中精細模型的要求。泊松重建主要是通過對點云數據進行最優化的插值處理來獲得近似曲面。

首先需要定義梯度場。由于梯度函數是一個分段常函數,其函數值發生了突變,對梯度場的顯式計算會導致在曲面邊界處產生無窮大的情況。為了處理這種情況,需要用指示函數和一個平滑濾波函數進行卷積,然后考慮平滑后的梯度場。
然后需要估計向量場。因為不知道模型表面的幾何特征,不能近似地計算模型的曲面積分。輸入的帶法向的有向點集提供了精確的信息,可以通過離散求和來近似計算模型的曲面積分。根據點集S把?M分割成不同的小面片Ps??M,則可以根據點s.p的值與小面片的面積的乘積來近似計算小面片上的積分:

(5)
最后將三維重建的問題轉化為求解泊松方程。
針對上述方法,對兩組數據進行三維重構,以下給出具體的實驗結果。表1列出了在重構過程中的一些相關數據,計算時間是從讀入原始點數開始,經過預處理后生成三維模型的時間。從表1的結果可以看出采用泊松曲面重建方法對離散點云數據的重建可以得到較好的結果,所耗費的時間都不是很大。圖5是對大量數據點集貓的重構結果,圖6對大量數據點集獅子的重構結果。從得到的結果可以看出:泊松曲面重建方法雖然使得有些細節表現不夠細致,但是能很好的擬合模型表面,并且在離開表面處不會形成其它錯假面片,得到的重構模型表面的光順性很好。

表1 試驗相關數據

圖5 貓的模型

圖6 獅子的模型
結合已有離散點云數據,給出了一種從點云數據到三維幾何模型的方法。實驗表明本文的方法建模速度快,表面能夠很好的擬合,異常點對建模影響較小,得到的重構模型表面的光順性很好,可以滿足室內模型的生成。但是還存在一些問題有待解決:方法對于模型表面的一些細節處理的不夠理想;模型邊緣過于平滑;重構后的模型還需要進一步優化。
[1] 雷鴻源,陳熾坤,王高.建筑室內計算機建模方法的探討[J].工程圖學學報,2005(5):23-28.
[2] 楊林,盛業華,王波.利用三維激光掃描技術進行建筑物室內外一體建模方法研究[J].測繪通報,2014(7):27-30.
[3] 張勤,賈慶軒.基于激光與單目視覺的室內場景三維重建[J].系統仿真學報,2014,26(2):357-362.
[4] KAZHDAN M,BOLITHO M,HOPPE H.Poisson Surface Reconstruction[EL/OL].[2014-08-10].http://web.cs.jhu.edu/~bolitho/Research/PoissonSurfaceReconstruction/PoissonRecon.pdf.
[5] SANGVERAPHUNSIRI V,SRITRAKULCHAI K.The Development of a Technique for 3D Complex Surface Reconstruction from Unorganized Point Cloud[J].The International Journal of Advanced Manufacturing Technology,2007,33(7):772-781.
[6] PUALY M.Point Primitives for Inteacrtive Modeling and Proeessing of 3D Geometry[D].Zurich:Federal Institute of Technology(ETH) of Zurich, 2003.
[7] 路興昌,宮輝力,趙文吉,等.基于激光掃描數據的三維可視化建模[J].系統仿真學報,2007,19(7):1624-1629.
[8] 白成軍,吳蔥.文物建筑測繪中三維激光掃描技術的核心問題研究[J].測繪通報,2012(1):36-38.
[9] 鄧志東,牛建軍,張競丹.基于立體視覺的三維建模方法[J].系統仿真學報,2007,19(14):3258-3262+3289.
[10] 周儒榮,張麗艷,蘇旭,等.海量散亂點的曲面重建算法研究[ J].軟件學報,2001,12(2):249-255.