黃榮娟,仲思東,2,屠禮芬
(1.武漢大學(xué) 電子信息學(xué)院,湖北 武漢430072;2.武漢大學(xué) 測繪遙感信息工程國家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢430079)
三維建模技術(shù)對世界文化遺產(chǎn)的傳承有著不可替代的作用,因?yàn)槿S模型能給人們帶來最直觀、逼真的視覺體驗(yàn),可以再現(xiàn)物體或場景的原貌,且不受損壞。傳統(tǒng)的三維建模方法在建模效率、精度及紋理真實(shí)感等方面存在一些不足[1]。例如,在工業(yè)造型中,常利用三維激光掃描技術(shù)建模[2],精度較高但價格也較昂貴,還有三維反向建模技術(shù)、側(cè)重物體三維幾何信息的測量,而在物體表面紋理信息的重建方面稍有不足。另外,還有利用計(jì)算機(jī)輔助設(shè)計(jì)進(jìn)行三維建模[3],工作量較大,效率不高;基于圖像渲染的建模技術(shù),可直接根據(jù)圖像進(jìn)行快速建模,但在交互性等方面存在問題[4]。
鑒于上述各類三維建模方法存在的不足,本文以敦煌莫高窟內(nèi)的佛像為建模對象,研究了基于四目立體視覺的三維建模方法[5]。由于點(diǎn)云數(shù)據(jù)量較大,因此本文著重研究了幾種常見的點(diǎn)云精簡算法[6,7],并提出了一種改進(jìn)的包圍盒法。實(shí)驗(yàn)結(jié)果表明,點(diǎn)云精簡后,建模效率大大提高,且建模精度較高。
自動生成三維模型的程序流程如圖1 所示,其中,提取特征點(diǎn)即獲取并保存物體表面的三維點(diǎn)云數(shù)據(jù);導(dǎo)入數(shù)據(jù)是將保存的三維點(diǎn)云數(shù)據(jù)導(dǎo)入計(jì)算程序中,以備后期處理;三角構(gòu)網(wǎng)是指將導(dǎo)入的三維特征點(diǎn)以特定的法則連接成若干個三角面片,重建出物體表面的三維框架;加載紋理即是將獲取的物體紋理圖像映射到構(gòu)建好的三維面片上,生成帶有真實(shí)紋理的三維模型,最后,通過程序繪出能夠平移、旋轉(zhuǎn)及縮放的三維模型。
圖1 三維模型自動生成流程
本實(shí)驗(yàn)中,提取三維特征點(diǎn)所用的是四目立體視覺系統(tǒng),其原理將在下面討論。提取特征點(diǎn)后,導(dǎo)入數(shù)據(jù),然而,由于本實(shí)驗(yàn)提取的點(diǎn)云數(shù)據(jù)量過大,導(dǎo)致程序在三角構(gòu)網(wǎng)環(huán)節(jié)無法正常進(jìn)行,故需在導(dǎo)入數(shù)據(jù)之后,對點(diǎn)云數(shù)據(jù)進(jìn)行精簡,且要確保點(diǎn)云精簡后既能高效進(jìn)行后期處理,又不影響最終建模精度,這也是本文研究的重點(diǎn)。點(diǎn)云精簡之后,進(jìn)行三角化和紋理映射,最終獲得三維模型。
四目立體視覺系統(tǒng)如圖2所示,圖中每個相機(jī)所拍攝的影像分別標(biāo)記為“IMG1”、“IMG2”、“IMG3”、“IMG4”,物方坐標(biāo)系O-XYZ中有一點(diǎn)P(x,y,z)在每個相機(jī)中所成的像分別為點(diǎn)P1,P2,P3和P4。
圖2 四目立體相機(jī)布置
由圖2可見,四臺相機(jī)布置的特點(diǎn)是:相機(jī)的光軸平行,特征在立體影像之間存在透視變形,這種變形給特征匹配帶來了困難,但是光軸平行布置會把這種變形減小。相機(jī)為矩形分布,同一側(cè)的兩臺相機(jī)之間基線很短,但左右兩邊的基線較長,基線越短,特征的變形會越小,但深度測量精度會降低。相反的,基線越長,特征的變形會越大,但深度測量精度會提高。在這個系統(tǒng)中,短基線有利于提高特征的匹配效率,長基線有利于控制測量精度。另一方面,四臺相機(jī)兩兩之間可構(gòu)成六組雙目立體影像,即由P1、P2、P3和P4這4個二維圖像點(diǎn)可以組成六組二維圖像點(diǎn)對,根據(jù)其中任意一組點(diǎn)對,可求出它們對應(yīng)的空間點(diǎn)P(x,y,z)的三維坐標(biāo)[8]。由于誤差的存在,從這六組點(diǎn)對得出的測量結(jié)果是不一樣的,最終測量結(jié)果需根據(jù)這六組立體影像的基線進(jìn)行加權(quán)平均,即通過重復(fù)測量的方式減小了測量誤差,因此,四目視覺系統(tǒng)比雙目視覺系統(tǒng)測量精度更高。
常用的點(diǎn)云精簡方法有[6,7]:隨機(jī)采樣法、包圍盒法、三角網(wǎng)格法、曲率采樣法。本實(shí)驗(yàn)中,數(shù)據(jù)量較大,若采用三角網(wǎng)格法或曲率采樣法,運(yùn)算效率較低;隨機(jī)采樣法效率高,但精簡結(jié)果過于隨機(jī),精度達(dá)不到要求;故本文對包圍盒法進(jìn)行了實(shí)驗(yàn)研究。
包圍盒法的基本思路是:用一個大的立方體包圍盒將點(diǎn)云數(shù)據(jù)恰好全部包圍,將大包圍盒分解為若干個大小均勻的小包圍盒,選取每個小包圍盒的中心點(diǎn)來代替整個小包圍盒中的所有點(diǎn),從而達(dá)到點(diǎn)云精簡的目的。
實(shí)驗(yàn)結(jié)果表明,包圍盒法精簡點(diǎn)云的效率較高,且對于分布均勻的點(diǎn)云數(shù)據(jù)其精簡效果良好,而對于分布不均勻或表面曲率較大物體的三維點(diǎn)云數(shù)據(jù),其不能保證點(diǎn)云數(shù)據(jù)精簡后重建模型的精度。本文對包圍盒法進(jìn)行了改進(jìn)。
改進(jìn)的包圍盒法程序編寫的流程如圖3所示。
圖3 點(diǎn)云精簡流程
首先利用點(diǎn)云數(shù)據(jù)X、Y、Z坐標(biāo)的最大值和最小值生成一個與坐標(biāo)軸平行的能包圍所有點(diǎn)云數(shù)據(jù)的最小立方體,即大包圍盒,設(shè)其長寬高分別為I、J、K,則I、J、K 的值可由下式求得
其中 (Xmax,Ymax,Zmax)和 (Xmin,Ymin,Zmin)分別為包圍盒的最大坐標(biāo)和最小坐標(biāo),ceiling()為向上取整函數(shù)。
設(shè)包圍盒中的點(diǎn)集為集合M。將大包圍盒均勻劃分為若干個邊長為CubSize的正方體小包圍盒,設(shè)每個小包圍盒內(nèi)所有點(diǎn)為集合Ni,i=0,1,…,則NiM。設(shè)Ni內(nèi)點(diǎn)的個數(shù)為k,每個點(diǎn)為nj∈Ni,其坐標(biāo)為 (x(j),y(j),z(j)),j=1,2,…k。
圖7給出了測量誤差分別為σ=10m和σ=103m時算法的GDOP圖.可以看出,兩種測量誤差條件下,算法的定位誤差分布具有相似的規(guī)律,即在外輻射源和接收站所在的近場區(qū)域,定位精度最高,而隨著目標(biāo)遠(yuǎn)離,定位精度逐漸降低.這與仿真1中近場和遠(yuǎn)場目標(biāo)的定位誤差的比較情況是一致的.
對于每個集合Ni內(nèi)的所有點(diǎn),設(shè)用最小二乘法擬合成的平面方程為ax+by+cz=1,則由最小二乘法的定義可知,a,b,c的求解公式如下
設(shè)Ni內(nèi)的任意點(diǎn)nj到擬合平面的距離為D(j),Ni內(nèi)所有點(diǎn)到擬合平面的平均距離為m_Dis,則有
對于任意Ni,m_Dis的大小反映了該部分點(diǎn)云對應(yīng)區(qū)域的曲率大小,求出其m_Dis后,Ni內(nèi)點(diǎn)的取舍規(guī)則如下:
設(shè)置兩個閾值A(chǔ) 和B,其中A 小于B,若m_Dis小于閾值A(chǔ),說明該區(qū)域較平坦,則舍棄Ni內(nèi)所有點(diǎn);若m_Dis介于閾值A(chǔ)和B之間,說明該區(qū)域有一定曲率,則求出Ni內(nèi)所有點(diǎn)的重心坐標(biāo),設(shè)重心坐標(biāo)為(cx,cy,cz),則有
保留Ni內(nèi)離重心最近的點(diǎn),舍棄Ni內(nèi)其它點(diǎn);若m_Dis大于閾值B,說明該區(qū)域曲率較大,為提高精度,將該小包圍盒再劃分為邊長為CubSize/2 的8 個次小包圍盒,同樣求出每個次小包圍盒內(nèi)所有點(diǎn)的重心坐標(biāo),將次小包圍盒內(nèi)離重心最近的點(diǎn)保留,其它點(diǎn)舍棄。
由原理可見,改進(jìn)的包圍盒法將原始的均勻采樣改進(jìn)為依據(jù)點(diǎn)云數(shù)據(jù)的曲率大小調(diào)整采樣點(diǎn)數(shù)的非均勻采樣,因而對于非均勻分布的點(diǎn)云數(shù)據(jù)采樣精度更高。
本實(shí)驗(yàn)的硬件平臺:Windows7 32 位操作系統(tǒng),主頻2.60GHz,RAM 為4.00GB。軟件平臺:VC++6.0編程環(huán)境。
本實(shí)驗(yàn)首先將CubSize設(shè)為0.04m。將點(diǎn)云劃分為若干個邊長為0.04m 的小包圍盒后,通過軟件調(diào)試觀察得到較平坦區(qū)域的m_Dis大多在0到0.0012m 之間,而有一定曲率區(qū)域的m_Dis大致范圍是在0.0012到0.0018m 之間,大于0.0018m 的則是曲率較大區(qū)域。為舍棄平坦區(qū)域的大量冗余點(diǎn),又確保有少許的特征點(diǎn)被保留,本文將閾值A(chǔ) 設(shè)為0.009m,閾值B則設(shè)為0.0018m。參數(shù)設(shè)置完畢后,即進(jìn)行全自動建模,建模結(jié)果在少許細(xì)節(jié)方面精度稍有欠缺,故實(shí)驗(yàn)采取減小CubSize的方式提高精度,將Cubsize設(shè)為0.03m,所得三維模型和實(shí)物已無明顯差異。為確保建模高精度,最終將CubSize設(shè)定為0.02m。
對于所有點(diǎn)集Ni,其m_Dis的大小反映了該區(qū)域的曲率大小。根據(jù)m_Dis與閾值A(chǔ)、B 的大小關(guān)系可將Ni劃分為3類:m_Dis小于閾值A(chǔ) 的點(diǎn)集,m_Dis介于閾值A(chǔ)、B之間的點(diǎn)集和m_Dis大于閾值B的點(diǎn)集。包圍盒法和改進(jìn)的包圍盒法在這三類點(diǎn)集中采樣的點(diǎn)數(shù)見表1。
包圍盒法和改進(jìn)的包圍盒法精簡后點(diǎn)云與原始點(diǎn)云的空間分布對比如圖4所示。
(2)三角構(gòu)網(wǎng)及紋理粘貼。在VC++軟件編程環(huán)境下,利用C++程序以及OpenGL 提供的接口函數(shù)將精簡后的點(diǎn)云三角構(gòu)網(wǎng)[9,10],再從紋理圖像中提取佛像的紋理并粘貼于已構(gòu)網(wǎng)的空間模型上[11,12],即可生成逼真的三維佛像模型。從不同角度截取的模型組圖如圖5所示。
表1 改進(jìn)前后包圍盒法采樣點(diǎn)數(shù)對比
圖4 點(diǎn)云空間分布對比
圖5 三維模型
實(shí)驗(yàn)結(jié)果分析:點(diǎn)云精簡前后參數(shù)對比見表2,由表2可見,原始點(diǎn)云數(shù)據(jù)量較大,包含大量冗余點(diǎn),使得三角構(gòu)網(wǎng)無法正常進(jìn)行,而精簡后的點(diǎn)云數(shù)據(jù)量以及所占內(nèi)存大大降低,使得全自動建模能夠順利、高效的完成。
表2 點(diǎn)云精簡前后參數(shù)對比
由表1和圖4可見,改進(jìn)后的包圍盒法與原始包圍盒法相比,在曲率較小的平坦區(qū)域多舍棄了大量冗余點(diǎn),而在佛身等曲率較大的區(qū)域增加了較多采樣點(diǎn)。
實(shí)驗(yàn)結(jié)果表明,本文所提出的改進(jìn)的包圍盒法既保留了原始包圍盒法運(yùn)算效率高的優(yōu)點(diǎn),又可根據(jù)各個區(qū)域的曲率大小調(diào)整采樣的點(diǎn)數(shù),有效的提高了點(diǎn)云精簡的精度,且由圖5可見,最終生成的三維模型直觀、逼真,建模精度較高。
敦煌莫高窟內(nèi)場景的三維重建及保存對于世界文化遺產(chǎn)的傳承有著重大的意義。本文以敦煌莫高窟內(nèi)的佛像為建模對象,研究了基于四目立體視覺系統(tǒng)的三維全自動建模技術(shù)。實(shí)驗(yàn)驗(yàn)證了基于立體視覺的三維建模技術(shù)效率高、精度高的優(yōu)點(diǎn),為后期對敦煌莫高窟內(nèi)整個場景的三維重建打下了基礎(chǔ)。由于采集到的三維點(diǎn)云數(shù)據(jù)量較大,需對點(diǎn)云進(jìn)行精簡以去除大量冗余點(diǎn),因而本文研究了多種點(diǎn)云精簡方法,并提出了一種改進(jìn)的包圍盒法。經(jīng)實(shí)驗(yàn)驗(yàn)證,該算法高效可行,點(diǎn)云數(shù)據(jù)精簡后建模效率有較大提高,且生成的三維模型精度較高。
然而,實(shí)驗(yàn)還存在一些不足,在CubSize、閾值A(chǔ) 和閾值B的選取上,實(shí)驗(yàn)是通過人為的程序調(diào)試和對比實(shí)驗(yàn),最終選定這3個參數(shù)的大小。在以后的研究工作中,應(yīng)能夠根據(jù)點(diǎn)云數(shù)據(jù)自身的特點(diǎn),通過軟件編程,實(shí)現(xiàn)參數(shù)和閾值的自動選取。
[1]LUAN Xidao,YING Long,XIE Yuxiang,et al.Advances in study of 3D modeling [J].Computer Science,2008,35 (2):208-211(in Chinese).[欒悉道,應(yīng)龍,謝毓湘,等.三維建模技術(shù)研究進(jìn)展[J].計(jì)算機(jī)科學(xué),2008,35 (2):208-211.]
[2]YANG Ming,HUANG Qiang.Research on the application of terrestrial 3Dlaser scanning technology in historical style preservation [J].Geomatics &Spatial Information Technology,2013,36 (6):131-134 (in Chinese). [楊銘,黃強(qiáng).地面3維激光掃描技術(shù)在歷史風(fēng)貌保護(hù)中的應(yīng)用 [J].測繪與空間地理信息,2013,36 (6):131-134.]
[3]ZHANG Kaixuan.Three-dimensional modeling with CAD [J].Computer Systems & Applications,2012,21 (2):192-195(in Chinese).[張凱選.CAD 下三維建模研究 [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21 (2):192-195.]
[4]DENG Zhidong,NIU Jianjun.Three-dimensional modeling approach based on stereo vision [J].Journal of System Simulation,2007,19 (14):3258-3262 (in Chinese).[鄧志東,牛建軍.基于立體視覺的三維建模方法 [J].系統(tǒng)仿真學(xué)報(bào),2007,19 (14):3258-3262.]
[5]JI Zheng.Research on automation technique for close-range object’s 3D reconstruction [D].Wuhan:Wuhan University,2007 (in Chinese).[季錚.近景目標(biāo)三維重建的自動化方法研究 [D].武漢:武漢大學(xué),2007.]
[6]LI Tianlan.Three-dimensional point cloud data processing and application [D].Kunming:Kunming University of Science and Technology,2011 (in Chinese).[李天蘭.三維點(diǎn)云數(shù)據(jù)的處理與應(yīng)用 [D].昆明:昆明理工大學(xué),2011.]
[7]WANG Ru.Reduction algorithm for 3Dscattered points cloud data based on clustering plane feature [J].Computer Engineering,2011,37 (10):249-251 (in Chinese). [王茹.基于聚類平面特征的三維點(diǎn)云數(shù)據(jù)精簡算法 [J].計(jì)算機(jī)工程,2011,37 (10):249-251.]
[8]WANG Yanxia,WANG Zhenzhou,LIU Jiaomin.Three-dimensional modeling approach based on stereo vision [J].Journal of Hebei University of Science and Technology,2008,29(3):219-222 (in Chinese). [王彥霞,王震洲,劉教民.基于雙目立體視覺的三維建模算法 [J].河北科技大學(xué)學(xué)報(bào),2008,29 (3):219-222.]
[9]YUAN Fang,TANG Jie,WU Gangshan.A geometric spread approach of 3Dreconstruction [J].Computer Technology and Development,2011,21 (10):14-18 (in Chinese). [袁方,唐杰,武港山.一種基于三維Delaunay三角化的曲面重建算法 [J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21 (10):14-18.]
[10]WANG Xianze,LI Zhongke,MA Yaqi,et al.Region growing and scattered point cloud refactoring based on Delaunay triangle subdivision [J].Journal of Sichuan Ordnance,2012,33 (5):108-111 (in Chinese).[王先澤,李忠科,馬亞奇,等.基于Delaunay 三角剖分和區(qū)域生長的散亂點(diǎn)云重構(gòu)[J].四川兵工學(xué)報(bào),2012,33 (5):108-111.]
[11]XIAO Yuanyuan,WANG Ziniu.Research and implementation for texture mapping of OpenGL based On VC++ [J].Journal of Guizhou University (Natural Sciences),2008,25(2):158-160(in Chinese). [肖源源,王子牛.基于VC++的OpenGL紋理映射技術(shù)的研究與實(shí)現(xiàn) [J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,25 (2):158-160.]
[12]Richard S Wright.OpenGL SuperBible [M].Beijing:Post&Telecom Press,2012:127-161 (in Chinese). [Richard S Wright.OpenGL超級寶典 [M].北京:人民郵電出版社,2012:127-161.]