黃榮娟,仲思東,2,屠禮芬
(1.武漢大學 電子信息學院,湖北 武漢430072;2.武漢大學 測繪遙感信息工程國家重點實驗室,湖北 武漢430079)
三維建模技術對世界文化遺產的傳承有著不可替代的作用,因為三維模型能給人們帶來最直觀、逼真的視覺體驗,可以再現(xiàn)物體或場景的原貌,且不受損壞。傳統(tǒng)的三維建模方法在建模效率、精度及紋理真實感等方面存在一些不足[1]。例如,在工業(yè)造型中,常利用三維激光掃描技術建模[2],精度較高但價格也較昂貴,還有三維反向建模技術、側重物體三維幾何信息的測量,而在物體表面紋理信息的重建方面稍有不足。另外,還有利用計算機輔助設計進行三維建模[3],工作量較大,效率不高;基于圖像渲染的建模技術,可直接根據圖像進行快速建模,但在交互性等方面存在問題[4]。
鑒于上述各類三維建模方法存在的不足,本文以敦煌莫高窟內的佛像為建模對象,研究了基于四目立體視覺的三維建模方法[5]。由于點云數據量較大,因此本文著重研究了幾種常見的點云精簡算法[6,7],并提出了一種改進的包圍盒法。實驗結果表明,點云精簡后,建模效率大大提高,且建模精度較高。
自動生成三維模型的程序流程如圖1 所示,其中,提取特征點即獲取并保存物體表面的三維點云數據;導入數據是將保存的三維點云數據導入計算程序中,以備后期處理;三角構網是指將導入的三維特征點以特定的法則連接成若干個三角面片,重建出物體表面的三維框架;加載紋理即是將獲取的物體紋理圖像映射到構建好的三維面片上,生成帶有真實紋理的三維模型,最后,通過程序繪出能夠平移、旋轉及縮放的三維模型。
圖1 三維模型自動生成流程
本實驗中,提取三維特征點所用的是四目立體視覺系統(tǒng),其原理將在下面討論。提取特征點后,導入數據,然而,由于本實驗提取的點云數據量過大,導致程序在三角構網環(huán)節(jié)無法正常進行,故需在導入數據之后,對點云數據進行精簡,且要確保點云精簡后既能高效進行后期處理,又不影響最終建模精度,這也是本文研究的重點。點云精簡之后,進行三角化和紋理映射,最終獲得三維模型。
四目立體視覺系統(tǒng)如圖2所示,圖中每個相機所拍攝的影像分別標記為“IMG1”、“IMG2”、“IMG3”、“IMG4”,物方坐標系O-XYZ中有一點P(x,y,z)在每個相機中所成的像分別為點P1,P2,P3和P4。
圖2 四目立體相機布置
由圖2可見,四臺相機布置的特點是:相機的光軸平行,特征在立體影像之間存在透視變形,這種變形給特征匹配帶來了困難,但是光軸平行布置會把這種變形減小。相機為矩形分布,同一側的兩臺相機之間基線很短,但左右兩邊的基線較長,基線越短,特征的變形會越小,但深度測量精度會降低。相反的,基線越長,特征的變形會越大,但深度測量精度會提高。在這個系統(tǒng)中,短基線有利于提高特征的匹配效率,長基線有利于控制測量精度。另一方面,四臺相機兩兩之間可構成六組雙目立體影像,即由P1、P2、P3和P4這4個二維圖像點可以組成六組二維圖像點對,根據其中任意一組點對,可求出它們對應的空間點P(x,y,z)的三維坐標[8]。由于誤差的存在,從這六組點對得出的測量結果是不一樣的,最終測量結果需根據這六組立體影像的基線進行加權平均,即通過重復測量的方式減小了測量誤差,因此,四目視覺系統(tǒng)比雙目視覺系統(tǒng)測量精度更高。
常用的點云精簡方法有[6,7]:隨機采樣法、包圍盒法、三角網格法、曲率采樣法。本實驗中,數據量較大,若采用三角網格法或曲率采樣法,運算效率較低;隨機采樣法效率高,但精簡結果過于隨機,精度達不到要求;故本文對包圍盒法進行了實驗研究。
包圍盒法的基本思路是:用一個大的立方體包圍盒將點云數據恰好全部包圍,將大包圍盒分解為若干個大小均勻的小包圍盒,選取每個小包圍盒的中心點來代替整個小包圍盒中的所有點,從而達到點云精簡的目的。
實驗結果表明,包圍盒法精簡點云的效率較高,且對于分布均勻的點云數據其精簡效果良好,而對于分布不均勻或表面曲率較大物體的三維點云數據,其不能保證點云數據精簡后重建模型的精度。本文對包圍盒法進行了改進。
改進的包圍盒法程序編寫的流程如圖3所示。
圖3 點云精簡流程
首先利用點云數據X、Y、Z坐標的最大值和最小值生成一個與坐標軸平行的能包圍所有點云數據的最小立方體,即大包圍盒,設其長寬高分別為I、J、K,則I、J、K 的值可由下式求得
其中 (Xmax,Ymax,Zmax)和 (Xmin,Ymin,Zmin)分別為包圍盒的最大坐標和最小坐標,ceiling()為向上取整函數。
設包圍盒中的點集為集合M。將大包圍盒均勻劃分為若干個邊長為CubSize的正方體小包圍盒,設每個小包圍盒內所有點為集合Ni,i=0,1,…,則NiM。設Ni內點的個數為k,每個點為nj∈Ni,其坐標為 (x(j),y(j),z(j)),j=1,2,…k。
圖7給出了測量誤差分別為σ=10m和σ=103m時算法的GDOP圖.可以看出,兩種測量誤差條件下,算法的定位誤差分布具有相似的規(guī)律,即在外輻射源和接收站所在的近場區(qū)域,定位精度最高,而隨著目標遠離,定位精度逐漸降低.這與仿真1中近場和遠場目標的定位誤差的比較情況是一致的.
對于每個集合Ni內的所有點,設用最小二乘法擬合成的平面方程為ax+by+cz=1,則由最小二乘法的定義可知,a,b,c的求解公式如下
設Ni內的任意點nj到擬合平面的距離為D(j),Ni內所有點到擬合平面的平均距離為m_Dis,則有
對于任意Ni,m_Dis的大小反映了該部分點云對應區(qū)域的曲率大小,求出其m_Dis后,Ni內點的取舍規(guī)則如下:
設置兩個閾值A 和B,其中A 小于B,若m_Dis小于閾值A,說明該區(qū)域較平坦,則舍棄Ni內所有點;若m_Dis介于閾值A和B之間,說明該區(qū)域有一定曲率,則求出Ni內所有點的重心坐標,設重心坐標為(cx,cy,cz),則有
保留Ni內離重心最近的點,舍棄Ni內其它點;若m_Dis大于閾值B,說明該區(qū)域曲率較大,為提高精度,將該小包圍盒再劃分為邊長為CubSize/2 的8 個次小包圍盒,同樣求出每個次小包圍盒內所有點的重心坐標,將次小包圍盒內離重心最近的點保留,其它點舍棄。
由原理可見,改進的包圍盒法將原始的均勻采樣改進為依據點云數據的曲率大小調整采樣點數的非均勻采樣,因而對于非均勻分布的點云數據采樣精度更高。
本實驗的硬件平臺:Windows7 32 位操作系統(tǒng),主頻2.60GHz,RAM 為4.00GB。軟件平臺:VC++6.0編程環(huán)境。
本實驗首先將CubSize設為0.04m。將點云劃分為若干個邊長為0.04m 的小包圍盒后,通過軟件調試觀察得到較平坦區(qū)域的m_Dis大多在0到0.0012m 之間,而有一定曲率區(qū)域的m_Dis大致范圍是在0.0012到0.0018m 之間,大于0.0018m 的則是曲率較大區(qū)域。為舍棄平坦區(qū)域的大量冗余點,又確保有少許的特征點被保留,本文將閾值A 設為0.009m,閾值B則設為0.0018m。參數設置完畢后,即進行全自動建模,建模結果在少許細節(jié)方面精度稍有欠缺,故實驗采取減小CubSize的方式提高精度,將Cubsize設為0.03m,所得三維模型和實物已無明顯差異。為確保建模高精度,最終將CubSize設定為0.02m。
對于所有點集Ni,其m_Dis的大小反映了該區(qū)域的曲率大小。根據m_Dis與閾值A、B 的大小關系可將Ni劃分為3類:m_Dis小于閾值A 的點集,m_Dis介于閾值A、B之間的點集和m_Dis大于閾值B的點集。包圍盒法和改進的包圍盒法在這三類點集中采樣的點數見表1。
包圍盒法和改進的包圍盒法精簡后點云與原始點云的空間分布對比如圖4所示。
(2)三角構網及紋理粘貼。在VC++軟件編程環(huán)境下,利用C++程序以及OpenGL 提供的接口函數將精簡后的點云三角構網[9,10],再從紋理圖像中提取佛像的紋理并粘貼于已構網的空間模型上[11,12],即可生成逼真的三維佛像模型。從不同角度截取的模型組圖如圖5所示。
表1 改進前后包圍盒法采樣點數對比
圖4 點云空間分布對比
圖5 三維模型
實驗結果分析:點云精簡前后參數對比見表2,由表2可見,原始點云數據量較大,包含大量冗余點,使得三角構網無法正常進行,而精簡后的點云數據量以及所占內存大大降低,使得全自動建模能夠順利、高效的完成。
表2 點云精簡前后參數對比
由表1和圖4可見,改進后的包圍盒法與原始包圍盒法相比,在曲率較小的平坦區(qū)域多舍棄了大量冗余點,而在佛身等曲率較大的區(qū)域增加了較多采樣點。
實驗結果表明,本文所提出的改進的包圍盒法既保留了原始包圍盒法運算效率高的優(yōu)點,又可根據各個區(qū)域的曲率大小調整采樣的點數,有效的提高了點云精簡的精度,且由圖5可見,最終生成的三維模型直觀、逼真,建模精度較高。
敦煌莫高窟內場景的三維重建及保存對于世界文化遺產的傳承有著重大的意義。本文以敦煌莫高窟內的佛像為建模對象,研究了基于四目立體視覺系統(tǒng)的三維全自動建模技術。實驗驗證了基于立體視覺的三維建模技術效率高、精度高的優(yōu)點,為后期對敦煌莫高窟內整個場景的三維重建打下了基礎。由于采集到的三維點云數據量較大,需對點云進行精簡以去除大量冗余點,因而本文研究了多種點云精簡方法,并提出了一種改進的包圍盒法。經實驗驗證,該算法高效可行,點云數據精簡后建模效率有較大提高,且生成的三維模型精度較高。
然而,實驗還存在一些不足,在CubSize、閾值A 和閾值B的選取上,實驗是通過人為的程序調試和對比實驗,最終選定這3個參數的大小。在以后的研究工作中,應能夠根據點云數據自身的特點,通過軟件編程,實現(xiàn)參數和閾值的自動選取。
[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).[欒悉道,應龍,謝毓湘,等.三維建模技術研究進展[J].計算機科學,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). [楊銘,黃強.地面3維激光掃描技術在歷史風貌保護中的應用 [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].計算機系統(tǒ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)仿真學報,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).[季錚.近景目標三維重建的自動化方法研究 [D].武漢:武漢大學,2007.]
[6]LI Tianlan.Three-dimensional point cloud data processing and application [D].Kunming:Kunming University of Science and Technology,2011 (in Chinese).[李天蘭.三維點云數據的處理與應用 [D].昆明:昆明理工大學,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). [王茹.基于聚類平面特征的三維點云數據精簡算法 [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].河北科技大學學報,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].計算機技術與發(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ū)域生長的散亂點云重構[J].四川兵工學報,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紋理映射技術的研究與實現(xiàn) [J].貴州大學學報(自然科學版),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.]