本发明涉及计算机多媒体技术领域,特别涉及一种图像渲染方法及系统。
背景技术:
随着头戴式显示器技术的快速发展,虚拟现实(vr)技术变得日益成熟。虽然近些年头戴式显示器设备越来越多地问世,但是虚拟现实的内容还是极大地受到了技术瓶颈的限制。为了实现更加具有真实感的真实场景vr内容,需要大量人工的繁杂的三维场景重建工作。
目前来说,生成真实场景的vr内容的主要办法是全景图和双目立体全景图。全景图的生成是通过拼贴多张普通照相机所拍摄到的图片的方法来实现的。但是由于全景图的固有图片属性,它不具备场景的深度信息。也就是说,全景图仅是利用了头戴式显示器的一种二维图像浏览功能。双目立体全景图虽然提供了两个眼睛不同的渲染内容,但是仅仅只是一种立体视觉。所以它所能提供的只是在一个水平面上的圆上运动的正确渲染效果。
一种在任意位置上进行完美的三维视觉的渲染的办法就是将整个场景的几何信息给完整地重建出来。这样的话,任意视角的图像就可以通过简单的照相机投影变换来进行渲染。这种办法是目前头戴式显示器渲染虚拟场景的主流手段。但是目前的三维重建技术主要致力于从多视角的图像当中重建出某个三维物体。这些物体大多体型较小,且拍摄视角可以自由确定。当试图重建一个360°的外周场景时,场景的体积大小和拍摄视角的局限使得这个方法变得不再可行。
技术实现要素:
本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种图像渲染方法。该图像渲染方法通过利用两种不同尺度的运动场:关键帧与参考帧的运动场和关键帧与关键帧的运动场,来实现大范围的真实场景的渲染。关键帧与参考帧的运动场实现了关键帧周围视角的鲁棒估计,而关键帧与关键帧的运动场保证了高质量的平滑关键帧切换,实现了360°全景图渲染效果。
本发明的另一个目的在于提出一种图像渲染系统。
为了实现上述目的,本发明的一方面公开了一种图像渲染方法,包括:获取步骤,获取待渲染图像的图像帧,其中,所述图像帧包括多个关键帧和多个参考帧,一个关键帧对应多个参考帧,所述关键帧为具体的场景光学信息,参考帧为关键帧的深度信息;处理步骤,根据所述多个关键帧和多个参考帧得到两种运动场,其中,所述两种运动场包括:所述关键帧与参考帧之间的运动场,不同关键帧之间的运动场;渲染步骤,根据多个处理后的关键帧渲染得到渲染图像。
根据本发明的图像渲染方法,通过利用两种不同尺度的运动场:关键帧与参考帧的运动场和关键帧与关键帧的运动场,来实现大范围的真实场景的渲染。关键帧与参考帧的运动场实现了关键帧周围视角的鲁棒估计,而关键帧与关键帧的运动场保证了高质量的平滑关键帧切换,实现了360°全景图渲染效果。
另外,根据本发明上述实施例的图像渲染方法还可以具有如下附加的技术特征:
进一步地,获取待渲染图像的关键帧的方法包括:建立一个固定半径的采样球,相隔固定的经度和纬度,在球面上进行朝向与球面法向方向相同,进行采样以获取关键帧。
进一步地,获取待渲染图像的参考帧的方法包括:在所述关键帧的周围划分一个固定半径的采样球,在采样球上相隔固定的角度,在球面上进行朝向与球面法向方向相同,进行采样以获取参考帧。
进一步地,得到关键帧与参考帧之间的运动场的方法为:通过计算关键帧与参考帧之间的光流得到关键帧与参考帧之间的运动场。
进一步地,所述渲染步骤具体包括:确定待渲染图像的最邻近关键帧;获取最邻近关键帧与其他关键帧之间的方向与距离差异;根据方向与距离差异对关键帧进行渲染;基于光流混合,获取渲染图像。
本发明的另一方面公开了一种图像渲染系统,包括:获取模块,用于获取待渲染图像的图像帧,其中,所述图像帧包括多个关键帧和多个参考帧,一个关键帧对应多个参考帧,所述关键帧为具体的场景光学信息,参考帧为关键帧的深度信息;处理模块,用于根据所述多个关键帧和多个参考帧得到两种运动场,其中,所述两种运动场包括:所述关键帧与参考帧之间的运动场,不同关键帧之间的运动场;渲染模块,用于根据多个处理后的关键帧渲染得到渲染图像。
根据本发明的图像渲染系统,通过利用两种不同尺度的运动场:关键帧与参考帧的运动场和关键帧与关键帧的运动场,来实现大范围的真实场景的渲染。关键帧与参考帧的运动场实现了关键帧周围视角的鲁棒估计,而关键帧与关键帧的运动场保证了高质量的平滑关键帧切换,实现了360°全景图渲染效果。
另外,根据本发明上述实施例的图像渲染系统还可以具有如下附加的技术特征:
进一步地,获取待渲染图像的关键帧的方法包括:建立一个固定半径的采样球,相隔固定的经度和纬度,在球面上进行朝向与球面法向方向相同,进行采样以获取关键帧。
进一步地,获取待渲染图像的参考帧的方法包括:所述关键帧的周围划分一个固定半径的采样球,在采样球上相隔固定的角度,在球面上进行朝向与球面法向方向相同,进行采样以获取参考帧。
进一步地,得到关键帧与参考帧之间的运动场的方法为:通过计算关键帧与参考帧之间的光流得到关键帧与参考帧之间的运动场。
进一步地,所述渲染模块具体包括:确定待渲染图像的最邻近的关键帧;获取最邻近关键帧与其他关键帧之间的方向与距离差异;根据方向与距离差异对关键帧进行渲染;基于光流混合,获取渲染图像。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的图像渲染方法的流程图;
图2是根据本发明一个实施例的图像渲染方法的示意图;
图3是根据本发明一个实施例的关键帧与参考帧关系的示意图;
图4是根据本发明一个实施例的获取帧内运动场的示意图;
图5是根据本发明一个实施例的渲染步骤的流程图;
图6是根据本发明一个实施例的光流混合方法渲染示意图;
图7是根据本发明一个实施例的立体双目全景图和本方法在oculusdk2上渲染得到的结果图;
图8是根据本发明一个实施例的图像渲染系统的结构图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
以下结合附图描述根据本发明实施例的图像渲染方法及系统。
图1是根据本发明一个实施例的图像渲染方法的流程图。
如图1所示,根据本发明一个实施例的图像渲染方法,包括:
s10:获取步骤,获取待渲染图像的图像帧,其中,图像帧包括多个关键帧和多个参考帧,一个关键帧对应多个参考帧,关键帧为具体的场景光学信息,参考帧为关键帧的深度信息。
获取待渲染图像的关键帧的方法包括:建立一个固定半径的采样球,相隔固定的经度和纬度,在球面上进行朝向与球面法向方向相同,进行采样以获取关键帧。
结合图2所示,假定,采集某个特定视角的图像,则,图2(a)以这个特定视角建立一个固定半径的采样球,相隔固定的经度和纬度,在球面上进行朝向与球面法向方向相同,进行拍照采样,即获取了关键帧11、12、13。
获取待渲染图像的参考帧的方法包括:在关键帧的周围划分一个固定半径的采样球,在采样球上相隔固定的角度,在球面上进行朝向与球面法向方向相同,进行采样以获取参考帧。
结合图3所示,图3(a)中对某个特定视角进行采样,采集特定视角图像的多个关键帧,以关键帧11为例,图3(b)中在关键帧11的周围划分一个固定半径的采样球,在在采样球上相隔固定的角度,在球面上进行朝向与球面法向方向相同进行拍照采样,进行采样以获取参考帧11.1~11.6,这6个关键帧。图3(c)为关键帧11以及对应的关键帧11的6个参考帧11.1~11.6的图像。
s20:处理步骤,根据多个关键帧和多个参考帧得到两种运动场,其中,两种运动场包括:第一个为关键帧与参考帧之间的运动场,也可说成帧内运动场。第二个为不同关键帧之间的运动场,也可以说成帧间运动场。
其中,帧内运动场用来表示隐式的深度信息,外周场景的显式深度信息的获取往往受限于场景的开阔程度,所以利用多张参照帧表示的隐式信息更加适合表达外周场景;帧间运动场用来确保切换关键帧时候的平滑过渡,消除图像的渲染瑕疵,提高渲染速度。
结合图2所示,在图2(c)中,(1)为关键帧11具体的场景光学信息,(2)为关键帧与参考帧之间的运动场。以此类推,关键帧12的上侧为关键帧12具体的场景光学信息,下侧为关键帧12与其参考帧之间的运动场,关键帧13的上侧为关键帧13具体的场景光学信息,下侧为关键帧13与其参考帧之间的运动场。(3)为关键帧11和关键帧12之间的运动场,(4)为关键帧12和关键帧13之间的运动场。
具体的,得到关键帧与参考帧之间的运动场的方法为:通过计算关键帧与参考帧之间的光流得到关键帧与参考帧之间的运动场。
结合图4所示,具体包括:将关键帧划分为多个等大小的图像块(例如8×8像素大小),记图像块为p,图像块中的像素为p;
分别计算关键帧与其对应的若干参照帧之间的光流,设光流为f={f1,f2,…,f6},其中fi(p)指的是像素p在光流fi中对应的运动向量;结合图4所示,(a)为6张参考帧,(b)为参考帧与关键帧计算得到的光流{f1,f2,…,f6}。
定义描述图像块的运动和图像库中像素的运动差异的能量函数为:
ef(i)=∑p(fi(p)-∑p∈pwpfi(p)),
其中
定义相邻近图像块的运动差异的能量函数为:
其中,n(p)指的是p领域附近的其他图像块,d(p1,p2)表示的p1中心位置到p2中心位置的欧式距离,ssd(p1,p2)指的是这两个图像块的像素颜色的方差和。
定义图像块上若干个运动向量的对称性的能量函数为:
将上述三种能量函数线性组合到一起,求解如下所示的表达式:
argminfαses+∑iαcec(i)+∑ief(i),
其中αs和αc是相应能量函数的权重。通过求解上述表达式,可以确定图像块对应的若干个运动向量,其中,对于每个关键帧中的每个图像都对应一条拟合出的曲线。具体结合图4(c)所示,为经过能量函数优化求解之后,得到相应的每个图像块对应的运动向量。
将这若干个运动向量的终点作为曲线拟合的输入,得到一条穿过所有运动向量终点的曲线。具体,结合图4(d)所示,为对于关键帧中的每个图像块,最后计算得到一个穿过运动向量重点的拟合曲线,即为帧间运动场。
s30:渲染步骤,根据多个处理后的关键帧渲染得到渲染图像。
结合图5所示,渲染步骤具体包括:
s31:确定待渲染图像的最邻近关键帧。
对于待渲染图像为某个特定视角的图像,其中采集这个特定视角的多个关键帧后,在多个关键帧中确定一个与这个特定视角的图像最邻近的关键帧。
s32:获取最邻近关键帧与其他关键帧之间的方向与距离差异。
s33:根据方向与距离差异对关键帧进行渲染。
s34:基于光流混合,获取渲染图像。
对于步骤s34具体进行基于光流的混合的方法包括以下步骤:以关键帧为k个为例,
建立最邻近关键帧所渲染出来的新视角图像与其他k-1个关键帧所渲染出来的新视角图像的系数匹配;
将这k-1个稀疏匹配对应成图像空间当中的k-1个向量,获得这k-1个向量的凸包(包含k个顶点);
在这个凸包当中,根据k个关键帧各自的权重,计算得到一个凸包的重心位置;
得到重心位置到凸包各个定点的向量,即为最终渲染出来的帧与各个新视角图像的匹配;
基于这k个匹配,找到新视角图像上的像素并进行加权平均,得到最终混合出的新视角图像。
作为一个示例,如图6所示,首先某个特定视下的场景,定位到最邻近的2个关键帧。(a)关键帧
本发明可以用于头戴式显示器渲染的系统,实现了360°真实场景在头戴式显示器上的实时渲染。与传统全景图和双目立体全景图相比,本发明能够渲染出更加具有真实感的带有深度信息的场景。此技术中的图像采样部分需要使用计算机渲染合成的结果(真实场景下的采样需要一套可计算机控制位置的摄像头采样系统上实现);渲染部分可以在装配有头戴式显示器的普通pc机上实现。
结合图7所示,将普通的头戴式显示器显示的画面与应用本发明的头戴式显示器进行了对比,立体双目全景图和本方法给出来的结果在oculusdk2上的对比。立体双目全景图为第一行的结果,本方法为第二行的结果。聚焦图中的21、22、23这三棵书,当左右旋转头戴式显示器的时候,第二行的21号树与22和23号树之间是原理的关系,然而,第一行的结果三棵树没有明显变化,所以,利用本方法渲染的图像,是重建了一个360°全景图;而全景图的方法则为损失掉这一部分信息。小的图像示例分别为左边oculusdk2中渲染结果左眼和右眼的特定部分。
根据本发明的图像渲染方法,通过利用两种不同尺度的运动场:关键帧与参考帧的运动场和关键帧与关键帧的运动场,来实现大范围的真实场景的渲染。关键帧与参考帧的运动场实现了关键帧周围视角的鲁棒估计,而关键帧与关键帧的运动场保证了高质量的平滑关键帧切换,实现了360°全景图渲染效果。
图8是根据本发明一个实施例的图像渲染系统的结构图。
如图8所示,本发明一个实施例的图像渲染系统800,包括:获取模块810、处理模块820、渲染模块830。
其中,获取模块810用于获取待渲染图像的图像帧,其中,图像帧包括多个关键帧和多个参考帧,一个关键帧对应多个参考帧,关键帧为具体的场景光学信息,参考帧为关键帧的深度信息。处理模块820用于根据多个关键帧和多个参考帧得到两种运动场,其中,两种运动场包括:关键帧与参考帧之间的运动场,不同关键帧之间的运动场。渲染模块830用于根据多个处理后的关键帧渲染得到渲染图像。
根据本发明的图像渲染系统,通过利用两种不同尺度的运动场:关键帧与参考帧的运动场和关键帧与关键帧的运动场,来实现大范围的真实场景的渲染。关键帧与参考帧的运动场实现了关键帧周围视角的鲁棒估计,而关键帧与关键帧的运动场保证了高质量的平滑关键帧切换,实现了360°全景图渲染效果。
在一些实施例中,获取待渲染图像的关键帧的方法包括:建立一个固定半径的采样球,相隔固定的经度和纬度,在球面上进行朝向与球面法向方向相同,进行采样以获取关键帧。
在一些实施例中,获取待渲染图像的参考帧的方法包括:关键帧的周围划分一个固定半径的采样球,在采样球上相隔固定的角度,在球面上进行朝向与球面法向方向相同,进行采样以获取参考帧。
在一些实施例中,得到关键帧与参考帧之间的运动场的方法为:通过计算关键帧与参考帧之间的光流得到关键帧与参考帧之间的运动场。
在一些实施例中,渲染模块具体包括:确定待渲染图像的最邻近的关键帧;获取最邻近关键帧与其他关键帧之间的方向与距离差异;根据方向与距离差异对关键帧进行渲染;基于光流混合,获取渲染图像。
需要说明的是,本发明实施例的图像渲染系统的具体实现方式与本发明实施例的图像渲染方法的具体实现方式类似,具体请参见图像渲染方法部分的描述,为了减少冗余,此处不做赘述。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。