Abstract
这段文字介绍了一种无需真实数据(ground truth)进行训练的自监督单目深度估计方法,该方法近年来备受关注。重点在于设计轻量级但有效的模型,以便能够在边缘设备上部署。许多现有架构通过使用更重的骨干网络来提升性能,但代价是模型的体积增大。本文提出了一种名为Lite-Mono的混合架构,既轻量级又能实现与现有方法相当的效果。
具体来说,本文研究了卷积神经网络(CNNs)和变换器(Transformers)的高效结合,提出了一个混合架构Lite-Mono。该架构包含两个模块:连续膨胀卷积模块(CDC)和局部-全局特征交互模块(LGFI)。CDC模块用于提取丰富的多尺度局部特征,而LGFI模块利用自注意力机制将长程全局信息编码到特征中。实验结果表明,Lite-Mono在准确性上大幅优于Monodepth2,同时可训练参数减少了约80%。
1. Introduction
许多机器人技术、自动驾驶和增强现实应用依赖于深度图来表示场景的3D几何结构。由于深度传感器会增加成本,因此从图像中推断深度图的卷积神经网络(CNNs)研究应运而生。有了标注的深度,可以训练回归CNN来预测单张图像上每个像素的深度值【10, 11, 22】。由于缺乏大规模准确的密集地面真实深度用于监督学习,自监督方法通过立体帧对或单目视频寻求监督信号受到青睐,并且近年来取得了很大进展。这些方法将深度估计任务视为新视图合成问题,最小化图像重建损失【5, 14, 15, 41, 45】。使用立体帧对时,摄像机运动是已知的,因此采用单个深度估计网络来预测深度。但如果仅使用单目视频进行训练,则需要额外的位姿网络来估计摄像机的运动。尽管如此,仍然更倾向于仅需单目视频的自监督方法,因为收集立体数据需要复杂的配置和数据处理。因此,本文也关注单目视频训练。
除了通过引入改进的损失函数【15】和语义信息【5, 21】来提高单目训练的准确性,以减轻遮挡和运动物体问题,许多研究致力于设计更有效的CNN架构【17, 33, 39, 41, 46】。然而,CNN中的卷积操作具有局部感受野,无法捕捉长程全局信息。为了获得更好的结果,基于CNN的模型可以使用更深的骨干网络或更复杂的架构【15, 28, 44】,这也导致模型尺寸增大。最近引入的视觉Transformer(ViT)【8】能够建模全局上下文,一些最新工作将其应用于单目深度估计架构【3, 35】,以获得更好的结果。然而,与CNN模型相比,Transformer中的多头自注意力(MHSA)模块的高计算量阻碍了轻量级和快速推理模型的设计【35】。
本文追求一种轻量且高效的自监督单目深度估计模型,采用混合CNN和Transformer架构。在所提出的编码器的每个阶段中,采用连续膨胀卷积(CDC)模块来捕捉增强的多尺度局部特征。然后,使用局部-全局特征交互(LGFI)模块计算MHSA,并将全局上下文编码到特征中。为了减少计算复杂度,在通道维度而不是空间维度计算交叉协方差注意力【1】。本文的贡献可以总结为以下三个方面:
- 提出了一种新的轻量架构,名为Lite-Mono,用于自监督单目深度估计。在模型大小和浮点运算(FLOPs)方面展示了其有效性。
- 所提出的架构在KITTI【13】数据集上显示出优越的准确性,相较于竞争性较大的模型,取得了最先进的效果且可训练参数最少。模型在Make3D【32】数据集上的泛化能力得到了进一步验证。额外的消融实验验证了不同设计选择的有效性。
- 在NVIDIA TITAN Xp和Jetson Xavier平台上测试了所提方法的推理时间,展示了其在模型复杂度和推理速度之间的良好平衡。
本文其余部分组织如下。第2节回顾了一些相关研究工作。第3节详细说明了所提出的方法。第4节阐述了实验结果和讨论。第5节总结了本文。
2. Related work
2.1. Monocular depth estimation using deep learning
单张图像深度估计是一个病态问题,因为一张2D图像可能对应于不同尺度的许多3D场景。使用深度学习的方法大致可以分为两类。
监督深度估计:使用地面真实深度图作为监督,监督深度学习网络能够从输入图像中提取特征并学习深度与RGB值之间的关系。Eigen等人【10】首次使用深度网络从单张图像估计深度图。他们设计了一个多尺度网络来结合全局粗略深度图和局部精细深度图。后续的工作引入了一些后处理技术,如条件随机场(CRF),以提高准确性【24, 25, 38】。Laina等人【22】提出使用新的上采样模块和反向Huber损失来改进训练。Fu等人【11】采用了多尺度网络,并将深度估计视为一个有序回归任务。他们的方法实现了更高的准确性和更快的收敛速度。
监督深度估计:使用地面真实深度图作为监督,监督深度学习网络能够从输入图像中提取特征并学习深度与RGB值之间的关系。Eigen等人【10】首次使用深度网络从单张图像估计深度图。他们设计了一个多尺度网络来结合全局粗略深度图和局部精细深度图。后续的工作引入了一些后处理技术,如条件随机场(CRF),以提高准确性【24, 25, 38】。Laina等人【22】提出使用新的上采样模块和反向Huber损失来改进训练。Fu等人【11】采用了多尺度网络,并将深度估计视为一个有序回归任务。他们的方法实现了更高的准确性和更快的收敛速度。
自监督深度估计:考虑到大规模标注数据集并不总是可用的,自监督深度估计方法因不需要地面真实数据进行训练而受到了一些关注。Garg等人【12】将深度估计视为一个新颖的视图合成问题,并提出最小化输入左图像与合成右图像之间的光度损失。他们的方法是自监督的,因为监督信号来自输入的立体图像对。Godard等人【14】扩展了这项工作,并通过引入左右视差一致性损失实现了更高的准确性。除了使用立体图像对,监督信号还可以来自单目视频帧。Zhou等人【45】训练了一个单独的多视图位姿网络来估计两个连续帧之间的位姿。为了提高处理遮挡和运动物体时的鲁棒性,他们还使用了一个可解释性预测网络来忽略违反视图合成假设的目标像素。为了建模动态场景,其他工作引入了多任务学习,例如光流估计【41】和语义分割【5, 20】,或引入了额外的约束,例如不确定性估计【30, 40】。Godard等人【15】发现,无需引入额外的学习任务,只需改进损失函数就能取得竞争性的结果。他们提出了Monodepth2,使用最小重投影损失来缓解遮挡问题,并使用自动掩膜损失过滤出与摄像机具有相同速度的移动物体。本文的工作也基于他们的自监督训练策略。
2.2. Advanced architectures for depth estimation
网络架构在单目深度估计中取得良好结果方面也起着重要作用。通过将网络架构从VGG模型【33】替换为ResNet【17】,Yin等人【41】取得了更好的结果。Yan等人【39】使用了通道注意模块来捕捉长程多级信息并增强局部特征。Zhou等人【44】也使用了注意模块以获得更好的特征融合。Zhao等人【46】提出了一种使用特征调制模块学习多尺度特征的小型架构,并展示了该方法的优越性。为了减少模型参数,他们只使用了ResNet18【17】的前三个阶段作为骨干网络。随着视觉变换器(ViT)【8】的兴起,最近的工作将其应用于各种计算机视觉任务【4, 16, 29, 31, 34】,并取得了可喜的成果。然而,将变换器纳入深度估计架构的研究仍然有限。Varma等人【35】采用了密集预测变换器【31】用于自监督单目深度估计,并增加了一个预测头来估计相机的内在参数。Bae等人【3】提出了一种增强CNN特征的混合架构,使用变换器来增强CNN特征。然而,由于视觉变换器(ViT)中多头自注意力(MHSA)的高计算复杂度,上述基于变换器的方法相比仅使用CNN的方法有更多的可训练参数,并且在速度上有较大差距【35】。MonoViT【43】使用MPViT【23】作为其编码器,并取得了最先进的准确性。然而,MonoViT中使用的多个并行模块减慢了其速度。
3. The proposed framework: Lite-Mono
3.1. Design motivation and choices
一些论文已经证明,一个好的编码器可以提取更有效的特征,从而提高最终结果 [15, 17, 44]。本文重点在于设计一个轻量级的编码器,可以从输入图像中编码有效特征。图2展示了所提议的架构。它包括一个编码器-解码器深度网络 (DepthNet)(3.2节)和一个姿态网络 (PoseNet)(3.3节)。DepthNet估计输入图像的多尺度反深度图,而PoseNet估计相邻两帧之间的相机运动。然后生成一个重建的目标图像,并计算损失以优化模型(3.4节)。
增强的局部特征: 使用浅层而非深层网络可以有效地减小模型的大小。如前所述,浅层卷积神经网络 (CNN) 的感受野非常有限,而使用膨胀卷积 [42] 有助于扩大感受野。通过堆叠所提出的连续膨胀卷积 (CDC),网络能 够在不引入额外训练参数的情况下“观察”更大区域的输入。
低计算的全局信息: 增强的局部特征不足以在没有变换器 (Transformers) 帮助下学习输入的全局表示。原始变换器中的多头自注意力机制 (MHSA) 的计算复杂度与输入维度成线性关系,因此限制了轻量级模型的设计。提出的局部-全局特征交互 (LGFI) 模块采用交叉协方差注意力 [1] 来沿特征通道计算注意力。相比原始的自注意力机制 [8],它将内存复杂度从O(hN²+Nd) 降低到O(d²/h+Nd),并将时间复杂度从O(N²d) 降低到O(Nd²/h),其中h是注意力头的数量。下面详细描述了所提架构。
3.2. DepthNet
深度编码器
3.3. PoseNet
按照参考文献[15, 46],本文采用相同的PoseNet进行位姿估计。具体来说,使用了预训练的ResNet18作为位姿编码器,它接收一对彩色图像作为输入。然后,通过包含四个卷积层的位姿解码器,估计出相邻图像之间的相应6自由度(6-DoF)相对位姿。
3.4. Self-supervised learning
与利用深度的真实值进行有监督训练不同,这项工作将深度估计视为图像重建的任务。类似于 [45],学习目标是最小化目标图像 It 和合成目标图像 ˆIt 之间的图像重建损失 Lr,以及约束在预测深度图 Dt 上的边缘感知平滑损失 Lsmooth。