Depth Anything V2

Yang 2024 · 论文

一句话总结 — Depth Anything V2通过三项实践,产出比V1更精细、更鲁棒的单目深度:仅用精确的合成图像训练教师模型,将教师模型扩展到DINOv2-G规模,并通过6200万张伪标注真实图像来训练学生模型。

问题

Depth Anything V1的泛化能力令人印象深刻,但其教师模型是在带标签的真实图像上训练的,而这些图像的深度标签噪声大且粗糙——深度传感器在透明物体上失效,立体匹配在重复图案上失效,SfM在动态物体上失效——因此训练出的模型会继承这些错误(MiDaS和V1在透明表面挑战赛(Transparent Surface Challenge)上的得分仅为25.9%和53.5%)。合成渲染图像具有像素级精确的深度(“真正的GT”),但带来两个障碍:合成图像到真实图像的分布偏移(合成图像过于”干净”和”有序”)以及预定义场景类型带来的场景覆盖范围受限。V2要探讨的问题是,如何在不付出域差距代价的前提下获得合成标签的精度——“不追求花哨的技术”。

方法与架构

该流程分为三个阶段(论文图7):

  1. 仅用合成数据训练教师模型。 一个带有DPT深度解码器的DINOv2-G(13亿参数)编码器,纯粹在来自五个数据集的59.5万张精确合成图像上训练(BlendedMVS 11.5万张、Hypersim 6万张、IRS 10.3万张、TartanAir 30.6万张、VKITTI 2 2万张)。一项初步研究表明,只有DINOv2-G能在合成到真实的迁移中存活下来;BEiT、SAM、SynCLR以及更小的DINOv2编码器都存在严重的泛化问题。
  2. 对真实图像进行伪标注。 教师模型为来自八个公开数据集的6200万张无标签真实图像分配深度(BDD100K、Google Landmarks、ImageNet-21K、LSUN、Objects365、Open Images V7、Places365、SA-1B)。这些伪标签比人工标注更精细、更完整。
  3. 仅在伪标签上训练学生模型。 四个学生模型(DINOv2 small/base/large/giant,2500万至13亿参数)纯粹在伪标注的真实图像上训练——一项消融实验表明,在这一阶段去掉合成图像甚至能对较小的模型略有帮助。这是通过额外的无标签数据实现的标签级蒸馏,比在教师与学生规模差距巨大时进行特征级蒸馏更安全。

在带标签(合成)图像上的训练目标结合了两个MiDaS风格的、作用于仿射不变逆深度的损失:一个尺度与偏移不变损失 Lssi\mathcal{L}_{ssi} 和一个梯度匹配损失 Lgm\mathcal{L}_{gm},权重比为 1:21{:}2——当标签是合成数据时,Lgm\mathcal{L}_{gm} 被证明”对深度锐度极其有益”。在伪标注图像上,每个样本中损失最大的前nn区域(n=10%n=10\%)被忽略,因为它们可能存在噪声,同时(来自V1的)特征对齐损失保留了DINOv2的语义信息。所有图像均在 518×518518\times 518 分辨率下训练;教师模型:批大小64,训练16万次迭代;学生模型:批大小192,训练48万次迭代;使用Adam,编码器/解码器学习率分别为5e-6/5e-5。

论文还贡献了DA-2K,一个包含1000张高分辨率、多样化图像及2000个稀疏相对深度像素对的评测基准,其构建原因是现有测试集(NYU-D、KITTI)存在噪声标签、单一场景偏差以及约500×500的分辨率:由SAM提示得到的点对由四个专家模型进行投票,存在分歧的则交由经三重检查的人工标注处理。

实验结果

对SLAM的意义

锐利、保边的深度对SLAM有直接意义:清晰的物体边界意味着更干净的TSDF/高斯地图,以及更少的深度在轮廓间的渗透,而小型变体能在普通硬件上实时运行。当一篇现代稠密SLAM论文说”我们使用单目深度先验”时,它往往指的就是Depth Anything V2——这使得了解其失效模式以及相对深度与度量深度的区分成为必备知识。它以合成数据为先的方案(精度来自渲染,真实感来自伪标注真实数据)也重塑了几何任务监督信号的获取方式。

相关条目