立体虚拟现实全景视图拼接方法、装置及电子设备与流程

文档序号:14484961阅读:482来源:国知局
立体虚拟现实全景视图拼接方法、装置及电子设备与流程

本发明涉及虚拟现实技术领域,尤其涉及立体虚拟现实全景视图拼接方法、装置及电子设备。



背景技术:

虚拟现实(Virtual Reality),简称VR技术,其利用电脑或其它智能计算设备模拟产生一个三维空间的虚拟世界,提供用户关于视觉、听觉、触觉等感官的模拟,让用户如同身临其境一般。VR显示能够提供非常沉浸感的体验,非常适合游戏、影视、交互等领域。随着科技的进步,VR显示在原理和实现手段上也逐步完善,现已逐渐从实验室科研项目走向消费市场。

为了实现VR显示的全景呈现,即与VR用户的全视角相对应,在VR内容的制作过程中,通常需要得到全景视图。现有技术中,通常通过拍摄或者渲染得到多张视图,并将这多张视图拼接至全景场景中,形成全景视图。

在实现本发明过程中,发明人发现相关技术存在以下问题:现有技术将拍摄或者渲染得到的视图拼接至全景场景过程中,由于视图之间可能存在重叠内容,导致拼接效率不高,全景视图的画质不好,影响用户体验。



技术实现要素:

本发明提供一种立体虚拟现实全景视图拼接方法、装置及电子设备,能够解决现有全景拼接方式中拼接效率不高、全景视图的画质不好,从而影响用户体验的技术问题。

本发明实施例提供一种立体虚拟现实全景视图拼接方法,包括:

获取虚拟场景模型;

利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,获得左渲染缓存图及右渲染缓存图;

将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图。

可选地,所述利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图,具体包括:

将所述左右虚拟相机自水平方向向上旋转预定角度,分别对所述虚拟场景模型进行渲染,并以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,并依次在旋转后的不同角度下对所述虚拟场景模型进行渲染,直至旋转一周;

将所述左右虚拟相机自水平方向向下旋转预定角度,分别对所述虚拟场景模型进行渲染,并以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,并依次在旋转后的不同角度下对所述虚拟场景模型进行渲染,直至旋转一周;

分别将所述不同角度下进行渲染的虚拟场景模型保存为左渲染缓存图及右渲染缓存图。

可选地,所述将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图,具体包括:

将左全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图;

将右全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图。

可选地,所述左右虚拟相机自水平方向向上旋转预定角度以及向下旋转预定角度相等,且向上旋转预定角度以及向下旋转预定角度之和介于70度与110度之间;所述以垂直方向为轴,将所述左右虚拟相机依次分别旋转的预定角度相等,所述以垂直方向为轴,将所述左右虚拟相机依次分别旋转的预定角度介于9度与18度之间。

可选地,所述预设的全景拼接格式为球面全景拼接,所述将左全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图,具体包括:

将左球面全景图中的每个像素坐标分别转换为经纬度角度;

根据所述经纬度角度,确定该像素坐标的第一球面坐标;

根据所述左右虚拟相机自水平方向的旋转角度,确定该像素坐标的第二球面坐标;

将所述第二球面坐标投影至预设平面,获得投影坐标;

将所述投影坐标放大至所述左渲染缓存图像平面,获得所述左球面全景图中的像素坐标在左渲染缓存图中的像素坐标,从而获得左眼全景图。

可选的,在获得所述左球面全景图中的像素坐标在左渲染缓存图中的像素坐标后,所述方法还包括:

对所述获得的左渲染缓存图中的每个像素坐标进行插值,获得左眼全景图。

可选地,述预设的全景拼接格式为球面全景拼接,所述将右全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图,具体包括:

将右球面全景图中的每个像素坐标分别转换为经纬度角度;

根据所述经纬度角度,确定该像素坐标的第三球面坐标;

根据所述左右虚拟相机自水平方向的旋转角度,确定该像素坐标的第四球面坐标;

将所述第四球面坐标投影至预设平面,获得投影坐标;

将所述投影坐标放大至所述右渲染缓存图像平面,获得所述右球面全景图中的像素坐标在右渲染缓存图中的像素坐标,从而获得右眼全景图。

可选的,在获得所述右球面全景图中的像素坐标在右渲染缓存图中的像素坐标后,所述方法还包括:

对所述获得的右渲染缓存图中的每个像素坐标进行插值,获得右眼全景图。

本发明实施例还提供了一种立体虚拟现实全景视图拼接装置,包括:

获取单元,用于获取虚拟场景模型;

渲染单元,用于利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图;

映射单元,用于将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图。

可选地,所述渲染单元,具体用于:

将所述左右虚拟相机自水平方向向上旋转预定角度,分别对所述虚拟场景模型进行渲染,并以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,并依次在旋转后的不同角度下对所述虚拟场景模型进行渲染,直至旋转一周;

将所述左右虚拟相机自水平方向向下旋转预定角度,分别对所述虚拟场景模型进行渲染,并以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,并依次在旋转后的不同角度下对所述虚拟场景模型进行渲染,直至旋转一周;

分别将所述不同角度下进行渲染的虚拟场景模型保存为左渲染缓存图及右渲染缓存图。

可选地,所述映射单元,包括:

左眼全景图映射模块,用于将左全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图;

右眼全景图映射模块,用于将右全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图。

可选地,所述左右虚拟相机自水平方向向上旋转预定角度以及向下旋转预定角度相等,且向上旋转预定角度以及向下旋转预定角度之和介于70度与110度之间;所述以垂直方向为轴,将所述左右虚拟相机依次分别旋转的预定角度相等,所述以垂直方向为轴,将所述左右虚拟相机依次分别旋转的预定角度介于9度与18度之间。

可选地,所述预设的全景拼接格式为球面全景拼接,所述左眼全景图映射模块,具体用于:

将左球面全景图中的每个像素坐标分别转换为经纬度角度;

根据所述经纬度角度,确定该像素坐标的第一球面坐标;

根据所述左右虚拟相机自水平方向的旋转角度,确定该像素坐标的第二球面坐标;

将所述第二球面坐标投影至预设平面,获得投影坐标;

将所述投影坐标放大至所述左渲染缓存图像平面,获得所述左球面全景图中的像素坐标在左渲染缓存图中的像素坐标,从而获得左眼全景图。

可选的,所述左眼全景图映射模块还用于:

对所述获得的左渲染缓存图中的每个像素坐标进行插值,获得左眼全景图。

可选地,所述预设的全景拼接格式为球面全景拼接,所述右眼全景图映射模块,具体用于:

将右球面全景图中的每个像素坐标分别转换为经纬度角度;

根据所述经纬度角度,确定该像素坐标的第三球面坐标;

根据所述左右虚拟相机自水平方向的旋转角度,确定该像素坐标的第四球面坐标;

将所述第四球面坐标投影至预设平面,获得投影坐标;

将所述投影坐标放大至所述右渲染缓存图像平面,获得所述右球面全景图中的像素坐标在右渲染缓存图中的像素坐标,从而获得右眼全景图。

可选的,所述右眼全景图映射模块还用于:

对所述获得的右渲染缓存图中的每个像素坐标进行插值,获得右眼全景图。

本发明实施例还提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令程序,所述指令程序被所述至少一个处理器执行,以使所述至少一个处理器用于:

获取虚拟场景模型;

利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图;

将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图。

本发明实施例,通过获取虚拟场景模型;利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图;并将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图,提高了全景视图的拼接效率、拼接得到的全景图画质较好,提升了用户体验。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的立体虚拟现实全景视图拼接方法的流程示意图;

图2是本发明实施例提供的立体虚拟现实球面全景视图拼接方法的流程示意图;

图3a是本发明实施例提供的球面全景视频拼接的上半球渲染示意图;

图3b是本发明实施例提供的球面全景视图拼接的下半球渲染示意图;

图4a是本发明实施例提供的球面全景视图拼接的左渲染缓存图存储结构示意图;

图4b是本发明实施例提供的球面全景视图拼接的右渲染缓存图存储结构示意图;

图5a是本发明实施例提供的球面全景视图拼接的左球面全景图映射到左渲染缓存图的左渲染缓存图存储结构示意图;

图5b本发明实施例提供的球面全景视图拼接的左球面全景图映射到左渲染缓存图的左球面全景图存储结构示意图;

图6是本发明实施例立体虚拟现实直播全景视图拼接方法流程示意图;

图7是本发明实施例提供的一种立体虚拟现实全景视图拼接装置的框架示意图;

图8是本发明实施例提供一种电子设备的结构示意图;

图9是本发明实施例中球面全景视图拼接中插值示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。

本发明实施例的立体虚拟现实全景视图拼接方法、装置及电子设备可以将任意真实图像,比如,直播图像和预设的虚拟场景模型进行合成,并通过虚拟现实显示设备呈现;可以应用于直播,也可以应用于游戏、视频等领域。

下面结合附图,对本发明实施例作进一步阐述。

图1是本发明实施例提供的立体虚拟现实全景视图拼接方法的流程示意图,请参阅图1,该方法包括:

101、获取虚拟场景模型。

在本发明实施例中,虚拟场景模型可以是用一个虚拟的场景来表现广场、电影院、宫殿等真实环境,也可以是表现一些抽象的、不真实的虚拟环境。虚拟场景通常由顶点、纹理、材质等数据组成。

在本发明实施例中,虚拟场景模型中可以包含合成有真实图像的信息,比如,直播中的主播图像,在合成真实图像过程中,可以将真实图像放在虚拟场景中的一个固定位置上。

103、利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,获得左渲染缓存图及右渲染缓存图;

在本发明实施例中,为了保证虚拟相机可以模拟人眼,可以设置左右虚拟相机的间距满足人眼之间的间距,比如,65mm左右,并且在渲染过程中,左右虚拟相机始终保持这一合理的间距。

在本发明实施例中,左右虚拟相机按照不同拍摄姿态对虚拟场景模型进行多次渲染,分别获得左渲染缓存图及右渲染缓存图,具体包括:

将所述左右虚拟相机自水平方向向上旋转预定角度,比如,预定角度为45度,由左右虚拟相机分别对所述虚拟场景模型进行渲染,并获得一张左渲染缓存图及一张右渲染缓存图,并保存,然后,以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,比如,每次旋转10度,并依次在旋转后的不同角度下对所述虚拟场景模型进行渲染,比如,每旋转10度,分别由左右虚拟相机对虚拟场景模型进行渲染,并获得一张左渲染缓存图及一张右渲染缓存图,直至旋转一周,从而获得不同角度下的多张左渲染缓存图及多张右渲染缓存图,并保存;

将所述左右虚拟相机自水平方向向下旋转预定角度,比如,预定角度为45度,由左右虚拟相机分别对所述虚拟场景模型进行渲染,并以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,比如,每次旋转10度,并依次在旋转后的不同角度下对所述虚拟场景模型进行渲染,比如,每旋转10度,分别由左右虚拟相机对虚拟场景模型进行渲染,并获得一张左渲染缓存图及一张右渲染缓存图,直至旋转一周,从而获得不同角度下的多张左渲染缓存图及多张右渲染缓存图,并保存。

105、将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图。

其中,全景拼接格式可包括球面全景、圆柱全景或立方盒全景等格式,本发明对此不做限定。

在本发明实施例中,为了获得左眼全景图及右眼全景图,需要将将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,其中,映射过程具体包括:

将左全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图;

将右全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图。

在本发明实施例中,这里的独特之处在于,在进行映射获取左右眼全景图时,是将全景图的像素坐标映射到渲染缓存图的像素坐标,而不是将渲染缓存图映射到全景图。需要进行全景拼接的多个渲染视图之间可能存在重叠部分,若将渲染视图映射到全景图中,重叠部分将会重复映射,影响全景图的拼接效率和画质。而本发明实施例的这种映射方式,将全景图的像素坐标映射到渲染缓存图的像素坐标,多个渲染视图之间存在的重叠部分不会被重复映射,提高了全景图的拼接效率和画质。

在本发明实施例中,所述将左全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图,具体包括:

将左全景图中的每个像素坐标分别转换为经纬度角度;

根据所述经纬度角度,确定该像素坐标的第一坐标;

根据所述左右虚拟相机自水平方向的旋转角度,确定该像素坐标的第二坐标;

将所述第二坐标投影至预设平面,获得投影坐标;

将所述投影坐标放大至所述左渲染缓存图像平面,获得所述左全景图中的像素坐标在左渲染缓存图中的像素坐标,从而得到左眼全景图。

而左全景图中的像素坐标在左渲染缓存图中的像素坐标往往不是一个整数,是一个浮点值,为了使得最后得到的左球面全景图的画质较好,可对所述获得的左渲染缓存图中的每个像素坐标进行插值,获得左眼全景图。

在本发明实施例中,所述将右全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图,具体包括:

将右全景图中的每个像素坐标分别转换为经纬度角度;

根据所述经纬度角度,确定该像素坐标的第三坐标;

根据所述左右虚拟相机自水平方向的旋转角度,确定该像素坐标的第四坐标;

将所述第四坐标投影至预设平面,获得投影坐标;

将所述投影坐标放大至所述左渲染缓存图像平面,获得所述左全景图中的像素坐标在右渲染缓存图中的像素坐标,从而得到右眼全景图。

而左全景图中的像素坐标在左渲染缓存图中的像素坐标往往不是一个整数,是一个浮点值,为了使得最后得到的右球面全景图的画质较好,可对所述获得的右渲染缓存图中的每个像素坐标进行插值,获得右眼全景图。

在本发明实施例中,通过获取虚拟场景模型;利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图;并将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图,提高了全景视图的拼接效率、拼接得到的全景图画质较好,提升了用户体验。

在本发明实施例中,立体全景通常有三种格式,包括:球面全景、圆柱全景、立方盒全景,三种格式没有本质区别,下面以球面全景为例,对本发明实施例作进一步阐述。

图2是本发明实施例提供的立体虚拟现实球面全景视图拼接方法的流程示意图,请参阅图2,该方法包括:

201、获取虚拟场景模型。

在本发明实施例中,获取的虚拟场景模型中可以包含合成有真实图像的信息,比如,直播中的主播图像,在合成真实图像过程中,可以将真实图像放在虚拟场景中的一个固定位置上。

203、利用左右虚拟相机按照不同拍摄姿态分上下半球对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图。

在本发明实施例中,为了让立体球面具有立体视差效果,左右虚拟相机机位必须始终保持一个合理的间距d,这个间距d在真实环境当中当然是65mm左右,符合人眼的左右间距,但是渲染环境中受模型的不同尺度,可以进行相应的放大、缩小。

在本发明实施例中,虚拟相机的拍摄姿态,即,左右虚拟相机的朝向。分上下半球进行渲染时,如图3a,3b所示,首先从上半球开始,L00和R00是一对左右虚拟相机,它们之间的机位间距就是刚才说的间距d,L00和R00的朝向都是从水平方向向上旋转φ度角,所以L00和R00的朝向是平行的,以这一对左右虚拟相机进行渲染,并保存渲染目标。接下来,将L00以圆心的垂直方向为轴旋转θ度角到达L01,R00以圆心的垂直方向为轴旋转θ到达R01,得到新的左右虚拟相机对,并渲染场景,保存渲染目标。以此类推,直到渲染完一周。然后从下半球开始渲染,渲染流程与上半球类似,只是L10和R10的朝向是向下旋转φ度角,然后L11和R11仍然是L10和R10以圆心的垂直方向为轴旋转θ度角而来,并保存每次的渲染结果,形成左渲染缓存图及右渲染缓存图,如图4a,4b所示。

在本发明实施例中,可以设置φ=45°,则左右虚拟相机的垂直视场角fov=90°,这样可以覆盖所有角度,有时候为了更好的处理极点问题,会将φ设置的更大一点,来解决极点的变形问题。同时,θ角是由于将水平方向N等分产生的,比如当将旋转一周进行20等分的话,θ=360/20,即18°,θ角越小则图像会真实、细腻,但是会增加渲染时间,所以一般综合考虑实时渲染的话,可以选择N=20~40,等分空间,那么θ就是18°至9°。

205、将左球面全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图。

在本发明实施例中,首先将左球面全景图中的像素坐标x,y转成经纬度角度值α,β,α是水平方向经度,范围[0,360],β是垂直方向纬度,范围[-90,90]。由经纬度可定位到球面上的一个点,其球面坐标就是因为虚拟相机在旋转的时候会向上、向下旋转度(即自水平方向上向上、向下旋转角度φ),所以球面坐标需要做相应的旋转,得到新的球面坐标然后将球面上的坐标投影到x=1平面上,就得到投影坐标然后需要将投影坐标放大到图像平面上,虚拟相机的视锥体在x=1平面的宽高分别是所以投影坐标除以视锥体宽高再乘以图像的宽高,就得到图像的像素坐标映射过程中,可以分别以上下半球的方式进行,如图5a、5b所示为左球面全景图映射到左渲染缓存图的示例图,其中,映射的过程是将左球面全景图中的斜线部分映射到左渲染缓存图的斜线部分。以上半球的L00行为例,具体的映射坐标如下:

其中:

x,y指的是左球面全景图中的像素坐标;

W,H指的是左球面全景图的分辨率宽高;

W′,H′指的是左球面全景图中每个小格子的分辨率宽高,

v指的是每次渲染时的相机的fov,通常fov=70°~110°;

θ指的是每次相机以垂直方向为轴在水平方向上的增量旋转,通常

W″,H″指的是左渲染缓存图中的每个小格子分辨率宽高;

cx,cy指的是投影到左渲染缓存图中的像素坐标;

在完成上半球的映射后,下半球的映射过程基本类似,只是以下两个坐标存在不同:

在本发明实施例中,由于cx,cy的值往往不是一个整数,是一个浮点值,为了使得最后左球面全景图的画质较好,可能根据cx,cy坐标值,可以进行插值处理,以线性插值为例,如图9所示:

I(x,y)=[I′(ex,ey)(1-fy)+I′(ex,ey+1)fy](1-fx)

+[I′(ex+1,ey)(1-fy)+I′(ex+1,ey+1)fy]fx

其中:ex,ey是小于cx,cy的整数;

fx和fy分别为(ex,ey)和(cx,cy)之间的水平距离和垂直距离;

I( )指的是左球面全景图;

I′( )指的是左渲染缓存图。

在完成对每个像素坐标进行插值处理后,即可获得左眼全景图。

207、球面全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图。

在本发明实施例中,获得右眼全景图的映射过程与获得左眼全景图的过程基本类似,只是映射的对象不同,为右球面全景图中的每个像素坐标以及右渲染缓存图的每个像素坐标,此处不再赘述。

在本发明实施例中,通过获取虚拟场景模型;利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图;并将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图,同时,将球面全景图的像素坐标投影至渲染缓存图的像素坐标,避免了渲染缓存图中由于多次渲染造成的重叠部分对全景图画质的影响,提高了全景视图的拼接效率、拼接得到的全景图画质较好,提升了用户体验。

可以理解的是,本发明针对的是立体全景拼接视图,即分别得到左眼全景图和右眼全景图,但是,本发明不限于此,同样可应用在普通非立体VR的全景图制作中,即拼接一张全景图,不需要拼接左眼全景图和右眼全景图两张全景图,利用这一张全景图进行VR显示。该一张全景图的拼接方法参见立体VR全景图中左眼全景图或右眼全景图中任一全景图的拼接方法,这里不再赘述。

本发明实施例提供的立体虚拟现实球面全景视图拼接方法可以应用于不同的场景,比如,影视、游戏或直播领域,下面以直播领域为例对本发明实施例作进一步阐述。

图6为本发明实施例立体虚拟现实直播全景视图拼接方法流程示意图;如图6所示,所述方法包括以下步骤:

601、获取至少两个不同视角的主播图像信息。

在本实施例中,所述视角是指人眼观看主播的角度,包括人的左眼的观看角度和右眼的观看角度;所述主播可以泛指负责直播节目的主持人;所述主播图像信息包括该主播的人像和主播所处在的背景环境的图像信息,在本实施例中,主播所处于的背景环境为绿幕或蓝幕,以方便在后续处理中将实际拍摄的背景环境去除,并将主播人像信息与虚拟场景模型进行合成渲染。

在本实施例中,可以通过图像采集设备,如摄像机,实时采集主播图像信息。在采集主播图像信息时,为了获取主播的立体图像信息,采用模拟双眼的摄像头进行拍摄,并输出左右两个不同视角的视图。其中,该摄像头可以是多路独立的摄像机,也可以是1台集成的立体摄像机。由于一些物理的限制,在设置摄像头的不同视角时,可以使用平行视角或交叉视角。这两种视角配置都可以产生立体视觉效果,区别的是平行视角最后在显示的时候,需要进行一些左右平移调整,将零视差面调整到一个合理的距离上(视差焦距),如果不进行左右平移调整,会产生一种零视差面无穷远的立体效果。在本实施例中,以交叉视角配置为例。

603、根据所述至少两个不同视角的主播图像信息和预先建立的虚拟场景模型,将所述主播图像合成至虚拟场景模型。

在本实施例中,预先建立的虚拟场景模型是指根据直播的主要内容预先建立的与之相应的虚拟场景模型,该虚拟场景模型即主播所处于的虚拟环境,可以是用于表现广场、电影院、宫殿等真实环境,也可以是用于表现一些抽象的、不真实的虚拟环境。该虚拟环境可以通过顶点、纹理、材质等数据构建。在一些实施例中,为了配合直播内容,还可以在渲染的过程中对虚拟场景进行预定的特效处理,如:直播的内容与惊悚有关,需要营造一种紧张恐怖的气氛,则可以在虚拟场景中增加一些风雨雷电等特效,以增强视觉体验。

在本实施例中,根据所述至少两个不同视角的主播图像信息和预先建立的虚拟场景模型,将所述主播图像合成至虚拟场景模型,具体包括:

首先,使用抠像算法分别去掉所述至少两个不同视角的主播图像信息中主播背后的蓝色或绿色背景。所述抠像算法可以是色度键抠像法,该算法通过找到那些均匀的饱和度比较高的蓝色或绿色背景颜色区域,并将这些背景颜色区域的透明值设为最小值,而人像颜色区域则保持原始颜色,从而在所述主播图像信息中明显地区分出人像区域和背景区域。在经过所述抠像处理后,可以得到左右两个视图。

进一步地,为了提升立体虚拟现实直播的观看体验,还可以对主播的人像进行美化,如:通过gamma、log函数等增加图像的亮度值来对人像进行美白美化;通过滤波算法在当前处理的像素位置附近做带保边性质的滤波处理以达到对人像进行磨皮美化的效果,所述滤波算法包括但不限于:双边滤波、导向滤波、均方差滤波和BEEP滤波等。

由于主播的左右视图放置的相互位置及其与虚拟相机的距离,会影响最后的立体视差效果。主播的实拍图像的视差由采集时的摄像机机位、间距、视差焦距等决定;而虚拟场景图像的视差受虚拟相机的机位、间距、视差焦距控制。这两类图像在虚实合成的时候要想保持合理,需要做一些调整和控制。因此,在本实施例中,可以在对主播的左视图及右视图与预先建立的虚拟场景模型进行合成处理之前,先对左视图和右视图进行视差调整处理。

随后,根据经过上述视差调整后的所述主播的左视图及右视图与预先建立的虚拟场景模型,进行所述主播和所述虚拟场景的合成处理,生成包含主播图像的虚拟场景模型。

在本实施例中,主播的左视图和右视图可以分别以纹理方式传输到渲染环境中,经过左虚拟相机和右虚拟相机进行虚实合成的过程。该合成的过程具体包括:将主播的左视图和右视图放置于所述虚拟场景模型中的预定位置;所述预定位置与虚拟相机的距离保持在视差焦距附近,以保持主播的左右视图的零视差面和虚拟场景模型的零视差面都保持在视差焦距上。若拍摄主播时采用交叉视角机位配置,则主播的左右视图重叠地放在虚拟场景模型中的一个固定位置上,若拍摄主播时采用平行视角机位配置,则主播的左右视图的位置需要左右平移一点,以保持主播的左右视图零视差面保持在视差焦距上。由于在对主播图像信息进行抠像处理的时候已经将非人像区域的透明值设为最小值,所以,在渲染环境中进行合成的时候,这些非人像区域自然会被后面的虚拟场景中的颜色替代,达到虚实合成的效果。

605、获取虚拟场景模型。

在本发明实施例中,获取的虚拟场景模型中包含主播图像信息。

607、利用左右虚拟相机按照不同拍摄姿态分上下半球对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图。

609、将左球面全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图。

611、将右球面全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图。

上述步骤607、609、611分别与上述实施例中的步骤203、205、207采用相同的技术手段,因此,上述各步骤的具体实施方式在此便不再赘述。

本发明实施例提供的立体虚拟现实直播全景视图拼接方法,由于虚拟场景模型中包含有主播的真实图像,使得全景直播表现出更加真实、丰富的视觉体验,产生更具视觉冲击的音画效果,同时,主播画面更加立体,进一步提升了用户体验。

图7是本发明实施例提供的一种立体虚拟现实全景视图拼接装置的框架示意图,请参阅图7,该装置7包括:

获取单元71,用于获取虚拟场景模型;

渲染单元73,用于利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图;

映射单元75,用于将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图。

在本实施例中,渲染单元73具体用于:

将所述左右虚拟相机自水平方向向上旋转预定角度,分别对所述虚拟场景模型进行渲染,并以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,并依次在旋转后的不同角度下对所述虚拟场景模型进行渲染,直至旋转一周;

将所述左右虚拟相机自水平方向向下旋转预定角度,分别对所述虚拟场景模型进行渲染,并以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,并依次在旋转后的不同角度下对所述虚拟场景模型进行渲染,直至旋转一周;

分别将所述不同角度下进行渲染的虚拟场景模型保存为左渲染缓存图及右渲染缓存图。

在本实施例中,所述映射单元75,包括:

左眼全景图映射模块751,用于将左全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图;

右眼全景图映射模块753,用于将右全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图。

其中,当全景拼接格式为球面全景拼接时,所述左眼全景图映射模块751,具体用于:

将左球面全景图中的每个像素坐标分别转换为经纬度角度;

根据所述经纬度角度,确定该像素坐标的第一球面坐标;

根据所述左右虚拟相机自水平方向的旋转角度,确定该像素坐标的第二球面坐标;

将所述第二球面坐标投影至预设平面,获得投影坐标;

将所述投影坐标放大至所述左渲染缓存图像平面,获得所述左球面全景图中的像素坐标在左渲染缓存图中的像素坐标,从而获得左眼全景图

可选的,所述左眼全景图映射模块751还用于:

对所述获得的左渲染缓存图中的每个像素坐标进行插值,获得左眼全景图。

当全景拼接格式为球面全景拼接时,所述右眼全景图映射模块753,具体用于:

将右球面全景图中的每个像素坐标分别转换为经纬度角度;

根据所述经纬度角度,确定该像素坐标的第三球面坐标;

根据所述左右虚拟相机自水平方向的旋转角度,确定该像素坐标的第四球面坐标;

将所述第四球面坐标投影至预设平面,获得投影坐标;

将所述投影坐标放大至所述右渲染缓存图像平面,获得所述右球面全景图中的像素坐标在右渲染缓存图中的像素坐标,从而获得右眼全景图。

可选的,所述右眼全景图映射模块753还用于:

对所述获得的右渲染缓存图中的每个像素坐标进行插值,获得右眼全景图。

在本实施例中,首先通过获取单元71获取虚拟场景模型。然后由渲染单元73利用虚拟相机对所述虚拟场景模型进行不同拍摄姿态下的多次渲染,以获得左渲染缓存图及右渲染缓存图,其中,不同拍摄姿态包括左右虚拟相机自水平方向向上旋转预定角度,然后以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,直至旋转一周,以及,左右虚拟相机自水平方向向下旋转预定角度,然后以垂直方向为轴,将所述左右虚拟相机依次分别旋转预定角度,直至旋转一周。这样,可以实现对虚拟场景模型在旋转两周的不同角度下进行多次渲染,并分别保存左右虚拟相机的渲染结果,即为左渲染缓存图及右渲染缓存图。获得左渲染缓存图及右渲染缓存图后,可以由映射单元75中的左眼全景图映射模块751将左全景图中的每个像素坐标投影至左渲染缓存图中的每个像素坐标,获得左眼全景图,同时,由映射单元75中的右眼全景图映射模块753将右全景图中的每个像素坐标投影至右渲染缓存图中的每个像素坐标,获得右眼全景图。

需要说明的是,由于本发明实施例的装置实施例与方法实施例基于相同的发明构思,方法实施例中的技术内容同样适用于装置实施例,因此,装置实施例中与方法实施例相同的技术内容在此不再赘述。

在本发明实施例中,通过获取虚拟场景模型;利用左右虚拟相机按照不同拍摄姿态对所述虚拟场景模型分别进行多次渲染,分别获得左渲染缓存图及右渲染缓存图;并将所述左渲染缓存图及右渲染缓存图按预设的全景拼接格式分别进行映射,分别获得左眼全景图及右眼全景图,同时,将球面全景图的像素坐标投影至渲染缓存图的像素坐标,避免了渲染缓存图中由于多次渲染造成的重叠部分对全景图画质的影响,提高了全景视图的拼接效率、拼接得到的全景图画质较好,提升了用户体验。

图8是本发明实施例提供一种电子设备的结构示意图。如图8所示,该电子设备8包括一个或多个处理器81以及存储器82。其中,图8中以一个处理器81为例。

处理器81和存储器82可以通过总线或者其他方式连接,图8中以通过总线连接为例。

存储器82作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的立体虚拟现实全景视图拼接方法对应的程序指令/模块(例如,图7所示的各个模块)。处理器81通过运行存储在存储器82中的非易失性软件程序、指令以及模块,从而执行立体虚拟现实全景视图拼接装置的各种功能应用以及数据处理,即实现上述方法实施例立体虚拟现实全景视图拼接方法以及上述装置实施例的各个模块的功能。

存储器82可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器82可选包括相对于处理器81远程设置的存储器,这些远程存储器可以通过网络连接至处理器81。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述程序指令/模块存储在所述存储器82中,当被所述一个或者多个处理器81执行时,执行上述任意方法实施例中的立体虚拟现实全景视图拼接方法,例如,执行以上描述的图1、图2及图6所示的各个步骤;也可实现图7所述的各个模块。

本发明实施例的电子设备8可以多种形式存在,在执行以上描述的图1、图2及图6所示的各个步骤;也可实现图7所述的各个模块时,上述电子设备8包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放视频内容,一般也具备移动上网特性。该类设备包括:视频播放器,掌上游戏机,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有视频播放功能或连接互联网功能的电子设备。

本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图8中的一个处理器81,可使得上述一个或多个处理器可执行上述任意方法实施例中的立体虚拟现实全景视图拼接方法,例如,执行上述任意方法实施例中的立体虚拟现实全景视图拼接方法,例如,执行以上描述的图1、图2及图6所示的各个步骤;也可实现图7所述的各个模块。

以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

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