24年1月论文“Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data“,来自香港大学、字节、浙江实验室和浙江大学。

Depth Anything:释放大规模无标注数据的深度估计

这项工作提出了Depth Anything,这是一种用于鲁棒单目深度估计的解决方案。目标是建立一个简单而强大的基础模型,在任何情况下处理任何图像。为此,设计一个数据引擎来收集和自动注释大规模未标记数据(~62M),从而大大扩大了数据覆盖范围,这样能够减少泛化误差,从而扩大数据集的规模。作者研究了两种简单而有效的策略,这两种策略使数据增强更有希望。首先,利用数据增强工具创建了一个更具挑战性的优化目标。它迫使模型积极寻求额外的视觉知识并获得稳健的表示。其次,开发了一种辅助监督,强制该模型从预训练的编码器继承丰富的语义先验。作者对其零样本功能进行了广泛评估,包括六个公共数据集和随机拍摄的照片。它展示了很好的泛化能力。此外,利用来自NYUv2和KITTI的深度信息对其进行微调,设置新的SOTA。更好的深度模型也产生了更好的以深度为条件模型ControlNet。

如图所示是一些深度估计的例子:

Depth Anything:释放大规模无标注数据的深度估计

单目深度估计(MDE)是在机器人、自主驾驶、虚拟现实等领域广泛应用的基本问题之一。这个问题需要一个基础模型来估计单个图像的深度信息。然而,由于难以构建具有数千万深度标签的数据集,这方面的研究一直不够充分。MiDaS是一个在混合标记数据集上训练MDE模型的开创性研究,它取得了一定水平的零样本能力。然而,MiDaS的性能受到其数据覆盖范围的限制,在某些情况下表现不佳。

传统上,深度数据集主要通过从传感器[18,54]、立体匹配[15]或SfM[33]获取深度数据来创建,这在特定情况下是昂贵、耗时甚至难以处理的。相反,本文关注大规模的未标记数据。与立体图像或深度传感器的标记图像相比,单目未标记图像具有三个优点:(i)(获取简单且便宜)单目图像几乎无处不在,因此易于收集,无需专门的设备。(ii)(多样性)单目图像可以覆盖更广泛的场景,这对模型的泛化能力和可扩展性至关重要。(iii)(易于注释)简单地使用预训练的MDE模型为未标记的图像分配深度标签,这只需要前馈推理步骤。更高效的是,这还产生了比激光雷达[18]更密集的深度图,并省略了计算密集的立体匹配过程。

Depth Anything

作者的工作旨在利用标记和未标记的图像来改进单目深度估计(MDE)。具体而言,标记集和未标记集分别表示为Dl和Du。该工作的目标是通过从Dl学习教师模型T,为Du分配伪深度标签。然后,使用标记集和伪标记集的组合来训练一个学生模型S。图中提供了一个简要说明,流程包括以下步骤。实线表示标记的图像流,虚线表示未标记的图像流。需要特别强调大规模未标记图像的重要性。在训练过程中,向学生模型S添加强扰动S,以增强其鲁棒性。为了使深度估计模型具有丰富的语义先验知识,该方法在在线学生模型和冻结编码器之间施加辅助约束,以保持其语义能力。

Depth Anything:释放大规模无标注数据的深度估计

学习标记的图像

这个过程类似于MiDaS[5,45]的训练。然而,由于MiDaS没有发布代码,首先复现算法。具体地说,深度值首先通过d=1/t转换到视差空间,然后在每个深度图上归一化为0~1。在训练中,其采用仿射不变性损失。

为了获得稳健的单目深度估计模型,从6个公共数据集收集了1.5M的标记图像。下表列出了这些数据集的详细信息。

Depth Anything:释放大规模无标注数据的深度估计

与MiDaS v3.1[5](12个训练数据集)相比,本文使用的标记数据集更少,因为1)不使用NYUv2[54]和KITTI[18]数据集来确保对其进行零样本评估,2)一些数据集(不可用),例如Movies[45]和WSVD[60],以及3)一些数据集中表现出较差的质量,例如RedWeb(也是低分辨率)[66]。尽管使用了更少的标记图像,易于获取和多样化的未标记图像将提高数据覆盖率,并大大增强模型的泛化能力和稳健性。

此外,为了加强从这些标记图像中学习的教师模型T,采用DINOv2[42]预训练的权重来初始化编码器。在实践中,用预训练的语义分割模型[69]来检测天空区域,并将其视差值设置为0(最远)。

释放无标记图像的能力

与之前费力构建不同标记数据集的工作不同,本文强调未标记图像在增强数据覆盖率方面的价值。如今可以从互联网或各种任务的公共数据集中实际构建一个多样化的、大规模的未标记集合。此外,可以毫不费力地获得单目未标记图像的密集深度图,只需将它们转发到预训练的、性能良好的MDE模型即可。这比对立体图像或视频执行立体匹配或SfM重建要方便和高效得多。选择了八个大规模的公共数据集作为其不同场景的未标记来源。它们总共包含6200多万张图片。

不幸的是,在试点研究中,未能通过这种自训练流水线获得改进,这确实与只有少数标记图像时的观察结果相矛盾[55]。对于已经足够的标记图像,从额外的未标记图像中获取的额外知识是相当有限的。特别是考虑到教师和学生共享相同的预训练和架构,即使没有明确的自训练程序,也倾向于对未标记集Du做出类似的正确或错误预测。

为了解决这一困境,建议用一个更难的优化目标来挑战学生,获得未标记图像上的额外视觉知识。在训练过程中向未标记的图像注入强扰动。它迫使学生模型积极寻求额外的视觉知识,并从这些未标记的图像中获得不变的表示。这些优势有助于模型更有力地应对开放世界。作者引入两种形式的扰动:一种是强颜色失真,包括颜色抖动和高斯模糊,另一种是强烈的空间失真,即CutMix[83]。尽管简单,但这两个修改使大规模未标记图像显著提高了标记图像的基线。

CutMix的训练采用无标记图像损失,来自随机内插的一对无标记图像。

语义辅助感知

有一些工作[9,21,28,71]通过辅助语义分割任务来改进深度估计。这种高级语义相关信息在深度估计模型上是有益的。此外,在用未标记图像的特定背景下,这些来自其他任务的辅助监督信号也可以对抗伪深度标签中的潜在噪声。

因此,初步尝试用RAM[85]+GroundingDINO[37]+HQ-SAM[26]模型的组合,仔细地为未标记的图像分配语义分割标签。在后处理之后,这产生了一个包含4K类别的类空间。在联合训练阶段,该模型通过共享编码器和两个单独的解码器来产生深度和分割预测。不幸的是,经过反复试验,仍然无法提高原始MDE模型的性能。将图像解码到离散类空间中确实会丢失太多的语义信息。这些语义掩码中的有限信息很难进一步提升深度模型,尤其是当深度模型建立了非常有竞争力的结果。

因此,工作目标是寻找更多信息的语义信号,作为深度估计任务的辅助监督。对DINOv2模型[42]在语义相关任务中的强大性能感到非常惊讶,例如,图像检索和语义分割,即使在没有任何微调的情况下使用冻结权重。受这些线索的启发,建议将其强大的语义能力转移到具有辅助特征对齐损失的深度模型中。特征空间是高维和连续的,因此包含比离散掩码更丰富的语义信息。

作者没有遵循一些工作[19]将在线特征f投影到一个新空间中进行对齐,因为随机初始化的投影器在早期阶段造成的大对齐损失主导了整体损失。

特征对齐的另一个关键点是,像DINOv2这样的语义编码器倾向于为目标的不同部分产生相似的特征,例如汽车的前部和后部。然而,在深度估计中,不同部分甚至同一部分内的像素可以具有不同的深度。因此,穷尽性地强制深度模型产生与冻结编码器完全相同的特征,是无益的。

为了解决这个问题,作者为特征对齐设置了容忍差α。如果余弦相似性已经超过α,则在特征对齐损失中不考虑该像素。这使得该方法既可以享受来自DINOv2的语义-觉察表示,也可以享受来自深度监督的部件-级鉴别表示。作为副作用,产生的编码器不仅在下游MDE数据集中表现良好,而且在语义分割任务中也取得了很好的效果。它还表明了编码器作为一种通用的多任务编码器用于中级和高级感知任务的潜力。

最后,总损失是仿射不变性损失、无标记损失和特征对齐损失的平均组合。

Depth Anything:释放大规模无标注数据的深度估计

原文链接:https://mp.weixin.qq.com/s/jyAvjoonk557UwZci1zdBQ