一种在虚拟场景下显示外景的方法和终端与流程

文档序号:14623210发布日期:2018-06-08 03:05阅读:214来源:国知局

本发明涉及图像处理领域,尤其涉及一种在虚拟场景下显示外景的方法和终端。



背景技术:

现如今,虚拟现实技术(即VR技术)已经广泛应用于各个行业。伴随着虚拟现实技术的普遍化,增强现实技术(即AR技术)以及混合增强现实技术(即MR技术)也应运而生。根据对市场的了解,购买一台微软的混合增强现实头显设备Holens大概需2万元。基于现有技术,为了体验混合增强现实所付出的经济成本较高。



技术实现要素:

本发明所要解决的技术问题是:如何降低体验混合增强现实技术所需的成本。

为了解决上述技术问题,本发明采用的技术方案为:

本发明提供一种在虚拟场景下显示外景的方法,包括:

S1、当VR播放器接收到播放VR资源的指令时,启动录屏服务;所述录屏服务为触发摄像头在一时间段内连续捕获外景的图像;

S2、当所述录屏服务启动成功时,所述VR播放器播放VR资源,得到VR场景;

S3、融合所述VR场景和所述外景图像。

本发明还提供一种在虚拟场景下显示外景的终端,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:

S1、当VR播放器接收到播放VR资源的指令时,启动录屏服务;所述录屏服务为触发摄像头在一时间段内连续捕获外景的图像;

S2、当所述录屏服务启动成功时,所述VR播放器播放VR资源,得到VR场景;

S3、融合所述VR场景和所述外景图像。

本发明的有益效果在于:充分利用现有带有摄像头的智能终端的特性,将摄像头捕获到的外景图像融入到VR场景中,使用户在虚拟世界能够和现实世界进行交互操作,从而达到一种混合现实的能力,而无需购买昂贵的混合现实头显设备,大大降低了体验混合增强现实技术所需的成本。

附图说明

图1为本发明提供的一种在虚拟场景下显示外景的方法的具体实施方式的流程框图;

图2为本发明提供的一种在虚拟场景下显示外景的终端的具体实施方式的结构框图;

标号说明:

1、处理器;2、存储器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1以及图2,

如图1所示,本发明提供一种在虚拟场景下显示外景的方法,包括:

S1、当VR播放器接收到播放VR资源的指令时,启动录屏服务;所述录屏服务为触发摄像头在一时间段内连续捕获外景的图像;

S2、当所述录屏服务启动成功时,所述VR播放器播放VR资源,得到VR场景;

S3、融合所述VR场景和所述外景图像。

进一步地,所述S3具体为:

预设时间间隔获取所述摄像头捕获到的外景的图像,得到当前外景图像;

提取所述当前外景图像的特征值,得到当前特征值;

若所述当前特征值与预设的特征值数组中存储的特征值不匹配,则融合所述VR场景和所述当前外景图像;根据所述当前特征值更新所述特征值数组。

由上述描述可知,只有当外景图像发生变化时才重新融合外景图像和VR场景,减小计算机内部资源开销。

进一步地,所述S3具体为:

VR播放器通过OpenGL获取所述VR场景的方位信息;

根据所述方位信息创建顶点数组;

OpenGL根据所述顶点数组将所述当前外景图像渲染至所述VR场景。

进一步地,还包括:

使用Google的Tensorflow库校验所述当前特征值与所述特征值数组中存储的特征值是否匹配。

进一步地,提取所述当前外景图像的特征值,得到当前特征值,具体为:

转换所述当前外景图像为RGB格式图像;

根据所述SIFT算法提取所述RGB格式图像的特征值,得到当前特征值。

由上述描述可知,利用现有的带有摄像头的智能终端、VR播放器、OpenGL技术以及特征点识别提取算法SIFT和机器学习库tensorflow即可解决VR场景下无法显示外景的问题,大大降低了体验混合增强现实技术所需的成本。

如图2所示,本发明还提供一种在虚拟场景下显示外景的终端,包括一个或多个处理器1及存储器2,所述存储器2存储有程序,并且被配置成由所述一个或多个处理器1执行以下步骤:

S1、当VR播放器接收到播放VR资源的指令时,启动录屏服务;所述录屏服务为触发摄像头在一时间段内连续捕获外景的图像;

S2、当所述录屏服务启动成功时,所述VR播放器播放VR资源,得到VR场景;

S3、融合所述VR场景和所述外景图像。

进一步地,所述S3具体为:

预设时间间隔获取所述摄像头捕获到的外景的图像,得到当前外景图像;

提取所述当前外景图像的特征值,得到当前特征值;

若所述当前特征值与预设的特征值数组中存储的特征值不匹配,则融合所述VR场景和所述当前外景图像;根据所述当前特征值更新所述特征值数组。

进一步地,所述S3具体为:

VR播放器通过OpenGL获取所述VR场景的方位信息;

根据所述方位信息创建顶点数组;

OpenGL根据所述顶点数组将所述当前外景图像渲染至所述VR场景。

进一步地,还包括:

使用Google的Tensorflow库校验所述当前特征值与所述特征值数组中存储的特征值是否匹配。

进一步地,提取所述当前外景图像的特征值,得到当前特征值,具体为:

转换所述当前外景图像为RGB格式图像;

根据所述SIFT算法提取所述RGB格式图像的特征值,得到当前特征值。

本发明的实施例一为:

本实施例提供一种在虚拟场景下显示外景的方法,包括:

S1、当VR播放器接收到播放VR资源的指令时,启动录屏服务;所述录屏服务为触发摄像头在一时间段内连续捕获外景的图像。

S2、当所述录屏服务启动成功时,所述VR播放器播放VR资源,得到VR场景。

其中,录屏服务启动成功后,录屏服务会发送启动成功的指令给VR播放器,VR播放器接收到录屏服务启动成功的指令,读取VR资源,开始进行播放,并且发送开始播放的指令给录屏服务。

S3、融合所述VR场景和所述外景图像。具体为:

S31、预设时间间隔获取所述摄像头捕获到的外景的图像,得到当前外景图像。

其中,录屏服务接收到开始播放的指令后,创建HardWareCamera数组。录屏服务实时从相机硬件上获取图片流,并将当前图片流覆盖至HardWareCamera数组,HardWareCamera只能存取一帧图像;创建CharacterPoint数组用于存储从每一帧图像中提取到的特征值,并设置外景图像识别定时检测的时间间隔。

S32、提取所述当前外景图像的特征值,得到当前特征值。

可选地,转换所述当前外景图像为RGB格式图像;根据所述SIFT算法提取所述RGB格式图像的特征值,得到当前特征值。

其中,录屏服务根据时间间隔,定时从HardWareCamera中取出图片流,并将其转换为RGB格式图像。

S33、使用Google的Tensorflow库校验所述当前特征值与所述特征值数组中存储的特征值是否匹配;若所述当前特征值与预设的特征值数组中存储的特征值不匹配,则VR播放器通过OpenGL获取所述VR场景的方位信息。

S34、根据所述方位信息创建顶点数组。

S35、OpenGL根据所述顶点数组将所述当前外景图像渲染至所述VR场景;根据所述当前特征值更新所述特征值数组。

其中,录屏服务发送取出外景图像的指令和HardWareCamera的地址至VR播放器。VR播放器接收到取出外景图像的指令后从HardWareCamera取出当前外景图像,并将当前外景图像转换为YUV格式的纹理流。YUV即纹理,是一种颜色编码的方法,将亮度信息Y和色彩信息UV分离。YUV不像RGB那样要求三个独立的视频信号同时传输,使用YUV的方式传送占用极少的频宽,可以节省内存的占用。如果摄像头拍照后从硬件层上返回至应用层的硬编码(H264)格式的图片流转成RGB格式,会造成内存的不必要的开销和转换时间。相比YUV格式,YUV更节省内存的占用,在OpenGL贴图体系下,采用YUV这种纹理格式将图片贴至三维立体中更能节省内存的开销。

VR播放器使用OpenGL获取到当前VR场景在三维坐标系中的方位,并且根据获取到的方位创建出顶点数组TopPoint。在VR的技术实现体系下,三维世界中的VR场景所呈现出的是一个贴满纹理的球体,如果要将当前获取到的与当前外景图像对应的YUV纹理图使用OpenGL贴到球体中,那么就要利用OpenGL已构建出球体,从中取出当前的球面,从球体中取出顶点的数据进行渲染。当传感器中的数值发生变化时,OpenGL中的相机位置也发生变化,此时相机所指向的球面就是需要贴图的球面。将当前贴图取出,和已获取到YUV的图片进行合并后形成新的纹理图,贴至该球面上。

为了能够把YUV纹理映射到球面,就需要指定出球体中的每个球面的每个顶点对应纹理的哪个部分。从上述球体中取出的球面中可以获取到纹理的坐标。这里不关心的是如何取出纹理坐标或者顶点坐标,因为采用OpenGL的话都是可以取出的,关心的是怎么将取出的纹理和从摄像头上获取到的纹理进行拼接。

拼接也就是类似UI层的加盖。就是A的图片层盖在B图片层上的意思。通过上述分析可知,利用OpenGL取出纹理坐标后,在同一球面指定两个纹理,通过一定的融合方式进行混合,其每一层各自执行自己的纹理操作,并把结果传递给下一层,直到全部完成。具体的合并纹理的步骤为:取出当前球面的纹理;取出与当前外景图像对应的纹理;激活当前球面的纹理和与当前外景图像对应的纹理;绑定当前球面的纹理;利用OpenGL中自带的glClientActivieTextureARB多重纹理方法设置与当前外景图像对应的纹理居于中心位置;进行合并操作,最终将外景图像渲染在VR场景对应的球面。

本发明的实施例二为:

本实施例还提供一种在虚拟场景下显示外景的终端,包括一个或多个处理器1及存储器2,所述存储器2存储有程序,并且被配置成由所述一个或多个处理器1执行以下步骤:

S1、当VR播放器接收到播放VR资源的指令时,启动录屏服务;所述录屏服务为触发摄像头在一时间段内连续捕获外景的图像。

S2、当所述录屏服务启动成功时,所述VR播放器播放VR资源,得到VR场景。

S3、融合所述VR场景和所述外景图像。具体为:

S31、预设时间间隔获取所述摄像头捕获到的外景的图像,得到当前外景图像。

S32、提取所述当前外景图像的特征值,得到当前特征值。

可选地,转换所述当前外景图像为RGB格式图像;根据所述SIFT算法提取所述RGB格式图像的特征值,得到当前特征值。

S33、使用Google的Tensorflow库校验所述当前特征值与所述特征值数组中存储的特征值是否匹配;若所述当前特征值与预设的特征值数组中存储的特征值不匹配,则VR播放器通过OpenGL获取所述VR场景的方位信息。

S34、根据所述方位信息创建顶点数组。

S35、OpenGL根据所述顶点数组将所述当前外景图像渲染至所述VR场景;根据所述当前特征值更新所述特征值数组。

综上所述,本发明提供的一种在虚拟场景下显示外景的方法及终端,充分利用现有带有摄像头的智能终端的特性,将摄像头捕获到的外景图像融入到VR场景中,使用户在虚拟世界能够和现实世界进行交互操作,从而达到一种混合现实的能力,而无需购买昂贵的混合现实头显设备,大大降低了体验混合增强现实技术所需的成本。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

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