Depth Anything v1 :https://depth-anything.github.io

Depth Anything v2 : https://depth-anything-v2.github.io

港大发布了他们的深度估计模型Depth Anything,目前已经有了两个版本,效果不错,本文介绍这两个版本。可以说Depth Anything系列是当前各种视觉大模型蓬勃发展的结果,由于本人水平有限,对于2D视觉大模型的训练技巧知之甚少,所以本文是对这两个工作framework的大致理解,对细节感兴趣可以看看原文。

一、Depth Anything v1

1.abstract

本文提出了一种鲁棒的单目深度估计实用解决方案——Depth Anything¹。我们并未追求新颖的技术模块,而是致力于构建一个简洁而强大的基础模型,能够处理任何场景下的任意图像。为此,我们通过设计数据引擎来扩增数据集,收集并自动标注了大规模(约6200万)无标记数据,显著提升了数据覆盖范围,从而有效降低泛化误差。我们研究了两种简单而有效的策略来实现数据规模化:首先,利用数据增强工具创建更具挑战性的优化目标,迫使模型主动探索额外视觉知识并获取鲁棒表征;其次,开发辅助监督机制,使模型能够继承预训练编码器丰富的语义先验。我们对其零样本能力进行了广泛评估,包括六个公开数据集和随机采集的照片,结果展现出惊人的泛化能力(图1)。此外,通过使用NYUv2和KITTI的度量深度信息进行微调,我们创造了新的最优性能记录。我们更优的深度模型还催生了性能更强的深度条件ControlNet。

2.概况(选读)

作为在机器人[66]、自动驾驶[64,80]、虚拟现实[48]等领域具有广泛应用的基础性问题,单目深度估计(MDE)需要一个能够从单幅图像预测深度信息的基础模型。然而,由于构建数千万深度标注数据集的困难,这一方向的研究尚未充分展开。MiDaS[46]通过在多组混合标注数据集上训练MDE模型进行了开创性研究,尽管展现出一定零样本能力,但其数据覆盖范围的局限性导致在某些场景下性能严重不足。

单目深度估计(MDE)

早期工作[23,37,51]主要依赖手工特征和传统计算机视觉技术,这类方法受限于显式深度线索的提取能力,在存在遮挡和无纹理区域的复杂场景中表现欠佳。

基于深度学习的方法通过从精细标注数据集[18,55]中有效学习深度表征,彻底革新了该领域。Eigen等人[17]首次提出多尺度融合网络进行深度回归,此后研究通过以下途径持续提升精度:(1)将回归任务重构为分类任务[3,34];(2)引入更多先验信息[32,54,76,83];(3)设计更优的目标函数[68,78]等。尽管这些方法展现出优异性能,但其在未知领域的泛化能力仍然有限。

zero-shot方法

本文工作属于这一研究方向,旨在通过多样化训练集构建可预测任意图像深度的MDE模型。早期探索性工作[10,67]通过扩充训练图像数量推进该方向,但其监督信号极为稀疏且仅作用于有限点对。

为实现有效的多数据集联合训练,里程碑工作MiDaS[46]采用仿射不变损失函数,消除了不同数据集间深度尺度和偏移的差异,从而提供相对深度信息。近期研究[4,22,79]进一步尝试估计度量深度,但实验表明这类方法的泛化能力弱于MiDaS(尤其最新版本[5])。值得注意的是,如ZoeDepth[4]所验证,强大的相对深度估计模型经度量深度信息微调后,同样能实现优异的可泛化度量深度估计。因此,我们延续MiDaS的相对深度估计框架,但通过挖掘大规模单目无标注图像的价值进一步强化其性能。

本研究旨在构建一个能够适应任意场景、为任何图像生成高质量深度信息的MDE基础模型。我们选择从数据集规模扩展的角度实现这一目标。传统深度数据集主要通过传感器采集[18,55]、立体匹配[15]或运动恢复结构(SfM)[33]获取,这些方法成本高昂、耗时费力,在特定场景下甚至难以实现。我们首次将目光投向大规模无标注数据,与立体图像或深度传感器标注图像相比,所使用的单目无标注图像具有三大优势:(一)采集简便经济——单目图像几乎无处不在,无需专业设备即可轻松收集;(二)场景覆盖多样——能涵盖更广泛的场景范围,这对模型泛化能力和可扩展性至关重要;(三)标注流程高效——仅需通过预训练MDE模型前向传播即可为无标注图像分配深度标签,不仅效率极高,生成的深度图比激光雷达[18]更密集,还省去了计算密集的立体匹配过程(疑问:收集的数据较为广泛,标注的时候,预训练MDE模型前向传播应该会有泛化性的问题)

我们设计了一个数据引擎,能够自动为无标注图像生成深度注释,从而实现数据规模的无限扩展。该引擎从八个大型公开数据集(如SA-1B[27]、Open Images[30]和BDD100K[82])中收集了6200万张多样化且信息丰富的图像,仅使用其原始无标注图像,不涉及任何形式的标签。为确保标注可靠性,我们首先从六个公开数据集中收集150万张标注图像训练初始MDE模型,随后以自训练(self-training)方式[31]自动标注无标注图像,并与标注图像进行联合学习。

尽管单目无标注图像具有上述优势,但要有效利用如此大规模的无标注数据[73,90]并非易事——特别是在已具备充足标注图像和强大预训练模型的情况下。我们提出在模型学习伪标签时设置更具挑战性的优化目标:通过施加多种强扰动,迫使学生模型主动探索额外视觉知识并学习鲁棒表征,从而提升对未知图像的适应能力。

现有研究[9,21]表明辅助性语义分割任务有助于MDE性能提升。我们延续这一思路,试图增强模型的高层场景理解能力。但发现当MDE模型足够强大时,此类辅助任务难以带来增益——我们推测这是由于图像解码到离散类别空间时存在严重的语义信息损失。鉴于DINOv2在语义相关任务中的卓越表现,我们提出通过简单的特征对齐损失来保持其丰富的语义先验。这种方法不仅提升了MDE性能,还产生了一个能同时处理中层感知(深度估计)与高层感知(语义理解)任务的多功能编码器

3.method

本研究采用标注与无标注图像协同训练的策略来提升单目深度估计(MDE)性能。具体而言,定义标注数据集为Dₗ={(xᵢ,dᵢ)}ᴹᵢ₌₁,无标注数据集为Dᵤ={uᵢ}ᴺᵢ₌₁。技术实现分为三个阶段:(1)基于Dₗ训练教师模型T;(2)利用T为Dᵤ生成伪深度标签;(3)联合标注数据与伪标注数据训练学生模型S。图2展示了该框架的示意图。

3.1 Learning Labeled Images

补充知识1:双目深度与视差

Disparity(视差)简单解释_视差计算公式-CSDN博客

正文

本方法的训练流程与MiDaS[5,46]类似。首先将深度值通过d=1/t转换到视差空间,并对每张深度图进行0∼1的归一化处理。为实现多数据集联合训练,采用仿射不变损失函数来消除样本间的尺度与偏移差异,使得数据对齐到同一个区间内:

其中di*和di分别表示预测值与真实值,$\rho$为仿射不变平均绝对误差损失:

调整参数t(d)中位数和s(d)用于对齐预测与真实值的零平移和单位尺度特性:

公式2,3其实就是归一化。为构建鲁棒的单目深度估计模型,我们从6个公开数据集中收集了150万标注图像(具体数据集信息见表1)。通过引入易获取且多样化的无标注图像,显著扩展了数据覆盖范围,从而大幅提升模型泛化能力与鲁棒性。

此外,为增强基于标注图像训练的教师模型T,我们采用DINOv2[43]预训练权重初始化编码器。具体实现中,使用预训练语义分割模型[70]检测天空区域,并将其视差值设为0(表示最远距离)。

3.2释放大规模无标签数据的力量

我们选取了8个大型公开数据集作为无标注源(总计超6200万图像),其场景多样性详见表1下半部分。技术实现上,基于预训练的教师模型T对无标注集Dᵤ生成伪标签集:

更多细节可以详细查看论文。

3.3 Semantic-Assisted Perception

我们认为赋予深度模型高层语义信息具有潜在价值,尤其在利用无标注图像时,此类辅助监督可缓解伪深度标签的噪声干扰。为此,我们首次尝试结合RAM[86]+GroundingDINO[38]+HQ-SAM[26]模型为无标注图像标注语义分割标签(经后处理得到4K类别的分类空间)。在联合训练阶段,模型需通过共享编码器和双独立解码器同时预测深度与分割结果。但实验表明,该方法未能提升基线模型性能。我们推测,将图像解码为离散类别空间会导致语义信息严重损失,尤其当深度模型已达较高性能时,有限的分割信息难以带来增益

基于此,我们转向探索更具信息量的语义监督信号。受DINOv2[43]在图像检索、语义分割等任务中展现的卓越性能(即使冻结权重)启发,提出通过特征对齐损失迁移其语义能力。该方法的优势在于:

首先,特征空间是高维连续的,比离散掩码包含更丰富语义;

其次,对齐损失公式为:

其中cos计算特征向量余弦相似度,f为深度模型S提取的特征,f'来自冻结的DINOv2编码器。为避免随机初始化投影器导致对齐损失主导早期训练[19],我们直接对齐原始特征空间。最终,我们的总损失函数由Ll、Lu和Lf eat三种损失的加权平均构成。

简单介绍到这里,更多细节请查看论文,因为method涉及了很多无标签自监督训练的经验之谈,本人并不是做这个方向,对2D的训练不熟悉。

4.效果

在kitti数据集上面,对比midas3.1:

在nyu数据集上面:

游戏数据效果:

5.结论以及边界

Depth Anything是一个用于稳健单眼深度估计的高度实用的解决方案。与现有sota不同,我们特别强调了廉价和多样化的无标签图像的价值。我们设计了两种简单但高效的策略来充分利用它们的价值:1)在学习无标签图像时提出更具挑战性的优化目标,2)从预训练模型中保留丰富的语义先验。因此,我们的Depth Anything模型表现出出色的zero-shot深度估计能力,也是下游度量深度估计和语义分割任务的有前途的初始化。

目前,最大的模型尺寸只受限于ViT-Large [16]。因此,在未来,我们计划将模型尺寸从ViT-Large进一步扩大到ViT-Giant,这也是由DINOv2 [43]预先训练的。我们可以用更大的模型训练一个更强大的教师模型,为较小的模型生成更准确的伪标签来学习,例如ViT-L和ViT-B。此外,为了促进现实世界的应用,我们认为广泛采用的512×512培训分辨率是不够的。我们计划在700+甚至1000+的更大分辨率上重新训练我们的模型。

二、Depth Anything v2

1.概述

本研究推出Depth Anything V2版本。我们摒弃繁复技巧,致力于揭示关键发现,为构建强大的单目深度估计模型铺平道路。值得注意的是,相比V1版本[89],本次升级通过三项核心改进实现了更精细、更鲁棒的深度预测:1) 用合成图像完全替代标注真实图像;2) 大幅提升教师模型容量;3) 通过海量伪标注真实图像作为桥梁指导学生模型训练。相较于基于Stable Diffusion的最新模型[31],我们的方案在保持显著更高精度同时,实现超10倍的推理加速。我们提供参数量从2500万到13亿不等的多尺度模型,以适配多样化应用场景。得益于卓越的泛化能力,仅需简单微调度量深度标签即可获得高精度度量深度模型。除模型本身外,针对现有测试集多样性不足且噪声频发的问题,我们还构建了标注精准、场景多元的综合性评估基准,以期推动领域研究发展。

本研究综合考量上述因素,旨在构建能力更强的单目深度估计基础模型,以实现表1所列的全部优势:
• 对复杂场景(包括但不限于复杂布局、透明物体[如玻璃]、反光表面[如镜子、屏幕][15]等)生成鲁棒预测
• 预测深度图包含精细细节(与Marigold相当),涵盖细长物体[如椅腿][42]、微小孔洞等
• 提供不同规模模型及推理效率,支持广泛场景应用[82]
• 具备足够泛化性,可迁移(通过微调)至下游任务

2.framework

我们构建的Depth Anything V2训练流程如图,包含三个关键步骤,实际上是v1版本基础上对模型泛化性的拓展,思路并没有太多变化:

  1. 教师模型训练
    基于DINOv2-G架构,仅使用高质量合成图像训练可靠的教师模型,确保深度预测的精确性。

  2. 伪标签生成
    利用教师模型对海量无标注真实图像生成高精度伪深度标签,突破真实数据标注噪声的限制。

  3. 学生模型训练
    在伪标注的真实图像上训练最终学生模型(此阶段无需合成图像),实现强泛化能力。

我们将发布四个不同规模的学生模型,分别基于DINOv2的Small、Base、Large和Giant变体,以满足多样化应用需求。

detail

如表7所示,本研究采用五个高精度合成数据集(59.5万幅图像)和八个大规模伪标注真实数据集(6200万幅图像)进行训练。延续V1版本[89]的做法,针对每个伪标注样本,我们在训练时忽略其损失值最高的前10%区域——这些区域被视为潜在噪声伪标签。同样地,我们的模型输出仿射不变的反向深度值。

在标注图像优化方面,我们采用两种损失函数:1)尺度与平移不变损失Lssi;2)梯度匹配损失Lgm(二者均源自MiDaS[56])。但创新性发现在于:当使用合成图像训练时,Lgm对深度图锐度的提升效果尤为显著(详见B.7节)。对于伪标注图像,我们沿袭V1方案,额外引入特征对齐损失以保留DINOv2预训练编码器的语义信息。

3.效果

开放域图像:

与marigold比较

与zerodepth

4.conclusion & limit

在这项工作中,我们提出了Depth Anything V2,这是一个更强大的单目深度估计基础模型。它能够:1)提供稳健和精细的深度预测,2)支持具有不同模型尺寸(从25M到1.3B参数)的广泛应用,以及3)作为有前途的模型初始化,轻松微调到下游任务。我们揭示了关键的发现,为构建强大的MDE模型铺平了道路。此外,意识到现有测试集中的多样性差和噪音丰富,我们构建了一个多功能评估基准DA-2K,用精确且具有挑战性的稀疏深度标签覆盖多样化的高分辨率图像。

目前,我们使用6200万张无标签图像进行培训。计算负担非常重。因此,在未来,我们将研究如何更有效地利用这种大规模的视觉数据。此外,目前的合成训练套装还不够多样化。我们将尝试从更多来源收集合成图像,以训练更有能力的教师模型,以获得更好的伪标签。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐