Deeper Depth Prediction with Fully Convolutional Residual Networks


作者:Iro Laina、Christian Rupprecht、Vasileios Belagiannis

摘要:

本文讨论了在给定一副RGB图像的情况下估计景物深度图的问题。我们提出了一个包含残差学习的完全卷积架构来模拟单眼图像与深度图之间的模糊映射。为了提高输出分辨率,我们提出了一种新的方法来有效地学习网络中的特征图上采样。对于优化,我们引入了方向Huber loss,它特别合适与手头的任务,并由深度图中常见的值分布驱动。我们的模型由一个单一的体系结构组成,该体系结构是经过端到端训练的,不依赖于后处理技术,例如,CRFs或者其他额外的优化步骤。因此,它可以在图像或视频上实时运行,在评估中,我们发现所提的模型包含参数少,所需的训练数据少,同时在深度估计方面优于所有方法。代码和模型是公开的。(https://github.com/iro-cp/FCRN-DepthPrediction)

一、介绍

从单一视觉进行深度估计是一门与计算机视觉一样古老的学科,它包含了多年来发展起来的几种技术。其中最成功的技术之一是结构运动(Structure from motion,SfM)[34];它利用相机运动,通过不同的时间间隔来估计相机姿势,进而通过对连续视图的三角剖分来估计深度。除了运动外,还可以使用其他工作假设来估计深度,例如,照明变化[39]或者焦距变化[33]。

在缺乏此类环境假设的情况下,由于将强度或颜色测量值映射到深度值的内在模糊性,从一般场景的单个图像进行深度估计是一个不适定问题。虽然这也是人类大脑的一个局限,但深度知觉仍然可以从单眼视觉中显现出来。因此,开发一个能够利用单目视觉线索估计深度图的计算机视觉系统,不仅是一项具有挑战性的任务,而且是直接深度传感不可用或者不能实现的情况下的一次必要任务。此外,总所周知,合理准确的深度信息的可用性对于相对于仅RGB的对应物改进,许多计算机视觉任务是总所周知的,例如在重建[23]、识别[26]、语义分割[5]或人类姿态估计[35]中。

为此,有几项研究工作致力于解决单目深度估计问题。第一种方法是假设超混合为平面并通过马尔可夫随机场(MRF)通过平面系数推断深度[30]。在[16,20,37]中,也考虑了超混合,其中条件随机场(CRF)用于深度估计的正则化。数据驱动的方法,如[10,13]已经提出基于手工构建的特征来执行图像匹配,一检索给定查询图像的训练集中最相似候选对象,然后对相应的候选深度进行扭曲和合并,以产生最终的效果。

最近,卷积神经网络(CNNs)被用来学习颜色像素与深度之间的隐式关系[5,6,16,19,37]。CNN方法通常与基于CRF的正则化相结合,作为后处理步骤[16,37]或通过结构化深度学习[19]以及随机森林[27]。这些方法包括更高的复杂度,这是由于在深度网络中涉及的参数数量高[5,6,19]或者联合使用一个CNN或 CRF [16,37] 。然而,深度学习大大提高了标准基准数据集的准确性,将这些方法列为最先进的方法。

在这项工作中,我们提出了使用CNN是学习单张图像与对应的深度图之间的映射。我们的工作有如下的贡献:首先,我们将全卷积结构引入深度预测,该结构具有新颖的上采样块。允许高分辨率的密集输出图,同时,比现有技术要求更少的参数和一个数量级的训练数据。虽然优于基准数据集上的所有现有方法[23,29]。我们进一步提出了一种更有效的上卷积方案,并将其与残差学习的概念[7]相结合,为特征图的有效上采样创建投影块。最后,我们通过基于反向Huber函数(berHu)[40]的损耗优化来训练网络,并从理论和实验上证明了为什么它是有益的,并且更适合当前的任务。分析了网络深度、损耗函数和上采样所采用的具体层对网络性能的影响,分析了它们的效益。最后,为了进一步评估我们的方法的准确性,我们在三维重建场景中使用训练模型,其中我们使用一系列RGB帧及其预测深度图来同时定位和建图(SLAM)

二、相关工作

基于图像数据的深度估计最初依赖于立体视觉[22,32],使用同一场景的图像对来重建3D形状。在单视图情况下,大多数方法依赖于运动(来自运动结构[34])或不同的拍摄条件(形状来自阴影[39],形状来自于散焦[33])。尽管缺乏这类信息会产生歧义。但受单目线索对于人类深度感知的类比启发,还研究了单RGB图像的深度图预测。下面,我们将重点介绍与我们的方法类似的针对单个RGB输入的相关工作。

传统的单目深度估计方法主要依赖于手工制作的特征,并使用概率图形模型来解决这个问题[8,17,29,30],通常会对场景几何做出强有力的假设。Saxena等人[29]的第一个工作之一是使用MRF从图像中提取的局部和全局特征推理深度,而在MRF公式中引入超像素[1]以强制执行相邻约束。他们的工作后来扩展到三维场景重建[30]。受此启动,Liu等人[17]将语义分割与深度估计相结合,其中预测的标签被用作附加约束,以促进优化任务。Ladicky等人[15]用分类方法联合预测标签和深度。

第二组相关工作包括深度转移的非参数方法[10、13、18、20],其通常在给定的RGB图像和RGB-D存储库的图像之间执行基于特征的匹配(例如GIST[24]、HOG[3]),以便找到最近的邻居。然后,将检索到的深度对应项进行扭曲和组合,以生成最终的深度图。Karsch等人[10]使用SIFT流[18]执行翘曲,然后是全局优化方案,而Konrad等人[13]在检索到的深度图上计算中值,然后是用于平滑的交叉双边滤波。Liu等人[20]没有扭曲候选对象,而是将优化问题表述为具有连续和离散变量势的条件随机场(CRF)。值得注意的是,这些方法依赖于这样的假设:RGB图像中区域之间的相似性也意味着相似的深度线索。

最近,在深度学习领域的显著进展推动了对CNNs用于深度估计的研究。由于这项任务与语义标记密切相关,大多数工作都建立在ImageNet大规模视觉识别挑战(ILSVRC)[28]最成功的架构上,通常使用AlexNet[14]或更深的VGG[31]初始化网络。Eigen等人[6]首次使用CNN从双尺度结构中的单个图像中回归稠密深度图,其中第一阶段(基于AlexNet)产生粗略输出,第二阶段改进原始预测。他们的工作后来被扩展到另外一个预测法线和标签的更深入和更具辨别力的模型(基于VGG),和一个用于进一步细化的三尺度体系结构[5]。与[5,6]的深层架构不同,Roy和Todorovic[27]提出将CNN与回归森林相结合,在每个树节点使用非常浅的架构,从而限制了对大数据的需求。

提高预测深度图质量的另一个方向是CNNs和图形模型的结合使用[16,19,37]。Liu等人[19]建议在CNN训练期间以CRF丢失的形式学习一元和成对电位,而Li等人[16]和Wang等人[37]则使用分层CRF将其逐块CNN预测从超级像素级细化到像素级。

我们的方法使用CNN进行深度估计,不同于以往的工作,它改进了典型的全连接层,后者在参数数量上很昂贵,而全卷积模型包含了有效的剩余向上采样块我们称之为向上预测,在处理高维回归问题时更为合适。

三、方法

在这一部分中,我们描述了我们从单个RGB图像进行深度预测的模型。我们首先介绍了采用的体系结构,然后分析了本文提出的新组件。随后,我们提出了一个适合给定任务优化的loss函数。

3.1 CNN架构

目前几乎所有的CNN结构都包含一个收缩部分,通过一系列的卷积核汇集操作逐渐降低输入图像的分辨率,从而给更高层次的神经元提供更大的接收场,从而捕获更多的全局信息。在期望输出为高分辨率图像的回归问题中,需要某种形式的上采样,以获得更大的输出映射。Eigen等人[5,6]使用典型分类网络中的完全卷积层,产生一个完全接收场。然后将结果重塑为输出分辨率。

我们介绍一种用于深度预测的全卷积网络。在这里,接收场是架构设计的一种重要方面,因为没有明确的完全联系。具体来说,假设我们设置了304x288像素的输入(如在[6]中),并且预测输出图将在输入分辨率的大约一半。我们还研究了流行的体系结构(AlexNet[14],VGG-16[31])作为压缩部分,因为它们的预训练权重有助于收敛。AlexNet的最后一个卷积层的接收场是151x151像素,当没有完全连接层的网络应该捕获真实的全局信息(如单目线索)时,只允许非常低分辨率的输入图像。VGG-16获得了276 x 276的更大的接收场,但仍然限制了输入分辨率。Eigen和Fergus[5]在从AlexNet切换到VGG时显示了实质性的改进,但是由于他们的两个模型都使用完全连接的层,这是由于VGG具有更高的区分能力。

最近,ResNet[7]引入了跳过层,跳过两个或更多的卷积,并将其相加为输出,包括每次卷积后的批处理规范化[9](参见图1)。按照这种设计,可以创建更深层的网络,而不必面对退化或消失的梯度。这些非常深的架构的另一个优点是它们的大接收场;ResNet-50捕获483 x 483的输入大小,即使在更高的分辨率下也足以完全捕获输入图像。考虑到我们的输入大小和这种架构,当删除最后一个池化层时,最后一个卷积层产生2048个空间分辨率为10 x 8像素的特征图。如后文所述,该模型使用残差上卷积,产生160x128像素的输出。如果我们添加一个相同大小的完全连接层,它将引入33亿个参数,在内存中占12.6GB,使得这种方法在当前硬件上不可能实现。这进一步推动了我们提出的一种全卷积结构,该结构具有包含较少权重的上采样块,同时提高了预测深度图的精度。

机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_SLAM


我们提出的架构如图1所示,在纽约大学深度2数据集[23]的情况下,特征地图大小对应于为输入大小304x228训练的网络该网络的第一部分基于ResNet-50,并用预先训练好的权值初始化。我们架构的第二部分引导网络通过一系列的上池化层和卷积层来学习其升级。在这些上采样块的集合之后,应用漏失并由产生预测的最终卷积层成功。

上投影块:上池化层执行池的反向操作,提高特征地图的空间分辨率。我们采用了[4]中描述的方法来实现上池化层,以便通过将每个角点映射到2x2(零)内核的左上角,使大小加倍。每个这样的层后面都紧跟一个5x5的卷积,因此,它被应用于每个位置的一个以上的非零元素,并通过ReLU激活函数依次应用。我们把这个块称为上卷积,根据经验,我们叠加了四个这样的上卷积块,即最小特征图的16倍以上尺度,从而在内存消耗和分辨率之间实现了最佳的权衡。我们发现在添加第五个块时性能并没有提高。

Fast Up-Convolutions 进一步改进了上卷积运算,提高了运算效率,是整个网络的训练时间减少了15%左右,这也适用于新引入的上投影操作。主要的直观:在取消池化 75% 的结果要素映射包含零后,因此以下 5 × 5 卷积主要在零上工作,这在我们的修改公式中可以避免。

这可以在图3中观察到。在左上角,原始特征图是上池化的(上中),然后由5x5滤波器卷积我们观察到,在上池化的特征图中,根据5x5滤波器的位置(红色、蓝色、紫色、橙色边界框),只有特定的权重与潜在的非零值相乘。这些权重分为四个不重叠的组,用不同的颜色和图中的A、B、C、D表示根据滤波器组,我们将原来的5x5滤波器分为4个新的滤波器,其尺寸分别为(A)3x3,(B)3x2,(C)2x3和(D)2x2现在可以通过交错四个生成的特征映射的元素来实现与原始操作(解冷和卷积)完全相同的输出,如图3所示图2(d)显示了从简单上卷积块到建议上投影的相应变化。

机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_三维重建与深度估计_02


机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_SLAM_03


机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_SLAM_04


机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_计算机视觉_05

四、实验结果

在本节中,我们将对我们的方法进行全面分析,评估构成CNN体系结构的下采样和上采样部分的不同组件。我们还报告了由我们的模型获得的定量和定性结果,并将其与深度预测的两个标准基准数据集(即纽约大学深度v2[23](室内场景)和Make3D[30](室外场景)中的最新技术进行了比较。

4.1 实验步骤

为了实现我们的网络,我们使用MatConvNet[36],并在一个具有12GB GPU内存的NVIDIA GeForce GTX TITAN上进行训练。结构的下采样部分的权重层由在ILSVRC[28]数据上预先训练的用于图像分类的相应模型(AlexNet、VGG、ResNet)初始化。上采样部分的新添加层被初始化为从具有零均值和0.01方差的正态分布中采样的随机滤波器。

该网络在RGB输入上进行训练,以预测相应的深度图。我们使用数据增强来增加训练样本的数量输入图像和相应的地面真值通过小旋转、缩放、颜色变换和0.5次机会的翻转变换,其值遵循Eigen等[6]。最后,我们通过将增强图像的随机裁剪降到网络的选定输入大小来对小翻译进行建模。

对于随后的定量评估,根据我们的实验结果计算先前工作中使用的相同误差度量[5、6、15、16、19]。

4.2 NYU Depth 数据集
首先,我们评估了室内场景重建中最大的RGB-D数据集之一,NYU Depth v2[23]。这个原始数据集有464个场景组成,有微软 Kinect摄像机拍摄,官方分割为249个训练场景和215个测试场景。然而,对于训练,我们的方法只需要原始分布的一小部分。我们从每个训练系列中采样等间隔的帧,从而产生大约12K的独特图像。在提取帧的offline增强之后,我们的数据集包括大约95K的RGB-D图像对。我们指出,我们的数据集比[5,6]中训练模型所需的数据集要小得多,它由120K个独特的图像组成,以及用[16]的分块方法提取的800k个样本。在[6]之后,大小为640x480像素的原始帧被下采样到1/2分辨率,中心裁剪到304x228像素作为网络的输入。最后,我们训练我们的模型的批量大小为16,约20 epochs。各层的起始学习率为10-2,当我们观察到高原时,每6-8个epochs就逐渐减少一次,动量为0.9。

为了对我们的方法进行定量评估并与该数据集上的最新技术进行比较,我们计算了654幅图像的常用测试子集上的各种误差度量。预测的大小取决于具体的模型;在我们的配置中,有四个上采样阶段组成,相应的输出分辨率分别为128x96(AlexNet)、144x112(VGG)和160x128(ResNet-based models)。然后,使用双线性插值将预测值向上采样回原始大小(640x480),并将其与所提供的地面真实值进行比较,其中填充了无效像素的深度值。

架构评估 在表1中,我们比较了所提出架构的不同CNN变体,以研究每个组件的影响。首先,我们使用AlexNet的卷积块评估。我们使用AlexNet、VGG-16和ResNet-50的卷积块来评估体系结构深度的影响。显然,AlexNet上的完全卷积结构(UpConv)优于典型的完全连接网络(FC)如第3.1,原因之一是AlexNet的视场相对较小,不足以捕获移除完全连接层时所需的全局信息。相反,使用VGG作为核心架构,提高了深度估计的准确性由于高维回归的全连接VGG变量包含了大量的参数,因此我们只在这里对全卷积(UpConv)模型进行测试。然而,[5]确实采用了基于VGG的全连接层模型(其结果见表2),其性能优于我们的全卷积VGG变体,主要是由于其多尺度结构,包括细化尺度。

机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_计算机视觉_06


机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_计算机视觉_07


最后,切换到具有完全连接层(ResNet FC)的ResNet(不移除最终池层)可以获得与低分辨率输出(64x48)的[5]相似的性能,使用的数据是原来的10倍;但是,提高输出分辨率(160x128)会产生大量参数,使收敛成为更努力。这进一步激发了在处理高维问题时,替换完全连接层的推理和对更有效的上采样技术的需求。我们使用简单上卷积(ResNet UpConv)的完全卷积变体提高了精度,最后,使用上投影块增强的所提出的架构(ResNet UpProj)给出了迄今为止最好的结果。就参数数目而言,当从完全连接层切换到完全卷积网络时,我们看到参数的急剧减少。我们研究的另一种常见的上采样技术是连续2x2核的反卷积,但上投影明显优于它定性地说,由于我们的方法包含四个连续的向上采样步骤(每个块的分辨率是2倍),因此与FC变量相比,它可以在输出中保留更多的结构(见图4)。

机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_SLAM_08


在所有实验中,berHu损失都优于L2相对误差的差异较大,这可以用L1(berHu)在L2上的较大梯度来解释,对于较小的残差;相对误差的影响较大,因为距离较小的像素对较小的误差更敏感。这一效应在富有挑战性的σ1测量中也很明显,表现为更强的增益。

最后,我们测量单个图像(1.5 ms)的单上卷积块的时序,并将其与向上投影(0.14 ms)进行比较。这超过了理论速度4,这是因为更小的滤波器尺寸更受益于cuDNN内部的线性化。此外,我们的模型的优点之一:是总的计算时间在我们的设置中,使用提出的上采样(78ms,上卷积)预测单个图像的深度图只需55ms。这使得能够实时处理图像,例如来自web cam的图像。当一批处理多个图像时,可以进一步加快速度批量大小为16时,每幅图像的向上投影为14ms,向上卷积为28ms。

与相关方法比较。在表2中,我们将所提出的体系结构获得的结果与相关工作报告的结果进行了比较。此外,在图 4 中,我们使用建议的方法 (ResNet-UpProj) 将估计深度图的准确性与不同变体(AlexNet、VGG、ResNet-FC-64x48)以及 Eigen 的公开预测进行了定性比较。和Fergus [5]。人们可以清楚地看到从AlexNet到ResNet在质量上的改进,然而ResNet的全连接变体尽管其精度有所提高,但仍然局限于粗略的预测。提出的全卷积模型大大提高了深度预测图的边缘质量和结构清晰度。

有趣的是,我们的深度预测显示出值得注意的视觉质量,即使它们是由一个单一的模型推导出来的,端到端的训练,没有任何额外的后处理步骤,例如CRF推断[16,37]。另一方面,[5]通过将RGB图像和原始预测相结合的多尺度体系结构来改进它们的预测,以创建具有视觉吸引力的结果。然而,它们有时会错误地估计全局尺度(第二行和第三行),或者在原始图像中有高纹理区域的情况下引入噪声,即使在地面真值(最后一行)中没有实际的深度边界此外,我们与[5 ]中的参数的数目进行比较,我们计算了三个尺度的2亿1800万,这是我们模型的大约3.5倍。相反,这里提出的CNN架构是在考虑可行性的情况下设计的;在高维问题中,参数的数量不应不可控制地增加。这进一步意味着需要减少梯度步骤的数量以及训练所需的数据样本。我们的单一网络能够更好地推广,并且成功地解决了先前CNN深度估计方法所遇到的粗糙度问题。

4.3 Make3D Dataset

此外,我们在室外场景的Make3D数据集[30]上评估了我们的模型。它由400个训练图像和134个测试图像组成,使用定制的三维扫描仪采集。由于数据集的采集日期是几年前,地面真实深度图的分辨率被限制在305-55,与原始的1704x2272像素的RGB图像不同。在[20]之后,我们将所有映像调整为 345 × 460,并且由于体系结构和硬件限制,可将 RGB 输入到网络的分辨率降低一半。我们使用性能最佳的模型(ResNet-UpProj)对大约15k个样本的增强数据集进行训练,该模型的批处理大小为16个图像,用于30个时期。在使用berHu损失时,起始学习率为0.01,但在使用L2优化时,需要从0.005开始进行更仔细的调整,动量为0.9。请注意,由于数据集的局限性,考虑到低分辨率的地面真实度和长距离的不精确性(例如,80米处的天空像素),我们通过屏蔽70米以上距离的像素来根据地面真实度深度图进行训练。

为了将我们的结果与最新的结果进行比较,我们使用双线性插值将预测的深度图重新采样到345x460。表3报告了基于(C1)标准的先前工作相比的误差,根据[20]的建议和我们的培训暗示,在深度小于70m的区域计算。另外,[20]使用每像素天空分类对图像进行预处理,以将其排除在训练之外。当使用L2或berHu损失函数训练时,我们的方法明显优于以前的所有工作。在这个具有挑战性的数据集中,berHu损失的优势更为突出。与NYU类似,berHu由于近深度值的加权而使相对误差比RMS提高。更多这个数据集的定性结果如图5所示。

机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_三维重建与深度估计_09


机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_计算机视觉_10

4.4 应用于SLAM

为了补充前面的结果,我们展示了SLAM应用程序中深度预测的有用性,目的是重建三维环境的几何结构。特别是,我们部署了一个SLAM框架,其中通过Gauss Newton优化获得帧到帧的跟踪,对连续帧对上计算的像素级强度差进行优化,而当前帧和全局模型之间的深度测量融合则通过基于点的融合进行我们希望指出,据我们所知,这是第一个基于单个图像深度预测的SLAM重建演示。

与使用NYU深度数据集的地面真值所估计的深度值相比,使用拟议的ResNet-UpProj架构估计的深度值获得的SLAM结构与使用NYU深度数据集的部分深度值得到的深度值得到的SLAM结构之间的定性比较,如下图6所示。该图还包括与使用AlexNet和VGG架构获得的深度预测的比较。可以看出,深度预测的改进精度,加上我们的上采样方法的良好边缘保持特性,不仅在图4的定性结果中明显,而且与其他结构相比,可以产生更精确的SLAM重建。我们希望指出的是,虽然我们不相信它的精度可以与利用时间一致性进行深度估计的方法(如SfM和单目SLAM)相比,但我们的方法并没有明确地依赖视觉特征来估计深度,因此也有可能应用于具有特征的场景由低纹理表面,如墙壁,冷杉和其他结构通常存在于室内环境。虽然显然超出了本文的范围,但我们发现这些方面足够相关,值得进一步分析。

机器学习残差随着被解释变量增大而增大 残差与解释变量的关系_三维重建与深度估计_11

^

五、总结

在这项工作中,我们提出了一种新的方法,从一个单一的图像深度估计问题与典型的CNN方法不同,我们的方法需要一个多步骤的过程来改进它们最初的粗略深度预测,我们的方法包含一个强大的、单尺度的CNN结构,它遵循残差学习。所提出的网络是完全卷积的,由上投影层组成,允许训练更深层次的配置,同时大大减少要学习的参数数量和所需的训练样本数量。此外,我们还说明了一种更快、更有效的卷积层提升方法。通过对典型l2损失和berHu损失函数的优化,对不同的建筑构件进行了全面的评价,表明该方法更适合于地面真深度图的潜在值分布。总而言之,从我们的贡献中产生的模型不仅比现有的方法更简单,可以在较少的时间内以较少的数据进行训练,而且还可以获得更高质量的结果,这使得我们的方法在两个基准数据集中达到最先进的深度估计。