一种基于图像的三维和全景系统自动生成方法
技术领域
本发明涉及基于图像的三维全景系统技术领域,特别的涉及基于计算机图像处理分析技术的一种基于图像的三维和全景系统自动生成方法。
背景技术
中国手机通讯自从1987年中国移动通信集团公司开始运营900MHz模拟移动电话业务算起到现在已经经过了近20年的发展历程,其间经历了GSM时代、2.5G时代和现在的3G时代,其手机技术的使用也从最初的仅仅只局限于通话功能,到现在的可以发短信,彩信,GPRS上网,手机游戏,红外传输,蓝牙通信等等。通过技术的不断革新,手机也由原来的基本通讯工具扩展为现在可以实现视音频回放和扩充应用程序的综合性多媒体终端设备。
随着互联网技术的发展,手机通讯能力的不断提高,以及人们对于多方位、快节奏、实时获取信息的需要,用手机上网、打游戏和观看电视等已经逐渐走进人们的生活并被大家所接受。而随着3D技术的发展并逐渐被运用,涉及互联网的虚拟现实技术有着广阔的发展前景。
其中,国外的虚拟现实技术的开发研究工作始于60年代。早在1962年,美国专利号#3,050,870发布了Morton Heilig的一项题为“全传感仿真器”的专利,它是第一个用于虚拟现实视频设备。而在这个阶段,主要流行的是设计、开发虚拟现实的专用设备,比如“全传感仿真器”、“头盔式显示器”和“场景加速器”等。
到了70年代和80年代早期,美国军方投入大量的经费开展虚拟现实系统的研究,开发了大量的有关“飞行头盔”和军用现代虚拟设备的研究。
80年代中期,虚拟现实的研究开始和计算机技术结合起来,VIEW(即VirtualInterface Environment Workstation)系统,开始被移植到HP9000型强大的计算机设备上。
后来的90年代,虚拟现实的研究开始转移到民间的高科技企业。标准化的虚拟现实建模语言VRML为在Internet上构建可共享、可互换的虚拟环境奠定了基础。其中VRML97的发布则意味着VRML已经成为虚拟现实行业的国际标准。此时,大部分的虚拟现实系统仍运行于昂贵的高性能图形工作站,要绘制一个逼真的三维虚拟物体,工作量大得惊人,且成本非常昂贵,而且庞大的数据量使得动态图像的应用受到了较大的限制。
自从2000年以来,基于实景的虚拟现实技术开始出现,其生成的图像数据量较小,又能达到动态图像的表现效果,使虚拟现实技术突破了航空航天、军事、娱乐等几个特定应用领域的局限,并逐步渗入到各行各界,甚至寻常人家的日常生活中,基于实景的虚拟现实的核心概念是全景、物体、场景、视点以及视点空间。其中,最具代表性的国外相关软件如下:
QuickTime VR:Apple公司出品,第一次使人们领略了具有照片质量的虚拟现实环境。但其创作平台只能运行于昂贵的高性能图形工作站,如Mac机,更无法通过手机等移动终端浏览和发布。另外浏览QuickTimeVR所生成的全景图像必须安装一个插件,该插件需从网站上下载,由于其容量较大(约2MB),常给浏览者带来不便。
LPIX Viewer:LPIX公司出品,只能产生与浏览360度全景图像,不能实现全景图像之间的过渡,也不能生成虚拟实景对象,更无法在手机上浏览和发布。
相对的,我国对虚拟现实技术的正式研究起步很晚,约在20世纪90年代初。国内最早开展此项技术试验的是西安虚拟现实工程技术研究中心;北京航空航天大学计算机系也是国内最早研究VR的单位之一,并在VR视觉接口方面获得了部分研究成果;清华大学国家光盘工程研究中心所作的“布达拉宫”,采用了QuickTime技术,实现大全景VR制;上海大学CIMS中心开发了一套基于IRIX的虚拟科技园区环境实时漫游系统;国防科技大学开发出虚拟实景空间系统HVS。比较而言,国防科大的HVS系统是其中最完整的一个系统,它的虚拟场景是按以下步骤生成的:首先利用采集的离散图像或连续的视频作为基础数据,经过处理形成360度柱面全景图像,再通过合适的空间模型把多幅全景图像组织为虚拟实景空间。但是,以上系统也未能在手机上实现基于实景的三维图像的浏览和发布。
现在,在移动商务的大趋势下,借助手机的强大功能和相关技术,基于实景的三维浏览系统在手机上的实现已完全成为可能。目前的图像处理技术已经具有可以直接利用特别拍摄的图像构造出具有三维效果的场景的能力;大量存在的、易得到的实景图像资源可以去有效地组织和利用。但是另一方面,目前在国内外的研究中,图形生成方式还存在着明显不足:一是复杂空间的建模过程相当烦琐,工作量大、耗时多;二是不能将实时交互性和高质量图形环境结合起来,对场景难以做到十分逼真;三是现有技术不能很好的配合移动商务的发展需求,现在,人们更多的希望通过手机实现B2C模式的产品推广,通过手机在浏览三维产品或场景的同时,可以实时与客商或厂商达成直接的信息交流。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于实景图像生成的,具有三维操纵能力的柱面虚拟实景三维空间应用系统的生成方法。
本发明的目的具体通过以下技术方案实现:
一种基于图像的三维和全景系统自动生成方法,依次包括如下步骤。
1)实景拍摄
通过相机进行实景拍摄,采集实景图像,拍摄时以选择地点为圆心,位置不动,通过移动相机的角度以柱形的方式拍摄多张图像。
2)无缝拼接
对于两幅重叠图像的像素相关性,通过像素值导出符号特征(如特殊点、特征线段)来实现匹配。
3)三维虚拟实景图像的柱面正投影变换
将多张实景图像投影到一个圆柱面上,以柱面全景图像的形式存储,方位信息表现为象素点在柱面全景图像中的存储位置。
4)三维虚拟实景图像的柱面拼接
在柱面正投影变换以后,对图像进行拼接,形成柱面全景图像,具体的分为两个步骤:
4.1)图像的匹配:采用基于特征线段的图像匹配算法,利用图像上间隔一定距离的两列上的部分象素与另一张图像上对应的两列象素进行匹配,即在前一幅图像的两列重叠区域中分别取出部分象素,计算它们的差值作为特征模板,然后在第二幅图像中搜索特征模板最佳的匹配;
4.2)搜索特征模板最佳的匹配:对于第二幅图像,在搜索范围内依次从间距相同的两列重叠区域上取出部分象素,并逐一计算其对应象素值差值;然后将这些差值依次与特征模板进行比较,其最小偏差值对应的列就是最佳匹配。
5)三维虚拟实景空间编辑及空间漫游交互
把多个视点组织在一起,有机地展现各个视点之间的空间关系,通过视点的链接,从一个视点前进或后退至另一个视点;同时通过定义热区,从一个空间切换到不同的空间或视点;虚拟实景空间的构造首先从单一视点处的局部空间开始,然后以超链的方式将这些局部空间链接成一个完整的虚拟实景空间。
6)三维虚拟实景浏览使用:所生成的虚拟实景应用方式包括:
6.1)以Web浏览器插件的方式进行共享和浏览;
6.2)将生成的3D文件发布到手机上,通过支持JAVA的手机浏览查看三维虚拟实景,并对其进行各项浏览操作,如播放/暂停、旋转方向、放大缩小等。
步骤6.1中,采用全景图像数据预调方式,在Web浏览器进入到下一个视点空间时,不把整幅全景图像全次性调入内存中,而是只调入可见部分解压显示在屏幕窗中。
步骤6.1中,当用户沿位置链从当前空间位置行进到另一个空间位置时,Web浏览器通过视点实时插值算法把当前屏幕上的图像过渡到另一幅图像上。视点实时插值算法具体如下。
保持多个360度视点数据的正北方向的一致性,在从当前图像的视点A迁移到另一幅图像的视点B时,依赖全局方位找到与视点A当前浏览子图所在视角对应的视点B的全景图中的子图;
在此基础上,取出视点A中当前浏览子图和视点B中对应的子图,根据两个子图之间实际距离(由用户交互输入)确定生成中间帧的数目,通过经验公式确定每个中间帧在两个子图的对应区域中的选择和缩放比例,最后按照公式
逐点生成按照特定视角方向前进、后退路径上的插值图像帧。
上述的步骤6中,还包括了对图像的分块压缩方法:
具体的,是将全景图像垂直分块,分成大小相等的一系列子图(例如每块为64×600像素),在压缩时,对每个子图分别进行压缩,然后仿效存入在文件中,并在文件头添加一个子图索引,以便随机访问;其中,各个子图按照同一标准压缩,共用同一套码表(包括Huffman码表和量化表),将各个子图的宽度保持为8的倍数。
与现有技术相比,本发明具有以下有益效果:
通过手机实现基于实景的3D产品及场景的浏览和发布,可以对3D场景及产品做任意变形处理(远近、扭曲、视角随意转换),也可以轻松将3D场景变为手机桌面或者屏保,应用性强。本发明在手机上的实现将改变目前手机上的应用大部分为游戏和银行服务为主的局面,填补手机上B2C模式的产品推广的市场空缺,带给消费者更多的兴趣和便利;也是应用的一个延伸和发展,促进了手机实现B2C模式的产品推广。
提供了一种高效的、实时的产品发布和浏览形式:可以通过手机随时登录服务器发布或查看各厂商的最新产品信息及场景全貌,在浏览产品的同时可以与客商或厂商进行直接信息交流,不受时间、地点限制,达到实时浏览和交流的效果。
集成大量的客户交互和信息检索技术,使用户更容易和方便地的找到自己所关心的产品信息和行业资讯。
基于实景图像,无需场景建模:利用实景进行虚拟空间构造,其处理时间只与图像分辨率有关,独立于景物复杂度,即使在手机上浏览三维产品,也基本可以媲美目前有线网络的速度。
具备良好的虚拟特性:生成的三维空间与现实世界的关系可以虚实变换,既可以是实,即生成的空间是对现实世界的再现;又可以是虚,即生成的空间不同于现实世界。例如,利用某大楼的实景图像建立虚拟大楼,既可以跟真实的大楼一致——反映的是实,又可以将大楼内的图像替换成另一建筑物内部的图像,造成一种假象——反映的是虚。
高效的空间特性:具有多视点切换功能,即按照时空关系组织,存在空间上下文(spatial context)关系,因此不仅可以对单个的场景进行放大缩小,还可以模拟人进行复杂的前进、后退等动作,随着这些复杂的动作,自然地从一个场景进入另一个场景之中(即从一个视点到另一个视点的转换),而非简单的超级链接方式。
系统的科学性较强:能够很好的处理图像拼接、柱面投影、移动图像插值、全景图像的分块压缩策略、内存优化、缓冲区管理以及虚拟空间的构造组织等问题,同时具有良好的多平台性,相同的应用可方便地在PC和手机上同时发布,适用性强。
附图说明
下面将结合实施例和附图对本发明作进一步的详细描述:
图1所示为本发明一具体实施例的流程示意图;
图2所示为本发明一具体实施例的相机拍摄图像方式示意图;
图3所示为本发明一具体实施例的基于柱面全景图像极线校正进行立体匹配的方式示意图;
图4为本发明一具体实施例的Web浏览器插件结构示意图;
图5所示为用于实现本发明一具体实施例的步骤1的摄影室布置简图;
图6所示为本发明一具体实施例的虚拟现实空间/对象生成流程示意图;
图7所示为本发明一具体实施例的光图取样流程图。
具体实施方式
下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
如图1~图7所示为本发明实施例的一种基于图像的三维和全景系统自动生成方法,依次包括如下步骤。
1)实景拍摄
通过图5所示的装置实现通过相机进行实景拍摄的目的,采集实景图像,拍摄时以选择地点为圆心,位置不动,通过移动相机的角度以柱形的方式拍摄多张图像。此方法适用于小物体拍摄,其中,如需要拍摄大物体时,需要固定物体不动,通过将相机的拍摄位置环绕一圈来进行拍摄。拍摄的图像张数和注意事项如同小物体拍摄。具体操作中建议以物体为中心画一个圆,并打上均匀的刻度,这样在拍摄时,在圆周上移动摄像机,便能得到均匀的多幅图像。
2)无缝拼接
基于两幅重叠图像的像素相关性,采用的是基于特征的方法来实现,基于特征的方法不是直接利用图像像素值,而是通过像素值导出符号特征(如特殊点、特征线段等)来实现匹配,所以该方法对于对比度和的光照变化等相对稳定。同时,基于特征的匹配可以通过对特征属性的简单比较来实现,拼接速度快。
3)三维虚拟实景图像的柱面正投影变换
将多张实景图像投影到一个圆柱面上,以柱面全景图像的形式存储,一方面消除了实景图像之间可能存在的重复景物信息,同时也得到了每张实景图像上的象素点在视点空间中的方位信息,方位信息表现为象素点在柱面全景图像中的存储位置。
4)三维虚拟实景图像的柱面拼接
在柱面正投影变换以后,对图像进行拼接,形成柱面全景图像,具体的分为两个步骤:
4.1)图像的匹配:采用基于特征线段的图像匹配算法,利用图像上间隔一定距离的两列上的部分象素与另一张图像上对应的两列象素进行匹配,即在前一幅图像的两列重叠区域中分别取出部分象素,计算它们的差值作为特征模板,然后在第二幅图像中搜索特征模板最佳的匹配;
4.2)搜索特征模板最佳的匹配:对于第二幅图像,在搜索范围内依次从间距相同的两列重叠区域上取出部分象素,并逐一计算其对应象素值差值;然后将这些差值依次与特征模板进行比较,其最小偏差值对应的列就是最佳匹配。
5)三维虚拟实景空间编辑及空间漫游交互
把多个视点合理地组织在一起,有机地展现出各个视点之间的空间关系。通过视点的链接,可以很自然地从一个视点前进或后退至另一个视点;也可以通过定义热区,从一个空间切换到不同的空间或视点。虚拟实景空间的构造首先从单一视点处的局部空间开始,然后以超链的方式将这些局部空间链接成一个完整的虚拟实景空间,如仰视、俯视、360度环视等。通过提供的三维操纵能力,可以在虚拟实景空间所建立的虚拟环境中“漫步”。在虚拟空间中进行前进、后退、360度环视、Zoom in/out、仰视、俯视等操作。
6)三维虚拟实景浏览使用:所生成的虚拟实景应用方式包括:
6.1)以Web浏览器插件的方式进行共享和浏览;
6.2)将生成的3D文件发布到手机上,通过支持JAVA的手机浏览查看三维虚拟实景,并对其进行各项浏览操作,如播放/暂停、旋转方向、放大缩小等。
Web浏览器是提供给最终用户漫游虚拟全景空间时使用的。
此外,为使用户在虚拟全景空间中漫游时不致迷失方向,Web浏览器还可以引入导航图。导航图相当于虚拟全景空间的一幅地图,虚拟全景空间中各个视点的位置以及用户当前的位置等均动态绘制在导航图中,漫游时,用户可随时查看导航图,以达到便利性。
运行Web浏览器,打开空间文件后,用户首先看到的是导航图。在导航图中任意位置处指点鼠标按钮,便可以进入到相应位置的视点空间中,用户可以在虚拟实景空间前进、后退、仰视、俯视、360度环视、向左看、向右看等漫游操作。可以通过指点鼠标得到大量的多媒体信息,可以操纵三维实景对象。
其中,步骤6.1中,为使用户看到的场景是连续平滑的,浏览器需要解决一些关键技术,如采用全景图像数据预调方式,由于整幅全景图像数据量比较大,而且浏览器一次只显示全景图像的一部分,所以在Web浏览器进入到下一个视点空间时,不把整幅全景图像全次性调入内存中,而是只调入可见部分解压显示在屏幕窗中。
其中,步骤6.1中,当用户沿位置链从当前空间位置行进到另一个空间位置时,Web浏览器把当前屏幕上的图像过渡到另一幅图像上,如果浏览器只是简单地把当前图像切换为另一幅图像,是无法使用用户产生在空间行进的感觉的。视点实时插值算法可有效解决该问题,具体如下:
保持多个360度视点数据的正北方向的一致性,这是实现算法的将前提;在从当前图像的视点A迁移到另一幅图像的视点B时,依赖全局方位找到与视点A当前浏览子图所在视角对应的视点B的全景图中的子图,视点B的全景图中的子图部分可以认为是在视点A通过镜头焦距缩放看到的近似;
在此基础上,取出视点A中当前浏览子图和视点B中对应的子图,根据两个子图之间实际距离(由用户交互输入)确定生成中间帧的数目,通过经验公式确定每个中间帧在两个子图的对应区域中的选择和缩放比例,最后按照
逐点生成按照特定视角方向前进、后退路径上的插值图像帧。
比如,给定两幅图像,如果它们之间的光流信息已知,则可以重构任意视点的新图像。首先利用相机的位置和图像深度信息,事先计算出两幅图像对应象素的偏移向量,并存储在一对“变形图(morphmaps)”中。为了提高映射的速度,减少“变形图”大小,可以使用四叉树法对图像进行分块,压缩“变形图”,并按照块的深度值进行前后排序,产生四叉树查找链。绘制新视图时,根据视点位置和图像对的关系,对偏移向量进行线性插值,并按插值向量移动源图像中相应象素到新视图中,从而得到新的视图。
本发明方法在快速生成虚拟现实应用中的效果如下:
图像幅数 |
图像预处理时间 |
生成全景图像时间 |
8幅 |
1分钟 |
约12秒 |
16幅 |
3分钟 |
约25秒 |
24幅 |
5分钟 |
约35秒 |
进一步,本发明方法应用于全景图手机端浏览的参数如下:
图片数 |
数据包字节数 |
播放帧率 |
8张 |
≈60K |
15~20帧/秒 |
16张 |
≈110K |
15~20帧/秒 |
24张 |
≈190K |
15~20帧/秒 |
进一步,本发明方法应用于3D对象手机端发布时的技术参数如下:
图片数 |
图片处理时间 |
3D对象打包 |
8张 |
1分钟 |
1~5秒 |
16张 |
3分钟 |
3~8秒 |
24张 |
5分钟 |
5~10秒 |
其中,如果两幅图像的视点很近,则插值效果很好,如果两幅图像之间的距离过大,则它们之间的相同区域就会很小,从而增加了渲染误差。当视点平行于视平面移动时,视点实时插值算法能够产生准确的结果。
实际应用中,一个光图取样要求大量的存储空间。比如对单个面,当在(s,t)空间选取32×32个样本,在(u,v)空间选取256×256个样本,为了存储观察立方体的六个面,若每像素24bits,则需要32×32×256×256×6×3=1.125GB的存储量。
但是,(s,t,u,v)样本间有很大的相差性,可以给四维矩阵进行一次变换,比如小波变换或区域离散余弦变换。一旦给定了几何信息,将四维矩阵看成是图像的二维矩阵,可以让算法工作得更好。然后从相邻图像(即相邻(s,t)位置的图像)预测新的(u,v)图像。帧内压缩工作其实就是压缩一些单个图像(一个简单的JPEG压缩可以产生大概20∶1的压缩比)。帧间压缩可以从越来越多的其它压缩方法(像MPEG)中获益。由于物体是静态的,而且摄像机是在连贯的图像间运动,因此可以预测像素的运动。另外,由于有图像的二维矩阵,而不是单一的线性视频流,这点对光图的压缩是非常有利的。所以,在上述的步骤6中,还包括了对图像的分块压缩方法:
具体的,是将全景图像垂直分块,分成大小相等的一系列子图(例如每块为64×600像素),在压缩时,对每个子图分别进行压缩,然后仿效存入在文件中,并在文件头添加一个子图索引,以便随机访问;其中,考虑到各个子图按照同一标准压缩,所以各个子图按照同一标准压缩,共用同一套码表(包括Huffman码表和量化表),以提高压缩效率。子图的最优宽度受CPU速度、硬盘速度以及JPEG算法本身的影响。因为JPGE标准是按8×8作DCT变换的,因此各个子图的宽度保持为8的倍数比较好。实践证明,64像素宽的子图对实时解压浏览最合适。实际应用中生成的全景图像压缩比如下:
原始图像字节数 |
压缩后图像字节数 |
压缩比 |
100k |
75k |
75% |
1m |
585k |
58% |
1G |
425m |
45% |
本发明的系统方法可以在现实生活中得到广泛应用,如应用于网上超市、房地产、虚拟旅游、GIS导航、道路交通及城市环境展示等。