本发明涉及双目渲染,图像视频处理领域,尤其涉及一种针对vr头盔等双目设备的内容风格化渲染方法。
背景技术
在艺术领域,尤其是绘画方面,人类始终具有独特的能力来创造出各种各样复杂的内容和风格。尽管科学家们对这一创造过程的神经基础原理仍未研究清楚,使用计算机来生成各种内容和风格的图像已经成为计算机界内一项热门研究。随着深度学习在近些年的快速发展,基于深度学习的图像视频风格化成为主流方法。然而已经存在的各类风格化算法都是为单目的图像视频进行设计,无法在vr及3d显示设备上得到应用。本发明解决了双目内容的艺术风格化问题。
2015年gatys等人(gatysla,eckeras,bethgem.aneuralalgorithmofartisticstyle[j].computerscience,2015.)基于卷积神经网络(convolutionalneuralnetwork,简称cnn)的艺术家风格化工作,在图像生成效果上取得了显著进步,并掀起了新一波风格化的研究浪潮。anderson等人(andersonag,bergcp,mossingdp,etal.deepmovie:usingopticalflowanddeepneuralnetworkstostylizemovies[j].2016.)首次利用光流(opticalflow)来引导风格化视频的生成,消除了生成视频中的闪烁瑕疵。他们采用梯度下降的算法框架,将每帧风格化后的结果利用光流进行传播(imagewarping),做为下一帧求解梯度下降的初始值。ruder等人(ruderm,dosovitskiya,broxt.artisticstyletransferforvideos[j].2016:26-36.)利用类似的算法做了后续工作,并进一步加入了长时序一致(long-termconsistency)和多通道算法(multi-pass)进行了效果优化。
技术实现要素:
本发明针对独立帧渲染方法造成闪烁,视差不一致的局限性,提供了一种基于深度学习优化的双目动画渲染方法。该方法首先根据三维场景渲染出视差图,运动场,遮挡图等场景信息,再利用基于cnn的最优化算法将结果风格化,从而满足了时序一致性和视差一致性,渲染出了视觉良好的双目动画。
本发明的目的是通过以下技术方案来实现的:一种基于深度学习的双目动画风格化渲染方法,包括如下步骤:
(1)渲染层数据渲染,该步骤包括以下子步骤:
(1.1)我们对图像中每个像素发射一条射线,根据它与场景的求交则可以得到当前像素的深度;根据公式d=f*b/z(其中f为相机焦距,b为相机距离,z为像素深度)可以计算出视差,我们可以计算出视差,并转换出该像素在右眼相机平面中的对应位置;
(1.2)渲染运动场;对图像中每个像素发射一条射线,得到与之相交的三角形面片;根据三角形在下一帧的位置,投影计算出该像素的移动距离;
(1.3)渲染时序遮挡图;对图像中每个像素发射一条射线,得到相交的三角形面片;根据三角形在下一帧的位置,投影计算出深度,与下一帧实际深度图进行对比;如果深度更小则为未遮挡,反之遮挡;
(1.4)渲染视差遮挡图;对于左眼视图中的每个像素,根据深度得到3d位置后,在右眼平面上重投影;与右眼深度图比较,深度更小为未遮挡,反之遮挡;
(2)基于cnn的最优化后处理:
假设我们要渲染的动画一共具有n+1帧,左、右眼原始图像为
该步骤包括以下子步骤:
(2.1)对上一帧已渲染的左眼图像根据运动场传播,做为初始左眼图像;利用运动场
(2.2)利用初始左眼图像
对于神经网络的第l层,若它有nl个不同的滤波器,则它具有nl个尺寸为ml的特征图,其中ml是特征图宽和高的乘积。其中pl和fl分别代表两张图像在网络l层的的神经响应,
选取
(2.3)对求解出的左眼图像根据视差场进行传播,做为初始右眼图像;利用视差场dk对
(2.4)利用初始右眼图像,求解带视差约束的子优化问题;
其中λc,λs,λt,λtv为设定的各损失函数的权重,分别为1.0,40.0,0.02,0.08。
选取
本发明的有益效果是,本发明考虑了动态的时序连续性和双目内容的立体效果;相比于独立帧直接风格化法,该方法大量地减少了渲染动画的闪烁瑕疵,并增加了双目观赏时的立体感,从而增加了双目动画观看时的舒适感和沉浸感。
附图说明
图1中是本发明方法流程图,渲染层里包括了利用场景渲染出的五种图像:原始图像,时序遮挡图,运动场,视差遮挡图,视差图。后处理层结合任何一张风格图像和基于cnn的优化生成风格化后的图像对。
图2是后处理层的流程图,在求解k+1帧的左眼图像时,根据第k帧已经渲染的左眼图像建立时序子优化问题。求解k+1帧的右眼图像时,根据第k+1帧已经渲染出的左眼图像建立视差子优化问题。
图3是本发明渲染结果与独立直接法的对比图,其中,(a)为独立直接法渲染出的左右眼图像对,(b)为本发明方法渲染出的图像对。
图4是本发明使用糖果风格对开源动画sintel的渲染片段。左上角为艺术风格图像,右列从上到下为连续5帧的渲染结果。
图5是本发明使用黑白条风格对开源动画sintel的渲染片段。左上角为艺术风格图像,右列从上到下为连续5帧的渲染结果。
具体实施方式
本发明的具体实施方式分为两大步骤:渲染层的双目渲染和后处理层的基于cnn的最优化。
一、渲染层数据渲染
1、我们对图像中每个像素发射一条射线,根据它与场景的求交则可以得到当前像素的深度。根据公式d=f*b/z,我们可以计算出视差,并转换出该像素在右眼相机平面中的对应位置。
2、渲染运动场。对图像中每个像素发射一条射线,得到与之相交的三角形面片。根据三角形在下一帧的位置,投影计算出该像素的移动距离。
3、渲染时序遮挡图。对图像中每个像素发射一条射线,得到相交的三角形面片。根据三角形在下一帧的位置,投影计算出深度,与下一帧实际深度图进行对比。如果深度更小则为未遮挡,反之遮挡。
4、渲染视差遮挡图。对于左眼视图中的每个像素,根据深度得到3d位置后,在右眼平面上重投影。与右眼深度图比较,深度更小为未遮挡,反之遮挡。
二、基于cnn的最优化后处理
假设我们要渲染的动画一共具有n+1帧,左,右眼原始图像为
该步骤包括以下子步骤:
1、对上一帧已渲染的左眼图像根据运动场传播,做为初始左眼图像。利用运动场
2、利用初始左眼图像
对于神经网络的第l层,若它有nl个不同的滤波器,则它具有nl个尺寸为ml的特征图,其中ml是特征图宽和高的乘积。其中pl和fl分别代表两张图像在网络l层的的神经响应,
选取
3、对求解出的左眼图像根据视差场进行传播,做为初始右眼图像。利用视差场dk对
4、利用初始右眼图像,求解带视差约束的子优化问题。
其中λc,λs,λt,λtv为设定的各损失函数的权重,分别为1.0,40.0,0.02,0.08。
选取
通过上述步骤,发明人在一台配备了一个3.60ghz的inteli7-7700cpu,16g内存,gtx1060显卡的计算机上实现了本发明的若干实施实例。
实施例一、发明人测试了双目动画风格化渲染算法的有效性。如图3所示,发明人对同一段动画,采用了梵高星空的风格,并分别使用本发明算法和独立帧直接法进行渲染对比。从图中不难看出,独立法对左右眼视图中的对应区域没法保持一致的风格化,而本发明的渲染结果可以满足。
实施例二、如图4-图5所示,发明人使用了本发明方法渲染了sintel开源动画中的片段,其中图4采用的是糖果艺术风格,图5采用的是黑白条艺术风格。从两图中可以观察得到,本发明渲染出的动画满足时序一致性和视差一致性,提供了良好的双目观看效果。