深入研究自监督单目深度估计

  • 同济智能汽车
  • 2020-01-04 16:33:36
  • 0
  • 672

本文在寻求通过单张输入图像能够自动推测一个稠密深度图的方法。

文章译自arXiv的论文

《Digging into self-supervised monocular depth estimation》

原作者:Clément Godard, Oisin Mac Aodha, Michael Firman, Gabriel Brostow


编者按基于深度学习的单目深度估计近年来发展迅速,其通过单张RGB图像即可推测出合理的图像深度,对此的研究可以极大促进三维重建、视觉SLAM、AR和3D目标检测等领域的发展。早期基于学习的单目深度估计主要采用监督学习的形式,但是大规模深度真值的难以取得为算法实际应用带来了困难。文章介绍了一个基于自监督学习的单目深度估计算法,其在不需要深度真值参与训练的情况下仍然能够获得良好的深度估计性能,值得借鉴。


 

摘要大规模地获取逐像素的深度真值数据十分具有挑战性。为了克服这个限制,自监督学习已经成为了通过模型训练来进行单目深度估计的可行的替代方案。本文提出了一系列的改进方案,使得与其他的自监督学习方法相比无论在定量还是定性方面都取得了更好的深度估计效果。对于自监督单目训练的研究通常在探索更复杂的算法架构,损失函数以及图像生成模型,这些都有效减少了其与监督学习方法的差距。而本文发现通过一个令人吃惊的简单的模型与一系列设计选择便能获得良好的估计结果。特别的,本文提出了:1.最小化重建误差,用于鲁棒地处理遮挡;2.全分辨率多尺度采样方法,用于减少视觉伪影;3.自动化掩膜损失,用于忽略违背场景静止假设的像素。我们分别证明了各个组件的有效性,并且在KITTI数据集上达到了高质量的,SOTA的效果。

 

1介绍


本文在寻求通过单张输入图像能够自动推测一个稠密深度图的方法。在没有第二张输入图像构成三角几何的情况下,估计一个绝对的,或者相对的深度看起来是一个不适定的问题。然而,人类通过在真实世界中的导航和互动中学习,可以对于崭新的场景假设一个合理的深度估计[19]。


进行高质量的“从图像中预测深度”任务是具有吸引力的,因为其能够与在自动驾驶任务中使用的激光雷达进行廉价地互补,并且使新的单张图像应用,比如图像编辑和AR,成为可能。求解深度同样也可以通过大量无标签的图像数据集进行深度网络预训练,进而用于下游的识别任务上[24]。然而,收集大量且多样,并且具有准确深度真值的图像数据集用于监督学习[56,10]本身就是一个艰巨的挑战。作为替代,近年来一些自监督方法已经证明了只通过同步的双目图像[13, 16]或单目图像[76]来训练单目深度估计模型的可能性。


在上述的两种自监督方法之中,单目图像是双目图像的一个具有吸引力的替代方式,但是其自身也存在着一系列挑战。除了预测深度,模型同时还需要预测时序图像序列之间的相机自身运动。这通常涉及到需要训练一个位姿预测网络,其输入为一个有限长度的图像序列,输出为相应的相机运动。相对而言,利用双目信息进行训练使得相机位姿的预测成为了一个一次性的离线标定过程,但是遮挡和纹理拷贝会对模型造成较大的影响。


本文提出了三个架构和损失函数上的创新点,它们组合起来能够对单目深度估计的表现产生巨大的提升,这个提升不仅仅可以用于利用单目图像训练的模型,还可以用于利用双目图像训练的模型或者用于利用单目+双目混合训练的模型:1.一个先进的外观匹配损失,其能够解决在使用单目约束情况下出现的遮挡像素的问题;2.一个先进并且简单的自动化掩膜,其能够忽略与相机不存在相对运动的像素;3.一个多尺度外观匹配损失,其将所有的图像采样置于输入分辨率下进行,从而减少深度伪影。将这些创新点组合在一起,本文提出的单目和双目自监督深度估计表现在KITTI数据集[14]上达到了SOTA的效果,并且简化了现有先进模型中的很多组件。


2相关工作


本文在本节回顾那些在测试阶段接受单张图像作为输入,并且预测每个像素深度值作为输出的模型。

2.1监督深度估计

通过单张图像预测深度本质上是一个不适定问题,因为一张输入图像可以对应多个合理的深度图。为了解决这个问题,基于学习的方法能够利用彩色图像和它们相应深度图之间的关系来拟合一个预测模型。多种方法,比如组合局部预测[20, 56],非参数化场景采样[25],通过端到端监督学习[10, 32, 11]已经被探索。基于学习的算法同样在双目预测[72, 43, 61,26]和光流预测[21, 64]方面展现了巨大的作用。

上述的很多方法利用监督学习,在训练过程中需要深度真值。然而,这在现实世界中难以获得。所以,很多研究开始利用弱监督训练数据,比如已知的物体尺寸[66],稀疏有序深度[78, 6],监督外观匹配项[72, 73],或者合成深度数据[46, 2, 17, 79],但这些仍然需要收集额外的深度或其他标注。合成训练数据是一个可行的替代方案[42],但是生成大量的合成数据并要求其包含多样的真实世界外观和运动也是非常困难的。近期的工作显示常规的SfM(通过运动恢复结构)管线可以生成对相机位姿和深度预测都有益的稀疏训练数据[36,29, 68],这其中SfM一般是作为与训练过程解耦的预处理步骤存在。

2.2自监督深度估计

在获取不到深度真值的情况下,一种替代方案是利用图像重建作为监督信号来训练深度预测模型。这些模型接受一个图像序列作为输入,这个图像序列既可以是双目图像对也可以是单目序列。通过假设对应于序列中间图像的深度图并且将其投射到相邻的视图完成重建过程,模型基于最小化图像重建误差来进行训练。
自监督双目训练
一种自监督的形式来源于双目图像对。在这种形式中,训练过程可以获取同步的双目图像对,并且通过预测图像对之间的视差,深度网络可以被训练并且在测试过程中实现单目深度预测。[67]提出了这样一个模型使用离散的深度来进行视图合成。[13]对这个方法进行延伸能够预测连续的视差值,[16]提出了一种左右深度一致性项,其表现超过了当时的监督方法。基于双目的方法已经得到扩展,比如利用半监督数据[31, 40],对抗生成网络[1, 49],额外的连续性[51],时序信息[34, 73, 3],以及实时性改进[50]。

本文证明通过对于外观损失和图像分辨率的仔细选择,本文提出的方法可以只使用单目训练便可以达到双目训练的效果。更进一步的,将本文的贡献之一应用到双目自监督训练中同样可以提升其效果。
自监督单目训练
一种包含更少约束的自监督是使用单目视频,在这个管线中连续时序的帧作为训练信息存在。在这种方法中,除了需要预测深度,网络同样需要预测帧间的相机运动,但由于运动物体的存在,相机运动的预测存在着挑战。预测出来的相机运动只是在训练过程中被用于约束深度预测网络。
在最早的单目自监督方法之一,[76]训练了一个深度预测网络与一个独立的位姿预测网络。为了应对非刚性场景运动,一个额外的运动可解释性掩膜能够使模型忽略掉违反刚性运动假设的特定区域。然而,其后续在网络上开源的模型取消掉了这个掩膜,并且获得了更好的效果。被[4]所启发,[62]提出了一个更复杂的运动模型使用了多个运动掩膜。然而,其并没有被充分地评估,使其效用无法被充分认识。[71]同样将运动分离为刚性与非刚性运动,使用深度和光流来解释运动。其提升了光流估计的效果,但在光流和深度的联合训练中并没有提升。在光流预测中,[23]显示其方法有助于显式处理遮挡问题。

近期的方法已经开始缩小单目自监督与双目自监督的差距。[70]限制了预测出的深度需要和预测出的表面法向一致,[69]强制了边界一致性。[41]提出了一个近似的基于几何的匹配损失来鼓励时序深度一致性。[63]提出了一个深度标准化层,用于解决[16]提出的广泛应用的深度平顺性损失造成的偏好进行更小深度预测的问题。[5]利用了预计算的实例分割掩膜用以处理运动物体。

2.3基于外观的损失

自监督的训练通常依赖于帧间物体表面的外观假设(光度不变性假设)和材质假设(朗伯体假设)。[16]显示相比于简单的逐像素光度误差[67, 13, 76],包含一个局部结构性外观损失[65]能够显著提升深度预测的表现。[29]在此基础上进一步增加了一个错误适配项,[44]将其与一个基于对抗的损失组合起来以鼓励更真实的合成图像。受到[72]的启发,[73]利用深度真值来训练一个外观匹配项。


3方法


在本节中,本文描述本文提出的深度预测网络,该网络接受单张RGB图像It作为输入,并且生成一个深度图Dt。本文首先回顾自监督单目深度估计训练的关键思想,然后介绍本文提出的深度预测网络和相应的训练损失。

3.1自监督训练

通过训练一个神经网络来从另一张图像预测目标图像,自监督深度预测将学习问题构建为一个视图合成问题。通过限制神经网络利用中间变量(在本文中是深度或逆深度)进行视图合成,我们可以从模型中提取出深度。这是一个不适定的问题,因为在给定两帧以及其相对位姿的情况下,仍然有大量可能深度不正确但是可以正确地进行视图合成的像素点。传统的双目和多目方法通常通过限制深度图的平顺性来解决这个问题,并且在求解逐像素深度值的时候利用全局优化的方法[12]。


与[13, 16, 76]类似,本文提出的方法同样利用在训练过程中最小化光度重投影误差来求解深度估计问题。本文将目标图像It相对于每一个源图像的It'位姿表达为。本文所提出的网络预测一个稠密的深度图Dt以使光度重投影误差Lp最小,如下式所示。


这其中pe是光度重建误差(比如在像素空间的L1距离);proj()代表利用深度Dt计算出的在It'上进行采样的2D坐标,<>代表采样操作。为了简化公式,本文假设每一帧给定的相机内参矩阵K都是相同的,虽然它们有可能不同。与[22]相同,本文提出的方法采用双线性插值的方法在源图像上进行采样,这使得其局部可偏微分,同时本文提出的方法与[75, 16]一样组合L1和SSIM[65]作为光度误差pe。


在双目训练中,本文所提出网络的源图像It'是一个双目对中除的另一帧图像,其可以看作相机位姿已经给定。而在单目序列中相机位姿未知的情况下,[76]表明可以训练一个位姿预测网络来预测以使其用于投影操作proj()中。在训练过程中,本文所提出的方法同时求解相机位姿和深度以使Lp最小。在单目训练中,我们采用与It在时序中相邻的两张图像作为源图像,比如。在混合训练(MS)中,It'包含时序上的相邻帧和双目对中的另一帧。

3.2改进后的自监督深度预测

现有的单目方法与监督模型相比生成的深度图质量较低。为了缩小差距,本文提出了几个改进措施以显著地提升预测深度图的质量,同时不添加其他额外需要训练的组件(参见图3)。



图3 总览。(a)深度预测网络:本文所提出的网络使用了一个传统的,全卷积U型网络来预测深度。(b)位姿预测网络:一对图像帧之间的位姿通过一个独立的位姿预测网络进行预测。(c)逐像素最小化重投影:在匹配关系良好的情况下,重投影误差应该较低。然而,遮挡使得在当前帧的像素有可能不会在前后两帧中出现。基线模型利用平均损失来促使神经网络匹配遮挡的像素,但是本文所提出方法的最小重投影误差只匹配在两帧之间都出现的像素,造成了更锐利的结果。(d)全分辨率多尺度预测:本文所提出的网络在隐藏层将预测出的深度进行上采样,将所有的损失都放大到输入分辨率上来进行计算,减少了纹理拷贝的影响。


逐像素最小化重投影损失

在计算多张源图像的重投影误差时,现有的自监督深度预测方法将所有源图像的重投影误差求平均(等式(2))。这对于能在目标图像中被看到,但在有些源图像中无法被看到的像素中会造成一些问题(图3(c))。如果网络对这些像素预测了正确的深度,在有遮挡的源图像中这些区域将不能够很好地匹配,会造成较高的光度误差。这些有问题的像素主要为两类:一类是随着相机自身运动离开摄像区域的像素,一类是出现遮挡的像素。离开摄像区域的像素可以通过在计算重投影误差的时候将其滤掉来减少其影响[41, 62],但是这种方法无法解决遮挡问题,在这种情况下平均重投影误差的方法将导致模糊的深度边界。


本文提出了一个改进方法,能够同时应对上述两种情况。对于每一个像素点,本文所提出方法不对所有的源图像光度误差取平均,而是取最小值。本文所提出方法最终的逐像素光度误差如下所示。


图4显示了这种损失的一个例子。利用本文所提出的逐像素最小重投影误差可以显著地减少图像边界的误差,提升遮挡边界的尖锐度并且导致了更好的准确度(见表2)。


图4 在MS训练过程中最小重投影误差的效果。在圆圈中的像素在中被遮挡,因此在之间不会施加损失。相反,像素将会与中的像素相匹配,因为它们在这张图像中可见。右上角的图像表明了最终用于等式4的匹配是从哪张源图像中得到的。


自动滤掉相对静止像素的掩膜

自监督的单目训练通常基于相机运动但场景静止的假设。当这个假设不成立时,比如相机是静止的或者场景中有运动物体,那么其表现将受到很大的影响。这个问题将会体现为在测试过程中对于运动物体的深度预测常常出现无限深度的“空洞”[39](见图2)。这引出了本文的第二个贡献:通过一个简单的自动化掩膜滤掉在帧间外观相差不大的像素。这使得网络能够忽略掉跟随相机以相同速度运动的物体,甚至在相机静止的情况下能够滤掉整个一帧。


图2 运动物体。单目方法对于在训练过程中被观测为运动的物体,比如运动的车辆,一般会出现预测的错误,即便对于显式处理运动物体的方法[71, 39, 52]也是如此。本文所提出的方法在这个问题上有很好的效果,但其他方法以及基线模型将出现预测错误。


与其他方法[76, 62, 39]一样,本文所提出方法同样在损失函数上增加了一个逐像素的掩膜μ以对像素进行加权。然而与先前工作不同的是,本文所提出的掩膜是二进制的,也就是说μ∈{0,1},并且是在神经网络前向计算过程中自动生成的,不是通过学习或者对物体运动的估计得到的。本文研究中观察得到在相邻帧中保持相同的像素一般意味着静止的相机,与相机相对静止运动的物体或者低纹理表面。因此本文所提出方法忽略掉了那些源图像It'与目标图像之间的光度误差小于扭曲后得到的目标图像与目标图像之间的光度误差的像素,如下式所示。


式中[]为艾佛森括号。在相机和其他物体以相似的速度运动的场景下,μ防止了在图像中相对静止的像素污染损失函数。同样的,当相机完全静止时,掩膜可以滤掉图像中的所有像素(图5)。本文研究中通过实验证明这个简单并且代价不大的修改能够带来显著的提升。


图5 自动化掩膜。上图显示了在训练第一代之后的自动化掩膜,其中黑色的像素将会从损失中被移除(亦即μ=0)。该掩膜防止与相机以相似速度运动的物体(上端)与当相机静止时的整个一帧(下端)对损失函数的污染。该掩膜通过输入图像和网络预测基于等式5计算得到。


多尺度预测

由于双线性采样造成的局部梯度[22]以及为了防止训练过程卡入局部最优解,现有的模型使用多尺度深度预测和图像重建。如此,总损失是在解码器各个尺度损失的组合。[13, 16]在每一个解码器尺度的分辨率上进行光度误差的计算。本文研究发现这种做法会导致在分辨率较低的深度图的大范围低纹理区域造成“空洞”,并且也会引起纹理拷贝的现象(图像中的细节被错误地引入到深度图当中)。在低分辨率的低纹理表面形成的空洞主要是由于该处的光度误差不能正确反映信息。这使得深度预测网络变得复杂,并且倾向于预测出错误的深度。
受到双目重建[57]的启发,本文所提出方法在多尺度预测方面提出了改进,将用于计算重投影误差的视差图分辨率与图像分辨率解耦。与以往在各自分辨率下计算光度误差不同,本文所提出网络首先在中间层将低分辨率的深度图上采样到输入图像的分辨率,然后重投影,重采样以及计算pe的操作均在更高的输入分辨率上进行(图3(d))。这个过程与区块匹配较为类似,因为低分辨率的视差值本质上代表了高分辨率下的一个区块的像素。这有效地限制了每个尺度的深度图向着同一个目标迈进——在高分辨率下尽可能准确地重建目标图像。

最终的训练损失

与[16]一样,本文所提出方法同样在预测的视差图上应用边界敏感的平顺性损失Ls。本文所提出方法将逐像素的深度平顺性损失与带有掩膜的光度损失组合起来成为L=μLp+λLs,并且对每一个像素,每一个尺度,每一个批上取平均。

3.3额外的改进

本文所提出的深度预测网络基于通用的U型网络结构[54],即一个带有残差连接的编码器-解码器网络,这使得其既能够表现深度抽象的特征也能表现局部信息。本文所提出网络采用ResNet18[18]作为编码器,其包含11M的参数,与在现有工作中[16]使用的更庞大也更缓慢的DispNet与ResNet50相比更加轻量化。与[31, 17]相似,本文所提出网络在ImageNet[55]上预训练的模型基础上开始训练,并且显示了与从头开始训练相比这种方法能够提升准确率(表2)。本文的解码器与[16]类似,在输出层采用sigmoid激活函数,在其他位置采用ELU激活函数[7]。本文将输出层sigmoid的输出σ利用公式D=1/(aσ+b)转换为深度,这其中a和b分别取值为0.1和100用以限制深度的范围。对于视图外的像素,本文在解码器以及扭曲采样过程中采用对称填充取代了零填充。本文发现这个方法显著减少了现有方法[16]在边界处的伪细节。


表2简化测试。本文的模型(Monodepth2)的不同变量组合在KITTI 2015[14]数据集上利用Eigen划分方法进行实验的结果。(a)基线模型,在不包含本文贡献的时候,表现较差。在加入本文提出的最小化重投影,自动化掩膜与全分辨率多尺度模块后,其表现得以显著提升。(b)即便在没有ImageNet预训练模型的基础上,本文提出的模型也能造成较大的提升,同样可以查看表1。(c)如果本文利用整个Eigen数据集进行训练(而不是由[76]提出的数据子集),本文模型与基线相比也有着较大提升。


对位姿预测而言,本文参照[63]的方法,并且将预测出的旋转以欧拉角进行表示,同时将旋转和平移乘上0.01的系数。对于单目训练,本文采用的图像序列长度为三帧,同时本文的位姿预测网络基于ResNet18,但其只接受两张图像(或者6个通道)作为输入,输出一个六自由度的相对位姿。本文以50%的概率进行水平翻转以及色彩变换(以±0.2,±0.2,±0.2,±0.1的比率分别进行随机的亮度,对比度,饱和度以及色调转换)。重要的是,色彩变换只被应用到输入到神经网络的图像中,并没有应用到计算Lp的图像中。输入到位姿和深度预测网络的三帧图像均采用同样的数据增强参数。

本文的模型基于Pytorch[47]进行实现,使用Adam[27]训练20代,批大小为12同时输入输出分辨率为640*192。本文在前15代采用1e-4的学习率,对于剩下的带将其降至1e-5。本文采用总数据的10%作为验证集。深度平顺性函数参数被设为0.001。在单块TitanXp显卡上,本文双目,单目以及混合模型训练时间分别为8,12和15小时。


4实验



本节验证了(1)相比于现有的取平均方法,本文提出的重投影损失能够帮助解决遮挡现象;(2)本文提出的自动化掩膜能够提升性能,特别在相机静止的场景下;(3)本文提出的多尺度外观匹配损失能够提升准确度。本文在KITTI 2015 双目数据集[14]上进行评估,使其结果能够和先前发表的单目方法进行比较。

4.1 KITTI Eigen划分

本文使用Eigen等[9]的数据集划分方法。除了在模型简化实验中,对于正常的单目训练,本文采用Zhou等[76]提出的预处理方法以去除静止帧。最终获得了39810个训练序列和4424个验证序列。本文对所有的图像采用同样的相机内参矩阵,设定相机的光心为图像的中央点,并且焦距设为KITTI数据集中所有焦距的平均值。对于双目和混合训练(单目+双目),本文将一个双目图像对看作固定长度的水平平移。在评估时,本文依照惯例[16]将超过80m的深度裁剪到80m。对于单目模型,本文的结果利用了[76]提出的中位数尺度恢复方法。对于利用双目训练的方法,本文没有采用中位数尺度恢复,因为尺度能够从已知的相机基线长度中得到。


本文比较了多种变量组合,以及不同训练监督下的结果,比如只使用单目视频训练(M),只使用双目视频训练(S),以及混合训练(MS)。表1中的结果表明本文提出的单目方法超过了现有所有的前沿自监督方法。本文也超过了近期显式计算光流和运动掩膜的方法[39, 52]。定性结果可以在图7中被找到。然而与所有基于图像重建的深度预测方法一样,本文的模型在物体违反朗伯体假设的时候会失效(图8)。



图8 失效场景。顶端:本文提出的模型无法在扭曲,反射或色彩饱和的位置进行良好的深度预测。底端:本文模型无法准确地勾勒出边界模糊(左侧)或者形状复杂(右侧)的物体。



表1 定量结果。本文方法与现有方法在KITTI 2015[14]利用Eigen划分方法下的比较。每一个指标下最好的结果用粗体表示,次好的结果用下划线表示。所有的结果都没有在进行后处理[16]的情况下显示。尽管本文的方法是为了单目训练设计,但其仍旧在双目训练的情况下获得了良好的准确度。同时本文也显示了当分辨率达到1024*320时能够达到更好的效果,这与[48]一致。如果这些高分辨率的结果超过了其他的方法(包括本文提出的低分辨率方法),那么它们会被标为粗体。


与预期一致,混合训练的方法能够提升准确率,尤其是对于对大的深度误差敏感的指标上,比如RMSE。尽管本文提出的方法围绕单目训练设计,但其在仅有双目训练的情况下依然有良好的表现。本文在比[48]的1024*384分辨率更低的情况下依然有着良好的表现,并且需要更短的训练时间(20 vs. 200代)。

4.1.1 KITTI模型简化测试

为了更好地了解本文方法中的各个组件对于系统整体提升的贡献,在表2中本文通过改变组件的组合进行了模型简化测试。这其中不包含本文方法的基线模型表现最差。当所有的组件组合到一起时,模型结果得到了显著的提升(Monodepth2 (full))。

自动化掩膜的作用

完整的Eigen[9] KITTI数据集包含了一些相机没有帧间运动的序列,比如数据采集车在交通灯前停止。这种“无相机运动”的序列会对自监督单目训练产生影响,因此常常在训练过程中被剔除[77]。本文在表2(c)中报告了没有像[77]那样去除数据,而是利用完整数据集进行训练的实验结果。结果表明利用完整数据集进行训练的基线模型表现差于本文提出的完整模型。另外,在表2(a)中,本文复现了[76]的可解释性掩膜并用其替代了自动化掩膜。然而发现复现[76]的掩膜效果甚至比取消掩膜更差,因此本文提出的自动化掩膜在各个层面上都有着性能的提升。自动化掩膜起作用的示例如图5所示。
ImageNet预训练模型的作用
与先前的工作[15, 31, 17]一样,本文利用在ImageNet[55]预训练的权重进行编码器的初始化。由于其他的一些单目深度预测任务并没有采用ImageNet预训练的方法,本文在表1中显示即便没有进行预训练,本文的模型仍然能够达到SOTA的效果。对于不使用预训练模型的情况本文训练了30代以确保收敛。表2显示了本文的方法对是否预训练两个模式下的影响。

4.2额外的数据集验证

KITTI里程计数据集

虽然本文的焦点在于更优的深度预测,但是本文的位姿预测网络仍能够与现有方法相比。现有方法通常会像其位姿预测网络中注入更多的图像帧,这会提升其泛化能力。

KITTI深度预测基准

本文同样在近期发表的KITTI深度预测评估数据集[60]上进行了实验,其具有更准确的深度真值,解决了先前数据集的很多质量问题。本文利用新的划分基准训练模型,并且使用在线服务器[28]进行评估。除此之外,[60]为Eigen划分方法测试集中93%的图像提供了更高质量的深度真值。与[1]一致,本文利用这些而不是将激光雷达投影到图像来与现有方法进行比较,仍然获取了优越的表现。

Make3D

表3显示了本文利用在KITTI上训练好的模型在Make3D数据集[56]的测试表现。在[16]的测试准则下,本文的表现优于现有所有的不使用深度进行监督的方法。然而需要注意的是,在Make3D数据集中深度真值与输入图像并没有很好地对齐,可能会造成潜在的评估问题。本文在图像中心以2*1的比率进行裁剪,并且在M模型上使用中位数尺度恢复。定性结果可以参见图6。


图6 定性的Make3D结果。所有的方法都在KITTI数据集上进行单目训练。


表3 Make3D结果。所有的M结果都利用了中位数尺度恢复,MS使用的是未修改的网络预测。


 

5结论



本文提出了一个完善的自监督单目深度预测模型,达到了SOTA的深度预测效果。本文介绍了三个贡献点:(i) 逐像素的最小重投影误差,用以处理单目视频中帧间的遮挡,(ii) 自动化掩膜,用以忽略相对相机静止的像素,(iii) 全分辨率多尺度采样方法。本文显示了其组合在一起组成了一个简单但高效的深度预测模型,并且可以利用单目,双目,单目和双目数据进行训练。



 

6参考文献



[1] F. Aleotti, F. Tosi, M. Poggi, and S. Mattoccia. Generative adversarial networks for unsupervised monocular depth prediction. In ECCV Workshops, 2018 

[2] A. Atapour-Abarghouei and T. Breckon. Real-time monocular depth estimation using synthetic data with domain adaptation via image style transfer. In CVPR, 2018. 

[3] V. M. Babu, K. Das, A. Majumdar, and S. Kumar. Undemon: Unsupervised deep network for depth and ego-motion estimation. In IROS, 2018. 

[4] A. Byravan and D. Fox. Se3-nets: Learning rigid body motion using deep neural networks. In ICRA, 2017.

[5] V. Casser, S. Pirk, R. Mahjourian, and A. Angelova. Depth prediction without the sensors: Leveraging structure for unsupervised learning from monocular videos. 2019. 

[6] W. Chen, Z. Fu, D. Yang, and J. Deng. Single-image depth perception in the wild. InNeurIPS, 2016. 

[7] D.-A. Clevert, T. Unterthiner, and S. Hochreiter. Fast and accurate deep network learning by exponential linear units (ELUs). arXiv:1511.07289, 2015.

[8] D.-A. Clevert, T. Unterthiner, and S. Hochreiter. Fast and accurate deep network learning by exponential linear units (elus). arXiv:1511.07289, 2015. [9] D. Eigen and R. Fergus. Predicting depth, surface normals and semantic labels with a common multi-scale convolutional architecture. In ICCV, 2015. [10] D. Eigen, C. Puhrsch, and R. Fergus. Depth map prediction from a single image using a multi-scale deep network. In NeurIPS, 2014. [11] H. Fu, M. Gong, C. Wang, K. Batmanghelich, and D. Tao. Deep ordinal regression network for monocular depth estimation. In CVPR, 2018. [12] Y. Furukawa and C. Hernandez. Multi-view stereo: A tutorial. Foundations and Trends in Computer Graphics and Vision, 2015. [13] R. Garg, V. Kumar BG, and I. Reid. Unsupervised CNN for single view depth estimation: Geometry to the rescue. In ECCV, 2016. [14] A. Geiger, P. Lenz, and R. Urtasun. Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite. In CVPR, 2012. [15] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014. [16] C. Godard, O. Mac Aodha, and G. J. Brostow. Unsupervised monocular depth estimation with left-right consistency. In CVPR, 2017.[17] X. Guo, H. Li, S. Yi, J. Ren, and X. Wang. Learning monocular depth by distilling cross-domain stereo networks. In ECCV, 2018. [18] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. InCVPR, 2016. [19] C. B. Hochberg and J. E. Hochberg. Familiar size and the perception of depth. The Journal of Psychology, 1952. [20] D. Hoiem, A. A. Efros, and M. Hebert. Automatic photo pop-up. TOG, 2005. [21] E. Ilg, N. Mayer, T. Saikia, M. Keuper, A. Dosovitskiy, and T. Brox. FlowNet2: Evolution of optical flow estimation with deep networks. In CVPR, 2017. [22] M. Jaderberg, K. Simonyan, A. Zisserman, and K. Kavukcuoglu. Spatial transformer networks. In NeurIPS, 2015.[23] J. Janai, F. Guney, A. Ranjan, M. Black, and A. Geiger. Unsupervised learning of multi-frame optical flow with occlusions. In ECCV, 2018. [24] H. Jiang, E. Learned-Miller, G. Larsson, M. Maire, and G. Shakhnarovich. Self-supervised relative depth learning for urban scene understanding. In ECCV, 2018. [25] K. Karsch, C. Liu, and S. B. Kang. Depth transfer: Depth extraction from video using non-parametric sampling. PAMI,2014. [26] A. Kendall, H. Martirosyan, S. Dasgupta, P. Henry, R. Kennedy, A. Bachrach, and A. Bry. End-to-end learning of geometry and context for deep stereo regression. In ICCV, 2017. [27] D. P. Kingma and J. Ba. Adam: A method for stochastic optimization. arXiv:1412.6980, 2014. [28] KITTI Single Depth Evaluation Server. http://www.cvlibs.net/datasets/kitti/eval depth.php?benchmark=depth prediction. 2017.[29] M. Klodt and A. Vedaldi. Supervising the new with the old-learning SFM from SFM. InECCV, 2018. [30] S. Kong and C. Fowlkes. Pixel-wise attentional gating for parsimonious pixel labeling.arXiv:1805.01556, 2018. [31] Y. Kuznietsov, J. Stuckler, and B. Leibe. Semi-supervised deep learning for monocular depth map prediction. In CVPR, 2017. [32] I. Laina, C. Rupprecht, V. Belagiannis, F. Tombari, and N. Navab. Deeper depth prediction with fully convolutional residual networks. In 3DV, 2016. [33] B. Li, Y. Dai, and M. He. Monocular depth estimation with hierarchical fusion of dilated cnns and soft-weighted-sum inference. Pattern Recognition, 2018. [34] R. Li, S. Wang, Z. Long, and D. Gu. UnDeepVO: Monocular visual odometry through unsupervised deep learning. arXiv:1709.06841, 2017. [35] R. Li, K. Xian, C. Shen, Z. Cao, H. Lu, and L. Hang. Deep attention-based classification network for robust depth prediction. arXiv:1807.03959, 2018. [36] Z. Li and N. Snavely. Megadepth: Learning single-view depth prediction from internet photos. In CVPR, 2018. [37] F. Liu, C. Shen, G. Lin, and I. Reid. Learning depth from single monocular images using deep convolutional neural fields. PAMI, 2015. [38] M. Liu, M. Salzmann, and X. He. Discrete-continuous depth estimation from a single image. In CVPR, 2014. [39] C. Luo, Z. Yang, P. Wang, Y. Wang, W. Xu, R. Nevatia, and A. Yuille. Every pixel counts++: Joint learning of geometry and motion with 3D holistic understanding. arXiv:1810.06125, 2018. [40] Y. Luo, J. Ren, M. Lin, J. Pang, W. Sun, H. Li, and L. Lin. Single view stereo matching. InCVPR, 2018. [41] R. Mahjourian, M. Wicke, and A. Angelova. Unsupervised learning of depth and ego-motion from monocular video using 3D geometric constraints. In CVPR, 2018. [42] N. Mayer, E. Ilg, P. Fischer, C. Hazirbas, D. Cremers, A. Dosovitskiy, and T. Brox. What makes good synthetic training data for learning disparity and optical flow estimation? IJCV, 2018. 

[43] N. Mayer, E. Ilg, P. Hausser, P. Fischer, D. Cremers, A. Dosovitskiy, and T. Brox. A large dataset to train convolutional networks for disparity, optical flow, and scene flow estimation. In CVPR, 2016. [44] I. Mehta, P. Sakurikar, and P. Narayanan. Structured adversarial training for unsupervised monocular depth estimation. In 3DV, 2018. [45] R. Mur-Artal, J. M. M. Montiel, and J. D. Tardos. ORBSLAM: a versatile and accurate monocular SLAM system. Transactions on Robotics, 2015. [46] J. Nath Kundu, P. Krishna Uppala, A. Pahuja, and R. V. Babu. AdaDepth: Unsupervised content congruent adaptation for depth estimation. In CVPR, 2018. [47] A. Paszke, S. Gross, S. Chintala, G. Chanan, E. Yang, Z. DeVito, Z. Lin, A. Desmaison, L. Antiga, and A. Lerer. Automatic differentiation in PyTorch. In NeurIPS-W, 2017. [48] S. Pillai, R. Ambrus, and A. Gaidon. Superdepth: Selfsupervised, super-resolved monocular depth estimation. In ICRA, 2019. [49] A. Pilzer, D. Xu, M. M. Puscas, E. Ricci, and N. Sebe. Unsupervised adversarial depth estimation using cycled generative networks. In 3DV, 2018. [50] M. Poggi, F. Aleotti, F. Tosi, and S. Mattoccia. Towards real-time unsupervised monocular depth estimation on cpu. In IROS, 2018. [51] M. Poggi, F. Tosi, and S. Mattoccia. Learning monocular depth estimation with unsupervised trinocular assumptions. In 3DV, 2018. [52] A. Ranjan, V. Jampani, K. Kim, D. Sun, J. Wulff, and M. J. Black. Adversarial collaboration: Joint unsupervised learning of depth, camera motion, optical flow and motion segmentation.arXiv:1805.09806, 2018. [53] Z. Ren, J. Yan, B. Ni, B. Liu, X. Yang, and H. Zha. Unsupervised deep learning for optical flow estimation. In AAAI, 2017. [54] O. Ronneberger, P. Fischer, and T. Brox. U-Net: Convolutional networks for biomedical image segmentation. In MICCAI, 2015. [55] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, et al. Imagenet large scale visual recognition challenge. IJCV, 2015.[56] A. Saxena, M. Sun, and A. Ng. Make3d: Learning 3d scene structure from a single still image. PAMI, 2009. [57] D. Scharstein and R. Szeliski. A taxonomy and evaluation of dense two-frame stereo correspondence algorithms. IJCV, 2002. [58] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015.[59] D. Sun, X. Yang, M.-Y. Liu, and J. Kautz. PWC-Net: CNNs for optical flow using pyramid, warping, and cost volume. In CVPR, 2018. [60] J. Uhrig, N. Schneider, L. Schneider, U. Franke, T. Brox, and A. Geiger. Sparsity invariant CNNs. In 3DV, 2017. [61] B. Ummenhofer, H. Zhou, J. Uhrig, N. Mayer, E. Ilg, A. Dosovitskiy, and T. Brox. DeMoN: Depth and motion network for learning monocular stereo. In CVPR, 2017. [62] S. Vijayanarasimhan, S. Ricco, C. Schmid, R. Sukthankar, and K. Fragkiadaki. SfM-Net: Learning of structure and motion from video. arXiv:1704.07804, 2017. [63] C. Wang, J. M. Buenaposada, R. Zhu, and S. Lucey. Learning depth from monocular videos using direct methods. In CVPR, 2018. [64] Y. Wang, Y. Yang, Z. Yang, L. Zhao, and W. Xu. Occlusion aware unsupervised learning of optical flow. In CVPR, 2018.[65] Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. Image quality assessment: from error visibility to structural similarity. TIP, 2004. [66] Y. Wu, S. Ying, and L. Zheng. Size-to-depth: A new perspective for single image depth estimation. arXiv:1801.04461, 2018. [67] J. Xie, R. Girshick, and A. Farhadi. Deep3D: Fully automatic 2D-to-3D video conversion with deep convolutional neural networks. In ECCV, 2016.[68] N. Yang, R. Wang, J. Stuckler, and D. Cremers. Deep virtual stereo odometry: Leveraging deep depth prediction for monocular direct sparse odometry. In ECCV, 2018. [69] Z. Yang, P. Wang, Y. Wang, W. Xu, and R. Nevatia. LEGO: Learning edge with geometry all at once by watching videos. In CVPR, 2018. [70] Z. Yang, P. Wang, W. Xu, L. Zhao, and R. Nevatia. Unsupervised learning of geometry with edge-aware depth-normal consistency. In AAAI, 2018. [71] Z. Yin and J. Shi. GeoNet: Unsupervised learning of dense depth, optical flow and camera pose. In CVPR, 2018.[72] J. Zbontar and Y. LeCun. Stereo matching by training a convolutional neural network to compare image patches. JMLR, 2016.[73] H. Zhan, R. Garg, C. S. Weerasekera, K. Li, H. Agarwal, and I. Reid. Unsupervised learning of monocular depth estimation and visual odometry with deep feature reconstruction. InCVPR, 2018. [74] Z. Zhang, C. Xu, J. Yang, Y. Tai, and L. Chen. Deep hierarchical guidance and regularization learning for end-to-end depth estimation. Pattern Recognition, 2018. [75] H. Zhao, O. Gallo, I. Frosio, and J. Kautz. Loss functions for image restoration with neural networks. Transactions on Computational Imaging, 2017. [76] T. Zhou, M. Brown, N. Snavely, and D. Lowe. Unsupervised learning of depth and ego-motion from video. In CVPR, 2017. [77] T. Zhou, P. Krahenbuhl, M. Aubry, Q. Huang, and A. A. Efros. Learning dense correspondence via 3d-guided cycle consistency. In CVPR, 2016. [78] D. Zoran, P. Isola, D. Krishnan, and W. T. Freeman. Learning ordinal relationships for mid-level vision. In ICCV, 2015. [79] Y. Zou, Z. Luo, and J.-B. Huang. DF-Net: Unsupervised joint learning of depth and flow using cross-task consistency. In ECCV, 2018.