3D Photography using Context-aware Layered Depth Inpainting-论文主要内容翻译

介绍

3D照片是什么?
3D摄影-用照相机捕捉世界的景色,并使用基于图像的渲染技术进行新颖的视图合成-是一种记录和再现视觉感知的迷人方法。 与旧的2D摄影相比,它提供了更加沉浸式的体验:在虚拟现实中几乎逼真,甚至在某种程度上以视差显示在正常的平板显示器上也是如此。好比2D电影与3D电影的区别。

背景

在这项工作中,我们提出了一种基于学习的新方法,该方法可以从RGB-D输入生成3D照片。 深度既可以来自双摄像头手机立体声,也可以来自单个RGB图像。我们使用LDI表示形式(类似于Facebook 3D照片),因为它很紧凑,可以处理任意深度复杂的情况。与上述“刚性”层结构不同,我们在表示形式中显式存储像素之间的连接性。然而,由于我们的拓扑比标准张量更复杂,因此将全局CNN应用于该问题更加困难。 相反,我们将问题分解为许多局部修复的子问题,这些问题我们可以通过迭代来解决。 每个问题在局部都像一幅图像,因此我们可以应用标准的CNN。我们使用的修复模型基于空间自适应上下文区域,该区域是从LDI的本地连通性中提取的。 合成后,我们将绘制的区域融合回LDI中,从而导致进行递归算法,直到所有深度边缘都得到处理为止。
我们算法的结果是在遮挡区域中合成了纹理和结构的3D照片(图1d)。 与大多数以前的方法不同,我们不需要预先确定固定的层数。 相反,我们的算法通过设计适应输入的局部深度复杂度,并在图像上生成不同数量的图层。 我们已经针对在不同情况下拍摄的各种照片验证了我们的方法。

Review

新颖的视图合成表示方式Representation for novel view synthesis:

  • 光场light fields
  • 多平面图像multi-plane images
  • 分层深度图像layered depth images。**

基于图像的渲染/生成

  • 基于学习的图像混合learning-based blending
  • 软3D重建soft 3D reconstruction
  • 处理反射handling reflection
  • 重新打光relighting
  • 重建镜面reconstructing mirror and glass surfaces
    本文工作中的重点在于从单个图像合成新颖的视图。

基于学习的视图合成Learning-based view synthesis
基于CNN的方法:

  • 稀疏光场数据进行视图合成
  • 两个/多个姿势图像进行视图合成
  • 单个图像进行视图合成

图像修补Image inpainting

图像修补的任务旨在用合理的内容填充图像中的缺失区域。

  • 基于实例的方法通过传输图像已知区域中的内容来完成缺失区域。
  • 使用置信度传播或图割求解马尔可夫随机场模型
  • CNN-based

深度修补Depth inpainting

深度估计

  • 双目深度估计
  • 单目深度估计

Method

Layered depth image

任务是输入一张RGBD图像,输出遮挡部分经过色彩和深度修补的LDI图像。那么我们首先需要知道什么是LDI:
LDI类似于常规的4连接图像,不同之处在于LDI在像素点阵的每个位置都可以容纳从零到多的任意数量的像素每个LDI像素存储一个颜色和一个深度值。 与原始的LDI工作不同[51],我们明确表示了像素的局部连通性:每个像素在四个基本方向(左,右,上,下)中的每个方向上都存储指向零或最多一个直接邻居的指针。 LDI像素与平滑区域内的普通图像像素一样是4连接的,但在深度不连续点之间没有邻居。

为什么要用LDI来表示3D图像?
(1)它们可以处理任意数量的层,即可以根据需要适应深度复杂的情况;(2)它们稀疏,即存储和存储效率高,可以转换为轻量级纹理 快速呈现的网格表示

Method overview.

给定输入的RGB-D图像,对整个方法进行一个流程梳理如下
首先初始化一个普通的LDI,该LDI在所有地方都使用单层,并且是全4连接的。
在预处理过程中,主要检测深度不连续性,并将它们分组为简单的相连深度边缘。 这构成了我们下面主要算法的基本单位。
在算法的核心部分,我们迭代选择用于修补的深度边缘。 然后我们断开边缘上的LDI像素,只考虑边缘的背景像素进行修复。 我们从边缘的“已知”侧提取局部上下文区域,并在“未知”侧生成一个合成区域(第3.2节)。 合成区域是新像素的连续2D区域,我们使用基于学习的方法(第3.3节)根据给定的上下文生成其颜色和深度值。 修复后,我们将合成的像素合并回LDI(第3.4节)。 我们的方法以这种方式反复进行,直到所有深度边缘均已处理。

输入图像的预处理

输入:单张RGB-D图像(1024*1024),这可通过深度估计获得。
归一化深度,将最小和最大视差(1/depth)分别映射到0-1。
初始化及深度图清洗
我们首先将图像提升到LDI上,即在每个地方创建一个单层,并将每个LDI像素连接到其四个主要邻域。 由于我们的目标是修补场景中被遮挡的部分,因此我们需要找到深度不连续性,因为这些地方需要扩展现有内容。 在大多数通过立体方法(双摄像头手机)或深度估计网络生成的深度图中,不连续性在多个像素上模糊不清(图2c),从而难以精确定位它们。 因此,我们使用双向中值滤波器[38](图2d),使用7×7的窗口大小和σspatial= 4.0,σintensity= 0.5来提升深度图。
锐化深度图后,我们通过对相邻像素之间的视差差异进行阈值来发现不连续性。 这样操作后会有一些躁点或者一些孤立片段(图2e),需要进行清洗。
在这里插入图片描述
我们按以下步骤进行清理:首先,通过将深度不连续性标记为1(其他标记为0)来创建一个二元图。 接下来,我们使用连通分量分析将相邻的不连续点合并为“链接的深度边”的集合。 为了避免合并交界处的边缘,我们基于LDI的本地连接性将它们分开。 最后,我们删除短片段(<10个像素),包括孤立的和悬空的片段。 我们通过对从RealEstate10K训练集中随机选择的50个样本进行LPIPS [74]度量进行五重交叉验证来确定阈值10。 最终边缘(图2f)构成了迭代修复过程的基本单元,以下各节对此进行了介绍。

上下文与合成区域(Context and synthesis regions)

我们的修复算法一次对先前计算的深度边缘之一进行操作。 给定这些边缘之一(图3a),目标是在相邻的遮挡区域中合成新的颜色和深度内容。 我们首先断开整个不连续处的LDI像素(图3b)。 我们将断开连接的像素(即现在缺少邻居)称为轮廓像素。 我们在图3b中看到形成了一个前景色(标记为绿色)和一个背景剪影(标记为红色)。 仅背景轮廓需要修补。 我们有兴趣将其周围的内容扩展到被遮挡的区域。
LDI修复算法的概念图
我们首先生成一个合成区域,即新像素的连续区域(图3c,红色像素)。 在这一点上,它们基本上只是2D像素坐标。我们使用简单的类似迭代填充的算法在合成区域中初始化颜色和深度值全为0首先从所有轮廓像素向断开连接的方向迈出一步。 这些像素形成初始合成区域。 然后,我们通过向左/向右/向上/向下步进并添加之前未访问过的任何像素来迭代扩展(进行40次迭代)该区域的所有像素。 对于每次迭代,我们交替扩展上下文区域和合成区域,因此像素仅属于两个区域之一。此外,我们不后退跨过轮廓,因此合成区域严格地保留在该区域的被遮挡部分中。图4显示了一些示例。
在这里插入图片描述

在下一节中,我们将介绍基于学习的技术来修补合成区域。 以前曾使用类似的技术来填充图像中的孔。 我们工作的一个重要区别是这些图像孔始终被已知内容完全包围,从而限制了合成。 但是,在我们的情况下,修补是在LDI像素的连接层上执行的,并且只能由直接与其相连的周围像素来约束。 LDI中的任何其他区域(例如,在其他前景或背景层上)对于此合成单元来说都是完全无关的,并且不应以任何方式对其进行约束或影响。
我们通过显式定义用于合成的上下文区域(图3c,蓝色区域)来实现此行为。 我们的修复网络仅考虑上下文区域中的内容,而看不到LDI的任何其他部分。 使用类似泛洪的算法来生成上下文区域。 然而,一个区别是,该算法选择实际的LDI像素并遵循其连接链接,因此上下文区域扩展在轮廓处停止。 我们发现,综合效果在稍大的上下文区域中表现更好,因此我们对该算法进行了100次迭代。 实际上,由于深度估计不完善,轮廓像素可能无法与实际遮挡边界很好地对齐。 为了解决这个问题,我们将深度边缘附近的合成区域扩大了5个像素(上下文区域相应地腐蚀了)。 图5显示了这种启发式的效果。
在这里插入图片描述

上下文感知的颜色和深度修复模型

给定上下文和合成区域,我们的下一个目标是合成颜色和深度值。 即使我们在LDI上执行合成,提取的上下文和合成区域在局部也像图像一样,因此我们可以使用为图像设计的标准网络体系结构。 具体来说,我们基于之前的图像修复方法建立了颜色和深度修复模型。
一种简单的方法是独立修复彩色图像和深度图。 但是,已修复的深度图可能无法与已修复的颜色很好地对齐。 为了解决这个问题,我们设计了颜色和深度修复网络,将修复任务分为三个子网络。
在这里插入图片描述
首先,以上下文边缘为输入,我们使用边缘修复网络预测合成区域中的深度边缘,从而生成修复后的边缘。 首先执行此步骤有助于推断可用于约束内容预测的结构(就深度边缘而言)(颜色和深度值)。 我们将拼接的边缘和上下文颜色作为输入,并使用色彩修复网络来生成色彩修复。 我们类似地执行深度修补。 图7显示了一个示例,该示例说明了边缘引导的喷绘如何能够精确地扩展深度结构并减轻颜色/深度未对准问题。
在这里插入图片描述
在深度复杂的情况下,仅采用我们的修复模型是不够的,因为我们仍然可以看到由修复的深度边缘创建的不连续处的孔。 因此,我们将应用修复模型,直到不再生成进一步的修复深度边缘为止。 图8显示了一个效果示例。 在这里,一次应用我们的修复模型可以填补缺失的图层。 但是,当从某个角度观察时,仍然可以看到多个孔(图8b)。 再次应用修复模型可修复。
在这里插入图片描述
为了进行训练,我们提出的模型可以简单地在任何图像数据集上进行训练,而无需带注释的数据。 在这里,我们选择使用MSCOCO数据集[32],因为它在对象类型和场景方面具有广泛的多样性。 为了生成修复模型的训练数据,我们如下创建一个综合数据集。 首先,我们将预训练的MegaDepth [31]应用于COCO数据集,以获得伪地面真相深度图。 我们提取上下文/合成区域(如第3.2节中所述)以形成这些区域的池。 然后,我们随机采样这些上下文合成区域并将其放置在COCO数据集中的不同图像上。 因此,我们可以从模拟的遮挡区域获得地面真实内容(RGB-D)。

转换为3D纹理网格

我们通过将所有已修复的深度和颜色值重新集成到原始LDI中来形成3D纹理网格。 使用网格表示法进行渲染使我们能够快速渲染新颖的视图,而无需执行每个视图的推理步骤。 因此,我们的算法产生的3D表示可以使用边缘设备上的标准图形引擎轻松渲染

结论

在本文中,我们提出了一种从单个RGB-D图像创建引人注目的3D摄影的算法。 我们的核心技术创新在于通过上下文感知的颜色和深度修补来创建完整的分层深度图像表示。 我们在各种各样的日常场景中验证我们的方法。 我们的实验结果表明,与最新的新颖视图合成技术相比,我们的算法产生的视觉假象要少得多。 我们相信,这种技术可以将3D摄影带入更广泛的社区,使人们可以轻松捕获场景以进行身临其境的观看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值