陶 斌, 趙亞菲
(河南工程學(xué)院 計(jì)算機(jī)科學(xué)與工程系,河南 鄭州 451191)
虛擬現(xiàn)實(shí)技術(shù)近年來在技術(shù)研究領(lǐng)域十分活躍.由于基于圖像的虛擬現(xiàn)實(shí)方法和基于幾何的虛擬現(xiàn)實(shí)方法各有其優(yōu)缺點(diǎn),所以把幾何與圖像繪制及建模技術(shù)有機(jī)結(jié)合,就可以在一定程度上實(shí)現(xiàn)虛擬現(xiàn)實(shí)系統(tǒng)的高逼真度、高繪制速度及良好交互性的有效融合.在真實(shí)的場景中放入虛擬物體,是計(jì)算機(jī)圖形學(xué)的重要應(yīng)用技術(shù)之一[1-3].
在本系統(tǒng)中,真實(shí)場景用基于圖像繪制的方法建模實(shí)現(xiàn),虛擬物體用幾何的方法建模,然后再把虛擬物體和真實(shí)場景的全景圖相結(jié)合構(gòu)建虛擬現(xiàn)實(shí)環(huán)境.由于是真實(shí)場景,基于圖像的方法通過對真實(shí)圖像進(jìn)行各種處理,生成具有視覺一致性的全景圖,所以它具有傳統(tǒng)圖形學(xué)算法生成的圖像所不具有的細(xì)節(jié)層次.并且,由于虛擬物體的加入能夠模擬真實(shí)環(huán)境中的任務(wù),所以更便于實(shí)現(xiàn)虛擬瀏覽.采用虛實(shí)結(jié)合的方式,能模擬很多真實(shí)環(huán)境中的任務(wù)和未來的狀態(tài),環(huán)視效果流暢逼真.本系統(tǒng)有很好的應(yīng)用前景.
本系統(tǒng)整個(gè)虛擬環(huán)境的構(gòu)建工作流程如下:
(1)在某一固定點(diǎn)每隔一定角度采集一圈圖片,并對圖片進(jìn)行相關(guān)預(yù)處理,去掉場景中無關(guān)的對象.
(2)根據(jù)采集的圖片數(shù)和焦距計(jì)算公式確定投影柱面半徑.
(3)將每一張圖片通過投影算法投影到以相機(jī)焦距為半徑的圓柱面上.
(4)對投影圖像進(jìn)行匹配和無縫拼接,得到一張完整的柱面全景拼圖.
(5)幾何建模,構(gòu)建虛擬場景.
(6)把幾何實(shí)體與全景圖像相融合,合成虛擬場景.
(7)瀏覽時(shí)對視口所見場景中圖像建模部分進(jìn)行逆投影變換顯示,即可得到任意視向的場景圖.
虛實(shí)結(jié)合的場景合成的流程如圖1所示.
圖1 場景生成流程Fig.1 Scene generation process
本系統(tǒng)分界面設(shè)計(jì)和算法設(shè)計(jì)兩部分,其中界面設(shè)計(jì)主要是能提供方便的瀏覽.本系統(tǒng)主要考慮兩個(gè)方面的界面設(shè)計(jì):通用界面設(shè)計(jì)和三維數(shù)據(jù)顯示窗口界面設(shè)計(jì).
1.2.1 通用界面設(shè)計(jì)
本系統(tǒng)使用Visual C++建立程序的通用界面,完成界面上各種操作菜單、Dialog Bar、對話框等的創(chuàng)建、對鼠標(biāo)和鍵盤的響應(yīng).
1.2.2 三維數(shù)據(jù)顯示窗口設(shè)計(jì)
三維幾何形體的表現(xiàn)方法主要有平行投影和透視投影.在工程和建筑繪圖中通常采用正投影,因?yàn)椴捎谜队笆刮矬w的長度和角度可以精確地繪出并能從圖中測量出[4].正投影多用于產(chǎn)生物體的前景圖、側(cè)視圖和頂視圖.此3個(gè)視圖可以精確地表現(xiàn)三維幾何形體.透視投影的優(yōu)點(diǎn)是能夠生成具有真實(shí)感的圖形.考慮到以上因素,本系統(tǒng)采用透視投影.
1.2.3 三維數(shù)據(jù)顯示窗口的實(shí)現(xiàn)
在三維數(shù)據(jù)顯示窗口的實(shí)現(xiàn)中,主要使用幾何變換、投影變換和視區(qū)變換技術(shù).三維數(shù)據(jù)顯示窗口子窗體包括4大模塊:
(1)投影變換模塊
輸入一幅圖像后,對圖像進(jìn)行投影變換,并能計(jì)算相機(jī)焦距,完成柱面投影變換和圖像插值.
(2)圖像拼接模塊
打開兩幅圖像后,運(yùn)用圖像拼接與融合技術(shù),自動完成柱面圖像的匹配和平滑連接.
(3)虛實(shí)結(jié)合模塊
使用3D-MAX軟件生成高精度的三維虛擬幾何模型,合理解決虛擬幾何模型與實(shí)景空間的一致性和動態(tài)規(guī)劃渲染細(xì)節(jié)的分配問題后,生成既有實(shí)時(shí)性又有真實(shí)感的虛實(shí)結(jié)合的虛擬場景.
(4)環(huán)視瀏覽
進(jìn)入瀏覽子菜單,輸入視角角度值,自動顯示此視向方向?qū)?yīng)的場景圖,可進(jìn)行旋轉(zhuǎn)、縮放,把場景拉近或推遠(yuǎn)顯示.
算法設(shè)計(jì)分成柱面投影、圖像拼接、場景合成、虛擬瀏覽4部分.
本系統(tǒng)采用以普通相機(jī)從同一視點(diǎn)不同視角采集到的一組圖像序列作為基礎(chǔ)數(shù)據(jù),經(jīng)過圖像處理后生成柱面全景圖的方法.在進(jìn)行柱面投影時(shí),實(shí)際上是一個(gè)平面圖生成柱面透視圖的過程,而反投影則是由透視圖生成平面圖的過程.如果直接進(jìn)行圖像的投影幾何變換,將產(chǎn)生兩個(gè)問題:如果對圖像投影,會出現(xiàn)原圖像中的多個(gè)點(diǎn)對應(yīng)同一個(gè)像素點(diǎn);如果對圖像反投影生成平面圖,則目標(biāo)圖像中會存在空像點(diǎn).這兩個(gè)問題都會產(chǎn)生像素跳躍現(xiàn)象,很顯然是行不通的,可以采用反變換法來實(shí)現(xiàn).反變換法從目標(biāo)圖像出發(fā),對于一個(gè)目的像素,通過縮放變換的逆變換,找到這個(gè)目的像素的原像素點(diǎn).但是,這也存在一個(gè)問題,即將目標(biāo)像素的整數(shù)坐標(biāo)通過反向變換后將得到復(fù)點(diǎn)坐標(biāo),對應(yīng)一個(gè)復(fù)點(diǎn)坐標(biāo),其對應(yīng)點(diǎn)有4個(gè)或8個(gè)像素.從具體實(shí)現(xiàn)上來講,就是要通過臨近的這些像素來計(jì)算出一個(gè)新的像素值,這個(gè)新值就是目的像素的值,通常需要采用插值方法計(jì)算.雙線性插值又叫一階插值,是較為常用的一種插值算法[5-7].在照片中的雙線性插值處理過程是:照片中有4個(gè)像素點(diǎn),設(shè)這4個(gè)點(diǎn)對應(yīng)的光強(qiáng)值分別是I1、I2、I3、I4. 若有一點(diǎn)投影到這4個(gè)像素點(diǎn)的區(qū)域中,設(shè)投影點(diǎn)為T′,坐標(biāo)是(x′,y′),點(diǎn)的坐標(biāo)是(x,y),于是可以建立公式(1)計(jì)算出目的像素值.經(jīng)測試,雖然雙線性插值算法使圖像細(xì)節(jié)有些退化現(xiàn)象,但能夠滿足圖像匹配所要求的效果和速度,所以本系統(tǒng)仍采用之.
(1)
拼接處理部分包括圖像匹配和圖像平滑連接,圖像匹配采用基于特征的圖像拼接算法;圖像平滑連接采用融合算法.
虛實(shí)結(jié)合的場景合成部分包括幾何實(shí)體建模和虛實(shí)結(jié)合的場景構(gòu)建.
虛擬瀏覽時(shí),由于視野范圍的限制,觀察者每次只能看到場景的一部分,所以每次顯示時(shí)必須從場景圖中提取一個(gè)矩形區(qū)域作為紋理圖像.
在一臺PC機(jī)上,使用Visual C++和OpenGL編程,對系統(tǒng)性能進(jìn)行測試.
圖2是圖像直接拼接的結(jié)果,由圖2(c)可以看出,直接拼接后,本來筆直的馬路變成了折線.
圖2 直接拼接效果圖(a)(b)原圖,(c)直接拼接的效果圖Fig.2 Direct splicing rendering(a)(b)graph,(c)direct splicing depicted
圖3是經(jīng)投影變換后拼接得到的效果圖,圖像光順,拼接效果較好.兩者對比顯示了柱面投影變換的無縫拼接結(jié)果.
圖3 經(jīng)投影處理的拼接效果圖 (a) (b)原圖, (c)經(jīng)投影變換處理的拼接效果圖Fig.3 The projection processing splicing rendering (a)(b)graph,(c)after the projection transformation processing splicing rendering
圖4是一個(gè)全景圖實(shí)例.
圖4 全景圖實(shí)驗(yàn)結(jié)果示例Fig.4 Panorama the experimental result
圖5是虛實(shí)結(jié)合的增強(qiáng)現(xiàn)實(shí)場景圖,可以看出,這一AR場景實(shí)現(xiàn)了幾何一致性、視覺一致性和光效一致性.虛擬實(shí)景模型與由照片所重建的場景之間實(shí)現(xiàn)了有機(jī)的融合,使AR場景有很強(qiáng)的真實(shí)感.
圖5 實(shí)現(xiàn)了視覺一致性的虛實(shí)結(jié)合效果圖Fig.5 Realizing the visual consistency of always mix rendering
本系統(tǒng)采用基于幾何與圖像的虛擬現(xiàn)實(shí)技術(shù),在分析和比較現(xiàn)有虛擬現(xiàn)實(shí)方法和技術(shù)的基礎(chǔ)上,對虛擬現(xiàn)實(shí)的相關(guān)技術(shù)、基于全景圖的場景重建算法、虛擬漫游、幾何與圖像相結(jié)合的混合現(xiàn)實(shí)等虛實(shí)結(jié)合的方法和技術(shù)進(jìn)行了有機(jī)的融合,有較強(qiáng)的實(shí)用性.
參考文獻(xiàn):
[1] 石教英. 虛擬現(xiàn)實(shí)基礎(chǔ)及使用算法[M]. 北京:科學(xué)出版社, 2004.
[2] 巫影,何琳,黃映云,等.虛擬現(xiàn)實(shí)技術(shù)綜述[J]. 計(jì)算機(jī)與數(shù)字工程, 2002, 30(3): 41-44.
[3] LAURENTINI A. The Visual Hull Concept for silhouette-based image understanding[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1994, 16(2):150-162.
[4] OLIVEIRA M M, BISHOP G,MCALLISTER D. Relief Texture Mapping[C]. Proc SIGGRAPH, 2000.
[5] 郝愛民,何兵,趙沁平.虛擬現(xiàn)實(shí)中的增強(qiáng)現(xiàn)實(shí)技術(shù)[J].北京航空航天大學(xué)學(xué)報(bào), 2003, 29(10): 909-913.
[6] 芳賢勇,張佑生,張淮聲.一種虛擬物體和真實(shí)場景合成的新算法[J]. 小型微型計(jì)算機(jī)系統(tǒng),2003, 24(9): 1682-1685.
[7] 涂子琰,孫濟(jì)洲. 增強(qiáng)現(xiàn)實(shí)技術(shù)的應(yīng)用和研究[J].計(jì)算機(jī)工程與應(yīng)用, 2003(10):100-103.