人类有两只眼睛来估量视觉环境的深度信息,但机器人和 VR 头社等设备却往往没有这样的「配置」,往往只能靠单个摄像头或单张图象来估量深度。这个任务也被称为单目深度估量(MDE)。
近日,一种可有效利用大规模无标注图象的新 MDE 模型 Depth Anything 凭借强大的性能在社交网络上引起了广泛讨论,试用者无不称奇。
甚至有试用者发现它还能正确处理埃舍尔(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://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 下半部分。
技术上讲,给定之前获得的 MDE 教员模型 T,可在无标注集 D^u 上失去预测结果,从而失去一个伪标注集:
该团队引入了两种形式的扰动:一种是强颜色扭变,包括颜色抖动和高斯模糊;另一种是强空间扭曲,也就是 CutMix。
尽管法子很简单,但这两种修改法子可让大规模无标注图象显著提升应用有标注图象训练的基准模型。
至于 CutMix,它最早是为图象分类提出的技术,目前还很少用于单目深度估量。该团队的做法是先在空间上插值一对随机的无标注图象 u_a 和 u_b:
在处理无标注图象时,该团队设定应用 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 得出了更好的器度深度估量模型。
面向语义联系从事微调
在本文法子中,研究者设计了 MDE 模型,通过简单的特征对齐约束,从预训练编码器中继承丰富的语义先验。随后,研究者检验了 MDE 编码器的语义威力。
如 Cityscapes 数据集的表 7 所示,研究者从大规模 MDE 训练中获得的编码器(86.2 mIoU)优于从大规模 ImageNet-21K 预训练中获得的现有编码器,例如 Swin-L (84.3) 和 ConvNeXt-XL (84.6)。表 8 中的 ADE20K 数据集也有类似的观察结果。
消融实验
在消融实验中,研究者应用了 ViT-L 编码器。表 6 展示了每个训练集的零样本迁移性能。
如表 9 所示,简单地添加带有伪标签的无标注图象不一定为模型带来增益,大规模的无标注图象能够显著增强模型的泛化威力。
另外,附一则研究团队的招聘信息:
联系方式:[email protected]
视觉和多模态大模型方向
实习生和全职都有招聘!
Base 地点:北京,新加坡,San Jose
对于优秀的实习生,可以提供远程实习机会!
联系方式:[email protected]