一种基于多边形柱面全景图的虚拟漫游新方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于多边形柱面全景图的虚拟漫游新方法
王海颍;秦开怀
【摘要】提出了一种基于图像绘制的多边形柱面全景图的虚拟漫游方法.利用普通的手持相机在一个多边形区域内沿某一路径拍摄并拼接多幅全景图,通过基于SIFT 的特征点检测来计算深度,用狭缝图像插值来实现整个区域内的平滑漫游.该方法具有采样简单、虚拟场景真实感强,支持连续大范围漫游的特点.%A new method of virtual walkthrough using image-based rendering with polygonal panoramic mosaics is presented. First, we take pictures and get multiple panoramas with ordinary handhold camera along a route or in a square region. Second, we use SIFT feather points detection to get slim images with depth which can be used in interpolation for the rendering of new view point. The algorithm proposed in this method is very efficient for virtual walkthrough in the large outdoor scene. The construction and rendering process with multiple panoramas is easy to implement and the data capturing is simple without expensive equipments.
【期刊名称】《图学学报》
【年(卷),期】2012(033)001
【总页数】7页(P56-62)
【关键词】虚拟漫游;基于图像的绘制;全景图;狭缝图像
【作者】王海颍;秦开怀
【作者单位】中国电子信息产业发展研究院,北京100048;清华大学计算机系,北京100084
【正文语种】中文
【中图分类】TP391.4
随着三维图形图像的绘制(Image-Based Rendering, IBR)技术的发展,虚拟现实(Virtual Reality, VR)技术已经被越来越广泛地应用,它可以用于虚拟旅游和娱乐,例如著名旅游景点和博物馆的虚拟游览;也可以用于虚拟训练,例如飞机和车辆驾驶,以及虚拟战场仿真等;另外还可以用于医疗领域和虚拟建筑漫游,等等。
基于图像的绘制是指利用一组预先得到的真实图像进行适当的处理或组合,完成复杂三维场景的真实再现[1]。
由于基于图像的虚拟现实系统具有场景逼真、交互方便、
无需特殊硬件等优点,因此具有广阔的应用前景。
目前,随着基于图像的虚拟现实技术研究的不断深入,已经出现了一些相关的软件系统,其中最有代表性的是Apple公司的QuickTime VR系统[2],它采用环幕电影映像和全景图完成摄像机的旋转,并实现了一个全景开发环境,但是漫游显示只限于绕固定位置(视点)的俯、仰和水平旋转。
同心拼图[3]通过以同心圆切线方
向的数据组织将无遮挡同心圆区域的光流场简化为3D。
全光拼图[4]可以看做是同心拼图的推广,它在一个没有障碍物的空间用全方位摄像机沿着构成规则网格的路径进行图像捕获,然后通过网络上前、后两个摄像机捕获到的参考图像来生成网格内新视点下的图像,这些方法都需要比较复杂的设备条件并有一定的场景限制。
本文提出一种新的多边形柱面全景图漫游方法,使用普通的手持相机沿着一个路径或区域拍摄并拼接多幅全景图,利用 SIFT特征点计算相对深度并使用一种简单有效的方法渲染出新视点下的视野图,实现在采集路径和区域内的平滑漫游。
本文各节内容组织如下:第1节介绍多边形柱面全景图的采集方法,第 2节介绍利用
SIFT算子进行特征点检测从而得到狭缝深度图的方法,第3节介绍多基于多边形
柱面全景图的渲染方法,包括视平面上各像素的计算和利用狭缝图像进行的插值处理,最后是实验结果和讨论。
在场景的虚拟漫游过程中,为了让用户能够在水平方向上任意移动,我们在一个多边形区域上的多个视点采集全景图,按照一定的规则排列并储存,我们称之为“多边形柱面全景图”。
对于一条马路,我们可以用图1中(a)的采集方法来获取路两
旁的图像数据,图中圆圈中心为采集点,以此中心旋转360º拍摄一定数量的带有重合区域的图像;对一个更大区域(比如大型广场)进行采样,可以沿着如图1(b)所示的一个多边形路径拍摄/采集多个全景图像,实际上,对于这种路径的采集,
在每一点上可以只采集区域外侧的180º或者270º全景图,便可满足观察视点在
这一方形区域内漫游的要求。
图像采集工作完成以后,我们采用一种基于全局优化调整的方法[5]对每一点采集
的图像进行配准和融合,生成在这个视点下的首尾无缝连接的360º柱面全景图,然后对每一个采集点的图像都进行同样的处理并存储,我们就得到了这一区域的多边形柱面全景图。
在漫游时,我们需要找出任一条光线对应于多边形柱面全景图中的哪一个(或哪几个)全景图,以及这条光线在对应全景图上的位置,这也就是下面要讨论的具体渲染算法。
狭缝图像是一种宽度只有一个像素的一列图像。
由于模拟人的运动时,视点主要在一个二维平面上运动,图像在水平方向上的变化速度要快于垂直方向上的变化速度,此外人眼对水平方向的图像变化也远远要比垂直方向变化敏感,所以作为一种简化,把垂直方向的一列像素结合在一起考虑,这就是狭缝图像(slit images)。
狭缝图像在许多IBR系统如同心拼图[3]、多投影中心图像(MCOP)[6]中得到应用。
如果将全景图中的一列或几列像素视为狭缝图像,并加上统一的深度信息,这样的全景图就称为深度狭缝图像全景拼图。
与没有深度概念的传统全景图不同,由于深
度狭缝图像本身是对场景的一种近似表示,对深度的精度要求并不太高,因此我们可以将某些特征点的深度扩充为整个狭缝区域的深度,并将相邻区域间的深度进行线性插值,这样就将全景拼图中的每一条狭缝图像都赋予一个整体深度,使整个拼图由一组深度不等的“颜色柱”组成,如图2所示。
由于多边形柱面全景图的引入,使得深度提取成为可能。
对于同一个物体,在不同的两张全景图上,它们的位置应该是不同的。
根据这个位置关系,就能够确定出物体的相对深度。
图3表示了这样的情况,图中点P代表一个物体,它同时位于C1处和C2处所采集的全景图中。
假设我们可以在两张全景图C1和C2上找到该点的对应位置,我们就能够计算出它们对应的角度1θ和2θ。
设P点深度为H,则有
其中,是拍摄这两处全景图位置之间的距离。
由上式,根据P点在全景图C1和C2上的对应位置就可以计算出P点的深度H。
计算相应图像位置的深度时,需要先找到两幅图像的对应点,这里我们采用SIFT 算法来提取特征点[7]。
图 4显示了SIFT的特征提取步骤。
由SIFT方法提取的两幅图像中对应的特征点,我们可以通过上节的计算方法算出相应点的相对深度。
为简化起见,我们再按照特征点的分布,将全景图分割成相应宽度的狭缝图像,各条狭缝图像的整体深度就是所含特征点的深度,并把这个深度信息存储下来以供今后的计算使用。
至此,图像预处理工作就结束了,我们得到了带有场景深度的多边形柱面全景图数据。
图5给出了两个不同视点图像下SIFT特征提取和对应点匹配的例子。
在传统基于图像的漫游中,为了克服只能在固定视点观察的缺陷,常使用多个柱面全景图进行场景浏览[8]。
但是这种情况下全景图之间没有过渡关系,观察者只能从一个视点“跳”到另一个视点进行浏览。
因此,我们基于在固定视点采集拼接的全景图像,通过深度计算和狭缝图像插值的方法来合成漫游区域内任意视点的视野
图像,从而支持一定范围内的场景平滑漫游。
当漫游视点在如图6(a)所示的位置时,可以由相邻的两幅全景图上相应的点得到
视平面上每一像素的颜色值。
通过上一节介绍的多边形柱面全景图深度狭缝图像的计算,已经得到了全景图上任意一点的深度值Z,因此我们可以通过如图6(b)所
示的几何关系求出新视点下视平面上每一点的像素颜色值,具体的计算步骤如下:1)把视平面坐标转换成世界坐标系(XYZ)下的坐标值:假设最终生成的视平面图
像(图6中蓝色直线是该平面在 xy平面上的投影)大小为W×H,对于视平面上
的任意一点,设其坐标为(w, h)。
注意,这个坐标是相对于视平面的,我们需要把它转化为图中的XYZ坐标系下的坐标。
我们首先求出视平面在XY平面上的投影
中点的坐标(Xf, Yf, Zf)
其中, f为焦距,即视点到视平面的距离,θ为视线与水平方向的夹角。
则视平面上坐标为(w, h)的点(如图6中粉红色点)在XYZ坐标系下的坐标为
2)找出视平面上该点在物体平面的对应位置:由上节深度狭缝图像的获取原理可知,各个物体的深度可以看作一个分段函数(如图6(b)中蓝灰色分段平面)。
因此,我们从视点向视平面上的这个点发出一条射线,可以计算出这个射线与分段平面的交点。
3)找出对应的全景图:多边形柱面全景图的视点全部位于y轴上,因此要找出对应的全景图,首先需要计算第2步提到的射线与y轴的交点。
设交点的纵坐标值
为 Y c,可求出因此,只需要在所有全景图中查找离 Yc最近的一个(需要插值的
情况,则查找最近的两个)即可。
4)根据在Xh平面上的一点计算对应全景图上的位置:我们再次转化一个坐标系,那么对于一个点 ),,( pppZYX ,其角度那么,对应全景图的狭缝图位置即可以表示为:中, PW 表示全景图的宽度。
而该点对应此列的像素可以由比例关系确定。
至此,我们就从视平面上的一点,找到了全景图上对应的一个像素。
对视平面上的
每一个点重复这个过程,就完成了一个视平面图像的绘制。
上面的算法对于视野图的每一个像素进行计算,因此最终结果应是精确的,但由于处理的像素点会很多,而对每一个像素点都要涉及到求交运算,导致最终渲染速度不能达到实时漫游的要求。
我们在前面第1节已经介绍过柱面全景图在垂直方向是没有形变的,因此我们采用下面的狭缝图像方法,避免垂直方向的计算从而提高计算速度,具体方法如下:
1)按照上节介绍的方法计算视线与平面Xh的交点(Xh, Yh),设为点P。
注意,这里没有计算Zh的值。
2)按照上面介绍的方法找出对应的全景图编号,设该全景图坐标为(Xi, Yi)。
3)根据Xh和Yh的值可以得到对应全景图上的狭缝位置。
4)将该狭缝图像按照一定比例进行缩放,该比例值为
缩放以后即可作为当前视野图的一个狭缝图像。
这样,计算量就大大降低了。
通过上面介绍的方法,我们就可以渲染出采集范围内任意视方向下的视野图像。
为了进一步简化和加快渲染速度,我们引入插值算法,来解决跨越两幅全景图时明显分界的问题。
对于某一条光线(看作一条从视点发出的射线),首先求出射线与y 轴的交点H,然后在该轴上的所有全景图中,找出离交点最近的那一个作为其对应的全景图。
我们现在为了避免在跨越两幅全景图时的分界现象,我们在这一步中,找出离交点最近的两个全景图,设为Ci、Cj。
然后,依次通过之前介绍的方法,找出这条光线在Ci和Cj上对应的狭缝图像Ii、Ij,参见图7,我们采用线性插值,则该光线对应的狭缝图像应为:这样得到的 I即为我们所要的狭缝图像。
多边形柱面全景图漫游系统的实现分为3个步骤,首先是在场景中采样,然后对图像样本进行预处理,最后是进行实时绘制。
首先是拍摄图片,我们沿着指定路径每隔固定距离拍摄一组照片。
在采集和生成全
景图的时候,每一个采集点的全景图都是360°的,但实际上并没有必要保留360°的全景图来生成最终的视野图像,实际上只需要道路两侧向外的部分即可,因此实际上只需要180°的全景图。
下一步是给每个全景图的狭缝图像确定深度,利用第
2节介绍的算法求出相邻全景图的对应点匹配和这些特征点所在的狭缝图像的深度值。
由于狭缝图像本身是对场景的一种近似表示,对深度的精度要求不是很高,我们可以将求得离散点的深度进行线性插值,得到整个全景图的连续深度信息并存储起来,这样我们就获得了完整的狭缝深度全景图像。
最后是对预处理过的多边形柱面全景图进行虚拟漫游的绘制,利用第3节描述的几何对应关系和狭缝插值方法,我们可以完成新视点下视野图像的绘制,从而在采集路径或区域内实现平滑的虚拟场景漫游。
我们以清华大学东门到主楼的沿线区域作为实验场景,转弯的区域和路线如图8
所示,每隔固定距离拍摄一组图片,并利用这些图片生成具有深度信息的多边形柱面全景图,实验环境为2.6GHz CPU,2G内存,在Windows XP操作系统下采
用Visual Studio2008 作为编程平台,实现了漫游演示系统。
图9为沿着清华主
楼左转后前进的一段场景,显示了在这一漫游路径下系统合成的一组视野图像。
提出了一种基于多边形柱面全景图进行虚拟漫游的新技术,通过带深度的狭缝图像组成的全景拼图可以支持传统全景图技术所不具备的实时漫游功能,进而实现各个全景图之间的平滑过渡,扩大漫游范围。
本文方法介绍的图像采集也比较容易,不需要复杂和大规模的设备,只要一个普通手持相机便可以实现较大范围的自由漫游功能,具有比较大的应用价值。
在这里我们使用统一的深度来表示狭缝图像中各点的深度,这样的简化是对场景一种近似的表达,要求实际场景中大部分像素在一个垂直方向上深度相近,因此该方法和传统全景图一样,更适合应用在宽敞开阔的室外大场景中。
【相关文献】
[1]Shum H Y, Kang S B. A review of image-based rendering techniques [C]//Proceedings of IEEE/SPIE Visual Communications and Image Processing (VCIP)2000:2-13.
[2]Shen C, Eric C. Quick time VR——an imaged-based approach to virtual environment navigation [C]//Computer Graphics Proceedings, Annual Conference Series, 1995:29-38.
[3]Shum H Y, He L W. Rendering with concentric mosaics [C]//Proceedings of the SIGGRAPH’99, New York:ACM Press, 1999:299-306.
[4]Aliaga D G, Garlborn I. Plenoptic stitching:a scalable method for reconstructing 3D interactive walkthroughs [C]//Proceedings of SIGGRAPH 2001,New York:ACM Press, 2001:443-450.
[5]Wang Haiying, Qin Kaihuai. A global optimization approach for construction of panoramic mosaics [C]//Automatic Target Recognition and Image Analysis:6th International Conference on Multispectral Image Processing and Pattern Recognition, 2009:78-83.
[6]Rademacher P, Bishop G. Multiple center of projection images [C]//Proceedings of SIGGRAPH’99, New York:ACM Press, 1998:199-206.
[7] Lowe D G. Distinctive image features from scale-invariant keypoints [J]. International Journal of Computer Vision, 2004, 60(2):91-110.
[8]Darius B. Recent methods for image-based modeling and rendering [C]//Proceedings of IEEE Virtual Reality, 2003:41-49.。