摘 要:探索了虛實融合的兩種方法,即基于三角面片的虛擬物體重構法和基于虛擬模型的虛實融合方法。前者具有不需要對場景進行預處理等優點;后者雖然要進行預處理,且需預知真實場景的詳細信息,但它實現簡單,實時性好。詳細研究與比較了這兩種方法的具體實現方法及運行效率,通過在實驗平臺下的測試得到兩種方法的詳細性能指標,為增強現實挑選何種虛實融合方法奠定了基礎。
關鍵詞:遮擋判斷; 重構; 虛擬模型; 三角面片
中圖分類號:TP391.9文獻標志碼:A
文章編號:1001-3695(2009)09-3270-04
doi:10.3969/j.issn.1001-3695.2009.09.019
Occlusion identification research between virtual andreal object in augment reality
YU Wen-jiong, HE Han-wu, WU Yue-ming
(Faculty of Electromechanical Engineering, Guangdong University of Technology, Guangzhou 510090, China)
Abstract:This paper investigated two methods for occlusion identification. One was triangle-based virtual objects reconstruction method, another method was the construction of real objects by virtual model. The former did not need to carry out pre-processing for the environment. The latter need to carry out pre- processing for the environment, but the advantages of it were easy to be realized, and had a good real-time performance. Firstly, described the realized methods of these two methods in detailed. Then, gave a detailed performance test in comparison with these two methods. Finally, drawn the conclusion about how to select the occlusion identification based on the performance test.
Key words:occlusion identification; reconstruction; virtual model; triangular patches
0 引言
增強現實技術(augment reality, AR)是借助三維顯示技術,交互技術、多種傳感技術、計算機視覺技術以及多媒體技術,把由計算機生成的二維或三維的虛擬信息融合到用戶所要體驗的真實環境中的一種技術,其目的在于實現對現實世界信息的補充,令用戶從感官效果上確信虛擬環境是周圍真實環境的組成部分[1~3]。在增強現實的環境中,使用者將計算機生成的增強信息實時地疊加到真實場景中。這種增強的信息包括虛擬物體和非幾何信息。
在增強現實系統中,真實物體與虛擬物體之間正確的遮擋關系是判斷增強現實系統真實感強弱,使用戶在與增強現實環境的交互過程中實現臨場感強以及正確操作的關鍵技術之一。然而大多數增強現實系統只是簡單地將虛擬物體疊加到真實場景中。圖1為從不同視角觀察手與蘋果的位置關系。蘋果是通過計算機系統生成的虛擬物體,其他物體(包括手)都是真實的物體。圖1(a)中手在蘋果前方,(b)中由于沒有正確處理手與蘋果的遮擋關系,導致手被虛擬的蘋果遮擋,使用戶錯誤地認為蘋果是放置在手的前方。
錯誤的遮擋關系容易導致用戶在空間位置上的錯亂和感官上的錯判,嚴重影響用戶與場景的正確交互,因此虛實物體間正確的遮擋關系對增強現實系統來說至關重要。
朱杰杰等人[4]通過求解物體的深度信息判斷遮擋關系,生成遮擋判斷后的合成圖像。該方法不適用于部分遮擋、部分不遮擋的變形物體。Yokoya等人[5]根據立體視覺計算出真實場景圖像上物體的深度信息。由于深度信息求解的計算量大,求解只局限于繪制虛擬物體所在的區域內。倪劍等人[6]通過對深度信息建立稠密圖,來判斷遮擋關系。
本文研究了兩種虛實物體融合方法:基于三角面片的虛擬物體重構方法通過對組成虛擬物體的三角面片集合進行穿越測試和深度測試來重構虛擬物體;基于虛擬模型的虛實融合方法通過對可能發生遮擋關系的真實物體建立虛擬模型,把遮擋關系判斷變換為虛擬物體與虛擬物體之間發生判斷實現虛實物體融合。在發生遮擋判斷的虛擬模型三角面片頂點數較少時,采用兩種方法都可以。在模型頂點數較多情況下,采用后者的方法計算量小,實時性好。
1 基于三角面片的虛擬物體重構
由于三維物體的網格模型大部分由三角面片構成,即使原始模型是多邊形網格,也可以對其進行三角化。本文通過三角面片穿越測試以及深度測試來判斷三角面片是否可見,最后由通過測試的三角面片集合重構虛擬物體,達到虛實物體融合的效果。
虛擬物體重構過程如圖2所示。以下是主要實現步驟。
1.1 獲取真實物體二維投影坐標集合
物體在攝像頭投影平面的坐標集合采用層次包圍盒方法中的AABB包圍盒的方法[7]。該方法只需求出構成物體的基本幾何元素集合中每個元素的頂點坐標在x、y軸上的最大值和最小值,計算速度快。圖3為盤子W在T1時刻所處的位置,矩形ABCD關于原點對稱,為W的包圍盒,假設標志物A所在的中心O(x,y,z)為盤子W的坐標系原點。T2時,W所在位置如圖3(a)所示,點O′(x′,y′,z′)坐標可由式(1)得到。
X′Y′Z′1=TXYZ1(1)
其中T為W在攝像頭坐標系下的4×4旋轉平移矩陣。假設Hx、Hy為光柵在軸x,y方向上的掃描間距,其值越小計算速度越慢,得到的顯示效果更佳,這里均取為1,則物體W在攝像頭坐標系下二維平面的坐標集合S可以簡單地由式(2)得到。
Sij=xo′+iHxyo′+jHy(2)
其中:i∈(-a/Hx,a/Hx)∪i∈R,j∈(-b/Hy,b/Hy)∪j∈R。
1.2 三角面片穿越測試
圖4中射線L通過視點與真實物體集合S中的點Si,如果射線L穿過三角面片,則表示該三角面片與真實物體發生了遮擋。
遠平面F和近平面N分別為視見體的兩個遠近平面,平面R為真實物體二維平面坐標集合所在的平面,平面V為虛擬物體三角面片集合中Mi所在的二維平面。假設組成虛擬物體的三角面片集合可由式(3)得到。
F=Mi,Mi∈M,i=1,2,3,…,n(3)
其中M為三角面片單元。由點Si反求得到該點在近平面N坐標點A和遠平面F坐標點B,通過點A和B,得到穿過點Si和視點的射線L方程。
射線L與三角面片相交測試可轉換為判斷射線L與三角面片所在平面交點P是否在三角面片內。Moller和Trumbore(1997)提出將線性對象定義為一個基點和一個方向向量[8]來判斷交點P是否在三角面片內,這是由三個具有三個未知數的方程組成的線性系統。另一種方法是將射線與包含三角形的平面相交,再確定交點是否位于三角形之內。上述兩種算法計算過于復雜,程序運行速度較慢。
考慮算法的復雜性對運行效率的影響,采用如下近似方法。圖5中,由三角面片三個頂點M1、M2、M3的坐標求得近似的三角面片Mi中心點O(x,y,z)可由式(4)得到。
xoyozo=(xM1+xM2+xM3)/3(yM1+yM2+yM3)/3(zM1+zM2+zM3)/3(4)
三角面片Mi近似中心點O到近平面N上的點A的距離loa由式(5)得到。
loa=(xo-xA)2+(yo-yA)2+(zo-zA)2(5)
三角面片Mi中心點O到直線L的距離H由式(6)得到。
H=loa(1-cos2θ)(6)
假設距離H近似于三角面片Mi的中心點O到射線L與平面V的交點P連線的距離,如果H小于等于三角面片的外接圓半徑R,則該光束穿過三角面片Mi,繼續對集合S中的其余點進行穿越測試。只有都通過測試后,該三角面片繼續作深度測試。否則在集合F中去除該三角面片Mi,并選取其余的三角面片作穿越測試。
1.3 三角面片深度測試
如圖4所示,點Si到近平面N的距離為該點的深度(Z)值Hqi,三角面片Mi中心點O到近平面N的距離為Hmi。如果Hqi≤Hmi, 則該點Si在三角面片Mi前面,在集合F中去除該三角面片Mi;反之則保留該三角面片,繼續選取其余三角面片進行穿越測試和深度測試。
1.4 虛擬物體重構
通過歷遍三角面片集合F,重復圖2中b)~e)的步驟,得到經過穿越測試和深度測試后的三角面片集合F,重構虛擬物體使虛實物體融合。
2 基于虛擬模型的虛實物體融合
利用OpenGL渲染引擎,通過對可能發生遮擋關系的真實物體建立虛擬模型,把真實物體與虛擬物體的遮擋關系判斷變換為虛擬物體與虛擬物體之間發生判斷,這樣真實物體只要通過z-緩沖區即可實現虛實物體的遮擋關系判斷。由于遮擋判斷由計算機內部實現,使運行速度和效果產生明顯改善[9]。
2.1 虛擬物體之間遮擋關系判斷基本原理
虛擬物體之間遮擋關系判斷歸結于隱藏面的消隱判斷,深度緩沖區(z-緩沖區)算法是去除隱藏表面算法中最簡單的隱藏面消除算法。算法的基本思想是對于屏幕上的每個像素,記錄下位于此像素內最靠近觀察者的一個像素的深度(Z)值,使實體對象中被其他實體對象所遮擋的部分被隱藏[10]。
2.2 虛擬模型的建模與渲染
OpenGL圖形庫只提供基本的點、線、多邊形、基本物體(球、錐、多面體、茶壺等)以及(如Bezier、Nurbs等)的繪制函數,對于復雜的三維模型建模本文采用3DMax、Maya等高級建模軟件處理模型,再通過渲染引擎導入到場景中。對于有鏈接關系的真實物體,在建立其虛擬模型時可采用動態選取不同虛擬模型的方法。
場景中OpenGL的渲染順序如下:
a)關閉z-buffer text讀/寫功能;
b)渲染視頻圖像;
c)打開z-buffer text讀/寫功能;
d)渲染可能發生遮擋真實物體的虛擬模型(透明,混合);
e)渲染真實物體。
在渲染過程中,真實物體的虛擬模型只是起到判斷虛實物體遮擋關系的作用,無須將其顯示在場景中。在渲染過程中采用透明,混合方法處理虛擬模型。
2.3 虛擬模型與其真實物體的貼合
對于靜態的真實物體在程序運行過程中始終處于固定的坐標和方位,只要在初始化時得到該物體在世界坐標系下的坐標和方位,即可使該物體對應的虛擬模型貼合。
如圖6(a)所示,假設以標志物A的坐標系作為世界坐標系,攝像頭在自身坐標系下的坐標值為(Xc,Yc,Zc),TA、TB分別為標志物A、B在攝像頭坐標系下的3×4旋轉平移矩陣,可由ARToolkit得到,位置關系如下:
XAYAZA1=TA0001XCYCZC1(7)
XBYBZB1=TB0001XCYCZC1(8)
則標志物B在A的坐標系關系由式(9)得到。
XBYBZB1=B0001A0001-1XAYAZA1(9)
記標志物B在世界坐標系下的旋轉平移矩陣為變換矩陣Tab,由式(10)得到。
Tab=B0001A0001-1(10)
如圖6(b),對于動態的真實物體,其運動過程中虛擬模型要能實時貼合,需要實時地得到真實物體在世界坐標系下的坐標和方位。以A的坐標系為世界坐標系,真實物體在世界坐標系下的坐標可由式(9)換算得到。只要得到世界坐標系下真實物體的三個旋轉角(虛擬物體的旋轉角與真實物體相同),即可使虛擬模型與物體貼合。假設R為真實物體在世界坐標系下3×3旋轉矩陣,可由從ARToolkit中得到的3×4變換矩陣中分解得到。
R=r11r12r13r21r22r23r31r32r33(11)
由R中獲取的九個已知值,可得到旋轉角公式[11] 為
α=tan-1(r21/r11)β=tan-1(-r31/r232+r233)λ=tan-1(r32/r33)(12)
其中:α為z軸的旋轉角;β為y軸的旋轉角;λ為x軸的旋轉角。
2.4 有鏈接關系真實物體的虛擬模型貼合
對于有鏈接關系的真實物體建立虛擬模型,如人的手指關節運動、手腕的運動等,由于圖像處理技術并未達到實時跟蹤識別并判斷其具體方位的要求,為使真實物體對應的虛擬模型能貼合其運動,可采用動態轉換虛擬模型的方法。在關鍵特征位置對真實物體建立對應的虛擬模型,通過判斷特征位置來動態轉換虛擬模型。本文以人手部的運動為例,由于自由度多,判斷處理復雜,計算速度難以達到實時性的要求,將人手部動作假定為兩種關鍵位置手勢,即松開和閉合,以此建立這兩種手勢的虛擬模型。
圖7為兩種關鍵位置手勢,通過識別松開和閉合這兩種手勢識別[12]來判斷需要采用哪種虛擬模型與手部貼合。如圖7(b)所示,手部的坐標和方位獲取可利用手腕上的標志物B及A,由式(9)和(12)得到。可見通過選取特定的手部虛擬模型能使其貼合到真實物
體的運動過程中。
3 實驗結果
本文研究比較了上述兩種方法,實驗電腦主要配置如下:P4 2.80 GHz CPU,1 GB內存,GeForce 7300 GT顯卡。
表1為實驗的性能指標。從表中可以看出,在發生遮擋判斷的虛擬模型頂點數較少的情況下,基于三角面片虛擬物體重構的方法(即第一種方法)和構造真實物體虛擬模型的方法即第二種方法得到的幀數和計算時間相差不大;但是當模型頂點數較多時,第一種方法實現的效果執行速度慢,幀數較小,刷新率達不到實時性的要求,而第二種方法并不隨模型頂點數的增加而使速度和幀數有明顯下降,所以在發生遮擋判斷的虛擬模型頂點數較少時采用兩種方法均可以,而在模型頂點數較多的情況下,采用后者的方法計算量小,實現虛實物體的融合實時性好。
4 結束語
本文針對增強現實環境下虛實物體融合方法進行了研究,比較實現了三角面片虛擬物體重構的方法和構造真實物體虛擬模型的方法。但該方法對可能發生遮擋關系的真實物體都需要進行預處理,即建立虛擬模型,對有鏈接關系的真實物體需要動態轉換其虛擬模型。
參考文獻:
[1]柳祖國,李世其,李作清. 增強現實技術的研究進展及應用[J]. 系統仿真學報,2003,15(2):222-225.
[2]陳靖,王涌天,閆達遠. 增強現實系統及其應用[J]. 計算機工程與應用,2001,37(15):72-75.
[3]BURDEA G C, COIFFET P. Virtual reality technology[M]. 2nd ed. [S.l.]:Publishing House of Electronics Industry, 2005.
[4]朱杰杰,潘志庚. 用視覺計算實現視頻增強現實遮擋處理[J]. 計算機輔助設計與圖形學學報,2007,19(12):1624-1628.
[5]YOKOYA N, TAKEMURA H, OKUMA T, et al. Stereo vision based video see-through mixed reality[C] // Proc of the 1st International Symposium on Mixed Reality.Yokohama:[s.n.],1999:85-94.
[6]倪劍,閆達遠,周雅,等. 增強現實系統中的深度檢測技術研究[J]. 計算機應用,2006,26(1):132-134,137.
[7]潘振寬,李建波. 基于壓縮的AABB樹的碰撞檢測算法[J]. 計算機科學,2005,32(2): 213-215.
[8]SCHENEIDER P J, EBERLY D H. Geometric tools for computer graphics[M]. 北京:電子工業出版社,2005.
[9]HILL F S. 計算機圖形學:用OpenGL實現[M]. 2版. 羅霄,譯.北京:清華大學出版社,2006.
[10]WOO M, NEIDER J, DAVIS T, et al. OpenGL編程權威指南[M]. 3rd ed. 北京:中國電力出版社,2001.
[11]LAVALLE S M. Planning algorithms[EB/OL]. (2006). http://planning.cs.uiuc.edu/node102.html.
[12]WU Y M, HE H W, SUN J, et al. Vision-based hand tracking and gesture recognition for augmented assembly system[J]. Key Engineering Materials, 2009(392-394):1030-1036.