王 蒙,劉小平,鄒艷妮
(南昌大學信息工程學院,南昌330031)
大規(guī)模點云數(shù)據(jù)的球面紋理映射方法
王 蒙,劉小平,鄒艷妮
(南昌大學信息工程學院,南昌330031)
針對點云數(shù)據(jù)的Delaunay三角網(wǎng)格紋理映射速度慢、映射效果不夠細膩及不適合大規(guī)模點云數(shù)據(jù)紋理映射等問題,提出一種基于球面紋理映射的點云數(shù)據(jù)重建改進方法,并在Qsplat算法的基礎上進行實現(xiàn)。采用Qsplat算法對大規(guī)模點云數(shù)據(jù)進行模型重建,利用球面等比約束紋理映射算法建立紋理坐標、球面、點云重建模型三者之間的數(shù)學關系,實現(xiàn)大規(guī)模點云數(shù)據(jù)的球面紋理映射。實驗結果表明,與傳統(tǒng)的三角網(wǎng)格紋理映射相比,該方法可明顯提高紋理映射的速度和質量,拓寬球面等比約束紋理映射方法的應用范圍,適用于大規(guī)模點云數(shù)據(jù)的紋理映射。
Delaunay三角網(wǎng)格;點云數(shù)據(jù);球面紋理映射;Qsplat算法;紋理坐標;等比約束
隨著激光雷達技術的發(fā)展,計算機圖形學、計算機視覺、計算機仿真等領域與其聯(lián)系也越來越緊密。在激光雷達技術中激光雷達測量技術的產(chǎn)生使得現(xiàn)實三維空間與計算機圖形學產(chǎn)生了密切的聯(lián)系。重建點云數(shù)據(jù)三維場景后,為了增加模型的真實感,使其可視化效果更好,需要對模型進行紋理映射。目前,傳統(tǒng)點云數(shù)據(jù)的紋理映射主要采用基于點云的Delaunay三角網(wǎng)格紋理映射方法。此方法首先利用Delaunay算法對點云數(shù)據(jù)進行三角網(wǎng)格模型重建[1],然后針對三角網(wǎng)格中的每一個三角形進行紋理映射,然而Delaunay算法對大規(guī)模點云數(shù)據(jù)重建速度較慢。雖然也有對Delaunay算法進行改進快速重建[2],但重建速度不理想,重建后各個三角形大小不一,面片間連接并不光滑。盡管可以用加密采樣點來降低粗糙度,但紋理映射效果仍然一般[3]。文獻[4]對點云數(shù)據(jù)直接貼圖的方法進行了研究,但是需要提取足夠多的特征點,提取的難度較大,在速度方面和紋理映射質量方面都不理想。
本文分析Qsplat算法重建模型和面積約束球面紋理映射方法的原理[5-6],分別建立紋理圖片與球面、球面與點云重建模型之間的關系,完成面積約束球面紋理映射方法對Qsplat算法重建模型的紋理映射,簡化圖形紋理映射中建立矢量場的復雜處理過程[7]。
在SIGGRAPH 2000年會上,美國斯坦福大學的Rusinkiewicz等人提出了Qsplat算法,使得大規(guī)模的三維數(shù)據(jù)能夠層次性地組織在一起,形成一種層次包圍球樹形數(shù)據(jù)結構的QS文件。QS文件的生成階段也被看成是圖形繪制階段的預處理階段,繪制的過程直接讀取QS文件,大大縮短了點云的繪制過程,適用于大規(guī)模點云數(shù)據(jù)的重建繪制。
2.1 QS文件組織生成階段
通過計算機繪制物體,需要每個點的三維坐標點(x,y,z),每個點的有效覆蓋區(qū)域法向量norm(用于光照渲染),點云中每個點的有效覆蓋區(qū)域半徑r(用于填充點云模型中,點與點之間的空隙),然后每個點形成包含以上三方面信息的節(jié)點。其中,坐標點的獲取可以通過點云數(shù)據(jù)文件直接獲取,每個點覆蓋區(qū)域的法向量norm可以將點云數(shù)據(jù)中每個三角形的法向量賦給3個頂點,點的有效覆蓋區(qū)半徑r可以通過點云數(shù)據(jù)文件中三角形的信息確定(如果為鈍角三角形,r是三角形最長邊的一半,如果是銳角或者直角三角形,r是三角形外接圓的半徑)。三角形的半徑確定如圖1所示。
圖1 球半徑r的確定方法
Qsplat算法可以使點云數(shù)據(jù)形成一種層次包圍球(Hierarchy of bounding sphere)的四叉樹層次數(shù)據(jù)結構,從而把大規(guī)模散亂點云數(shù)據(jù)整合在一起。首先把點云數(shù)據(jù)根據(jù)上述方法組織成為節(jié)點,作為葉子節(jié)點,對大量節(jié)點進行區(qū)域性隨機劃分,然后每一區(qū)域形成一個可以包圍其中葉子節(jié)點覆蓋區(qū)域的父節(jié)點。這些父節(jié)點又會重復前面的過程,形成新的父節(jié)點,最后形成了一個覆蓋范圍最大的父節(jié)點,同時也是這棵樹的頭節(jié)點,此過程是QS文件的組織生成過程。具體的示意圖如圖2所示。
圖2 點云葉子節(jié)點形成樹的模型
2.2 Qsplat算法繪制過程
點云數(shù)據(jù)文件變換成QS文件后,Qsplat算法的繪制階段就是對QS文件進行樹遍歷的過程。即首先從root節(jié)點開始,逐漸遍歷到下面的節(jié)點,最后到葉子節(jié)點。各個級別的遍歷渲染效果如圖3所示。
圖3 Qsplat算法繪制過程
3.1 球面紋理映射
為了防止紋理圖像部分區(qū)域的扭曲變形、映射效果粗糙、圖像失真等情況,基于文獻[8]提出的紋理不變形的準則,采用目前映射效果較好的半球面等比約束球面映射。紋理圖片的面積與球面中所映射的面積比動態(tài)變化,這種算法可以調整倍數(shù)的大小來均勻控制球面紋理映射的覆蓋范圍。設紋理平面上任一點Q1的極坐標為(r,α),映射到半球面上對應點P的經(jīng)緯坐標為Q2(θ,φ),如圖4所示。
圖4 紋理圖片在半球面上的映射
根據(jù)面積約束球面紋理映射的有關描述,將紋理圖片平面上的任一圓弧映射到半球面上的一段緯線上。根據(jù)面積等比約束原理,紋理坐標中的面積在映射過程中需要保持為一常數(shù)K:
[9]中的相關設置,將整個圓形紋理區(qū)域映射到了緯度不大于?的球冠上,其中0<?≤,此時的紋理效果較好。這樣就可以求得邊界條件為:r=1,φ=?,故由此可以求出K=2(1-cos?)。然后代入面積等比約束的公式中得出r,紋理坐標(u,v)與半球面坐標之間的關系如下:
3.2 重建模型的紋理映射
改進算法實現(xiàn)紋理映射的主要方法是利用立體投影半球面紋理映射算法建立球面、紋理圖片之間的關系之后,再建立點云重建模型與球面之間的關系,即可得到相應的紋理坐標,從而完成點云模型的紋理映射。
首先,為了得到點云模型與半球面的對關系,選擇一個半徑適當?shù)陌肭蛎?用它來包圍點云模型的物體,使半球的軸穿過物體底部的中心點,并根據(jù)物體的具體形狀適當選取球心到物體底部的距離,然后利用面積等比約束球面紋理映射算法,將紋理圖案映射到球冠面上。設點云模型中的任意一點為Q(cx,cy,cz),為計算方便,設z軸上的定點P(x1,y1,z1),建立的球的表達式為:x2+y2+z2=r2,建立點云中的點與定點P的一條直線如下所示:
然后,該直線與球進行相交,求出k的值,就得到了點云與球面的對應關系。k值的計算方法如下所示:
其中,表達式中mid如下所示:
再次,為簡化式(5)中mid的計算量,可以設P為(0,0,z),這樣就可以推導出點云中的點與球面點的關系,即:x=k×(cx-x1)+x1,y=k×(cy-y1)+y1,z=k×(cz-z1)+z1,即:x=k×cx,y=k×cy,z=k×(cz-z1)+z1。有了點云到球面的對應關系,再結合球面與紋理圖片的對應關系,即可得到點云模型到紋理映射的對應關系。
在點云渲染中,通過式(6)將紋理坐標直接賦給點云模型每個點的覆蓋區(qū)域,從而實現(xiàn)了點云重建模型的紋理映射。
3.3 改進算法的優(yōu)點
點云重建模型凹凸不平,模型凹凸復雜性增加了紋理映射的難度,重建模型的建立又是基于每個節(jié)點單獨繪制的,本身無法形成網(wǎng)格。對其進行矢量化的映射紋理,要使點云模型順序的對應圖像紋理坐標是一件比較難的事情,要實現(xiàn)直接的重建模型和紋理坐標對應關系,更是比較難。本文所提出的改進算法利用面積約束球面紋理映射解決了這個問題。首先建立一個半球面作為紋理映射的過渡面,把紋理映射到半球面上,然后建立模型中每個節(jié)點與半球面的直接映射關系,從而把紋理真實地映射到模型中。此方法拓寬了面積約束球面紋理映射的應用范圍,并且將Qsplat點云重建模型和面積約束球面紋理映射結合起來,減少了以前網(wǎng)格紋理映射中建立矢量場的復雜處理過程。
在Windows XP平臺下(CPU主頻3.2 GHz,內存2 GB),以Visual Studio 2010為開發(fā)平臺,搭建OpenGL運行環(huán)境,在Qsplat算法所重建點云模型上完成了紋理映射。
針對不同的點云數(shù)據(jù),表1列出了改進算法QS重建時間和繪制時間,并且與Delaunay算法重建繪制時間進行了比較。從表1中可以看出,改進算法重建時間少于Delaunay算法重建時間,這是因為改進算法在點云重建方面采用Qsplat算法相同的策略對點云數(shù)據(jù)進行了預處理并且生成了QS文件,在進行繪制時直接讀取QS文件,繪制速度有較大提高,繪制圖形保證了實時性。
表1 各點云圖形繪制的時間比較 s
傳統(tǒng)的紋理映射方法存在許多不足,圖5中列出了現(xiàn)有方法的映射效果。其中,圖5(a)采用單一顏色映射整個圖形[1],方法單一的顏色,不能體現(xiàn)圖形的真實感,從直觀上感覺比較粗糙;圖5(b)采用圖片直接映射Delaunay三角網(wǎng)格[3],方法成像效果較差,不能很好體現(xiàn)圖形的立體感;圖5(c)采用逐點著色映射圖形[12],所建立的紋理也比較粗糙。
圖5 各文獻中的紋理映射效果
圖6~圖8是利用改進算法將不同圖片,即春風圖、太陽照片和牡丹圖片應用到Dragon,Buddha, Lion點云重建模型進行紋理映射得到的效果圖。可以看出:改進算法滿足了紋理不變形準則,提高了重建模型的真實性。
圖6 Dragon點云模型中的映射圖
圖7 Buddha點云模型中的映射圖
圖8 Lion點云模型中的映射圖
本文分析傳統(tǒng)點云Delaunay算法紋理映射的不足,研究Qsplat算法和球面紋理映射方法的原理,建立模型之間的關系,將球面等比約束的思想應用到點云重建模型當中,從而實現(xiàn)了點云數(shù)據(jù)模型的紋理映射。實驗結果表明,在點云數(shù)據(jù)紋理映射方面,與傳統(tǒng)三角網(wǎng)格紋理映射方法相比,紋理映射的速度和真實感較好,并且紋理位置可調整,效果令人滿意,此方法對大規(guī)模點云數(shù)據(jù)的虛擬仿真有一定的參考價值。
參考文獻
[1] 梁群仙,許宏麗.一種基于點云數(shù)據(jù)的快速曲面重構方法[J].計算機工程,2013,39(2):237-240.
[2] 宋大虎,李忠科,孫玉春.三維散亂點云快速曲面重建算法[J].計算機應用研究,2013,30(8):2527-2529.
[3] 張 濤.基于散亂點云的三維重建研究和實現(xiàn)[D].哈爾濱:哈爾濱工程大學,2010.
[4] 王俊杰,王宇楠,曹 奇.點云數(shù)據(jù)直接貼圖方法探討[J].現(xiàn)代測繪,2011,34(5):22-24.
[5] Rusinkiewicz S,Levoy M.Qsplat A Multiresolution Point Rendering System for Large Meshes[C]// Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques.New York,USA: ACM Press,2000:343-352.
[6] 江巨浪,張佑生.兩步紋理映射的改進[J].系統(tǒng)仿真學報,2006,18(5):1157-1160.
[7] 張 文,李曉梅.基于流線紋理合成的2D矢量場可視化[J].中國圖像圖形學報,2001,6(3):280-284.
[8] Bier E,Sloan K.Two-part Texture Mappings[J].IEEE Computer Graphics and Application,1986,6(9):40-53.
[9] 劉曉梅.虛擬角色交互運動控制研究[D].南京:東南大學,2007.
[10] Ohtake Y,BelyaevA,SeidelH P.AnIntegrating Approach to Meshing Scattered Point Data[C]// Proceedings of the 9th ACM Symposium on Solid Modeling and Applications.[S.l.]:ACM Press,2005: 61-69.
[11] 錢歸平,童若峰.散亂點云網(wǎng)絡重建及補修研究[D].杭州:浙江大學,2008.
[12] 焦 陽.瓷器形狀與顏色重建及網(wǎng)絡動態(tài)展示研究[D].哈爾濱:哈爾濱理工大學,2012.
編輯 顧逸斐
Spherical Texture Mapping Method for Large-scale Point Cloud Data
WANG Meng,LIU Xiaoping,ZOU Yanni
(School of Information Engineering,Nanchang University,Nanchang 330031,China)
Data texture mapping methods based on the Delaunay triangular mesh are usually computationally slow and the quality of mapping is low,making them unsuitable for large-scale point cloud data.In this paper,an improved spherical texture mapping method is developed for the reconstruction of point cloud data and it can be implemented based on the Qsplat algorithm.The Qsplat algorithm is used to re-establish the model of large-scale point cloud data.The spherical equal-ratio constraint texture mapping is used to obtain the mathematical relationship among texture coordinates, sphere and the reconstructed model,realizing the spherical texture mapping of large scale point data.Experimental results show that the speed and the quality of mapping of the proposed method are much improved compared with those traditional triangular texture mapping methods.
Delaunay triangulation mesh;point cloud data;spherical texture mapping;Qsplat algorithm;texture coordinates;equal ratio constraint
1000-3428(2015)01-0218-05
A
TP391
10.3969/j.issn.1000-3428.2015.01.040
國家“863”計劃基金資助項目(2013AA013804);國家自然科學基金資助項目(61175072,51165033,61163023);國家“973”計劃基金資助項目(2011CB302400);江西省科技支撐計劃基金項目(20121BBE50023)。
王 蒙(1987-),男,碩士研究生,主研方向:計算機圖形學;劉小平,教授、博士生導師;鄒艷妮,博士研究生。
2013-12-23
2014-03-11 E-mail:wm_ncu@163.com
中文引用格式:王 蒙,劉小平,鄒艷妮.大規(guī)模點云數(shù)據(jù)的球面紋理映射方法[J].計算機工程,2015,41(1):218-222.
英文引用格式:Wang Meng,Liu Xiaoping,Zou Yanni.Spherical Texture Mapping Method for Large-scale Point Cloud Data[J].Computer Engineering,2015,41(1):218-222.