【泡泡图灵智库】从单张图像学习双目图像

泡泡图灵智库,带你精读机器人顶级会议文章

标题:Learning Stereo from Single Images

作者: Jamie Watson1 Oisin Mac Aodha2 Daniyar Turmukhambetov1Gabriel J. Brostow1,3 Michael Firman1

机构:1Niantic 2University of Edinburgh 3UCL

来源:ECCV 2020

编译 : 万应才

审核:wyc

这是泡泡图灵智库推送的第 540篇文章,欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权

摘要

大家好,今天为大家带来的文章是Learning Stereo from Single Images

有监督的深度网络是在立体图像对中寻找对应关系的最佳方法之一。像所有的监督方法一样,这些网络在训练期间需要真实数据。然而,收集大量精确的密集对应数据是一项非常具有挑战性的工作。我们认为,没有必要如此依赖于真实深度,甚至是相应的双目立体对。受单目深度估计的最新进展启发,我们从单个图像生成似然的视差图。反过来,我们在一个精心设计的框架中使用这些有缺陷的视差图来生成立体训练对。以这种方式进行训练可以将单个RGB图像的任何集合转换为立体训练数据。这就大大减少了人类的工作量,无需收集真实深度或手工设计合成数据。因此,我们可以从零开始在COCO这样的数据集上训练一个立体匹配网络,这些数据集以前很难用于双目图像。通过大量的实验,我们发现我们的方法在KITTI、ETH3D和Middlebury上进行评估时,优于使用标准合成数据集训练的立体网络。Code to reproduce our results is available at:https://github.com/nianticlabs/stereo-from-mono/

背景与贡献

单目生成双目

随着最近几年单目深度的发展,从单张图像预测深度的精度越来越高,但是相比双目匹配算法(stereo match)依然有差距。作者提出一种单目生成双目图像然后用双目匹配算法。单目生成双目方法原理是通过预测的单目深度设置一个虚拟的基线然后将原图生成为双目的另一图像。

我们作出以下贡献:

1.从单个图像的非结构化集合生成立体训练数据,给定颜色模型的深度。

2.对不同的立体对合成方法的比较表明,即使是简单的方法也可以产生有用的立体训练数据。

3.对不同立体算法的多个域进行了详细的实验评估,结果表明我们生成的训练数据比当前的合成数据集能更好地泛化到看不见的领域。

算法流程

1.整体结构

深度立体网络的监督训练需要校正的彩色图像Il和Ir,以及地面真实视差图D。我们提出了一种从单个不相关的输入图像集合中创建逼真的双目训练数据方法。我们使用一个预训练的单目深度网络来估计图像Il的合理深度映射Z,然后用它来合成预测Ir和预测D。本节详细描述了该过程中每个步骤所需的重要设计决策。我们在这里的目标类似于合成单一图像的新的视角的方法。然而,我们的目标是合成一个新的视图,以及与输入图像对齐的几何校正深度图,这是从现有方法中获得的非常重要的。本文选择了一个简单而有效的基于像素操作的算法,发现它非常有效。

图1 整体结构

2. 方法

2.1 从单目深度生成双目训练数据

这些单目网络可以参数化为深度神经网络,这些神经网络通过真实深度进行训练或通过自监督。为了训练我们的立体网络,我们需要将估计的深度Z转换成视差图D。为了实现通用立体匹配的目标,我们需要模拟具有通用基线和焦距的立体对。我们通过将深度转换为视差来实现这一点,其中,s是一个随机抽样(来自[dmin,dmax])的比例因子,确保产生的差异在合理的范围内。

我们的目标是从输入的“左”图像Il和预测的视差D合成右图像Ir。视差图和彩色图像都与左图像Il对齐,因此向后扭曲[53,19]是不合适的。取而代之的是,我们用D通过前向wrap合成了一对立体声Ir。对于Il中的每个像素i,我们将其向左平移Di像素,并对扭曲的像素值进行插值以获得Ir。由于前向翘曲的性质,由于遮挡区域的存在,瘆Ir将包含丢失的像素伪影,并且在某些地方,当多个像素落在同一位置时,会发生碰撞。此外,单目网络常常错误地预测深度间断附近的深度,从而产生不真实的深度图。处理这些问题是合成真实立体对的关键,正如我们在烧蚀实验中演示的那样。

2.2 处理遮挡和碰撞

基于估计的视差合成图像将导致两个主要的伪影来源:遮挡孔和碰撞。遮挡区域是立体对中一个图像中在对应图像中不可见的像素[64]。在前向wrap过程中,Il不匹配的像素在重建图像中表现为孔洞。虽然合成的图像为Il提供了精确的立体对,但是空白区域导致非自然伪影。我们可以通过使用训练集中随机选择的图像Ib中的纹理填充缺失区域来提高合成图像的真实性,如下[15]。我们使用[49]在Il和Ib之间进行颜色转换,以获得ˆIb。随后,我们在相应位置将所有缺失像素设置为相应位置的ˆIb值。这会导致自然图像中的纹理被复制到Ir的缺失区域。另外,碰撞是出现在Il中但不在№Ir中的像素,因此Il中的多个像素可以映射到№Ir中的同一点。对于碰撞,我们从Il中选择具有更大视差值的像素,因为这些像素更近,应该在两个图像中都可见。

2.3 Depth Sharpenin

与现实的尖锐不连续性相反,单目深度估计网络通常会在深度不连续处产生模糊的边缘.当在图像合成期间进行前向wrap时,这将导致“飞行像素”,其中单个像素被扭曲到两个深度曲面之间的空白区域。为了解决合成的?红外图像中的飞行像素,我们进行了深度锐化。我们将飞行像素识别为视差图具有大于3的Sobel边缘滤波器响应的像素。然后将这些像素分配给图像空间中最近的“非飞行”像素的视差。我们使用这个校正后的视差图进行图像采样和训练我们的立体网络。

图2 深度锐化

主要结果

表1 本文的方法优于其他立体训练数据生成方法

图3  本文可以从单目深度估计的误差中恢复。单目深度(b)中存在的问题,如丢失的物体和不平坦的地面,并不能转化为我们最终的立体预测(c)。

图 4 与基线数据生成方法的比较。我们证明了简单的图像合成是一种非常有效的立体训练数据生成方法,例如(c)和(d)。然而,无论使用PSMNet(e)还是更大的GANet(f),我们的方法都会产生更尖锐和更清晰的差异。

 图5 我们的方法是不可知的立体模型架构。

图6 定性结果。比较我们的合成数据生成方法和Sceneflow,使用一个训练了两者的PSMNet模型。我们的预测受益于在训练时语义上合理的深度,并且有较少的伪影。

相关资源

单目深度估计方法

Towards robustmonocular depth estimation: Mixing datasets for zero-shot cross-dataset transfer

双目匹配方法

Pyramid stereo matching network

(0)

相关推荐