基于深度学习的2D全景图像转3D全景图像的方法与流程

文档序号:15595214发布日期:2018-10-02 19:25阅读:1879来源:国知局

本发明涉及计算机图形学和计算机视觉领域,具体指一种基于深度学习的2d全景图像转3d全景图像的方法,进而可以用来将现有的2d全景视频转化为3d全景视频。



背景技术:

目前随着虚拟现实技术的发展,人们对于高质量的全景内容的需求越来越强烈,包括全景漫游,全景视频等;以提供真实而又身临其境般的虚拟现实体验。这些内容也可以应用到很多领域,像广告、电影、赛事直播,还有娱乐行业音乐剧的全景拍摄录制等。

但是到现在为止,市场上大部分的全景内容都是单目的,也就是2d的;而单目全景视频的拍摄技术可以追溯到1995年时候苹果的quicktimevr视频格式。直到现在,制作单目全景视频的过程还是大同小异的,它们由一圈相机拍摄拼接得到。市场上仅有的一些3d的全景内容则需要非常笨重且昂贵的设备来拍摄制作,像hypevr和nextvr公司用多对立体相机来拍摄制作3d全景内容,其中hypevr公司还额外使用了激光扫描仪来获得深度信息。最近facebook公司使用一组特定的相机面向外围成一圈来获得光场,然后利用光场信息做处理合成3d全景内容,这些系统都十分昂贵。

现有普遍的透视图像2d-3d转换大致可以分为两类,基于深度变形和基于学习的方法。其中基于深度变形方法着重于通过探索各种特性,如散焦、散射和室内几何场景,并以此来恢复单一图像的深度。而基于学习的方法试图使用机器学习来推断从一个单一2d图像映射到其相应的深度图。然而,基于学习的合成新视图往往由于高频特征的丢失而变得过于模糊,而基于深度的技术由于不精确的几何近似会产生强烈的噪声。

从上可以看出,制作2d全景内容的技术比较成熟,而且制作过程简便,制作成本不高,而制作3d全景内容则相反。因此一种能把2d全景内容简便地转化为3d全景内容,且维持内容高质量的技术显得格外重要。

作为相关技术方案,cn201610377597.0号中国专利申请提供了一种基于深度学习的2d图像转3d图像的方法及系统:获取2d单视差图像的像素单元信息;根据所述像素单元信息获取所述2d单视差图像的一元信息;获取所述2d单视差图像的相邻像素单元的颜色直方图关系、色彩空间关系和纹理关系;训练多尺度深度全卷积神经网络;预测所述2d单视差图像的单元像素块深度图;输入着色器获取所述2d单视差图像对应的3d图像。该方案同样利用了深度学习,避免了现有的人工由2d单视差图像生成深度图像结果不准确、成本高的缺陷,实现了自动将2d图像转换为3d图像。



技术实现要素:

本发明为解决能将2d全景内容转化为3d全景内容的问题,旨在提供一种基于深度学习的2d全景图像转3d全景图像的方法,基于深度学习网络,并结合全景内容特有的几何信息,来完成2d全景内容到3d全景内容的转化。

为了达到上述目的,本发明采用的技术方案包括如下步骤:

步骤一,从2d全景图中提取2d子图片;

步骤二,训练深度学习网络,即分别训练一个左边的子图片到右边的子图片和一个右边的子图片到左边的子图片的网络;

步骤三,将2d子图片输入所述网络并分别预测得到左视角图、右视角图的3d子图片;

步骤四,分别将左视角图、右视角图的3d子图片合成为左视角图、右视角图的全景图;最终合成两者得到3d的双目全景图片。

其步骤一中,将2d全景图片投影到球体上,设有视场角的虚拟相机置于球体球心,然后依次在纵向、横向上以固定角度旋转,得到一系列2d子图片。

其步骤二中,所述深度学习网络由视图流、深度流组成,其中视图流基于输入的左视角图或右视角图来推断视差的显著低水平特征,深度流则以深度作为输入从而直接估计视差;最终融合所述两个流。

其所述视图流中,网络图像预先训练的vgg16模型作为主要分支层,用vgg16权重来初始化这些分支层,并用其余具有正态分布且标准偏差为0.01的权重来集成来自显著低水平特征的信息;并用卷积层获得的视差预测。

其中,采用反褶积层采集预测视差图,而反褶积层的输出尺寸与最终预测尺寸相匹配。

其中,顶部vgg16卷积层的特征和两个全连接层相连,然后将线性层的输出馈送到一个反褶积层。

其中,所述深度流中估计视差,先从深度z计算视差图d:

基线b为两个水平摄像机之间的距离,f是焦距;基于输入视图i,计算新视图n:n=wodo+wtdt|+i(2),do为(1)中从输出的深度z计算得到的视差图,dt为深度学习网络的中间输出,wo、wt为两个视差图的权重;由于(2)不可微,则有微分方程:n=(wodo+wtdt)*i(3),do、dt分别是视差do、dt的概率分布,wt分别表示两个分布的权重;最后,用训练目标函数来将ol,r和r输出值和地面真值数据g之间的l1损耗最小化:e=|o(l,r)-g|(4)。

其中,用三个卷积层来进行(1)的近似计算。

其中,每个卷积层的卷积核大小为3*3,填充大小(1,1)和步长(1,1)。其中,融合两个流的过程中,使用一个卷积层来加权这些预测的视差图,然后用反褶积层对加权后视差图向上采样来匹配其尺寸大小,得到最终的特征显示;最后将特征显示的内容馈送至选择层,来恢复新的右视角图和/或左视角图。

其中,合成3d的全景图片中,将子图片作为中心视图,并用训练好的网络合成左视角图、右视角图的子图片,然后分别将其合成到左视角图、右视角图的全景图中。

其中,通过在全景图上密集、等距地采样中心视图,进而得到一个合成的左子视图和右子视图序列,然后收集所有左、右子视图的中心列来形成左视角图、右视角图的全景图。

和现有技术相比,本发明可以快速简便地将2d全景内容转化为3d全景内容,大幅度降低了运算量,节约了大量的人力成本;对于设备的要求较低,可以降低同等条件下的设备成本;并且相对于deep3d,具有更高的质量,可以恢复更多的细节和真实度。

附图说明

图1为本发明实施例的流程说明图;

图2a为本发明实施例选用的2d全景图;

图2b为将2d全景图投影到球形坐标的示意图;

图2c为提取2d子图片的示意图;

图3为深度学习网络的结构示意图;

图4a为立体全景合成的原理说明图;

图4b为立体全景合成的原理说明图;

图4c为左、右全景图以条显示的示意图。

具体实施方式

现结合附图对本发明作进一步地说明。

参见图1,图1展示的是本发明的流程说明图,本实施例中基于深度学习技术来实现高质量的三维全景合成,一般全景图像包含丰富的几何线索,适合用于立体视图合成。

本实施例中首先将输入的二维全景图片划分成若干个2d子视图,并获得这些2d子视图的透视图;深度学习网络由两个流组成:视图流用来估计立体对的差异,并且深度流用来约束来自视图流的中间视差。

参见图2a,图2a中为一副2d全景图,其覆盖了水平方向360°和垂直方向180°的二维全景。为了提取2d子图片,参见图2b,将原始的2d全景图投影为球形坐标;所述“投影”的含义为把全景图上的每个像素点投射到球体上所对应的点,其效果是在这个操作中,如果从球心向外看,全景图中的曲线则变成了直线,扭曲的物体也变成了正常符合人体视觉效果物体。然后,合成一个虚拟相机,其位置在上述球体的中心;且虚拟相机设置有视场角(本实施例中横向和纵向所选取的视场角都是90度,而该角度可以根据需要设置,并非对本专利的限定);参见图2c,最后依次在纵向和横向上逆时针方向每60度旋转一次(角度亦可灵活选取)旋转虚拟相机,就得到一系列的2d子图片。

然后,训练深度学习网络,即分别训练一个左边的2d子图片到右边的2d子图片、右边的2d子图片到左边的2d子图片的网络。将现有的3d普通电影制作成训练的数据集,当训练从左边的2d子图片到右边的2d子图片的网络时,将3d普通电影左边的视图当作输入,右边的视图当作输出去拟合;而当训练从右边的2d子图片到左边的2d子图片的网络时,就将3d普通电影右边的视图当作输入,左边的视图当作输出去拟合。

进一步地,参见图3,所述深度学习网络由“视图流”、“深度流”组成,其中视图流基于输入的左视角图或右视角图来推断视差的显著低水平特征,深度流则以深度作为输入从而直接估计视差;最终融合所述两个流。

在上述的视图流中,网络图像预先训练的vgg16模型作为主要分支层,用vgg16权重来初始化这些分支层,并用其余具有正态分布且标准偏差为0.01的权重来集成来自显著低水平特征的信息;在每个池层后同样地创建一个侧分支,应用批量归一化来解决在vgg16层与随机初始化层之间产生的vgg16大且非均匀的激活幅度的数值问题。

批量归一化后,用卷积层获得的视差预测。由于池层的缘故,预测视差图进行的是向下采样,因此本实施例采用反褶积层采集预测视差图,而反褶积层的输出尺寸与最终预测尺寸相匹配。进一步地,顶部vgg16卷积层的特征和两个全连接层相连,然后将线性层的输出馈送到一个反褶积层。最后,对所有预测视差图进行求和,得到了一个总结的预测视差图。

所述深度流中估计视差,先从深度z计算视差图d:

基线b为两个水平摄像机之间的距离,f是焦距;

基于输入视图i,计算新视图n:

n=wodo+wtdt|+i(2)

do为(1)中从输出的深度z计算得到的视差图,dt为深度学习网络的中间输出,wo、wt为两个视差图的权重;

由于(2)不可微,则有微分方程:

n=(wodo+wtdt)*i(3)

do、dt分别是视差do、dt的概率分布,wt分别表示两个分布的权重;

最后,用训练目标函数来将ol,r和r输出值和地面真值数据g之间的l1损耗最小化:

e=|o(l,r)-g|(4)。

作为进一步说明,本实施例中的输入图片分辨率为432*180,来支持大多数3d电影在1080p分辨率时采用的1920x1080的纵横比。

作为优选,本实施例用三个卷积层来进行公式(1)的近似计算,每个卷积层的卷积核大小为3*3,填充大小(1,1)和步长(1,1)。用具有一个或两个隐层的前馈网络可使得有限域上的连续函数或平方可积函数可以近似任意小的误差,而公式(1)属于这一类。第三卷积层的输出只是与视图流中的视差预测图相对应的视差预测。

最后,融合两个流的过程中,使用一个1*1卷积层来加权这些的视差预测图,然后用反褶积层对加权后视差图向上采样来匹配其尺寸大小,得到最终的特征显示;最后将特征显示的内容馈送至选择层,来恢复新的右视角图和/或左视角图的3d子图片。

参见图4a-图4c,下面进行立体全景合成。为了使用上述深度学习网络来产生最终的立体全景,假设输入的2d全景图是在同心马赛克(cm)设置下拍摄:2d全景图是由一个环状安装成一圈的相机向外拍摄而得。参见图4a,基于2d全景图和提取2d子图片,将提取2d子图片作为“中心”视图对待,用训练好的深度学习网络合成左视角图、右视角图的3d子图片,然后分别合成两者到左视角图、右视角图的全景图。

参见图4b,箭头表示从左视角图、右视角图中提取的每个条,所述的每个条是一个片段的子图像,其用来合成最后新生成的全景图。左视角图、右视角图的全景图被预定义的两眼间的距离分割,并且其所有的光线都和一个共同的圆相切。这种几何设置保证这两个图像满足极线约束,并表现出纯水平视差——可以使用基于光线跟踪的绘制或基于图像的绘制来跟踪光线。在实践中,可以通过将环状安装成一圈的相机旋转一个圆周来捕捉密集的图像序列来有效地合成cm。参见图4b和图4c,可以从中心列分割每个图像,从中心列以相等的距离收集各自的列,并把它们形成相应的左视角图、右视角图的全景图。

本实施例中,对于每个“中心”子视图,合成一个左子视图和一个右子视图来模拟这个过程。通过在2d全景图上密集地采样中心视图(本实施例中每个中心视图均有一列),可以得到一个合成的左子视图和右子视图序列。然后收集所有左、右子视图的中心列来分别形成左、右全景图。由此产生了两个全景模拟虚拟摄像头旋转并产生有效的cms。

尤其需要指出的是,左视角图的全景图本身并不能保持原有的(中心)全景图的有效立体效果。本实施例中,使用了左侧的视图作为输入来训练右视图的网络,而反之亦然。

综上,本实施例的方法结合了场景几何的分析和深度学习为基础的图像生成。具体来说,深度学习网络以deep3d的网络作为基础,把普通的2d到3d的图像转换扩展到全景图像,以普通的双目视觉图像和它们对应的视差图作为输入。首先我们把一张2d的全景图片分割为多个普通的2d子图片。然后训练两个深度学习的网络,一个用于生成左眼的图像,一个用于生成右眼的图像。我们进一步把深度学习生成的左眼图像合成左眼的全景图,同样道理把生成右眼图像合成右眼的全景图。最后,我们把合成的左、右眼全景图结合起来生成双目的全景3d图像。本实施例能够提供高品质的视觉质量和视差一致性的3d立体全景图像。

上面结合附图及实施例描述了本发明的实施方式,实施例给出的并不构成对本发明的限制,本领域内熟练的技术人员可依据需要做出调整,在所附权利要求的范围内做出各种变形或修改均在保护范围内。

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