Deep3D: Fully Automatic 2D-to-3D Video Conversion with Deep Convolutional Neural Networks

Deep3D: 利用深度卷积神经网络的全自动 2D-3D 视频转换

原文:Junyuan Xie 等. 2016

图 1
图 1:我们提出的 Deep3D 是一个全自动的 2D-3D 转换算法。它将 2D 图像或视频帧作为输入,输出 3D 立体图像对儿,可以通过 3D 眼睛或者头戴式 VR 显示设备观看。Deep3D 直接用 3D 电影中的立体对儿作为数据集进行训练,损失是重建出的右视点与给定的左视点间的像素级的差异。在内部,Deep3D 的网络预测出一个差异概率分布图,再输入到可微的基于深度图像的渲染层来生成右视点。因此 Deep3D 不需要采集深度传感器的数据用于监督。

摘要

  由于 3D 电影成为主流和 VR 市场的显露,对 3D 内容的需求迅速增长。然而,3D 视频制作面临着挑战。本文提出利用深度神经网络自动地将 2D 视频和图像转换为有立体感的 3D 格式。此前的 2D-3D 自动转换算法不是端到端的,且需要 ground truth 深度图来监督。我们的方法直接用从 3D 电影中提取出来的 立体对儿 进行端到端的训练。这种新的训练策略使得采用更大数量级的数据量成为可能,并且显著地提高了算法的表现。实际上,Deep3D 在定量的和人的主观评估上都有超过基线的表现。

关键词:深度估计,深度卷积神经网络

1 引言

  3D 电影非常流行并且占据着电影市场的很大一部分,在美国和加拿大,2010 到 2014 年间,3D 电影的票房在全部电影票房的 14% 到 21% 之间。此外,逐渐显露的头戴 VR 显示市场很有可能带来 3D 内容需求的增长。
  3D 视频和图像通常以立体格式存储。每一帧都包括同一场景的两个投影,一个暴露给观察者的左眼,另一个暴露给观察者的右眼,因此带给观察者以三维观看场景的体验。
  制作 3D 电影的方法有两种:直接拍摄 3D 格式,或者拍摄 2D 后转换成 3D。以 3D 格式拍摄需要昂贵的立体相机设备。除了设备成本外,阻止立体相机实用性的还有一些摄影技术问题。一些并不昂贵的特殊视觉效果,比如强制透视,就与多视点捕捉设备不兼容。2D-3D 转换提供了另一种制作 3D 电影的方式。专业的转换处理通常依赖于“深度艺术家”,他们手工地为每一帧创造深度图。然后利用标准的基于深度图像的渲染 (DIBR) 算法将原始帧和深度图相结合,得到一个立体的图像对儿。然而,由于这个工作需要大量的人力成本,所以花费依然非常高。
  每一年有 20 左右部新的 3D 电影发行。高昂的制作成本是阻碍 3D 电影行业发展的主要障碍。自动的 2D-3D 转换将会消除这一障碍。
  本文提出了一种全自动的,数据驱动的方法来解决 2D-3D 视频转换的问题。这个问题可以转化为从单张图片中推理出深度信息,然后为另一只眼睛合成一个新的视点。然而从一张图片中推理出深度 (或差异) 是一个高度不确定的问题。除此之外,新视点中的一些像素对应于原图片中不可见的位置,导致数据缺失,必须用填充算法补全,即使补全的部分是算法虚构的。
  尽管存在上述困难,我们认为有了 3D 电影中已经存在的大量立体帧对儿,就有可能训练出从给定视点得到新视点的机器学习模型。最终,我们设计了一个深度神经网络将左眼的视点作为输入,内部估计出一个可能的差异图,然后为右眼渲染出一个新的图像。我们在 ground truth 立体帧对儿上进行端到端的训练,目的是直接从一个视点预测出另一个视点。网络内部生成的差异图只是为生成一个好的右眼视点服务的。我们发现相比于用探索法得到差异图,即训练一个预测差异的模型,再用预测出的差异渲染新图,我们的方法训练起来更容易。我们的模型同样隐形地执行填充而不需要后处理。
  如何评估得到的 3D 场景的质量也是一个有价值的问题。定量评估方面,我们使用 3D 电影的数据集,在像素尺度上比较重建出的右视点和 ground truth 右视点。我们也进行了人类主观实验以展示我们的方案的有效性。我们将我们的方法与 ground truth 和 最好的单视点深度估计技术进行对比。定量和定性的分析都展现出了我们的方法的优势。

2 相关工作

  现有的 2D-3D 转换方法大致可以分为两个阶段。首先从一个输入视点估计出深度图,在用 DIBR 算法结合深度图和输入视点,得到立体对儿的另一个视点。从单张图片中估计深度的早期尝试利用手工设计的特征和线索包括离焦、散射和质地梯度。这些方法只依赖于一种线索。所以它们只在表现出特定线索的场景中表现优秀。然而实际上,人类是通过无缝地结合多种信息来感知深度的。
  最近的研究转移到了基于学习的方法上来。这些方法将单视点 2D 图片和它们的深度图作为监督,试图学习一个从 2D 图片到深度图的映射。基于学习的方法结合了多种线索并且有着更好的泛化能力,例如最近的工作就使用深度卷积神经网络达到了这个问题的 state-of-the-art。然而,采集高质量的图像-深度对儿是非常困难、昂贵并且受限于传感器。所以,现有的深度数据集基本上都由少量的静态室内场景和更少的户外场景组成。数据集数量和多样性的匮乏限制了基于学习的方法的泛化能力。此外,这些方法得到的深度图只是一个中间产物,还需要一个额外的 DIBR 步骤来生成最终效果。
  单眼深度预测是非常有难度的,然而我们认为精确无误地预测深度并不必要。顺应端到端训练的趋势,我们提出了一种利用立体对儿来训练,直接学习从左视点预测出右视点。在我们的方法中,DIBR 是根据一个内部的差异概率分布图来执行的,当算法学习到类似差异图的东西,系统允许它被用于预测新视点。这一灵活处理使得算法能够自然地处理图像修复。不像 2D图片/深度图 对儿,我们的方法有大量的训练数据,因为 2008 年以来每年有大概 10 到 20 部 3D 电影发行,每部电影中都有成千上万帧。
  我们的模型受 Flynn 等人的 DeepStereo 启发,他们提出了概率选择层来进行渲染处理,使得渲染过程可以和 DCNN 一起训练。具体地说,我们使用了相同的概率选择层,但是以两种显著的方式改进了他们的方法。首选,他们的方法需要两个或更多校准的视点来合成一个新视点,所以不能用现成的 3D 电影训练。我们通过重构网络的输入和布局解除了这一限制。第二,他们的方法使用 28 乘 28 的小块,把网络的感受野限制在了局部结构。而我们的方法处理整张图片,有大的感受野,这对利用高层级的提取规律是非常必要的,就像大的人像很可能离相机更近,小的较远。

3 方法

  现有的 2D-3D 转换通常包括两个阶段:从左视点估算一个精确的深度图在用基于深度图像的渲染算法 (DIBR) 渲染出右视点。与之不同,我们提出利用像素尺度的损失直接生成右视点。然而简单地利用这一方法得到的结果很差,因为它没有捕捉到任务的本质。受先前研究的启发,我们利用 DIBR 处理保证了大多数输出像素是输入像素的复制偏移。与此前研究不同的是,我们不强迫系统生成精确的深度图,也不将深度图作为训练的监督。我们提出的模型预测一个概率分布形式的类差异图作为中间输出,然后用可微选择层作为 DIBR 处理的模型,将类差异图与输入视点结合。在训练过程中,模型生成的类差异图不会被与正确的差异图直接比较,它只被用来作两个用途:表示水平差异和执行图像修补。可微选择层使得我们的模型可以被端到端地训练。

3.1 模型结构

  最近的研究表明集成低层级的特征对像素级的预测任务很有帮助,包括语义分割,深度估计和光流估计。注意到我们的人任务与深度估计间的相似性,就很自然地考虑到这个想法。我们的网络,如图 2 所示,在每一个池化层之后又一个分支,在这个分支上我们用“反卷积”层上采样输入的特征图 (也就是一个学习到的上采样过滤器)。每一级上采样得到的特征图相加到一起,得到一个与输入图像尺寸一致的特征表示。我们对这个特征表示再进行一次卷积,然后再在每个空间位置的通道上进行一次 softmax 变换。softmax 层的输出可以理解为一个概率分布形式的差异图。最后,我们将这个差异图和左视点输入到选择层,得到右视点。

图 2
图 2:Deep3D 模型结构。我们的模型结合多层级的信息,并通过端到端训练从左视点生成右视点。主网络预测出一个差异的概率分布输入到选择层。选择层是一个以可微的方式实现基于深度图像渲染 (DIBR) 的模型,使得填充可以在网络内部进行。

反卷积双线性插值
  我们采用反卷积层来上采样低层级特征图。反卷积层是将卷积层的前向和后向计算颠倒过来。尽管从技术上讲仍然是进行卷积,但我们按照惯例称之为反卷积。
  我们发现将反卷积层初始化成双线性插值可以使训练更容易。具体地讲,当上采样系数为 S 时,反卷积层的核为 2S 乘 2S,步长为 S,padding 为 S/2。核权重 w w w 初始化为

(1) C = 2 S − 1 − ( S   m o d   2 ) 2 S C = \frac{2S-1-(S\ mod\ 2)}{2S}\tag{1} C=2S2S1(S mod 2)(1)

(2) w i j = ( 1 − ∣ i S − C ∣ ) ( 1 − ∣ j S − C ∣ ) w_{ij}=(1-|\frac{i}{S-C}|)(1-|\frac{j}{S-C}|)\tag{2} wij=(1

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值