孟卉



摘要:基于圖像繪制的虛擬環境構造是近年來虛擬現實技術研究的熱點。通過分析三維導航的原理和虛擬現實建模語言的插值算法,本文提出一個基于圖像系列的三維導航系統快速實現的方法。首先對三維導航的路徑進行分析來定義關鍵幀節點,利用數碼相機依照關鍵幀節點依次采集到一系列的圖像,并結合VRML編程語言的插值節點,定義多種漫游行走方式的程序原型,對圖像系列進行插值,生成漫游的三維導航視頻,從而簡單快速地實現室內外的三維導航,實踐證明該方法成本低,制作簡便,效果好。
關鍵詞:虛擬現實 基于圖像繪制 三維導航 虛擬現實建模言 插值 原型
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1007-9416(2016)06-0000-00
Abstract: The reconstruction of Virtual Reality Scene based on image has become the hot topic in last ten years. By analysising the process of 3D navigation and the interpolation method of Virtual Reality Model Language, a novel method about the implement of 3D Navigation based on series image set is presented in this paper. Firstly, the definition of key frame point is presented through the analysis of 3D navigation route, and the images are obtained by digital camera in accordance with the key frames. Secondly, all kinds of roaming prototype are defined by the interpolation node of VRML program. Lastly, the navigation animation by the interpolation of the series image is generated, which efficiently implement the 3D navigation of indoor and outdoor. The experiment show that technique is cheaper and simpler, also has good performance.
Key words:Virtual Reality; Image Based Rendering;3D Navigation;Virtual Reality Model Language;Interpolation;Prototype
1 概述
隨著計算機軟件與硬件技術的高速發展,虛擬現實(Virtual Reality, VR)技術的應用越來越廣泛,基于圖像的繪制技術(Image Based Rendering,IBR)是近年來VR技術研究的熱點,它以簡單的圖像合成代替基于三維幾何的建模和渲染,加快了畫面的顯示速度,是建立特定三維場景的一種高效率方法。IBR將計算機圖形學、計算機視覺與圖像處理結合在一起,直接由參考圖像生成新視點的圖像,具有繪制速度與場景復雜度無關、對計算機硬件的要求不高、生成圖像的真實感強、既可用于合成場景又可用于真實場景等優點。基于以上優點,IBR技術自從上世紀90年代被提出以來,已經在虛擬現實、航空航天、建筑、娛樂、網上旅游等領域中得到了應用,尤其由于真實感強,在三維導航方面具有廣泛的應用。[1]
VR技術具有I3 (沉浸、交互、想象)特征,其中虛擬現實建模語言 (Virtual Reality Modeling Language,VRML)是基于網絡的三維語言,是Web3D的代表,它是用于建構多人的交互式虛擬實境語言。虛擬漫游是虛擬現實系統中必不可少的功能,尤其是三維室內外導航系統是三維虛擬漫游系統的重要組成部分,國內外許多高校都進行了研究,成為一個熱點研究領域[2-10]。
本文先仔細剖析基于圖像系列的繪制技術,結合VRML語言,在Web3D平臺上提出了基于圖像系列的三維導航漫游系統的快速實現算法,并實現了相應的自助導航功能,讓用戶身臨其境地感受真實三維場景。
2 導航路徑的關鍵節點
虛擬漫游的實質是首先在漫游路線的關鍵點(幀)位置設置了一系列的視點viewPoint(或稱相機),同時計算好路線上每一段所需的時間,目的是為了行走的勻速;然后通過時間傳感器,設置好時間間隔,結合相應的插值器,生成每兩個關鍵幀相機之間的運動位置,從而生成一系列的動畫,實現用戶的漫游過程,因而虛擬漫游的關鍵是如何生成兩個關鍵幀之間的動畫。[11,12]
如圖1是一個典型的小區漫游路線,這條多義線分別由多條直線和弧線組合而成,包含16個端點(P1,P2,……,P16),共15段線段,每一段線(弧線)的端點都是關鍵幀的位置即Pi。假設用戶行走時(或相機在沿路線移動時),方向始終指向下一關鍵幀,或者說方向與路線重合。
3 關鍵動畫的生成
結合前面的分析,實際虛擬漫游的關鍵是如何生成從Pi到Pi+1的動畫。
首先讓用戶手持相機,在關鍵點Pi、Pi+1的位置上沿著行走的方向拍攝照片Imagei和Imagei+1,詳見圖3(a)和(b);顯然Imagei+1可以在Imagei中找到相似的內容,可以進行對準,結果見圖3(c)。假設圖像的分辨率為width*height,則圖Imagei+1在Imagei中的位置坐標為[左下角(leftX,downY),右上角(rightX,topY)],顯然如果在Pi、Pi+1點保持相同的拍攝角度,則Imagei+1在Imagei的正中央,詳見圖3(d)。
截取后進行歸一化,統一生成同樣大小的圖片,即進行圖像的縮放操作Imresize(Ij, width,height)。
最后把這n張圖片可以形成一段動畫,在實際應用中,Pi至Pi+1一般可能有20m,按人的行走速度4.8km/h,則需要12秒,取幀速率為10fps,則將有120張圖片,不管從生成的角度還是從內存開銷的角度,都需要不少的代價。
為了快速實現上述動畫的再生過程,我們結合VRML語言的面集節點紋理映射坐標系統和坐標插值器,通過Web3D的渲染引擎,以最低的代價和最快的速度,完美地實現了上述的動畫過程。
4 基于VRML的動畫生成
VRML語言的面集IndexdetFaceSet節點是幾何體geometry的主要組成部分。面集節點用于在三維空間中創建各種平面組合而成的不規則的立體幾何造型,主要由三維坐標點集(coord)、面的多邊形點集(coordIndex)、平面紋理貼圖(texCoord和texCoordIndex)等部分組成。結合前面的工程分析,首先我們通過coord、coordIndex建立一個4:3的四邊形,模擬前邊描述的照片,并在正前方創建一個相機,后通過texCoord、texCoordIndex給指定圖片建立紋理映射。
如圖6所示,建立一個四個頂點的四邊形面,坐標點分別為(1,-0.75,0)、(1,0.75,0)、(-1,0.75,0)、(-1,-0.75,0),生成一個2*1.5(4:3)的四邊形面。同時通過紋理映射,把圖片的一部分映射至四邊形面上,如圖6中左圖的四個UV映射坐標(u2,v1)、(u2,v2)、(u1,v2)、(u1,v1)分別分別對應到四邊形的四個頂點。
另一方面,VRML具有六種插補器節點和八種傳感器節點,通過路由在各個造型節點和場景節點之間傳遞事件,為瀏覽者創建一個身臨其境、動態、逼真、可以交互溝通的虛擬環境。其中坐標插補器(CoordinateInterpolater)節點用于產生基于坐標點的復雜造型(線集IndexedLineSet、面集IndexedFaceSet)的變形動畫。它包含key域、keyValue域、set_fraction入事件、value_changed出事件,其中key域用于設置一組時間關鍵點的列表,keyValue域用于設定一組關鍵坐標點的列表,set_fraction入事件用于接收來自時間傳感器點發出的時刻比例數值,value_changed出事件用于輸出計算后新的坐標子列表。
由于沒有二維坐標點的坐標插補器,只有三維坐標點的坐標插補器,因而不能直接產生UV貼圖坐標的(u1,v1,u2,v2)的系列坐標插補值。因此,我們可以反過來針對四邊形面的四點三維坐標進行插補,當然在視圖像機中只能觀察到由(1,-0.75,0)、(1,0.75,0)、(-1,0.75,0)、(-1,-0.75,0)構成的4:3四邊形部分,從而達到對UV進行插補的目的,具體見圖7。
5 基于VRML原型的程序實現
在VRML編程語言結構中,PROTO原型語句實現了用戶自定義對象,在原型中包括普通域、暴露域、出事件和入事件四部分參數,并可以包含相應的路由器,具備了面向對象方法的封閉性特征,對數據具有不同的訪問權限。根據前面的討論和VRML語言的特點,結合工程的需要我們給用戶往前走的原型定義為goAhead:
其中startTime、endTime表示本次動畫的開始時間和結束時間,startTime作為入事件來激發動畫,endTime作為出事件結束本次動畫,同時通過路由傳給后續動畫的入事件startTime去激發后續動畫,從而形成完整的一個事件鏈。
三維坐標點stPoint、endPoint表示實際環境中的出發、結束位置的三維坐標,因而可以求出它們的距離,并結合指定的行走速度speed,從而求出行走的時間walkTime,并作為時間插值器time TimeSensor的時間周期cycleInterval。
字符串word將作為動畫的字幕顯示在動畫的底部中央;
聲音文件voice則作為動畫播放期間的配音,可以是背景音樂,也可以相關場景的解說詞。
很顯然,直走包括了漫游路徑第一類:直線往前走,和第二類:往前左拐彎、往前右拐彎等情況。而第三類情況屬于弧形拐彎,可以看作是一個原地轉彎的類型,相當于相機在原地轉彎拍攝,可以直接生成一段全景圖,見圖8(a),當前幾乎所有的數碼相機都支持這種全景拍攝功能。顯然動畫地生成相當于模擬畫面的旋轉,如圖8(b)表示在生成動畫系列時,從全景圖中從右往左依次分割等大小的圖像系列,從VRML實現角度就是四邊形面的四個頂點依次從圖8(a)中的右邊框逐步向圖8(a)中的左邊框進行插值,從而產生相應的一系列三維坐標系列,并生成相應的插值動畫。同理可以如同直走goAhead原型一樣定義原地轉彎originalWheel原型。
結合HTML語言,可以建立基于web頁面的相關界面,從而形成一個完整的基于圖像系列的虛擬漫游系統,再結合線性的三維路徑圖,可以把相關的路徑數據和圖像系列通過AJAX存儲在服務器,從而可以進行快速地輔助導航。
6 結語
本文通過VRML原型的定義,結合面集節點紋理映射坐標系統和坐標插值器, 選用少量的實景圖片系列,由Web3D的渲染引擎完美地實現漫游中的動畫視頻,從而快速地實現了室內外虛擬漫游導航。顯然本技術避免了傳統虛擬現實中繁瑣的三維建模,節省了大量的時間,雖然在視頻生成的轉換過程中有一定的跳躍,但在很多要求不是特別高的工程應用中具有很強的實踐價值。如何更進一步實現基于圖片系列的全景漫游是繼續研究的方向。
參考文獻:
[1]莊怡,汪劍春,胡新榮.IBR技術與應用綜述[J].武漢科技學院學報,2010(3):49-52.
[2]劉爽.基于VRML的虛擬現實場景漫游技術的研究與實現[D].吉林:吉林大學,2007.
[3]馬秀榮.基于VRML的建筑模型場景設計與演示實現及應用[D].長春:吉林大學, 2009.
[4]白坤.基于VRML的大雁塔建筑群虛擬漫游系統的研究與實現[D].西安:西北大學,2012.
[5]殷鵬蓮,余學祥.VRML和Java支持下的三維虛擬校園構建[J].測繪與空間地理信息,2015(4):165-171.
[6]宋慧齡,鄧洪.基于VRML 的地學虛擬博物館漫游系統的實現[J].計算機工程,2006,32(17):239-241.
[7]楊安祺,喬海超,張杜娟等.基于VRML的虛擬秦漢博物館的研究與實現[J].計算機工程與設計, 2011,32(2):628-632.
[8]蔣文燕,欒汝朋,朱曉華.基于VRML_ArcGIS的虛擬旅游景觀設計與實現[J].地理研究,2010(9):1715-1719.
[9]陸穎雋.虛擬現實技術在數字圖書館的應用研究[D].武漢:武漢大學,2013.
[10]卞敏捷,高玨,高洪皓等.Web3D可視化技術的研究與應用,計算機技術與發展[J],2015(6):141-144.
[11]饒金通,董槐林,姜青山.基于特征的參數化高效建模技術[J].廈門大學學報(自然科學版),2006,45(2):191-195.
[12]Jintong Rao, Jianbing Xiahou, Yuan Li, et al. The Implement of Interior 3D Navigation based on VRML. Applied Mathematics & Information Sciences, 2014(1L):193-199.