李鵬飛,侯毅星,景軍鋒,2
(1.西安工程大學(xué)電子信息學(xué)院,陜西西安710048;2.陜西省紡織印染自動化工程技術(shù)研究中心,陜西西安710048)
三維人體的點云獲取與點云重建
李鵬飛1,侯毅星1,景軍鋒1,2
(1.西安工程大學(xué)電子信息學(xué)院,陜西西安710048;2.陜西省紡織印染自動化工程技術(shù)研究中心,陜西西安710048)
針對三維人體重建中人體曲面復(fù)雜,點云龐大的問題,提出一種基于三維Voronoi圖,并利用Delaunay三角剖分性質(zhì)的Crust算法進(jìn)行人體三維重建.采用三角測量原理計算三維坐標(biāo),散亂的點云構(gòu)成Voronoi圖,Delaunay三角剖分Voronoi圖得到原始模型.利用Xjtuom三維面掃描儀測量人體點云,進(jìn)而采集到了49幅不同角度和高度的圖片,并用自帶軟件完成了配準(zhǔn).通過Matlab平臺完成點云讀取,點云精簡和基于Crust算法的三維重建.實驗表明,該算法可以保證曲面重建的拓?fù)湔_性和收斂性.該三維重建系統(tǒng)能夠?qū)崿F(xiàn)人體龐大點云的三角剖分與人體復(fù)雜自由曲面的重建,并得到了360°無縫隙的人體重建模型.
三角測量;點云精簡;Crust算法;三維重建
激光測量具有非接觸、速度快、效率高等特點,成為近年來應(yīng)用最廣泛的實物數(shù)字化方法.但是激光測量產(chǎn)生的人體點云規(guī)模巨大,遠(yuǎn)遠(yuǎn)超過了刻畫人體細(xì)節(jié)所需的密度.人體三維重建是從實物數(shù)字化所得的散亂點云中重構(gòu)出忠實于原始人體曲面的三角形網(wǎng)格的過程,為人體尺寸測量[1]、三維試衣系統(tǒng)[2]的研究提供了基礎(chǔ).
三維重建的研究始于Lerensen[3]提出的Marching cube方法,該方法可以實現(xiàn)均勻密度表面的重建.Hoppe[4]等在此基礎(chǔ)上通過計算點云的微切平面來估算點到真實曲面的有向距離,用隱曲面的方法構(gòu)建三維模型,這一方法的難點在于近似模型的選擇.外擴(kuò)方法[5-6]作為一枝獨秀,成為近期三維重建的熱點,通過逐步向網(wǎng)格曲面邊界邊添加三角形來實現(xiàn)三角剖分,其結(jié)果是已三角化區(qū)域和未三角化區(qū)域的交界不斷向外展,直到所有點都被網(wǎng)格曲面覆蓋.該方法的難點是如何將新三角形添加到已三角化的區(qū)域中.1998年著名的SIGGRAPH會議上,Nina[7]等人提出了基于Voronoi圖的Crust算法,成為近年來三維重建的熱點[8],對于高密度的點云可以保證拓?fù)湔_性與對原始曲面的收斂性,該算法的不足在于只能對十萬級以下點云有良好的重建效果.由于Crust算法有很強(qiáng)的理論保證,如果將Crust算法用在人體三維重建上,能夠保證生成的網(wǎng)格曲面與人體曲面保持拓?fù)湟恢滦?Crust算法不需要計算距離函數(shù),可以自動獲取參數(shù),應(yīng)用比較便捷;Crust算法允許采樣密度是不均勻的;這種算法的優(yōu)點還在于輸出的離散曲面在細(xì)節(jié)區(qū)域具有密集點,而在無特征的區(qū)域具有稀疏點,符合人體曲面建模的特點.
綜上,本文在基于三維重建的現(xiàn)狀以及人體自由曲面的特性的基礎(chǔ)上,先對人體進(jìn)行了360°測量,然后做出了適合人體的數(shù)據(jù)精簡,使之適合于Crust算法,最后用Crust算法完成人體三維重建.
1.1 三角測量原理
將CCD相機(jī)采集到的圖像還原出人體的三維坐標(biāo)時,需要用到三角測量原理(圖1).以XYZ為參考坐標(biāo)系,其中三維光學(xué)面掃描系統(tǒng)投影儀和CCD相機(jī)的光心OP點與OC連線平行于參考平面R,即XY平面,Z軸與投影儀光軸方向平行,表示高度信息.當(dāng)投影射線OPA經(jīng)被測物上一點H時,成像于CCD相機(jī)上的像素點E(i,j).假設(shè)沒有被測物體時,投影射線OPB經(jīng)參考面上一點B與投影射線OPA成像于一點.由于OCOP與XY平面平行,則三角形AHB相似于三角形OPHOC,進(jìn)而得到式(1).由式(1)可推出式(2),其中,ZH表示H在Z軸方向分量L為OCOP到參考平面的距離.若H為任一空間點,由于三角形AHH′與三角形AOPO相似,該點的XH,XP坐標(biāo)可通過ZH得到,式(3)為其XH坐標(biāo)求法,同理可得YH坐標(biāo).
圖1 三角測量原理
1.2 Voronoi圖
Voronoi圖是將散亂的點云連接成曲面的常用手段.Voronoi圖,又叫泰森多邊形,是由一組連接兩鄰點直線的垂直平分線組成的連續(xù)多邊形組成.假設(shè)P={P1,P2,…,Pn}是歐幾里德平面上的一個點集,并且這些點不共線,四點不共圓.用d(Pi,Pj)表示Pi,Pj間的歐幾里德距離.設(shè)p為平面上的點,則區(qū)域Vi={p∈E2|d(P,Pi)≤d(P,Pj),j=1,2,…,n,j≠i.}稱為點p的Voronoi多邊形.圖2是20個點集的Voronoi圖.圖2中虛線表示Voronoi圖,實線表示Delaunay.
圖2 Voronoi圖
圖3 Voronoi與Delaunay三角剖分關(guān)系
1.3 Delaunay三角剖分
最終形成最接近規(guī)格化的三角網(wǎng)格還要進(jìn)行Delaunay三角剖分.根據(jù)文獻(xiàn)[9],Delaunay三角剖分的定義是:Voronoi圖的一個頂點同時屬于3個Voronoi多邊形,每個Voronoi多邊形內(nèi)有且僅有一個節(jié)點.連接3個共點的Voronoi多邊形分別對應(yīng)的3個節(jié)點則形成一個Delaunay三角形,所有這樣的三角形的集合就是Delaunay三角剖分.Delaunay三角剖分與Voronoi圖互為對偶,圖3是Delaunay三角剖分與Voronoi的關(guān)系圖.
2.1 點云數(shù)據(jù)獲取
本文采用XJTUOM三維光學(xué)面掃描系統(tǒng)獲得人體的三維點云,XJTUOM的基本原理是:測量時光柵投影裝置投影多幅多頻光柵到待測物體上,成一定夾角的2個攝像頭同步采得相應(yīng)圖像,然后對其進(jìn)行解碼和相位計算,并利用立體匹配技術(shù)、三角形測量原理[10],解算出2個攝像機(jī)公共視區(qū)內(nèi)像素點的三維坐標(biāo).
標(biāo)定是借助于標(biāo)定裝置,利用軟件算法計算出掃描頭的所有內(nèi)外部結(jié)構(gòu)參數(shù),才能正確計算測量點的坐標(biāo).標(biāo)定算法采用平面模板八步法進(jìn)行標(biāo)定,所謂八步法就是在系統(tǒng)的標(biāo)準(zhǔn)測量距離下,依次采集8個不同方位的模板圖象進(jìn)行標(biāo)定.其中400mm×300mm幅面的標(biāo)準(zhǔn)測量距離為1 000mm.
實驗對于400mm×300mm的幅面,采用標(biāo)定板進(jìn)行標(biāo)定,得到的標(biāo)定極差為0.017 4,遠(yuǎn)小于系統(tǒng)要求的0.05,大大減小了測量誤差.采用三維面掃描儀進(jìn)行測量,從正面開始,對人體以15°進(jìn)行旋轉(zhuǎn),并對每個角度進(jìn)行從頭到腰部的拍攝,進(jìn)而得到了人體上身的點云,最終獲得了49幅圖像,最后用自帶的點云處理軟件進(jìn)行數(shù)據(jù)處理,包括點云配準(zhǔn)、融合、光順、平滑處理的過程.
輸出的文件以.PLY格式保存.但這種文件格式在Matlab中不能直接讀取,因此,在Matlab平臺上,利用斯坦福實驗室提出的plyread函數(shù),經(jīng)過改進(jìn),將三維掃描儀獲得的.PLY文件以逐行讀取的辦法轉(zhuǎn)化成N*3矩陣的.MAT文件.由于得到的點云在百萬級,還是很難進(jìn)行三維重建操作,因此,本文提出一個適合人體數(shù)據(jù)精簡的算法.
2.2 點云數(shù)據(jù)精簡
現(xiàn)有的數(shù)據(jù)精簡的基本算法主要有包圍盒法、均勻網(wǎng)格法、三角網(wǎng)格法及曲率采樣法等.傳統(tǒng)的數(shù)據(jù)精簡主要是采用包圍盒法[11],這種方法簡單、高效,對于均勻的點云能夠取得一定效果,但只適應(yīng)于表面簡單、曲率變化不大的物體的數(shù)據(jù)精簡.減少三角網(wǎng)格數(shù)目的精簡方法,適用于分塊或完整三維數(shù)據(jù),但首先需對數(shù)據(jù)點云進(jìn)行三角網(wǎng)格化處理.基于“中值濾波”原理的均勻網(wǎng)格法,一些在形狀急劇變化的表面處的點將會丟失.曲率采樣法能較準(zhǔn)確地保持模型的曲面特征并有效減少數(shù)據(jù)點,但一般計算效率較低.在最短的時間內(nèi),用最少的點表示最多的信息是是指精簡的目標(biāo).精度、簡度、速度是度量點云數(shù)據(jù)精簡好壞的三個標(biāo)準(zhǔn),精度是指精簡后的點云擬合的曲面與原有人體曲面的相似度,簡度是指精簡后點云的個數(shù)比三維掃描儀獲取點云的個數(shù)減少的程度,速度是指點云精簡的全過程所花費的時間.這三者是很難同時滿足的.
基于人體點云數(shù)據(jù)的特殊性質(zhì),考慮到人體的細(xì)節(jié)特征在毫米級上差別是不明顯的,因此,對點云沿著高度層進(jìn)行分層,以1mm的步長取數(shù)據(jù),刪除中間點,通過Matlab中的取整函數(shù),將0.1mm的位進(jìn)行四舍五入,從而將點云等分成N層,本次實驗將人體等分成1 000層.在此后的三角化中,這樣的簡化并不會影響重建的細(xì)節(jié)信息,即點云精簡的精度高.由于不需要計算曲率信息,計算比較簡單,因而三維重建的速度很快.實驗將1 032 494個點云精簡到148 565個,點云數(shù)據(jù)達(dá)到十萬級,就可以利于用Crust算法進(jìn)行三維重建.
2.3 點云三維重建
定義1在點云S外面插入外殼F,外殼上的點到點云S上任一點的歐幾里德距離都是點云上的點到外殼中軸最小距離的r倍,則稱S為曲面F的r-sample.
定理1S為曲面F的r-sample,若r≤0.25,S的Crust圖僅連接F上鄰近的點.
定理2S為曲面F的r-sample,若r≤0.06,則S的Crust圖包含一個三角剖分的網(wǎng)格收斂于F,Crust圖上的每個點距離F上任一點p的距離小于5r·d(p),其中d(p)是p到中軸的距離.
定義Vs是點云S的Voronoi頂點集.由于許多三維的Voronoi頂點不位于中軸附近,點云S在F上被其他點包圍,Vs以點云S和它的鄰近點的垂直平分平面為邊界,分為兩部分,每一部分都幾乎垂直于F.因此,Vs的幾何形狀為長窄形狀,且在樣本點s處幾乎垂直于F.Vs向外垂直延伸到中軸上,在中軸附近,其他F上樣本點比點s更接近中軸,且Vs被切斷.這就保證了Vs上其他一些頂點位于中軸附近.從而得到了以下的算法.
在Voronoi過濾階段,不需計算所有的Voronoi頂點.對于每個樣本點s,只需計算2個距離點s最遠(yuǎn)的Vs頂點,這2個頂點分別在外殼F的兩側(cè),稱為極點,用符號p+,p-表示.p+是Vs中距離點s最遠(yuǎn)的點,Vs的幾何形狀屬于長窄形狀,因此p-正好位于相反的方向.以下是Crust算法的基本步驟:
Step 1插入外殼F,實驗取r=0.05.
Step 2計算點云S的Voronoi圖.
Step 3對每個點s進(jìn)行如下操作:(1)如果s不在凸殼上,則p+是Vs中距離s最遠(yuǎn)的Voronoi頂點.定義n+為矢量sp+.(2)如果s在凸殼上,定義n+為領(lǐng)域三角形外法矢量的平均值.(3)定義p-是在n+負(fù)向上,Vs中距離s最遠(yuǎn)的voronoi頂點.
Step 4P為所有極點p-與p+的合集.計算S∪P的Delanuary三角剖分.
Step 5僅保存3個頂點都在點云S上的三角形.
圖4 重建前不同角度點云
圖5 重建后不同角度的人體模型
利用三維面掃描儀得到人體點云信息,在主頻為3.10GHz,內(nèi)存為4GB的PC機(jī)上,以Matlab為平臺進(jìn)行算法實現(xiàn),結(jié)果如圖4和圖5所示,圖4為重建前不同角度的點云,圖5為重建后的人體模型.
本文標(biāo)定算法采用平面模板八步法進(jìn)行標(biāo)定,在系統(tǒng)的標(biāo)準(zhǔn)測量距離下,依次采集8個不同方位的模板圖象,標(biāo)定極差為0.017 4.從實驗結(jié)果看出,采集到了人體的各個角度的圖像,驗證了本實驗測量系統(tǒng)的優(yōu)勢.
圖4為點云精簡后的點云,雖然看不到人體的細(xì)節(jié),但是人體完整性還是得到了保障,人體輪廓明顯,本次實驗將1 032 494個點云精簡到148 565個,驗證了本文點云精簡算法在精度、簡度、速度方面的優(yōu)勢.
圖5是圖4的點云在基于Voronoi的Crust算法重構(gòu)后的人體模型,從重構(gòu)結(jié)果可以看出,文中算法給出的網(wǎng)格曲面可以清晰地還原人體外形的細(xì)節(jié)信息,如眼,嘴,鼻以及腹肌的曲線等.從重構(gòu)時間看,1 032 494個點云用了不到26s,驗證了本文算法在剖分速度方面的優(yōu)勢,表1為本文結(jié)果與來自斯坦福掃描實驗室的實驗數(shù)據(jù)的比較.從完整性看,本文算法完成了人體的360°無縫重建.
表1 算法比較結(jié)果統(tǒng)計
以上實驗結(jié)果及分析表明,該三維重建系統(tǒng)能夠解決曲面復(fù)雜,點云龐大的人體三維重建難題,并得到了360°無縫隙,曲線特征明顯,輪廓分明的人體重建模型,且重建速度大幅度提高.在測量階段,通過對三維掃描儀全方位標(biāo)定,標(biāo)定極差為0.017 4,為人體模型360°重建奠定了基礎(chǔ).在采集到49幅點云的基礎(chǔ)上,經(jīng)過點云配準(zhǔn),點云精簡,使人體龐大的點云適用于Crust算法.利用Crust算法將1 032 494個離散的點云重建為人體模型,且僅用了不到26s.三維掃描儀的測量與人體三維重建的一體化系統(tǒng)有著廣闊的應(yīng)用前景,將為人們的生活提供更多的便利,不久的將來,人們足不出戶就可以完成人體尺寸測量與三維試衣.
[1]胡智.基于三維重構(gòu)的人體尺寸測量研究[D].武漢:武漢紡織大學(xué),2013.
[2]錢曉農(nóng),尹兵.基于三維人體測量的人體體型細(xì)分識別的研究[J].紡織學(xué)報,2011,32(2):107-111.
[3]LORENSEN W E,CLINE H E.Marching cubes:A high resolution 3D surface construction algorithm[J]//ACM Siggraph Computer Graphics,1987,21(4):163-169.
[4]聶建輝,馬孜,胡英,等.針對密集點云的快速曲面重建算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2012,24(5):574-582.
[5]倪小軍.點云數(shù)據(jù)精簡及三角網(wǎng)格面快速重構(gòu)技術(shù)的研究與實現(xiàn)[D].蘇州:蘇州大學(xué),2010.
[6]HOPPE H,DEROSE T,DUCHAMP T,et al.Surface reconstruction from unorganized points[C]//ACM SIGGRAPH 1992 Proceedings,1992:71-78.
[7]AMENTA N,BERN M,KAMVYSSELIS M.A new voronoi-based surface reconstruction algorithm[C]//Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques.ACM,1998:415-421.
[8]馬秀麗,李金博,周峰,等.心內(nèi)膜表面幾何模型三維重建算法研究[J].計算機(jī)應(yīng)用研究,2013,30(8):2530-2533.
[9]熊捏陽,陳曉波,孫健,等.結(jié)構(gòu)光投影面部三維測量系統(tǒng)的研制[J].上海交通大學(xué)學(xué)報:醫(yī)學(xué)版,2009,29(7):837-841.
[10]楊斌.基于人體的點云數(shù)據(jù)處理與虛擬人體建模研究[D].北京:北京服裝學(xué)院,2012.
[11]宋洋,孫殿柱,劉曉紅,等.物體表面采樣數(shù)據(jù)近似最小包圍盒快速求解[J].農(nóng)業(yè)裝備與車輛工程,2012,50(4):1-5.
The access of point clouds and the reconstruction of the 3D body
LI Peng-fei1,HOU Yi-xing1,JING Jun-feng1,2
(1.School of Electronic&Information,Xi'an Polytechnic University,Xi'an 710048,China; 2.Shaanxi Research Center of Automation of Textile Printing&Dyeing,Xi'an 710048,China)
For the problem of complex body surface and the huge point cloud in reconstruction of three-dimensional human body,based on three-dimensional Voronoi diagram and the use of Delaunay triangulation,the Crust algorithm is proposed in this paper.49 point clouds'pictures of different angles and heights are achieved with the use of three-dimensional surface xjtuom scanner,and the registration are obtained with the software which is supported by the scanner.Then via Matlab platform,reading point cloud,point cloud compression and the 3D reconstruction are completed based on the crust algorithm,which confirm the correctness of the topology and convergence.Experiments prove that the system of three-dimensional reconstruction can achieve the complete triangulation of massive point cloud and the reconstruction of complex freeform human body,and the human model is achieved in any angle.
triangulation;simplification of point clouds;Crust algorithm;three-dimensional reconstruction
TP 391.41
A
1674-649X(2014)01-0072-05
編輯:武暉;校對:師瑯
2013-10-23
陜西省教育廳科研計劃項目資助(2013JK1084);陜西省科技廳科技攻關(guān)項目資助(2013K07-32)
李鵬飛(1962-),男,陜西省西安市人,西安工程大學(xué)教授,主要從事機(jī)器視覺與圖像處理等方面的研究.E-mail:992533034@qq.com.