(2022 ECCV)RA-Depth: Resolution Adaptive Self-Supervised Monocular Depth Estimation

在这里插入图片描述

Abstract

现有的自监督单目深度估计方法可以摆脱昂贵的标注,并取得良好的效果。然而,当直接采用固定分辨率训练的模型在其他不同分辨率下进行评估时,这些方法的性能会严重下降。本文通过学习场景深度的尺度不变性,提出了一种分辨率自适应自监督单目深度估计方法(RA-Depth)。具体来说,我们提出了一种简单而有效的数据增强方法,可以为同一场景生成任意尺度的图像。然后,我们开发了一个双高分辨率网络,该网络使用具有密集交互的多路径编码器和解码器来聚合多尺度特征以进行准确的深度推断。最后,为了明确学习场景深度的尺度不变性,我们在不同尺度的深度预测上建立了一个跨尺度的深度一致性损失。在KITTI、Make3D和NYU-V2数据集上的大量实验表明,RA-Depth不仅达到了最先进的性能,而且具有良好的分辨率适应能力。

1 Introduction

单目深度估计[38,5,21,25,20,6]从单个图像中恢复逐像素深度图,这是计算机视觉中具有挑战性但又必不可少的任务。它推动了自动驾驶、机器人导航、3D场景重建和增强现实等各种应用的发展。由于不同应用场景下采集设备的不同,采集到的图像分辨率也不同。因此,为了减少资源的消耗,如何对单个训练模型进行单目深度估计以自监督的方式适应图像分辨率的变化是一个有价值的开放性问题。

现有的自监督单目深度估计方法[9,28,49,10,27]通常使用立体对单目序列的几何约束作为唯一的监督来源,并取得了很大进展。然而,这些监督方法不能适应推理时图像分辨率的变化,当测试分辨率与训练分辨率不一致时,其性能会严重下降。如图1所示,我们将现有超前工作Monodepth2[10]的深度预测结果与我们的RA-Depth进行对比。Monodepth2和RA-Depth都在固定分辨率640 × 192下进行训练,然后在两个分辨率640 × 192和320 × 96下进行测试。可以看出,在不同分辨率下测试时,Monodepth2预测的深度图不一致且较差。为了在不同的分辨率下进行测试,现有的方法为每个分辨率训练一个单独的模型。因此,这不仅需要不可避免的训练开销和高昂的存储成本,而且还限制了单目深度估计模型的灵活性和实用性。
在这里插入图片描述
图1 不同分辨率下的深度预测。我们比较了Monodepth2[10]和我们的RA-Depth在不同分辨率下的深度预测。Monodepth2和RA-Depth都在固定分辨率640 × 192下进行训练,然后在640 × 192 (a)和320 × 96 (b)下进行测试。RA-Depth在不同分辨率下测试时表现出良好的分辨率适应能力。

本文提出了一种分辨率自适应自监督单目深度估计方法RA-Depth。首先,我们提出了一种任意尺度的数据增强方法来生成同一场景的任意尺度的图像。具体来说,我们通过随机调整大小、裁剪和拼接(详见3.2节)来改变输入图像的比例,同时保持图像的分辨率/大小(即width×height)。这些生成的任意尺度的图像可以模拟不同图像分辨率下的尺度变化,从而促使模型隐式学习场景深度的尺度不变性。在此基础上,提出了一种基于多尺度特征融合的单目深度估计框架。在我们的框架中,我们使用优越的高分辨率表示网络HRNet[40]作为编码器,并设计了一个具有高效多尺度特征融合的解码器。因此,编码器和解码器形成了双HRNet架构,可以充分利用和聚合多尺度特征来推断准确的深度。由于这种高效的设计,我们可以在较低的网络开销下获得更好的深度估计性能。最后,我们提出了一种新的跨尺度深度一致性损失来明确学习场景深度的尺度不变性。因此,即使输入图像的尺度不同,单目深度估计模型也可以预测同一场景的一致深度图。在KITTI[8]、Make3D[38]和NYU-V2[39]数据集上的大量实验表明,RA-Depth在单目深度估计上达到了最先进的性能,并表现出良好的分辨率适应能力。

总之,我们工作的主要贡献如下:

  1. 据我们所知,我们的RA-Depth是第一个解决自监督单目深度估计图像分辨率适应的工作。
  2. 我们提出了一种任意尺度的数据增强方法,促进模型从不同尺度的图像中学习深度。
  3. 我们开发了一种高效的双高分辨率网络,用于单目深度估计,该网络具有多尺度特征融合,并使用一种新的跨尺度深度一致性损失进行训练。
  4. 大量实验表明,我们的RA-Depth在单目深度估计上达到了最先进的性能,并且对不同分辨率具有良好的泛化能力。

Related Work

2.1 Supervised Monocular Depth Estimation

单目深度估计的目的是从单色图像中预测景深。早期的研究[5,24,21,43,16,22,44]使用卷积神经网络逐像素估计连续深度图最小化预测深度与真实深度之间的误差。此外,在深度估计网络上施加几何[44,31]或多任务约束[35,47],以预测更准确的深度图。然而,这些连续回归方法往往存在收敛缓慢和局部解不理想的问题。因此,深度有序回归网络[6]引入了一种间隔递增的离散化策略对深度进行离散化,将深度估计问题转化为有序深度回归问题。AdaBins[1]提出了一种基于Transformer的深度估计方案,将深度范围划分为不同的bin。最近,一些研究[29,23]将多模型学习用于深度估计,并进一步提高了其性能。

2.2 Self-Supervised Monocular Depth Estimation

自监督方法将单眼深度估计任务转化为图像重建问题,利用立体对或单眼序列上的光度损失作为监督信号来训练网络。

一种自监督单目深度估计方法利用立体对的几何约束来学习深度。Garg等[7]首先提出了一种自监督的单目深度估计框架,该框架从同步的立体图像对中估计深度。在此框架下,Monodepth[9]设计了一种左右视差一致性损失算法来获得更准确的预测结果,而3Net[34]引入了一种三视体假设来解决立体对之间的遮挡问题。在这些方法的基础上,Depth Hints[42]使用现成的**半全局匹配(Semi-Global Matching, SGM)算法[**14,15]获得互补的深度提示,可以增强现有的光度损失,引导网络学习更准确的权值。最近,EPCDepth[32]采用了一种数据嫁接技术,使模型聚焦于非垂直图像位置,从而进行准确的深度推断。

另一种具有自我监督的深度估计方法来自于未标记的单目视频SfM-Learner[49]是一项开创性的工作,它以自监督的方式从单眼视频中共同学习单眼深度和自我运动。SC-SfMLearner[2]在SfM-Learner的基础上,提出了一种几何一致性损失来保证深度的尺度一致性。Monodepth2[10]引入了最小重投影损失和自动掩蔽损失来解决遮挡和移动物体的问题。Poggi等[33]探讨了自监督单目深度估计的不确定性,并提出了一种专门为自监督深度估计设计的新颖独特的技术。此外,最近的许多研究[3,19,4,50,12]利用额外的语义监督来辅助自监督单目深度估计。最近,一些研究[27,48]通过高效的网络架构设计开发了高性能的单目深度估计模型。

3 Method

3.1 Problem Formulation

自监督方法利用立体对或单目视频的几何约束作为训练的监督信号。在本文中,我们提出的框架使用未标记的单目视频进行训练,每个训练实例包含一个目标帧It和两个源帧Is (s∈{t−1,t + 1})。目标视图的深度Dt和目标视图与源视图之间的相机姿势Tt→s,从源视图到目标视图的图像合成过程可以表示为Is→t= Is⟨proj(Dt, Tt→s, K)⟩,其中K表示已知的相机本质,⟨⟩是采样算子[17],proj()是坐标投影操作[49]。光度误差由L1和SSIM组成[41]:(与monodepth2同)
在这里插入图片描述
如下[10],为了处理遮挡问题,我们采用逐像素最小重投影损失作为光度损失:(与monodepth2同)
在这里插入图片描述
利用边缘感知平滑损失来处理视差不连续:(与monodepth2同)
在这里插入图片描述
在这里插入图片描述

3.2 Resolution Adaptive Self-Supervised Framework

概述。我们提出的方法的概述可以在图中看到。给定一个原始实例{It, Is} (s∈{t−1,t+1}, t为目标图像,s为源图像),我们使用我们提出的任意尺度数据增强来扩展三个训练实例:{ILt, ILs}, {IMt, IMs}和{IHt, IHs},其中L, M和H分别表示低,中,高尺度。为简单起见,我们在图(a)中只显示ILt、IMt和IHt。然后,我们使用我们提出的高效Dual HRNet分别预测这些目标视图的深度图(DLt、DMt、DHt),并使用姿态网络预测从目标视图到源视图的相对6D相机姿态Tt→s。利用DLt和Tt→s,我们可以通过插值源图像的ILs合成图像的ILs→t。同样,我们可以合成图像~ IMs→t和~ his→t。然后我们计算了真实图像(ILt, IMt, IHt)和合成图像(≈ILs→t,≈IMs→t,≈IHs→t)之间的光度损失。请注意,所有图像合成过程都使用从IMt到IMs预测的相同相机姿势Tt→s。最后,计算提出的跨尺度深度一致性损失llmc (DLt和DMt之间)和LM Hcs (DMt和DHt之间)。为清晰起见,姿态网络、光度损失和平滑损失未在图中显示。
在这里插入图片描述
图2 RA-Depth概述。(a)首先,给定一个原始实例{It, Is} (s∈{t−1,t + 1}, t为目标图像,s为源图像),我们使用任意尺度数据增强生成三个不同尺度的训练实例:{ILt, ILs}, {IMt, IMs}和{IHt, IHs}。为简单起见,图中仅显示目标图像ILt、IMt和IHt。(b)然后,我们使用我们提出的高效双HRNet分别预测这些目标图像的深度图(DLt, DMt, DHt)。注意,Dual HRNet每次只输入一张目标图像,然后输出相应的深度图,所有目标图像共享同一个Dual HRNet。©最后,我们计算了所提出的跨尺度深度一致性损失llmc (DLt和DMt之间)和LM Hcs (DMt和DHt之间),以约束网络学习场景深度的尺度不变性。

任意尺度数据增强。算法1中显示了单个输入的任意尺度数据增强的细节。对于形状为(c, h0, w0)的单个原始图像I,我们首先通过Resize操作获得三幅不同分辨率的图像(tl, tm, ht)。T M的分辨率固定为(h, w),表示中尺度。T L和T H的分辨率在一个连续的范围内随机变化,分别由尺度因子sL和sH控制。sL的范围和sH[0.7, 0.9]和[1.1,2.0],分别使T L的分辨率低于(h, w)和T h的分辨率高于(h, w)。然后我们可以生成一个低读数图像IL从T L通过图像缝合(由白色箭头在图2 (a)),并直接将T M作为中间尺度图像即时通讯,并生成高尺度图像IH从T h通过RandomCrop(由红色虚线框表示在图2 (a))。
最后,我们得到了在不同尺度下具有相同形状(c, h, w)的三幅图像IL, IM, IH作为网络的输入。注意,在本文中,(c, h0, w0)为(3,375,1242),(c, h, w)为(3,192,640)。

双HRNet用于单目深度估计。如图2(b)所示,我们开发了一种高效的双高分辨率网络(dual HRNet),具有多尺度特征融合,用于单目深度估计。我们使用高分辨率表示网络HRNet18[40]作为编码器,命名为HREncoder。HRNet[40]的核心思想是在保持高分辨率特征表示的同时进行高效的多尺度特征融合,从而获得语义更丰富、空间更精确的多尺度特征。
受HRNet[40]的启发,我们设计了一种高效的多尺度特征融合解码器,命名为HRDecoder。具体来说,HRDecoder首先继承编码器的多尺度特征,然后在保持高分辨率特征表示的同时逐渐融合低尺度特征。设ei表示第i级编码器的特征,dji表示第i级和第j级解码器的特征dmji表示第i级和第j级多尺度特征融合后的特征。以第一阶段d1i和dm1i的计算(见图2(b))为例:
在这里插入图片描述
其中CONV3×3表示一个3×3卷积层,CONV1×1表示一个1×1卷积层。µ(·)是上采样算子,[·]是求和算子。利用HRDecoder,可以将多尺度特征从低分辨率特征图充分融合到高分辨率特征图中。希望Dual HRNet能够有效地学习不同尺度的深度信息,以便在不同的测试分辨率下进行准确的深度估计。

跨尺度深度一致性损失。如图2©所示,我们计算了LM Lcs (DMt和DLt之间)和LM Hcs (DMt和DHt之间)的跨尺度深度一致性损失,以约束模型明确学习场景深度的尺度不变性。如图2©所示,DLt、DMt和DHt之间的同一柱或车应具有相同的深度。具体来说,根据已知的尺度因子sL和sH以及算法1中RandomCrop的裁剪位置,我们可以得到DLt、DMt和DHt之间的像素对应关系。对于DMt和DHt,我们首先找到DHt在DMt中的对应位置,用DMt中的黑色虚线框(命名为~ DMt)表示。然后我们调整DHt以保持与~ DMt相同的大小以获得~ DHt。最后,我们计算了~ DMt和~ DHt之间的场景深度一致性损失:
在这里插入图片描述
同样,对于DLt和DMt,我们首先找到DMt在DLt中的对应位置,用DLt中的黑色虚线框(命名为- DLt)表示。然后我们调整DMt的大小,使其与DLt保持相同的大小,从而得到DMt。最后,我们计算了DLt和DMt之间的跨尺度深度一致性损失:
在这里插入图片描述
在这里插入图片描述

4 Experiments

4.1 Implementation Details

我们提出的方法在PyTorch中实现[30],并在单个Titan RTX GPU上进行训练。我们的模型使用Adam优化器[18]训练了20个epoch,批大小为12。前15个epoch的学习率为10−4,后5个epoch的学习率降至10−5。Eq.(7)中最终训练损失的超参数γ、λ和β分别设置为1.0、0.001和1.0。我们在Eq.(1)、Eq.(5)和Eq.(6)中设置α = 0.85。对于单目深度估计网络,我们实现了第3.2节中描述的我们提出的Dual HRNet,该网络使用HRNet18[40]作为编码器,并在解码器上执行有效的多尺度特征融合。对于姿态估计网络,我们使用与Monodepth2[10]相同的架构,其中包含ResNet18[13],然后是几个卷积层。与[10,48]类似,我们使用ImageNet[37]上预训练的权值来初始化HRNet18和ResNet18。训练时,网络的输入分辨率为640 × 192。为了提高训练速度,我们只对深度估计网络输出单尺度深度并计算单尺度深度上的损失,而不是对深度估计网络的多尺度输出([49,10]中的4个尺度和[36]中的6个尺度)计算损失。

4.2 Results

基本结果。我们使用Eigen等人[5]的数据分割方法,在KITTI数据集[8]上评估了我们的单一模型的单目深度估计性能。
继Zhou等人[49]之后,我们删除了静态帧,分别使用39810、4424和697图像进行训练、验证和测试。在评价过程中,我们将深度限制在80m,并采用与[5]相同的常规指标。由于我们使用单目视频进行训练,我们在评估时对我们预测的深度执行[49]引入的中位数缩放。表1显示了基本的定量结果,所有模型都在与训练相同的分辨率下进行了测试。我们提出的方法明显优于所有现有的自监督单目深度估计方法。特别是,RA-Depth实现了0.632的SqRel误差,比已发表的最佳结果0.764的错误率降低了17%。

表1 使用特征分割[5]对KITTI数据集[8]进行定量单目深度估计的结果。我们根据训练数据将比较的方法分为三类。在每个类别中,最好的结果用粗体显示,第二项用下划线表示。所有这些方法的测试分辨率与训练分辨率相同。S:立体对训练;M:单眼视频训练;Se用语义标签训练。

在这里插入图片描述

分辨率适配结果。如表2所示,我们将我们的单一模型RA-Depth与现有的三种高级方法(Monodepth2[10]、HR-Depth[27]和DIFFNet[48])在KITTI数据集[8]上使用Eigen split[5]进行分辨率自适应比较。所有这些模型都在640×192分辨率下进行训练,然后在416×128、512×160、832×256和1024×320四种不同分辨率下进行测试。注意,我们在训练过程中没有使用尺度增强策略,而是直接调整原始图像的大小来生成四个分辨率的图像。结果表明,现有方法在分辨率适应方面表现不佳。也就是说,现有的方法不能适应测试过程中图像分辨率的变化。相比之下,我们的单一模型RA-Depth在不同的测试分辨率下保持高性能,显著优于现有的自监督方法。图4 我们的RA-Depth和Monodepth2[10]在深度估计中的分辨率适应。可以观察到,单一模型Monodepth2预测的深度图在不同分辨率下是不一致的(见绿色矩形)。
相比之下,我们的单一模型RA-Depth在不同分辨率下显示出可信和一致的深度预测,这表明RA-Depth可以学习场景深度的尺度不变性。
在这里插入图片描述
图4 分辨率适应的可视化结果。我们使用分辨率为640×192的模型来预测不同测试分辨率下的深度。

跨数据集的泛化结果。在表3中,我们报告了使用在KITTI数据集[8]上以640×192分辨率训练的模型在Make3D[38]和NYU-V2[39]数据集上的泛化性能。为了公平比较,我们对所有模型采用了相同的评价标准、裁剪方法[10]和数据预处理策略[45]。当测试分辨率与训练分辨率(640 × 192)相同时,无论是泛化到室外数据集Make3D还是室内数据集NYUV2,我们都能获得最先进的结果。此外,我们还在四种不同的分辨率(416×128, 512×160, 832×256, 1024×320)下测试了我们的模型,并将平均结果作为跨数据集的分辨率适应结果。这些结果表明,在跨数据集的测试中,我们的模型仍然具有良好的分辨率适应能力。
在这里插入图片描述

4.3 Ablation Study

为了更好地理解我们的方法的组成部分如何对整体性能和分辨率适应能力做出贡献,我们在本节中进行了充分的烧蚀实验。如表4所示,我们通过改变我们方法的各个组成部分进行实验,所有模型都在KITTI数据集上以640 × 192的分辨率进行训练[8]。

我们进行了消融实验,以验证每个组件在与训练相同的分辨率下对整体性能的有效性(640×192)。

此外,我们还验证了每个组件在四种不同分辨率(416×128, 512×160, 832×256, 1024×320)下对分辨率适应能力的有效性,其中报告了四种分辨率下的平均结果。对于基线模型,我们使用HRNet18[40]作为编码器,并使用与Monodepth2[10]相同的解码器。烧蚀结果表明,任意尺度数据增强(AS-Aug)、双HRNet (D-HRNet)和跨尺度深度一致性损失(CS-Loss)可以分别带来明显的改善。由于CS-Loss是强加在AS-Aug上的,所以涉及CSLoss的实验必须包括AS-Aug操作。所有组合组件可以产生最佳性能(RA-Depth)。此外,即使不使用ImageNet预训练的权值,我们的模型也可以获得比基线模型更大的增益。

表4 我们的方法的每个组成部分的消融结果。在KITTI数据集[8]上使用特征分割[5]以640 × 192的分辨率训练所有模型。ASAug:任意尺度数据增强。D-HRNet:双HRNet。CS-Loss:跨尺度深度一致性损失。pt:在ImageNet数据集上预训练的权重。(a)我们以与训练相同的分辨率测试每个组成部分对整体表现的影响。(b)我们报告了在四种不同分辨率(416×128, 512×160, 832×256, 1024×320)下测试的平均结果,以验证每个组件对分辨率适应能力的有效性。

任意尺度数据扩充的影响。如表4(a)所示,我们提出的任意尺度数据增强(As - aug)在与训练相同的分辨率下测试时显著提高了性能。此外,表4(b)中的结果表明,AS-Aug在分辨率适应性能方面比基线有很大的提高。特别是,当将ASAug与基线模型相结合时,我们在AbsRel、SqRel和RMSE方面分别实现了29.6%、41.4%和22.2%的误差降低率,在δ<1.25方面实现了11.4%的精度增益。如算法1所述,给定一幅原始图像,As - aug生成三幅不同尺度的训练图像,让模型隐式学习场景深度的尺度不变性。当从原始图像中只生成一幅训练图像时,我们将我们的ASAug分量与Bian等[2]提出的数据增强(称为Bian- aug)进行比较,如表5(a)所示。虽然Bian-Aug也使用随机调整大小和裁剪来改变图像的比例,但我们之间的差异是双重的。一方面,卞aug先将原始图像缩小,然后将缩小后的图像上采样到高分辨率以进行裁剪。然而,我们的ASAug直接在原始图像上进行裁剪,因此可以保留图像的详细信息。另一方面,[2]只向网络输入一尺度图像,而我们的方法向网络输入三尺度图像,从而可以模拟三种相机的内在特征。通过施加跨尺度深度

表5 AS-Aug和CS-Loss的额外消融研究。Bian- aug代表Bian等人[2]的数据增强方法。所有模型都在KITTI数据集上以640 × 192的分辨率进行训练[8]。我们报告了四种不同分辨率下分辨率适应测试的平均结果(416×128, 512×160, 832×256, 1024×320)。
在这里插入图片描述

在这里插入图片描述
跨尺度深度一致性损失的影响。如表4所示,无论是在与训练相同的分辨率下进行测试,还是在四种不同分辨率下进行测试,加入跨尺度深度一致性损失(CS-Loss)都会带来显著的改善。此外,从表5©中可以看出,在不同as - aug设置下,结合CS-Loss可以明显提高模型的分辨率自适应性能。实验表明,CSLoss的显式约束可以进一步帮助模型学习场景深度的尺度不变性,从而增强模型的分辨率自适应能力。这验证了我们的深度估计模型可以在我们提出的跨尺度深度一致性损失的情况下明确地学习场景深度的尺度不变性。

双HRNet的作用。表6报告了我们的模型RA-Depth的参数复杂度(#Params)和计算复杂度(GFLOPs)。与现有最先进的模型和基线模型相比,我们的模型在参数复杂度和计算复杂度方面是最有效的

表6 深度估计网络的参数和GFLOPs。
在这里插入图片描述

5 Conclusions

我们提出了一种自监督单目深度估计方法RA-Depth,用于在训练和测试过程中,当图像分辨率不一致时,有效地预测图像的深度图。基于我们提出的任意尺度数据增强方法,我们开发了一个双高分辨率网络,有效地融合了多尺度特征,以实现准确的深度预测。RA-Depth在各种公共数据集上取得了最先进的结果,并表现出良好的分辨率适应能力。此外,得益于构建的双HRNet,我们的RA-Depth模型在参数和计算复杂度方面都是高效的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值