Advertisement

Depth-Anything

阅读量:

一种用于单目深度估计(Monocular Depth Estimation, MDE)的高度实用方案Depth Anything「致敬Segment Anything」,它旨在构建一种可以处理任务环境下任意图像的简单且强力的基础深度模型。

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

单目深度估计(MDE)是一个在机器人[65]、自主驾驶[63,79]、虚拟现实[47]等领域有广泛应用的基本问题,它还需要一个基础模型来估计单个图像的深度信息。然而,由于难以构建具有数千万深度标签的数据集,这一点一直没有得到充分的探索。MiDaS[45]通过在混合标记数据集上训练MDE模型,沿着这一方向进行了开创性的研究。尽管表现出一定水平的零样本能力,但MiDaS受其数据覆盖范围的限制,因此在某些情况下表现不佳。

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

人类有两只眼睛来估计视觉环境的深度信息,但机器人和 VR 头社等设备却往往没有这样的「配置」,往往只能靠单个摄像头或单张图像来估计深度。这个任务也被称为单目深度估计(MDE)。

近日,一种可有效利用大规模无标注图像的新 MDE 模型 Depth Anything 凭借强大的性能在社交网络上引起了广泛讨论,试用者无不称奇。

作者的工作利用标记和未标记的图像来促进更好的单目深度估计(MDE)。形式上,标记集和未标记集分别表示为Dl和Du。工作目标是从Dl学习教师模型T。然后,利用T为Du分配伪深度标签。最后,在标记集和伪标记集的组合上训练了一个学生模型S。如图提供了一个简短的说明,流水线包括如下。实线:标记的图像流,虚线:未标记的图像,特别强调大规模未标记图像的价值,S表示添加强扰动。为了使深度估计模型具有丰富的语义先验,在在线的学生模型和冻结的编码器之间强制执行辅助约束,保持语义能力。

从三个维度进行探索:

数据集维度 ,设计了一种数据引擎用于数据收集与自动标注,构建了~62M的大规模无标注数据 ,这极大程度提升了数据覆盖率、降低泛化误差;

通过利用数据增广工具构建了一种更具挑战性的优化目标 ,促使模型主动探索额外的视觉知识,进而提升特征鲁棒性;

设计了一种辅助监督信息 以迫使模型从预训练Encoder中继承丰富语义先验信息。

甚至有试用者发现它还能正确处理埃舍尔(M.C.Escher)那充满错觉的绘画艺术(启发了《纪念碑谷》等游戏和艺术):

从水上到水下,丝滑切换:

更好的深度模型也得到了效果更好的以深度为条件的 ControlNet,可用于图像生成和视频编辑。如下图所示,生成的内容质量得到了显著增强:

理论上说,基础模型可用于解决单目深度估计(MDE)问题,即基于单张图像估计深度信息。这类技术在机器人、自动驾驶、虚拟现实等领域都有广阔的应用前景。但由于难以构建带有数千万深度标签的数据集,这一问题还少有研究者探索。

此前的 MiDaS 算得上是这个方向上的一项开创性研究,其基于一个混合标注的数据集训练了一个 MDE 模型。尽管 MiDaS 展现出了一定程度的零样本能力,但受限于其数据覆盖范围,其在某些场景中的表现非常差。

来自香港大学、TikTok 等机构的研究者提出的 Depth Anything ,则是一个更为实用的解决方案。

论文标题:Depth Anything Unleashing the Power of Large-Scale Unlabeled Data

论文地址:https://arxiv.org/pdf/2401.10891.pdf

项目主页:https://depth-anything.github.io/https://github.com/LiheYoung/Depth-Anything

演示地址:https://huggingface.co/spaces/LiheYoung/Depth-Anything

该研究的目标是构建一种能在任何情况下处理任何图像的简单却又强大的基础模型。为了做到这一点,该团队采用了一种方法扩大数据集的规模:设计了一种数据引擎来收集和自动标注大规模无标注数据(约 6200 万)。这能显著扩大数据覆盖范围,并由此可以降低泛化错误。

为了保证数据扩展的质量,研究者探索了两种简单却有效的策略。

第一,利用数据增强工具创建一个难度更高的优化目标。这会迫使模型主动寻找额外的视觉知识并获取鲁棒的表征。

第二,开发一种辅助监督机制,可强制模型从预训练编码器继承丰富的语义先验知识。

团队使用 6 个公共数据集和随机拍摄的照片评估了新方法的零样本能力,其泛化能力非常出色。更进一步,使用来自 NYUv2 和 KITTI 的度量深度信息对模型进行微调后,新模型获得了新的 SOTA 结果。

这篇论文的主要贡献包括:

强调了大规模、低成本和多样化无标注图像的数据扩展对 MDE 的价值。

指出了在联合训练大规模有标注和无标注图像方面的一个重要实践方法:不是直接学习原始无标注图像,而是为模型提供更困难的优化目标,让其学会使用额外的知识。

提出从预训练编码器继承丰富的语义先验,从而实现更好的场景理解,而不是使用辅助性语义分割任务。

新模型的零样本能力超过 MiDaS-BEiT_L-512。不仅如此,使用度量深度进行微调后,新模型的表现更是显著超过 ZoeDepth。

Depth Anything

TikTok 的这项研究使用了有标注和无标注图像来实现更好的单目深度估计(MDE)。用数学形式表示,可以将有标注和无标注集分别表示成:

这里的目标是根据 D^l 学习得到一个教师模型 T。然后,使用 T 给 D^u 分配伪深度标签。最后,使用有标注集和伪标注集的组合数据集训练一个学生模型 S。图 2 是一个简单图示。

学习有标注图像

这个过程与 MiDaS 的训练过程类似。具体来说,深度值首先会通过 d = 1/t 被转换到视差空间(disparity space)中,然后再把每张深度映射图归一化到 0~1 范围内。为了实现多数据集联合训练,该团队采用了仿射不变损失。

这样一来就可以忽略每个样本的未知尺度和偏移。

为了得到稳健的单目深度估计模型,他们从 6 个公共数据集收集了 150 万张有标注图像。表 1 列出了这些数据集的详情。

不仅如此,为了增强从这些有标注图像学习到的教师模型 T,他们还采用了 DINOv2 预训练权重对编码器进行初始化。在实践操作中,该团队的做法是使用一个经过预训练的语义分割模型来检测天空区域并将其视差值设置为 0(即最远)。

解放无标注图像的力量

这正是这项研究的主要目标。至于无标注图像源,该团队选择了 8 个大规模公共数据集,保证了多样性。这些数据集总共包含 6200 多万张图像。详情见表 1 下半部分。

在处理无标注图像时,该团队设定使用 CutMix 的概率为 50%。输入给 CutMix 的无标注图像已经在颜色上经历过强扭变,但给教师模型 T 进行伪标注的无标注图像却是干净的,没有任何扭变。

语义辅助型感知

这项研究首次尝试了组合使用 RAM + GroundingDINO + HQ-SAM 来为无标注图像分配语义分割标签。经过后处理之后,这得到了一个包含 4000 个类别的类别空间。

在联合训练阶段,该模型的任务使用一个共享的编码器和两个单独的解码器得到深度预测结果和分割预测结果。不幸的是,一番试错之后,该团队没能提升原始 MDE 模型的性能。

因此,他们的目标就变成了训练更多能提供信息的语义信号,以作为辅助监督信号助力深度估计任务。

该团队表示:「DINOv2 模型在语义相关任务的强大表现让我们大受震撼。」

因此,他们提出通过一个辅助特征对齐损失将其强大的语义能力迁移到新的深度模型。其特征空间是高维且连续的,因此包含的语义信息比离散掩码更丰富。该特征对齐损失的数学形式为:

实验及结果

研究者使用了 DINOv2 编码器进行特征提取。所有标注的数据集都简单地合并在一起,无需重新采样。无标注的图像由使用 ViT-L 编码器的最佳教师模型标注,每批标注和无标注图像的比例设定为 1:2。

零样本相对深度估计

研究者在六个具有代表性的不可见数据集 KITTI、NYUv2、Sintel、DDAD、ETH3D 和 DIODE 上全面验证了 Depth Anything 模型的零样本深度估计能力 ,并将其与最新 MiDaS v3.1 中的最佳 DPT-BEiT_L-512 模型进行了比较,后者使用的标注图像比前者多。

如表 2 所示,在均使用 ViT-L 编码器的前提下,在广泛的场景中,Depth Anything 在 AbsRel 和 δ_1 度量上都大大超过了 MiDaS 的最强模型。

面向度量深度估计的微调

研究者进一步研究了 Depth Anything 模型,将其作为下游度量深度估计的一种有潜力的权重初始化方法。

两种有代表性的情况如下:

  1. 域内度量深度估计,即在同一域内对模型进行训练和评估。如 NYUv2 表 3 所示,Depth Anything 模型明显优于之前的最佳方法 VPD,δ_1 (↑) 从 0.964 → 0.984,AbsRel (↓) 从 0.069 提高到 0.056。表 4 中的 KITTI 数据集也有类似的改进。

  2. 零样本度量深度估计,即模型在一个域(如 NYUv2)上进行训练,但在不同域(如 SUN RGB-D)上进行评估。如表 5 所示,在大量未见过的室内和室外场景数据集中,Depth Anything 比基于 MiDaS 的原始 ZoeDepth 得出了更好的度量深度估计模型。 whaosoft aiot http://143ai.com

面向语义分割进行微调

在本文方法中,研究者设计了 MDE 模型,通过简单的特征对齐约束,从预训练编码器中继承丰富的语义先验。随后,研究者检验了 MDE 编码器的语义能力。

如 Cityscapes 数据集的表 7 所示,研究者从大规模 MDE 训练中获得的编码器(86.2 mIoU)优于从大规模 ImageNet-21K 预训练中获得的现有编码器,例如 Swin-L (84.3) 和 ConvNeXt-XL (84.6)。表 8 中的 ADE20K 数据集也有类似的观察结果。

消融实验

在消融实验中,研究者使用了 ViT-L 编码器。表 6 展示了每个训练集的零样本迁移性能。

如表 9 所示,简单地添加带有伪标签的无标注图像不一定为模型带来增益,大规模的无标注图像能够显著增强模型的泛化能力。

全部评论 (0)

还没有任何评论哟~