基于图像与几何建模的虚拟现实系统设计

2010-11-27 01:41赵亚菲
关键词:柱面全景图界面设计

陶 斌, 赵亚菲

(河南工程学院 计算机科学与工程系,河南 郑州 451191)

虚拟现实技术近年来在技术研究领域十分活跃.由于基于图像的虚拟现实方法和基于几何的虚拟现实方法各有其优缺点,所以把几何与图像绘制及建模技术有机结合,就可以在一定程度上实现虚拟现实系统的高逼真度、高绘制速度及良好交互性的有效融合.在真实的场景中放入虚拟物体,是计算机图形学的重要应用技术之一[1-3].

在本系统中,真实场景用基于图像绘制的方法建模实现,虚拟物体用几何的方法建模,然后再把虚拟物体和真实场景的全景图相结合构建虚拟现实环境.由于是真实场景,基于图像的方法通过对真实图像进行各种处理,生成具有视觉一致性的全景图,所以它具有传统图形学算法生成的图像所不具有的细节层次.并且,由于虚拟物体的加入能够模拟真实环境中的任务,所以更便于实现虚拟浏览.采用虚实结合的方式,能模拟很多真实环境中的任务和未来的状态,环视效果流畅逼真.本系统有很好的应用前景.

1 系统设计

1.1 系统设计流程

本系统整个虚拟环境的构建工作流程如下:

(1)在某一固定点每隔一定角度采集一圈图片,并对图片进行相关预处理,去掉场景中无关的对象.

(2)根据采集的图片数和焦距计算公式确定投影柱面半径.

(3)将每一张图片通过投影算法投影到以相机焦距为半径的圆柱面上.

(4)对投影图像进行匹配和无缝拼接,得到一张完整的柱面全景拼图.

(5)几何建模,构建虚拟场景.

(6)把几何实体与全景图像相融合,合成虚拟场景.

(7)浏览时对视口所见场景中图像建模部分进行逆投影变换显示,即可得到任意视向的场景图.

虚实结合的场景合成的流程如图1所示.

图1 场景生成流程Fig.1 Scene generation process

1.2 用户界面设计

本系统分界面设计和算法设计两部分,其中界面设计主要是能提供方便的浏览.本系统主要考虑两个方面的界面设计:通用界面设计和三维数据显示窗口界面设计.

1.2.1 通用界面设计

本系统使用Visual C++建立程序的通用界面,完成界面上各种操作菜单、Dialog Bar、对话框等的创建、对鼠标和键盘的响应.

1.2.2 三维数据显示窗口设计

三维几何形体的表现方法主要有平行投影和透视投影.在工程和建筑绘图中通常采用正投影,因为采用正投影使物体的长度和角度可以精确地绘出并能从图中测量出[4].正投影多用于产生物体的前景图、侧视图和顶视图.此3个视图可以精确地表现三维几何形体.透视投影的优点是能够生成具有真实感的图形.考虑到以上因素,本系统采用透视投影.

1.2.3 三维数据显示窗口的实现

在三维数据显示窗口的实现中,主要使用几何变换、投影变换和视区变换技术.三维数据显示窗口子窗体包括4大模块:

(1)投影变换模块

输入一幅图像后,对图像进行投影变换,并能计算相机焦距,完成柱面投影变换和图像插值.

(2)图像拼接模块

打开两幅图像后,运用图像拼接与融合技术,自动完成柱面图像的匹配和平滑连接.

(3)虚实结合模块

使用3D-MAX软件生成高精度的三维虚拟几何模型,合理解决虚拟几何模型与实景空间的一致性和动态规划渲染细节的分配问题后,生成既有实时性又有真实感的虚实结合的虚拟场景.

(4)环视浏览

进入浏览子菜单,输入视角角度值,自动显示此视向方向对应的场景图,可进行旋转、缩放,把场景拉近或推远显示.

1.3 算法设计

算法设计分成柱面投影、图像拼接、场景合成、虚拟浏览4部分.

本系统采用以普通相机从同一视点不同视角采集到的一组图像序列作为基础数据,经过图像处理后生成柱面全景图的方法.在进行柱面投影时,实际上是一个平面图生成柱面透视图的过程,而反投影则是由透视图生成平面图的过程.如果直接进行图像的投影几何变换,将产生两个问题:如果对图像投影,会出现原图像中的多个点对应同一个像素点;如果对图像反投影生成平面图,则目标图像中会存在空像点.这两个问题都会产生像素跳跃现象,很显然是行不通的,可以采用反变换法来实现.反变换法从目标图像出发,对于一个目的像素,通过缩放变换的逆变换,找到这个目的像素的原像素点.但是,这也存在一个问题,即将目标像素的整数坐标通过反向变换后将得到复点坐标,对应一个复点坐标,其对应点有4个或8个像素.从具体实现上来讲,就是要通过临近的这些像素来计算出一个新的像素值,这个新值就是目的像素的值,通常需要采用插值方法计算.双线性插值又叫一阶插值,是较为常用的一种插值算法[5-7].在照片中的双线性插值处理过程是:照片中有4个像素点,设这4个点对应的光强值分别是I1、I2、I3、I4. 若有一点投影到这4个像素点的区域中,设投影点为T′,坐标是(x′,y′),点的坐标是(x,y),于是可以建立公式(1)计算出目的像素值.经测试,虽然双线性插值算法使图像细节有些退化现象,但能够满足图像匹配所要求的效果和速度,所以本系统仍采用之.

(1)

拼接处理部分包括图像匹配和图像平滑连接,图像匹配采用基于特征的图像拼接算法;图像平滑连接采用融合算法.

虚实结合的场景合成部分包括几何实体建模和虚实结合的场景构建.

虚拟浏览时,由于视野范围的限制,观察者每次只能看到场景的一部分,所以每次显示时必须从场景图中提取一个矩形区域作为纹理图像.

2 系统测试

在一台PC机上,使用Visual C++和OpenGL编程,对系统性能进行测试.

图2是图像直接拼接的结果,由图2(c)可以看出,直接拼接后,本来笔直的马路变成了折线.

图2 直接拼接效果图(a)(b)原图,(c)直接拼接的效果图Fig.2 Direct splicing rendering(a)(b)graph,(c)direct splicing depicted

图3是经投影变换后拼接得到的效果图,图像光顺,拼接效果较好.两者对比显示了柱面投影变换的无缝拼接结果.

图3 经投影处理的拼接效果图 (a) (b)原图, (c)经投影变换处理的拼接效果图Fig.3 The projection processing splicing rendering (a)(b)graph,(c)after the projection transformation processing splicing rendering

图4是一个全景图实例.

图4 全景图实验结果示例Fig.4 Panorama the experimental result

图5是虚实结合的增强现实场景图,可以看出,这一AR场景实现了几何一致性、视觉一致性和光效一致性.虚拟实景模型与由照片所重建的场景之间实现了有机的融合,使AR场景有很强的真实感.

图5 实现了视觉一致性的虚实结合效果图Fig.5 Realizing the visual consistency of always mix rendering

3 结束语

本系统采用基于几何与图像的虚拟现实技术,在分析和比较现有虚拟现实方法和技术的基础上,对虚拟现实的相关技术、基于全景图的场景重建算法、虚拟漫游、几何与图像相结合的混合现实等虚实结合的方法和技术进行了有机的融合,有较强的实用性.

参考文献:

[1] 石教英. 虚拟现实基础及使用算法[M]. 北京:科学出版社, 2004.

[2] 巫影,何琳,黄映云,等.虚拟现实技术综述[J]. 计算机与数字工程, 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] 郝爱民,何兵,赵沁平.虚拟现实中的增强现实技术[J].北京航空航天大学学报, 2003, 29(10): 909-913.

[6] 芳贤勇,张佑生,张淮声.一种虚拟物体和真实场景合成的新算法[J]. 小型微型计算机系统,2003, 24(9): 1682-1685.

[7] 涂子琰,孙济洲. 增强现实技术的应用和研究[J].计算机工程与应用, 2003(10):100-103.

猜你喜欢
柱面全景图界面设计
中医养生APP界面设计
“共享员工”平台界面设计
中国传统元素在界面设计中的应用
大曲率柱面共形天线的对比研究
面向智能手机的UI界面设计
基于单摄像头的柱面拼接
Maple动画功能在高等数学教学中的应用示例(Ⅱ)
嫦娥四号月背之旅全景图
环保概念股全景图
基于节点刚度的柱面巨型网格结构静力性能研究