作者 | Derrick Mwiti
翻译 | 栗峰
校对 | 京枚 编辑 | Camel
原文标题:Research Guide for Depth Estimation with Deep Learning
本文介绍了几篇具有指导意义的论文,助你深入了解何为深度估计。深度估计是一种计算机视觉任务,旨在从2D图像中估计深度。这个任务输入RGB图像,输出深度图。深度图包含了从视图看图像中的被摄物体距离的信息。
深度估计的应用包括:平滑图像的模糊部分、更好地渲染3D场景、自动驾驶、机器人抓取、机器人辅助手术、电影中的2D到3D的自动转换以及3D计算机图形学中的阴影映射等。
在这篇指南中,我们将介绍几篇通过深度学习来解决这些问题的论文。以下两幅图像清晰地表明了在实际应用中的深度估计:
1、基于全卷积残留网络的深度预测(IEEE 2016)
论文标题:Deeper Depth Prediction with Fully Convolutional Residual Networks
论文地址:https://arxiv.org/abs/1606.00373v2
这篇论文提出了一种完全卷积架构,以解决在给定RGB图像的情况下对场景深度图进行估计的问题。通过残留学习对单目图像和深度图之间的模糊映射进行建模。反向Huber loss被用来做优化。这个模型可在图像或视频上实时运行。
这篇论文提出的方法是使用CNN进行深度估计。该模型是完全卷积的,并包含跟踪高维回归问题的有效残留向上采样模块(向上投影)。
网络的第一部分基于ResNet50,并使用预训练的权值进行初始化。第二部分是卷积和解池层的序列,利用它们来指导网络学习其 upscaling 。然后应用Dropout,进行最后的卷积,得到最终的预测。
解池层可提高特征图谱的空间分辨率。通过将每个条目映射到2 x 2内核的左上角实现解池层,从而使大小加倍。每个这样的层后面是一个5×5的卷积。这个模块被称为上卷积。在上卷积之后添加了一个简单的3×3卷积。投影连接从较低分辨率的特征图添加到结果中。
这篇文章还对上卷积运算进行了重新校准,使网络的训练时间减少了至少15%。如下图所示,在左上角,原始的特征图谱未被合并,并由一个5x5滤波器对其进行卷积。
与其他模型相比,文中提出的模型在NYU Depth v2数据集上的表现如下:
2、基于影像的深度无监督学习和自我运动(CVPR 2017)
论文标题:Unsupervised Learning of Depth and Ego-Motion from Video (CVPR 2017)
论文链接:https://arxiv.org/abs/1704.07813v2
这篇论文的作者提出了一种无监督的学习框架,用于完成从非结构化视频序列中进行单目深度和摄像头 移动估计的任务。这种方法采用单视图深度和多视图姿态网络。损失函数是基于使用计算出的深度和姿态将附近的视图变形到目标上的结果。
作者提出了一种用于联合训练未标记视频序列中的单视图深度CNN和摄像头姿态估计CNN的框架。监督通道基于视图合成。深度网络将目标视图作为输入,并输出每个像素的深度图。给定图像中每个像素深度以及附近视图中的姿态和可见性,可以合成目标视图。这种合成可以使用CNN作为几何和姿态估计模块以完全可区分的方式来实现。
作者采用DispNet架构,这种架构是一个具有跳过连接和多尺度侧面预测的编码-解码的设计。除了预测层外,其他所有卷积层都使用ReLU激活函数。
与所有原视图连接的目标视图构成了姿态估计网络的输入。输出是目标视图和每个原视图之间的相对姿态。该网络由7个stride-2卷积以及紧随其后的1 x 1卷积和 6 ∗(N -1)个输出通道组成,这些对应于每个源的3个欧拉角和3D平移。全局平均值应用于所有空间位置的合成预测。除了最后的卷积层(其中应用了非线性激活)之外,所有其他卷积层之后都带有ReLU激活函数。
可解释性预测网络与姿态网络共享前五个特征编码层。随后是具有多尺度侧面预测的5个反卷积层。除预测层外,所有所有conv 或deconv层后均跟随ReLU激活函数。
与其他模型相比,这个模型的性能如下所示:
3、具有左右一致性的无监督单目深度估计(CVPR,2017)
论文标题:Unsupervised Monocular Depth Estimation with Left-Right Consistency
论文链接:https://arxiv.org/abs/1609.03677v3
这篇论文提出了一种不需要基准深度数据就能进行单个图像深度估计的卷积神经网络。作者提出了一种网络体系结构,该体系结构执行端到端的无监督单目深度估计,而训练损失函数会强制网络内部左右深度的一致性。
网络通过推断使左边图像变形,匹配右边图像的视觉差异,从而来估计深度。左边输入的图像用于推断左向右和右向左的视觉差异。该网络使用双线性采样器生成具有向后映射的预测图像。这就形成了一个完全可区分的图像形成模型。
这种卷积的结构的灵感来源于DispNet。它由两个部分组成,编码器和解码器。解码器使用来自编码器激活模块的跳过连接(skip connections)来解析更高分辨率的细节。该网络预测了两种视觉差异图,从左到右和从右到左。
在训练过程中,网络通过从相反的立体图像中采样像素来生成图像。图像形成模型使用来自 spatial transformer网络(STN)的图像采样器并结合视差图对输入图像进行采样。这里使用的双线性样本是局部可区分的。
以下是在 KITTI 2015 stereo 200 训练集视差图像上获得的结果:
4、基于3D几何约束的单目视频深度无监督学习和自我运动(2018)
论文标题:Unsupervised Learning of Depth and Ego-Motion from Monocular Video Using 3D Geometric Constraints
论文链接:https://arxiv.org/abs/1802.05522v2
这篇论文的作者提出了一种从单个摄像头拍摄的视频中进行深度无监督学习和自我运动(Ego-Motion)的方法。它考虑了推断出的整个场景的3D几何形状,并在连续的帧之间增强了估计的3D点云和自我运动的一致性。这篇文章还采用了反向传播算法来对齐3D结构。该模型在KITTI数据集上进行了测试,并在手机摄像头上捕获了视频数据集。
无监督的学习深度取决于视频中是否存在自我运动。该网络根据视频中的两个连续帧产生单视图深度估计。自我运动的估计也是从这两个连续的帧中产生的。
训练模型的监督任务是通过要求相邻帧的深度和自我运动估计值保持一致实现的。作者提出了一种在不依赖于图像重建进行反向传播的情况下惩罚估计深度不一致性的损失函数。
这是在KITTI 特征测试集上得到的结果。
5、无传感器的深度预测:利用单目视频实现的无监督学习结构(AAAI 2019)
论文标题:Depth Prediction Without the Sensors: Leveraging Structure for Unsupervised Learning from Monocular Videos
论文链接:https://arxiv.org/abs/1811.06152v1
这篇论文研究的是场景深度和机器人自我运动的无监督学习任务,其中监督是由单目视频提供的,其实现则是在学习过程中引入几何结构。它包括对场景和单个被摄物体、摄像头的自我运动和从单目视频输入中获悉的被摄物体的移动数据进行建模。在文中作者还介绍了一种在线优化的方法。
作者介绍了一种与自我运动网络具有相同体系结构的被摄物体运动模型。不过,它的作用则是专门用来预测3D中单个被摄物体运动的。这个模型以RGB图像序列作为输入,由预先计算的实例分割掩模作为补充。运动模型的工作就是学习预测3D空间中每个被摄物体的变换向量,这将能够在相应的目标帧中创建观察到的被摄物体外观。
下图显示了使用这个模型得到的结果:
6、PlaneNet:基于单个RGB图像进行分段平面重建(CVPR 2018)
论文标题:PlaneNet: Piece-wise Planar Reconstruction from a Single RGB Image
论文链接:https://arxiv.org/abs/1804.06278v1
本文提出了一种用于从单个RGB图像进行分段重建平面深度图的深度神经网络——PlaneNet。
PlaneNet能够学习从单个RGB图像中推断出一组平面参数和相应的平面分割掩模。这里定义的损失函数与平面的顺序无关。此外,这个网络可以在一个非平面的表面上进行深度图的推断,其损失函数为了允许反向传播,采用了概率分割掩模。
PlaneNet是建立在扩展残留网络(DRN)上的。给定DRN的高分辨率最终特征图,可以组成三个预测任务的三个输出分支,分别为平面参数、非平面深度图和分割掩模。
平面参数分支具有全局平均池,可以将特征图的大小减小到1x1。然后是一个完全连接的层,以生成K×3平面参数,这里K是预测的恒定平面数。最后定义了基于Chamfer距离度量回归平面参数的不可知顺序损失函数(order-agnostic loss function)。
平面分割分支从金字塔池模块开始,然后是卷积层(用来生成平面和非平面表面的通道似然图)。在快速推理算法的基础上,再增加一个密集条件DCRF模块。DCRF模块是与上述各层联合训练的。随后使用标准的Softmax交叉熵损失对分割训练进行监督。
非平面深度分支共享相同的金字塔池化模块,后面跟着一个产生单通道深度图的卷积层。
下面是对NYUv2数据集深度精度的比较:
7、具有结构和语义的无监督单目深度和自我运动学习(AAAI 19)
论文标题:Unsupervised Monocular Depth and Ego-motion Learning with Structure and Semantics
论文链接:https://arxiv.org/abs/1906.05717v1
这篇论文所提出的方法结合了深度无监督单目学习和自我运动学习的结构和语义。
这篇论文所提出的方法能够通过对被摄物体运动进行建模来对动态场景进行建模,并且还可以适应可选的在线优化技术。对单个被摄物体运动的建模使这种方法能够处理高度动态的场景。这主要是通过在模型中引入的第三个组件实现的,该组件可以预测被摄物体在3D场景中的运动,它使用了与自我运动网络中相同的网络结构,不同的地方在于,它进行了权值的训练。运动模型预测了3D空间中每个被摄物体的变换向量。当应用于摄像头时,这将在相应的目标帧中创建所观察到的被摄物体的外观。最后的变形结果是运动被摄物体的个体变形与自我运动的结合。其中自我运动则是先掩盖图像中的对象运动计算得来的。
以下是在 KITTI数据集上得到的结果:
8、通过观看《冰雪奇缘》了解移动人物的深度(CVPR 2019)
论文标题:Learning the Depths of Moving People by Watching Frozen People
论文链接:https://arxiv.org/abs/1904.11111
这篇论文介绍的方法可预测在单目摄像头和场景中的人在自由移动的情况下的密集深度。这种方法首先从模仿人体模特的网络视频中学习人类的深度,它能够利用场景静态区域的运动视差线索来指导深度预测。
作者从YouTube中获得3D数据,并用它们进行监督训练;这些视频构成了新的人体模型挑战数据集(Mannequin Challenge (MC) dataset)。作者设计了一种以RGB图像、人类区域掩模和环境初始深度为输入的深度神经网络。
然后,它在整个图像上输出密集的深度图。这个模型生成的深度图可用于产生3D效果,如合成景深效果、深度感知修补、将虚拟被摄物体正确遮挡插入到3D场景中等。
本文的深度预测模型本质上是以有监督(MC数据集)的方式建立的。网络的完整输入包括参考图像、人体区域的二进制掩模、运动视差估计的深度图、置信度图和可选的人体关键点图。利用这些输入,网络可以预测整个场景的完整深度图。该网络的架构是沙漏网络(hourglass network)的一个变体,其中的最近邻上采样层被双线性上采样层所取代。
下面是从这个模型得到的结果:
头图来源:https://www.deviantart.com/ahmed7193/art/Depth-Wallpaper-250911343