文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)04-0156-03
0 引言
隨著圖像處理技術(shù)和激光掃描技術(shù)的發(fā)展,,三維曲面重建技術(shù)作為一個(gè)重要研究?jī)?nèi)容廣泛應(yīng)用于逆向工程,、模式識(shí)別、影視等領(lǐng)域中,,并得到快速發(fā)展,。三維曲面重建是采用三維點(diǎn)云數(shù)據(jù)快速、準(zhǔn)確地構(gòu)建出復(fù)雜的曲面模型?,F(xiàn)有的重建算法主要分為兩類:容積重建和表面重建[1],。容積重建在密集計(jì)算上耗費(fèi)時(shí)間較長(zhǎng),不能夠滿足實(shí)時(shí)處理的需要,。表面重建處理速度比較快,,適合實(shí)時(shí)處理,主要包括輪廓線連接,、等值面提取和Delaunay三角化,。輪廓線連接是把相鄰的橫截面輪廓點(diǎn)連接起來(lái),構(gòu)建成一個(gè)三角網(wǎng)格,,但在網(wǎng)格對(duì)應(yīng),、拼接等問題上沒有解決好。等值面提取[1]是取當(dāng)前點(diǎn)的8個(gè)鄰近點(diǎn)形成一個(gè)虛擬的多維數(shù)據(jù)集,,確定一個(gè)多邊形來(lái)代表等值面表面,,但等值面涉及到復(fù)雜的法向一致性調(diào)整,相當(dāng)耗時(shí),。Delaunay三角化(如Power Crust算法[2-4],、Crust算法)是構(gòu)造一個(gè)四面體網(wǎng)格,網(wǎng)格片之間的輪廓點(diǎn)為頂點(diǎn),,重建的不足在于容易遺漏一些輪廓點(diǎn),,導(dǎo)致重建的準(zhǔn)確性降低。
針對(duì)以上問題,,本文提出了一種基于Power Crust的三維點(diǎn)云曲面重建算法,,對(duì)三維點(diǎn)云數(shù)據(jù)進(jìn)行濾波、去噪等預(yù)處理,,調(diào)用Power Crust算法進(jìn)行曲面重建,,利用VTK的pipeline機(jī)制對(duì)曲面網(wǎng)格進(jìn)行簡(jiǎn)化、平滑等處理,,通過局部形狀校正獲得三維模型,,顯示并交互。實(shí)驗(yàn)結(jié)果表明,,此算法運(yùn)行速度快,,重建曲面較為準(zhǔn)確,、光滑,圖像質(zhì)量高,,適合實(shí)時(shí)處理,。
1 三維可視化類庫(kù)VTK
VTK[5-7]是美國(guó)Kitware公司利用C++語(yǔ)言開發(fā)的一套集3D圖形學(xué)、圖像處理和可視化于一體的C++類庫(kù),。它是一個(gè)源碼開發(fā),、可視化技術(shù)和圖像處理軟件系統(tǒng),可在C++,、Tcl/Tk,、Jave、Pyhon語(yǔ)言環(huán)境下使用[8],。它融合了計(jì)算機(jī)圖形學(xué),、圖像處理和可視化三大技術(shù),在可視化和圖像處理方面有著絕對(duì)的優(yōu)勢(shì),,成為世界上研究圖像可視化系統(tǒng)的熱門工具,。
構(gòu)成VTK體系主要有2種對(duì)象模型:圖形模型對(duì)象和可視化模型對(duì)象。圖形模型的主要作用是用圖形描述幾何體構(gòu)成的場(chǎng)景,;可視化模型的主要作用是把幾何數(shù)據(jù)轉(zhuǎn)換成圖形數(shù)據(jù)和負(fù)責(zé)構(gòu)建幾何體,。VTK有著一套3D交互部件,采用流水線機(jī)制,,支持并行處理,,選擇適當(dāng)?shù)乃惴ú?gòu)建自己的可視化流程,讀取數(shù)據(jù),、過濾,、映射與渲染,最后將所成圖像呈現(xiàn)在屏幕上,,并能實(shí)現(xiàn)人機(jī)交互。
2 重建算法簡(jiǎn)介
準(zhǔn)確性和效率性是三維點(diǎn)云曲面重建和可視化的兩個(gè)關(guān)鍵因素,。準(zhǔn)確性要求保持拓?fù)浣Y(jié)構(gòu)和形狀良好,;效率性要求在保持原始拓?fù)浣Y(jié)構(gòu)的前提下降低重建時(shí)間。Power Crust算法在考慮采樣的密度和表面細(xì)節(jié)基礎(chǔ)上,,采用一個(gè)貪婪的濾波過程來(lái)處理那些有噪聲的散亂數(shù)據(jù),,逆向重建了曲面的三角網(wǎng)格,并有理論上的支持,。
2.1 Power Crust算法原理
Power Crust 算法原理涉及的概念主要有:中心軸變換[9],、Voronoi 圖、Delaunay三角化和Power圖[10-11],。
中軸很好地表現(xiàn)了物體形狀的特征及連接特性,,對(duì)基于Voronoi的曲面重建算法有重要的意義,不僅是因?yàn)橐盟鼇?lái)定義采樣密度,而且位于中軸上的點(diǎn)到表面采樣點(diǎn)的向量構(gòu)成了對(duì)該點(diǎn)表面法向量的一個(gè)很好的估計(jì)和預(yù)測(cè),。其誤差與采樣密度相關(guān),很多基于Voronoi的算法都要利用該點(diǎn)來(lái)過濾三角片,。
Voronoi圖在解決點(diǎn)與其他幾何對(duì)象的距離關(guān)系上作用很大,。假設(shè)在給定平面或空間中,有n個(gè)散亂點(diǎn),,點(diǎn)集為P={p1,,p2,…,,pn},,定義:
其中,H(pi,,pj)表示點(diǎn)集中的其他點(diǎn)到pi的距離比到pj的距離更近的軌跡,,是一個(gè)半平面或者一個(gè)半空間;d(p,,pi)表示p到pi的歐氏距離,;V(pi)為點(diǎn)集中的其他點(diǎn)pj到點(diǎn)pi軌跡的總和。對(duì)于點(diǎn)集P中的每個(gè)點(diǎn)都有一個(gè)對(duì)應(yīng)的Voronoi多邊形,,所有的多邊形總和就稱為點(diǎn)集P的Voronoi圖,。
Delaunay三角化和Voronoi圖是對(duì)偶關(guān)系,具有最小角最大,、空洞與局部重連等特性,。Power圖是Voronoi圖的擴(kuò)展,可視為生成元是Power圓的Voronoi圖,,只是其距離已不是歐氏距離而是Power距離:
已知d維空間的點(diǎn)集S,,p∈S的權(quán)為wp(-∞<wp<+∞),有:
其中,,?仔p(x)稱為x到p的Power距離,。
Power圖和其對(duì)偶的規(guī)則三角剖分是對(duì)應(yīng)于加權(quán)點(diǎn)的Voronoi圖和Delaunay三角剖分。
可以證明,從極點(diǎn)到表面采樣點(diǎn)的向量是該采樣點(diǎn)表面法向量的一個(gè)很好的近似,。這個(gè)結(jié)論將為中軸的計(jì)算和基于Voronoi的曲面重建算法提供強(qiáng)有力的理論支持,。
2.2 Power Crust算法實(shí)現(xiàn)
Power Crust算法先計(jì)算出采樣點(diǎn)的中心軸,找出Voronoi頂點(diǎn)從而創(chuàng)建Voronoi圖,,然后進(jìn)行Delaunay三角化,,把經(jīng)過三角剖分的原始點(diǎn)云連接成三角網(wǎng)格模型,經(jīng)過Voronoi圖過濾器過濾后,,刪除不符合要求的網(wǎng)格,,最后得到所需要的網(wǎng)格。此算法可以生成一個(gè)不漏水的,、密封的三維網(wǎng)格,,同時(shí)還得到原始表面中軸的估計(jì)量,,能進(jìn)行含有噪聲、有尖角,、非封閉的點(diǎn)云數(shù)據(jù)的曲面重建,。Power Crust算法的優(yōu)勢(shì)是在細(xì)節(jié)區(qū)域,輸出的離散表面具有致密的點(diǎn),;在其他區(qū)域,,輸出的離散表面只有稀疏的點(diǎn)。 具體步驟如下:
(1)對(duì)采樣點(diǎn)集S進(jìn)行Delaunay 三角化,,找到 Voronoi頂點(diǎn),,邊界框上的頂點(diǎn)被認(rèn)為是Power圖上的采樣點(diǎn)。
(2)確定哪些Voronoi頂點(diǎn)為極點(diǎn),。
(3)生成極點(diǎn)球集合Bp,,計(jì)算出Power圖。
(4)標(biāo)記出每個(gè)極點(diǎn)是里面的或是外面的,。
(5)給出三角化作為輸出,,并返回結(jié)果。
2.3 網(wǎng)格簡(jiǎn)化,、平滑
經(jīng)過Power Crust算法重建得到的曲面網(wǎng)格由很多多邊形數(shù)據(jù)(主要是三角片)構(gòu)成,,通常包含噪聲或者光潔度太差,繪制圖形的質(zhì)量較差,,且不能夠快速地繪制和處理,,而交互的應(yīng)用程序?qū)τ诙噙呅螖?shù)據(jù)的快速繪制有更高的要求。為了減少渲染時(shí)間和提高重建效率,,本文在重建網(wǎng)格的基礎(chǔ)上采用Decimation技術(shù)實(shí)現(xiàn)網(wǎng)格簡(jiǎn)化,;使用平滑網(wǎng)格技術(shù),通過調(diào)整點(diǎn)的位置來(lái)降低輪廓面的鋸齒效應(yīng)和分級(jí)效應(yīng),,改善圖形的質(zhì)量,。
VTK支持4種Decimation對(duì)象:vtkDecimate、vtkDecimatePro,、vtkQuadricClustering,、vtkQuardricDecimation。vtkDe-
cimatePro執(zhí)行速度相對(duì)較快,,并且在削減過程中能夠修改拓?fù)浣Y(jié)構(gòu),使用邊折疊處理消除頂點(diǎn)和三角形,,其錯(cuò)誤度量方法使用基于到平面或邊的距離方法,,能夠?qū)崿F(xiàn)被要求的任意削減程度。在vtkDecimatePro中,,有兩個(gè)重要的變量:TargetReduction是被要求減少的三角形的數(shù)量,;PreserveTopology被設(shè)置為是否允許改變拓?fù)浣Y(jié)構(gòu),。
VTK提供兩種平滑過濾器:vtkSmoothPolyDataFilter、vtkWindowedSincPolyDataFilter,。vtkSmoothPolyDataFilter的平滑效果好,、平滑速度較快。在vtkSmoothPolyDataFilter過濾器中,,重要的變量是SetNumberOfIterations,,即設(shè)置平滑迭代次數(shù)。
3 算法實(shí)現(xiàn)
VTK是可視化對(duì)象的集合,,這些可視化對(duì)象可以連接起來(lái)形成一個(gè)可視化管道,。這個(gè)管道開始輸入數(shù)據(jù)源,經(jīng)過一系列的濾波器過濾,,最后顯示出來(lái)[1],。
3.1 點(diǎn)云數(shù)據(jù)集
實(shí)驗(yàn)使用的數(shù)據(jù)來(lái)源于對(duì)現(xiàn)實(shí)動(dòng)物貓的三維掃描,通過激光掃描儀掃描到的數(shù)據(jù)以三維坐標(biāo)的形式存儲(chǔ)在Txt文本中,。Txt文本存儲(chǔ)的點(diǎn)云數(shù)據(jù)是一個(gè)多行3列的矩陣,,每行記錄數(shù)據(jù)點(diǎn)的x、y,、z 3個(gè)坐標(biāo)值,,保證數(shù)據(jù)的正確性;在保證完整性的基礎(chǔ)上進(jìn)行數(shù)據(jù)精簡(jiǎn),,提高運(yùn)算速率,。
3.2 實(shí)驗(yàn)過程
在Microsoft Visual C++平臺(tái)中,對(duì)三維點(diǎn)云進(jìn)行曲面重建和可視化,,主要經(jīng)過下面5個(gè)步驟:
(1)點(diǎn)云預(yù)處理,。對(duì)三維點(diǎn)云數(shù)據(jù)進(jìn)行去噪與濾波處理,由vtkPolyData和vtkPoint等VTK函數(shù)讀入VTK的pipeline流水線中,。
(2)調(diào)用Power Crust算法對(duì)點(diǎn)云進(jìn)行曲面重建,。對(duì)VTK流水線機(jī)制讀入的點(diǎn)云數(shù)據(jù),調(diào)用Power Crust算法進(jìn)行頂點(diǎn)聚類,、Delaunay三角化特性檢測(cè),、三角化,得到初步的曲面網(wǎng)格,。
(3)簡(jiǎn)化,、平滑曲面網(wǎng)格。對(duì)重建后得到的網(wǎng)格,,調(diào)用vtkDecimatePro,、vtkSmoothPolyDataFilter等VTK函數(shù)進(jìn)行簡(jiǎn)化和平滑處理,減少網(wǎng)格數(shù)量,,縮短渲染時(shí)間和提高運(yùn)算效率,。
(4)渲染,、繪制點(diǎn)云曲面。經(jīng)過簡(jiǎn)化,、平滑后的曲面網(wǎng)格,,經(jīng)過平面法向量估計(jì)、數(shù)據(jù)映射,,建立演員類等處理,,在VTK流水線機(jī)制上進(jìn)行渲染、繪制,。
(5)顯示,、交互。對(duì)得到的點(diǎn)云曲面圖,,在VTK中進(jìn)行顯示,,并實(shí)現(xiàn)交互操作。整個(gè)三維點(diǎn)云曲面重建的框圖如圖1所示,。
4 實(shí)驗(yàn)結(jié)果及分析
為了證明算法的有效性,,選用兔子、貓,、馬3組三維點(diǎn)云數(shù)據(jù)來(lái)進(jìn)行測(cè)試,。圖2(a)、(b),、(c)分別是兔子,、貓、馬三維點(diǎn)云顯示圖,,圖3(a),、(b)、(c)分別是兔子,、貓,、馬三維點(diǎn)云數(shù)據(jù)調(diào)用Power Crust算法得到的重建效果圖,圖4(a),、(b),、(c)分別是兔子、貓,、馬三維點(diǎn)云調(diào)用本文算法得到的重建效果圖,。表1總結(jié)了兩種方法對(duì)3組數(shù)據(jù)的重建結(jié)果。
通過以上幾種點(diǎn)云數(shù)據(jù)重建曲面可以看出,,使用Power Crust算法曲面重建效果比較粗糙,,并帶有很多突出和凹陷面;采用本文算法后的點(diǎn)云數(shù)據(jù)重建效果圖表面平滑光順,效果逼真,,繪制速度快,、效果好,能夠很好地反映三維點(diǎn)云的立體效果,,并能保留物體原有的一些細(xì)節(jié),,對(duì)比結(jié)果很明顯。因此說明,,把基于Voronoi 圖和Delaunay三角化的Power Crust算法和VTK可視化類庫(kù)結(jié)合起來(lái)是一個(gè)提高曲面重建效率的有效方法,。
5 結(jié)語(yǔ)
本文分析了現(xiàn)有的曲面重建技術(shù),在效率較高的基于Voronoi圖和Delaunay三角剖分的Power Crust算法基礎(chǔ)上,,結(jié)合具有強(qiáng)大圖形處理能力的可視化類庫(kù)VTK,,實(shí)現(xiàn)了三維點(diǎn)云曲面重建,并達(dá)到實(shí)時(shí)交互性能,。Power Crust算法具有流程簡(jiǎn)單,、重建結(jié)果精確等優(yōu)點(diǎn),對(duì)于沒有法向量的大量散亂點(diǎn)云數(shù)據(jù),,處理速度非??欤Ч皇呛軠?zhǔn)確,。所以將經(jīng)過去噪,、濾波后的點(diǎn)云數(shù)據(jù)集,調(diào)用Power Crust算法進(jìn)行曲面重建,,輸入具有強(qiáng)大圖像處理能力的VTK進(jìn)行簡(jiǎn)化,、平滑處理,最終得到的重建結(jié)果比較逼真,,魯棒性強(qiáng),。這一方法有效提高了重建和可視化的效率,可以很方便地應(yīng)用在各個(gè)需要獲取物體近似表面模型的領(lǐng)域,,具有很大的現(xiàn)實(shí)意義,。相信在不久的將來(lái),隨著計(jì)算機(jī)技術(shù)的發(fā)展以及圖像處理技術(shù)的深入研究,,三維點(diǎn)云曲面重建將會(huì)擁有廣泛的應(yīng)用空間,。
參考文獻(xiàn)
[1] LI J,HUANG S,,LI G,,et al.Reconstruction and visualiza-tion of 3D surface model from serial-sectioned contourpoints[C].Image and Signal Processing(CISP),2010 3rdInternational Congress on.IEEE,,2010,,5:2396-2400.
[2] AMENTA N,CHOI S,KOLLURI R K.The power crust,,unions of balls,,and the medial axis transform[J].Computa-tional Geometry,2001,,19(2):127-153.
[3] NI T,,MA Z.A fast surface reconstruction algorithm for 3Dunorganized points[C].2010 2nd International Conference on
Computer Engineering and Technology,2010,,7:15-18.
[4] LI H,,MA X,LI J,,et al.Research on model correction basedon scattered point cloud data surface reconstruction[C].Wireless Mobile and Computing(CCWMC 2011),,IET Inter-national Communication Conference on.IET,2011:97-101.
[5] WILLIAM J,,SCHROEDER,,LISA S,et al.The visualizationtoolkit user′s guide:updated for version 4.0[M].Kitware,,
1998.
[6] 呂曉琪,,李許峰,賈東征.基于可視化工具VTK的幾何體構(gòu)建技術(shù)[J].內(nèi)蒙古科技大學(xué)學(xué)報(bào),,2012,,31(2):167-170.
[7] 肖何,何明耘,,白忠建,,等.基于VTK的電磁場(chǎng)三維可視化研究及實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2008,,27(11):2773-2775.
[8] 劉偉寧.基于VTK的海底聲納數(shù)據(jù)實(shí)時(shí)三維建模軟件設(shè)計(jì)[D].杭州:浙江大學(xué),,2010.
[9] AGANJ E,KERIVEN R,,PONS J P.Photo-consistent sur-face reconstruction from noisy point clouds[C].Image Pro-cessing(ICIP),,2009 16th IEEE International Conference on,
IEEE,,2009:505-508.
[10] 李云.不規(guī)則形體點(diǎn)云的三維重建研究[D].烏魯木齊:新疆大學(xué), 2013:22-32.
[11] 李海生.Delaunay三角剖分理論及可視化應(yīng)用研究[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,,2010:12-22.