一种基于离散全景图构建连续场景的图像投影方法与流程

文档序号:12064845阅读:420来源:国知局
一种基于离散全景图构建连续场景的图像投影方法与流程

本发明属于虚拟现实技术领域,涉及一种图像投影变换方法,尤其涉及一种基于离散全景图构建连续场景的图像投影方法,是一种行人导航的全景视觉连续引导方式的应用。



背景技术:

比较在运用全景图实现虚拟现实技术方面的两种方法,第一种方式在漫游的过程中保留了全景图的全部特性,比如对场景的无死角观察,缩放观察等,但是由于实现连续观察的方式是逐一切换全景图片,这种方式被百度地图,谷歌地图,等普遍采用,目前在图片切换的过程中没有出现很好的过渡方法能够使得场景连续变化,正是视觉上的不连续使全景图在导航中的引导效果大大降低。第二种方法是依据全景图进行场景的三维重建,恢复场景中地物的空间关系,使用的仍然是传统的数字三维技术,虽然这种方式建立的场景可以用于连续漫游但是场景的逼真度远不如全景图的效果好,而且这种方式实现起来难度比较大,场景重建和纹理映射都需要人工参与。这种方式适用于小区域场景的展示或专题展示。



技术实现要素:

本发明主要是解决现有行人导航技术所存在定位引导方式不直观的问题;对于导航引导来说需要一种能够容易得到的既能满足连续场景观察又能够保留一定的照片效果的实景引导方式,鉴于以上两种方法的优势和不足,本发明提出了一种基于离散全景图的连续场景实现方法。

本发明所采用的技术方案是:一种基于离散全景图构建连续场景的图像投影方法,其特征在于:若是离散全景图,则使用球体投影模型对单个全景图进行图像投影构建;若是连续视觉场景,则使用圆柱面投影模型对连续视觉场景进行图像投影构建;所述离散全景图与连续视觉场景之间能进行互逆转换,完整的连续视觉场景模型由单个球体投影模型与连续的圆柱面投影模型构成。

作为优选,所述离散全景图沿道路采集并保持一定的间隔距离。

作为优选,离散全景图,是使用球体投影模型而纹理使用双目鱼眼相机获取。

作为优选,离散全景图,使用OpenGL的建模技术,使用建模软件Sketch Up绘制球体模型并把全景图贴合到球的内表面上,按照obj格式导出模型,之后用Perl脚本解析出顶点数组、法线数组、纹理坐标数组作为原始数据提供给OpenGL。

作为优选,连续视觉场景,圆柱面投影模型中的圆柱面是使用从球体全景图投影变换并拼接后的图片作为纹理。

作为优选,连续视觉场景,圆柱面投影模型中球体模型与圆柱面是外接关系,即球体模型与圆柱面具有相同的半径R,圆柱面模型的实现使用OpenGL建模技术绘制圆柱面并把柱面全景图贴合在圆柱内表面上。

作为优选,所述离散全景图与连续视觉场景之间能进行互逆转换,采用的是横向经线对投影方法,把球面上同一条经线上的像素沿着从球心射出经过该经线的射线方向投影到与球面外接的圆柱面上,投影时经线是成对投影的,经线对关于视线对称;逆转换的过程与展开的原理完全相同只是把像素从圆柱面逆向投影还原到球面的位置。

作为优选,球体投影模型的实现和使用是在iOS平台上,在iOS中使用OpenGL es技术,数据的存储使用SQLite;圆柱面投影模型的实现和使用同样是在iOS平台上,使用OpenGL es技术实现;离散全景图与连续视觉场景的互转换使用Opencv函数库和C++语言编程实现。

本发明具有如下优点:数据获取简单方便、成本低,模型结构实现简单,模型视觉效果逼真基本保留图片效果,在行人导航中运用方便可以配合定位、定向数据进行场景展示。

附图说明

附图1是本发明实施例的一种基于离散全景实现连续视觉场景的示意图。

附图2是本发明实施例的原始图像,转换过程,效果图片,逆向转换效果图。

附图3是本发明实施例的投影原理图。

附图4是本发明实施例的原始球面全景图片。

附图5是本发明实施例中按照横向经线投影方法从球面图像展开到圆柱面图像的效果图。

附图6是本发明实施例中按照横向经线投影方法从圆柱面图像逆向还原到球形全景图像的效果图。

附图7是本发明实施例中还原后的图像用于球形全景的效果图。

附图8是本发明实施例中构建连续场景的模型结构示意图。

附图9是本发明实施例中圆柱面全景效果示意图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

在导航应用中全景图的采集一般都是沿着可行走路径按照一定的距离进行离散采集的,如图1所示在一段路径上有A、B、C、D四个全景图采集点,设想全景图是一个具有一定半径的球形模型全景图像作为纹理贴合在球的内表面上,人的眼睛也就是观察点设置在球心,通过前面章节的分析这个模型恰好模拟了人眼在真实世界中的视觉效果,如果行人在BD路段上行走,从B点到D点,人眼缓慢移动同时相应的全景球体也伴随运动,设想每个全景球都具有相应位置的场景映射,那么从B到D将会形成一个连续的外接圆柱面,这个柱面的半径与球的半径相同,在球面与圆柱面相切的地方具有相同的图像像素值,这样的话就相当于人在圆柱中行走同时可以连续观察周围的场景,能够满足导航引导过程中的大场景展示、位置标定、路径标识、POI提示和道路两侧环境分析。

基于离散的全景图实现场景的连续化的关键在于图像的投影变换的方法,如图1所示的原理从球心向外做射线,射线与球面的交点为P与柱面的交点为P’按照这样的投影方式把P点处的像素值赋给P’点,投影的过程中尽量保证图像中的地物之间的相邻关系不变,取消了与道路平行方向的透视效果取而代之的是等距投影效果。当行人沿着B->D方向观察时,可以连续观察两侧的场景。在B、D点处仍然保留原来的全景图这样从B点到D点就构成了一个封闭完整的场景,类似有一个胶囊,把这些胶囊在末端处连接起来就实现了场景的连续化漫游,B点表示路口处出现场景交接的地方使用球面模型与圆柱面模型嵌套的方式以保证在路口处视觉效果完整性如图8所示。

为了重点保持图像中建筑物的垂直性现在考虑一种投影方法称之为全景图的横向经线展开模型。所谓横向经线展开是指把球面上同一条经线上的像素沿着从球心射出经过该经线的射线方向投影到与球面外接的圆柱面上,投影时经线是成对投影的,经线对关于视线对称。具体的做法是在投影的过程中目标图像的一次列扫描对应两条经线,这两条经线关于圆柱面的中轴线对称。如图2、图3所示。

这种投影方式具有以下特点:

(1)目标图像的像素在对称线处是不连续的;

(2)图像中取消了沿外接圆柱轴线方向的透视效果,得到的是等距投影的效果;

(3)图像在垂直方向上能够保持基本的垂直效果;

(4)相当于在横向和纵向对原有图像都做了等比例拉伸;

(5)随着原图像上两条经线间夹角的缩小造成投影后远处的图像像素分辨率逐渐降低。

实验示例:

(1)以双目鱼眼相机获得的全景图片为例,输入图像是单个鱼眼获取到的图像,本实验中选用从图幅1/4到3/4出的图像(如图4)。

(2)投影变换过程是从目标图像(展开后的图像)像素坐标(tX,tY)转换到球面坐标(R,L,B)在转换到源图像坐标(x,y)。涉及到的变量有:

R=球面半径;

C=球的周长;

投影中满足如下关系:

这里cosθy理解为透视恢复因子(缩放效果)。

图像展开过程的总结与分析;

从投影变换的结果可以得出以下结论(如图5):

(1)目标图像像素在图幅横向中线出不连续表现为道路面出现拼接缝,同时图像两条横边也不能保持连续,这是由于经线展开本身的特性所导致的;

(2)圆柱面轴向无透视效果;

(3)建筑物基本保持垂直说明模型较为合理,展开图像右侧分辨率降低;

图像还原过程的总结与分析:

(1)如图6所示,还原后的图像与原始图像一致,无明显的图形畸变,同时图像质量优良;

(2)与原始图像相比,还原后的图像丢失了部分内容即图像中的蓝色区域,这是由于按照经线投影的方法,如果完全展开原始图像那么展开图像会无限长,但是随着分辨率的降低,只有靠左侧部分图像是有实际意义的因此存在一个投影截止角,如图中蓝色区域边缘的两条经线所夹的角度就是投影截止角,由于图像是沿着道路方向展开的因此还原后图像中丢失的内容主要是天空和路面,基本不包含关键信息,还原后的图像用于球面全景的效果如图7所示。

(3)之所以在球形全景效果中出现这种哑铃状的图像盲区,是因为横向经线展开的过程中并不是把一条经线上的所有图像信息都保留了下来,而是按照比例cosθy(见公式1)保留了一条经线的中间部分,这是为了消除图像中的透视效果。也是为了统一使用柱面投影模型,如果完全保留每条经线的图像信息,那么展开后的图像将不是矩形而是扇形的那么就要使用类似喇叭口的投影模型而不是圆柱面模型了。

连续全景的运用;

上述过程描述了球形全景图与圆柱面全景图的互转换方法,如图9所示柱面全景中只使用了一幅全景图的展开图片,在实际运用中需要多于2幅的全景展开图经过拼接后才能使用,这是为了使图像分辨率变化差异不至于过大,平衡视觉效果。

本发明的保护范围并不限于连续全景实现方法在行人导航中的运用,通过改变应用的领域可以满足更多的需求。显然,本领域的技术人员可以对本发明进行投影原理和运用方式上的改进而不脱离本发明的范围和精神。倘若这些改动属于发明权利要求及其等同技术的范围内,则发明的意图也包含这些改动在内。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1