Hierarchical Normalization for Robust Monocular Depth Estimation
https://arxiv.org/abs/2210.09670
NeurIPS 2022
在openreview上应该也有
在本文中,我们讨论了使用深度神经网络的单目深度估计。为了能够利用各种数据集源训练深度单目估计模型,最先进的方法采用图像级归一化策略来生成仿射不变深度表示。然而,使用图像级别归一化的学习主要强调像素表示与图像中的全局统计的关系,例如场景的结构,而细粒度深度差异可能被忽略。在本文中,我们提出了一种新的多尺度深度归一化方法,该方法基于空间信息和深度分布对深度表示进行分层归一化。与以前仅在整体图像级别应用的归一化策略相比,所提出的分层归一化可以有效地保留细粒度细节并提高准确性。我们提出了两种策略,分别在深度域和空间域中定义分层归一化上下文。我们的大量实验表明,所提出的归一化策略显著优于先前的归一化方法,并且我们在五个零样本迁移基准数据集上设置了新的最先进水平。
1引言
近年来,基于数据驱动的深度学习的单目深度估计因其对传感设备的要求低且进展显著而受到广泛关注。在深度单目估计的各种学习目标中,零样本迁移具有学习通用深度预测的前景,该预测可以在各种场景中很好地推广。零样本迁移不需要对通常具有相似特征和偏见的单个基准子集进行训练和评估,而是希望将模型用于对任何野生图像的预测。
为了实现这一目标,需要具有同样高多样性的大规模数据集进行训练,以实现良好的泛化。然而,使用高质量的深度标注收集数据是昂贵的,现有的基准数据集通常在规模或多样性方面显示出局限性。许多最近的工作[26,39]寻求混合数据集训练,其中由各种感测模式和在不同环境中捕获的数据集可以被联合用于模型训练,这在很大程度上减轻了在尺度上获得不同注释深度数据的困难。然而,混合数据训练也面临挑战,因为不同的数据集可能会显示深度表示的不一致性,这会导致数据集之间的不兼容性。例如,由于变化和未知的相机模型,从网络立体图像[34]或3D电影[26]生成的视差图只能提供高达一定比例和偏移的深度标注。
为了解决这个问题,最先进的方法[26,39]通过基于图像实例的统计对预测或深度注释进行归一化,寻求对深度表示中的尺度和移位变化不变的训练目标,这在很大程度上促进了深度预测器的混合数据学习。然而,由于深度由值的大小表示,因此基于实例的归一化不可避免地挤压了细粒度深度差,特别是在接近区域。假设具有深度注释的以对象为中心的数据集可用于训练,其中图像有时包括具有高深度值的背景。用全局统计归一化深度表示可以明显地分离前景和背景,但同时可能会忽略对象的深度差异,这可能是我们真正感兴趣的。结果,学习的深度预测器通常擅长预测每个像素位置相对于图像中的整个场景(例如整个场景结构)的相对深度表示,但难以捕捉细粒度细节。
受现有深度归一化方法中的偏差问题的激励,我们的目标是设计一个训练目标,该目标应具有优化整体场景结构和细粒度深度差异的灵活性。由于深度估计是一项密集的预测任务,我们从经典的局部归一化方法中获得灵感,例如AlexNet中的局部响应归一化[16]、SIFT中的局部直方图归一化[22]和HOG特征[6]以及DeepEMD[42]中的局部深度特征,这些方法依赖于归一化的局部统计来增强局部对比度或生成有区别的局部描述符。通过改变局部窗口的大小,我们可以控制生成归一化表示所涉及的上下文数量。有了这些见解,我们提出了一种分层深度归一化(HDN)策略,该策略将深度表示与不同范围的学习上下文进行归一化。直观地说,归一化的大上下文强调全局的深度差异,而小上下文关注局部的细微差异。我们提出了两种实现,分别定义了空间域和深度域中的多尺度上下文。对于空间域中的策略,我们将图像划分为几个子区域,并将上下文定义为单个单元格中的像素。通过这种方式,强调了空间上接近位置之间的细粒度差异。通过改变网格大小,我们可以获得依赖于不同上下文的每个像素的多个深度表示。对于深度域中的策略,我们基于真值深度值对像素进行分组以构建上下文,从而可以区分具有相似深度值的像素。类似地,我们可以更改组的数量以控制上下文大小。通过结合各种上下文下的归一化深度表示进行优化,学习者强调了细粒度细节和全局场景结构,如图1所示。
为了验证我们设计的有效性,我们在各种基准数据集上进行了广泛的实验。我们的经验结果表明,所提出的分层深度归一化在定性和定量上显著优于现有的实例级归一化。我们的贡献总结如下:
•我们提出了一种分层深度归一化策略,以改进深度单目估计模型的学习。
•我们提出了两种实现,分别基于空间信息和深度分布定义HDN的多尺度归一化上下文。
•在五个流行的基准数据集上的实验表明,我们的方法显著优于基线,并创造了新的最先进的结果。
接下来,我们回顾一些最接近我们的工作,然后在第3节中介绍我们的方法。在第4节中,我们在几个公共基准数据集上实证验证了我们方法的有效性。
2相关工作
深度单目深度估计。
与早期基于手工特征的单目深度估计工作不同,最近的研究提倡基于深度神经网络的端到端学习。自从先驱工作[7]首次采用深度神经网络进行单目深度估计以来,已经在许多方面取得了重大进展,例如网络架构[17,24,18]、大规模和多样化的训练数据集[36,40]、损失函数[26,39]、多任务学习[41]、合成数据集[8]、,几何约束[36,24,37,38]和各种监督来源[35,39]。
对于有监督的训练,大规模收集具有真值深度注释的高多样性数据是昂贵的。最近基于排名损失[2,35]和尺度和移位不变损失[26,39]的工作使得能够使用其他形式的注释进行网络训练,例如顺序深度注释[2,34],或使用光流算法由未校准的立体图像生成的相对逆深度图[35,36,26]。特别是,尺度和移位不变(SSI)损失[26]和图像级归一化损失[39]允许以完全监督的深度回归方式学习来自多个源的数据,这在很大程度上促进了大规模训练并提高了基于学习的深度估计器的生成能力。SSI损失通过归一化将深度表示转换为规范空间,消除了各种数据集之间的主要不兼容性,即尺度和位移变化。随着这些进步,零样本迁移成为可能,在具有高度多样性的大型数据库上学习的网络可以直接在各种基准上进行评估,而无需查看其训练样本,这是本文的重点。
此外,一些文献[1,49,10,28]提出了在没有传感器捕获真值的情况下解决单目深度估计问题,但利用了来自连续时间帧或立体视频的训练信号。然而,这些方法中的大多数都需要摄像机的固有参数进行监控。
CNNs中的归一化。
归一化在深度神经网络中被广泛采用,而不同的归一化策略用于不同的目的。例如,批量归一化(BN)[13]沿着批量维度对特征表示进行归一化,以稳定训练并加速收敛。BN通常倾向于较大的归一化上下文以获得稳健的特征表示。另一方面,另一种归一化方法依赖于局部统计数据。例如,基于实例级统计的实例归一化[31]及其变体[12,23]主导了样式转换任务,因为它们强调了单个图像的独特样式。一本文献集寻求地方地区的正常化。例如,众所周知的SIFT特征[22]和HOG特征[6]基于归一化的局部统计来生成有区别的局部特征。DeepEMD[42,43]计算局部归一化深度特征之间的最佳迁移,作为图像之间的距离度量。由于局部细节和整体场景结构对于深度估计器都很重要,因此我们在单目深度估计模型中结合了全局归一化和局部归一化的思想。
3方法
在本节中,我们首先简要总结了任务的准备工作。然后我们定义了深度归一化的统一形式,并证明了尺度和移位不变损失[26]中的归一化策略是一种特殊情况。最后,我们分别提出了基于空间域和深度域的分层深度归一化方法的两种实现。
3.1准备工作
我们的目标是利用不同的训练数据提高零样本单目深度估计的性能。在我们的流水线中,我们将单个RGB图像I∈R H×W×3输入到深度预测网络F(·),以生成深度图D∈R R H×W×3。最先进的方法[36,26,39]在计算回归损失之前对深度表示进行归一化,而不是直接使用真值深度监督对输出图进行回归。在我们的工作中,我们专注于深度归一化部分,这意味着我们的方法可以很容易地与最先进的网络结构或损失函数相结合。
3.2深度归一化统一形式
设d∈RM和d*∈RM分别表示矢量化预测深度图和真值深度图,其中M是具有有效注释的像素数。我们的目标是生成归一化表示Nui(di)和Nui(d*i),用于计算每个位置i的回归损失,其中ui是构成位置i上下文的一组位置索引,Nui是基于上下文ui的归一化函数。例如,尺度和位移不变损失(SSI)[26]中采用的归一化是从原始深度表示中明确去除估计的尺度和位移:
其中medianui运算符计算属于ui的位置的中值深度。SSI中的实例级归一化为每个像素分配一个全局上下文uglo,该全局上下文涉及具有有效深度注释的所有像素位置,即,uj=uglo,∀j∈uglo。最后,SSI损失L SSI ui计算归一化预测和真值值之间的平均绝对误差,并对所有位置的损失进行平均,以获得最终损失L SSI:
直观地说,覆盖大范围位置的大型归一化上下文强调与全局统计的相对深度表示,而小型上下文则更局部地强调深度差异。基于这一观察,我们建议为每个位置分配不同尺度的多个上下文。
3.3分层深度归一化
接下来,我们提出了两种策略,分别定义了空间域和深度域中的多尺度上下文,如图2所示。
在空间域(HDN-S)中。
由于图像具有2D网格状表示,因此我们可以基于空间位置来定义上下文。这样,上下文对应于子区域中的一组像素。在分割模型中也可以看到基于网格在空间域中定义上下文,其中使用池来显式地扩大有效范围[48,46,45,20,21,44]。在这里,我们采用类似的策略,基于S×S网格将图像平面均匀地划分为几个子区域。然后,属于同一区域的像素共享用于归一化的相同上下文。通过改变网格大小,我们可以为每个像素位置获得多个上下文。在我们的设计中,我们从{2 0,2 1,2 2,…}中选择网格大小Sspatial,并在每个级别应用归一化。例如,在最高级别,归一化本质上是实例级别的归一化,它覆盖了作为上下文的所有像素,而在最低级别,归一化仅限于H S×W S图像块。
在深度域(HDN-D)中。
另一种对接近像素进行分组的方法是基于它们的真值深度分布,使得具有相似深度值的像素共享相同的上下文。这里我们提出两种策略。第一个,用HDN-DP表示,是根据所有像素的真值深度值对它们进行排序,并将它们均匀地划分为S个单元,其中每个单元中的像素数为M S。第二种策略(由HDN-DR表示)是将图像中呈现的深度范围均匀地划分为S个格,并将像素分类为不同的格。属于相同bin的像素共享相同的上下文。由于具有相似深度值的像素可能在空间上不接近,因此可以通过共享上下文来建立长距离空间相关性,以促进全局一致性。仓号Sdepth也选自{2 0,2 1,2 2,…}。
假设位置i的多尺度上下文构成集合Ui,我们从Ui计算每个上下文产生的SSI损失,并对其进行平均,以获得最终损失L HDN:
正如我们所看到的,通过在不同尺度上组合上下文,所提出的学习目标强调了不同层次上的深度差异,这可以在保持结构一致性的同时保留局部细粒度细节。相比之下,SSI损失是一种特殊情况,只关注全局结构。
我们还可以基于不规则模式(例如分割掩码)定义分层归一化上下文。事实上,我们的设计提供了一种明确利用语义知识来改进预测的有用方法。例如,如果我们定义一个基于全景分割的归一化上下文,它涵盖了事物和对象,它强调了不同实例和事物之间的空间关系。另一方面,如果归一化上下文是基于实例掩码定义的,我们可以强调对象外观中的细粒度深度差异,例如车辆的结构。由于我们的目标是设计一种通用的深度归一化算法,因此在本文中,我们选择基于规则模式来定义分层归一化,而不需要寻求额外的知识。
实施
我们提出的分层归一化策略是轻量级的,易于实现。由于SSI损失函数通常作为真值深度图、预测深度图和有效像素图的函数来实现,因此我们的方法可以通过仅修改有效像素图以获得批量计算来轻松实现,其中上下文外的像素被屏蔽掉。
4实验
数据集
我们遵循LeReS[39]构建了一个混合数据训练集,其中包括来自Taskonomy数据集的114K幅图像、来自DIML数据集的121K幅图像,来自Holopix50K的48K幅图像和来自HRWSI[35]的20K幅图像。我们从所有数据集中保留1K张图像,以便在训练期间进行验证。每个数据集的详细信息如下。
任务经济学。
Taskonomy[40]是一个高质量、大规模的数据集,其中包含来自约600栋建筑的400多万张室内场景图像。它包含20多项任务的注释。在我们的实验中,我们采样了大约114k个RGB-D对进行训练。
DIML。
DIML[14]包含Kinect v2或Zed立体相机的同步RGB-D帧。对于室外分割,它们主要由校准的立体摄像机捕捉。它包含各种户外场所,例如办公室、房间、宿舍、展览中心、街道、道路等。我们使用GANet[47]重新计算了训练的视差和深度图。
HRWSI和Holopix50k。HRWSI[35]和Holopix50k[11]都是不同的相对深度数据集。尽管它们包含不同的场景和不同的相机设置,但它们提供的立体图像未经校准。因此,立体匹配方法不适用于恢复度量深度信息。我们使用RAFT[30]来恢复训练的相对深度表示。
实施细节。
我们在实验中使用了最先进的单目深度估计网络DPTHybrid[25]。在训练和测试时,输入图像大小均为480×480。对于基准评估,我们使用双线性插值将输出重新调整为原始图像分辨率。随机水平翻转和随机裁剪用于数据增强。所有实验中的默认随机裁剪大小以原始图像大小的[0.5,1]进行采样,纵横比限制在[3/4,4/3],并且随机裁剪的面片被重新调整为输入分辨率以进行训练。我们使用学习率为10-5的Adam优化器。该模型在批量大小为32的8 V100 GPU上训练。在每个小批量中,我们从不同的训练数据源中抽取相同数量的图像。对于空间域中的HDN,我们从{2 0,2 1,2 2,2 3}中选择网格大小Sspatial来构建分层上下文。对于深度域中的HDN,组号Sdepth选自{2 0,2 1,2 2}。
评估指标。
我们包括5个在培训过程中看不到的流行基准,包括DIODE[32]、ETH3D[27]、KITTI[9]、NYU[29]和ScanNet[5]。我们遵循先前的工作来评估我们的零样本交叉数据集迁移模型。
我们使用相对误差(AbsRel)的平均绝对值:(1/M)PM i=1|di−d*i |/d*i,δ1=max(di d*i,d*i di)<1.25的像素百分比。继Midas[26]和LeReS[39]之后,我们在评估之前将预测和真值在尺度和位移上进行了调整。更多实验结果和分析请参考我们的补充材料。
4.1分析
对于消融研究和分析,我们从四个训练集中均匀地采样16K图像的子集,输入图像大小为384×384。
归一化策略的比较。
一开始,我们比较了不同的归一化策略。第一个基线是实例级归一化,即规模和移位不变损失。我们还将批量级深度归一化纳入综合研究。对于我们提出的HDN,我们报告了基于空间域(HDN-S)和深度域(HDN-1DP和HDN-DR)的模型的结果。我们还采用所提出的HDN的最佳归一化级别来验证局部上下文是否单独有助于训练,这由局部表示。实验结果的详细记录见表1。
正如我们所看到的,沿着批量维度的归一化产生了最坏的结果,这意味着无法通过使用批量级别统计数据来解决数据之间的规模和移位变化。我们提出的HDN在深度域和空间域都显著优于实例级归一化基线,这验证了我们设计的有效性。深度域中的HDN更有效。特别是,HDN-DR在五个基准上平均减少了22%的误差,因此我们在其余实验中使用HDN-DR作为默认模型。我们发现,实例归一化基线在DIODE和ETH3D数据集上表现不佳,尤其是在室外拆分中。这可能是由于数据集偏差或训练数据集中缺乏多样性造成的。相比之下,所提出的HDN在所有基准数据集上表现良好,甚至仅使用16K训练数据就达到了最先进水平,这比最近方法中使用的训练集少了几十倍。仅依靠局部归一化,即最精细的归一化水平,可以改善某些基准(例如DIODE和ETH3D)上的基线,但同时可能会导致其他基准(例如KITTI)上的性能显著下降。这表明,局部归一化和全局归一化的组合是鲁棒训练和良好泛化的最佳策略。
深入HDN。
我们接下来研究所提出的HDN的特性。由于HDN和实例级归一化之间的关键区别是额外的局部归一化上下文,我们首先验证了当不同强度的随机裁剪应用于数据增强时,我们的方法是否仍然有效。我们从原始尺寸的{1/8,1/4,1/2}中选择裁剪尺寸的下限,以观察改进。然后,我们逐渐添加更细粒度的归一化上下文级别,并观察性能变化。例如,如果HDN深度采用三个级别,则组编号Sdepth从{2 0,2 1,2 2}中选择。当仅采用顶层时,HDN降级为实例级归一化基线。我们还报告了我们的方法的性能变化,仅依赖于最精细的级别,这也是表1中的局部模型变体。对于所有实验,我们在表1中报告了实例级归一化基线的平均相对误差下降率(AbsRel),其随机裁剪下限为0.5。
结果如图3所示。删除随机裁剪(无裁剪)会损害整体性能,这可以从表示实例级归一化基线的不同图表的起点看出。尽管具有攻击性随机裁剪(裁剪1/8和裁剪1/4)的实例级归一化也可以强制执行局部空间归一化上下文,但同时可能会丢失用于特征编码的有用上下文并导致性能下降。我们提出的HDN可以在各种增强强度下持续且显著地优于基线,这表明随机裁剪的数据增强和我们的HDN是互补的。
对于我们的HDN,添加更细粒度的归一化上下文级别并不能持续提高性能。通过观察仅依赖于局部上下文的归一化结果,我们发现当分配了适当的级别时,它们仍然可以优于实例级归一化基线。然而,当上下文变得过于局部时,性能可能会显著变差,从局部DP的结果可以看出。
HDN在全监督环境下的有效性。
接下来,我们验证我们提出的HDN是否能够在完全监督的设置下帮助模型训练,其中在训练集中提供度量深度注释。我们在流行的NYU V2数据集上验证了我们的设计,该数据集包含795张Eigen分割的训练图像[7],将我们提出的HDN损失作为辅助损失添加到标准L1回归损失中。结果如表2所示。我们提出的HDN仍然可以有效地提高性能,而SSI基线几乎不能提高性能,这表明了我们的方法在单目深度估计任务中的泛化能力。
定性结果。
我们在图4中进行了一些定性比较。我们主要与实例级归一化基线进行比较,即尺度移位不变(SSI)损失[26]。所有比较案例都是从零炮测试数据集中采样的。我们可以观察到,我们的分层归一化方法可以更好地预测物体表面的平滑度和边缘的锐度。因此,与全局实例级归一化相比,我们在深度域或深度域中的额外局部归一化可以迫使网络掌握更好的局部几何知识。此外,我们从每个图像中随机采样2K个像素,并在最后两列中绘制预测深度值和真值深度值。理想情况下,预测的仿射不变深度应该与真值值严格线性,即红色对角线。我们可以观察到,我们方法的线性比基线好得多。注意,即使基线有时可以达到类似的预测精度(例如第二个示例),我们的方法也会生成更多的发现粒度细节。
深度边界评估。
我们已经证明了我们提出的方法在通过可视化生成更清晰的边缘和更好的细节方面的优势。接下来,我们基于iBims-1数据集的实验定量评估边缘的质量[15]。特别是,我们选择了专门用于评估深度边界的度量,即边缘。有关度量的详细定义,请参考[15]。结果见表3。正如我们所看到的,我们提出的归一化策略优于基线。
4.2与现有技术的比较
最后,我们在五个基准数据集(包括DIODE[32]、ETH3D[27]、KITTI[9]、NYU[29]和ScanNet[5])上比较了我们的深度估计器(HDN-DR)与最先进的方法,这些数据集在训练过程中是看不到的。如表4中的结果所示,我们的方法在多个基准测试上大大优于先前的方法,与最近的最先进方法相比,训练数据更少,如LeReS[39]和Midas[26]。
5限制
我们发现,对于具有非常高图像分辨率的数据集,例如原始分辨率为4032×6048的ETH3D,相对较小的推断分辨率(例如384×384)比相对较大的分辨率(例如800×800)更差,但进一步提高分辨率并不能持续改善性能。因此,缺乏在测试时设置最佳输入分辨率的原则。我们相信,关于自适应输入分辨率和可学习测试时间增加的研究将是未来有希望的解决方案。
我们未来的工作还包括定义分层归一化上下文的更好策略,例如利用跨领域知识和额外知识,例如分割图。
6结论
在本文中,我们提出了一种用于单目深度估计任务的新的分层深度归一化策略。与主要关注图像中场景的全局结构的现有实例级归一化策略相比,我们的归一化和损失保留了细粒度细节和整体结构。广泛的实验验证了我们在空间域和深度域中的两种实现的有效性,并在多个基准上设置了新的最先进性能。
网友评论