news 2026/1/10 3:35:50

【读点论文】Depth Anything V2数据范式革新+模型蒸馏优化+评估基准升级,好的合成数据优于标注不佳真实数据,依旧Dinov2+DPT解码器,优化改变了损失设计和数据增强

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【读点论文】Depth Anything V2数据范式革新+模型蒸馏优化+评估基准升级,好的合成数据优于标注不佳真实数据,依旧Dinov2+DPT解码器,优化改变了损失设计和数据增强

Depth Anything V2

Abstract

  • 这项工作介绍了Depth Anything V2。在不追求花哨技术的情况下,我们的目标是揭示关键发现,为构建强大的单目深度估计模型铺平道路。值得注意的是,与V1 相比,该版本通过三个关键实践产生更精细,更强大的深度预测:1)用合成图像替换所有标记的真实的图像,2)扩大我们的教师模型的容量,3)通过大规模伪标记的真实的图像的桥梁来教授学生模型。与基于稳定扩散的最新模型相比,我们的模型要比(速度快10倍以上)且更准确。我们提供不同比例的模型(从25M到1.3B参数),支持广泛的场景。得益于其强大的泛化能力,在此基础上,考虑到当前测试集的多样性有限和噪声频繁,我们构建了一个具有精确注释和多样化场景的通用评估基准,以便于未来的研究。
  • 论文地址:[2406.09414] Depth Anything V2
  • 项目地址:[GitHub - DepthAnything/Depth-Anything-V2: NeurIPS 2024] Depth Anything V2. A More Capable Foundation Model for Monocular Depth Estimation
  • Depth Anything V2针对单目深度估计(MDE)模型在细粒度细节与复杂场景鲁棒性的平衡难题,通过三大核心实践实现突破:一是用高精度合成标注图像完全替换真实标注图像,解决真实数据的标签噪声与细节缺失问题;二是升级教师模型容量(基于 DINOv2-G)并仅用合成数据训练;三是借助 62M 大规模伪标注真实图像实现教师到多尺度学生模型的知识迁移,同时规避合成数据的域偏移与场景覆盖局限。此外,针对现有测试基准噪声多、场景单一的缺陷,构建了高精度、多场景的 DA-2K 评估基准
  • Depth Anything V2 是对 V1 的核心升级,其算法设计围绕“解决判别式模型细粒度缺失 + 合成数据域适配”的核心目标,通过数据范式革新、模型蒸馏策略优化、评估基准重构三大维度工作,实现了 “鲁棒性 + 细粒度 + 高效性” 的统一。

Introduction

  • 单目深度估计(MDE)由于其在广泛的下游任务中的基础作用而受到越来越多的关注。精确的深度信息不仅在经典应用中是有利的,例如3D重建,导航和自动驾驶,而且在现代场景中也是优选的,例如AI生成的内容,包括图像,视频和3D场景。因此,最近出现了许多MDE模型,它们都能够处理开放世界图像。

    • 图一:Depth Anything V2在鲁棒性和细粒度细节方面明显优于V1 。与基于SD的模型相比,它具有更快的推理速度,更少的参数和更高的深度精度。

  • 从模型架构的角度来看,这些工作可以分为两组。一组是基于判别模型,例如BEiT 和DINOv2 ,而另一组是基于生成模型,例如稳定扩散(SD)。在图2中,我们分别比较了两个类别中的两个代表性作品:Depth Anything 作为判别模型,Marigold 作为生成模型。可以很容易地观察到,Marigold在建模细节方面更上级,而Depth Anything对复杂场景产生更强大的预测。此外,如表1所示,Depth Anything比Marigold更高效,更轻便,有不同的比例可供选择。同时,Depth Anything容易受到透明物体和反射的影响,而这正是Marigold的优势。在这项工作中,考虑到所有这些因素,我们的目标是建立一个更强大的基础模型,用于单目深度估计,可以实现表1中列出的所有优势:

    • 对复杂场景进行稳健的预测,包括但不限于复杂布局、透明物体(例如玻璃)、反射表面(例如镜子、屏幕)等。

    • 在预测的深度图中包含精细的细节(与金盏花的细节相当),包括但不限于薄的物体(例如,椅子腿),小孔等。

    • 提供不同的模型规模和推理效率,以支持广泛的应用。

    • 可推广到足以转移(即微调)到下游任务,例如,Depth Anything V1作为第三MDEC中所有领导团队的预训练模型。

    • 图二:Depth Anything V1的鲁棒性(第一行,误导性的房间布局)和Marigold的细粒度细节(第二行,薄篮球网)。

    • 表1:强大的单目深度估计模型的可扩展属性。

  • 由于MDE的本质是一个区分性任务,我们从Depth Anything V1 开始,旨在保持其优势并纠正其弱点。有趣的是,我们将证明,要实现这样一个具有挑战性的目标,不需要开发花哨或复杂的技术。最关键的部分仍然是数据。它确实与V1的数据驱动动机相同,它利用大规模未标记数据来加速数据扩展并增加数据覆盖率。在这项工作中,我们将首先回顾其标记数据设计,然后强调未标记数据的关键作用。我们首先在下面介绍三个主要发现,并在下面三个部分中详细阐述。

    • 问题1 [第2节]:MiDaS或DepthAnything的粗深度是否来自于判别建模本身?是否必须采用基于重扩散的建模方式来获得精细细节?
    • A1:不,有效的判别模型也可以产生极其精细的细节。最关键的修改是用精确的合成图像替换所有标记的真实的图像。
    • Q2 [第3节]:如果像A1提到的那样,合成图像已经明显上级真实的图像,为什么大多数先前的作品仍然坚持使用真实的图像?
    • 答2:合成图像有其缺点,这在以前的范例中并不容易解决。
    • Q3 [第4节]:如何避免合成图像的缺点,并扩大其优势?
    • A3:放大仅在合成图像上训练的教师模型,然后通过大规模伪标记的真实的图像的桥梁来教授(较小的)学生模型。
  • 经过探索,我们成功地构建了一个功能更强大的MDE基础模型。然而,我们发现当前的测试集过于嘈杂,无法反映MDE模型的真正优势。因此,我们进一步构建了一个具有精确注释和多样化场景的通用评估基准(第6节)。

  • 核心论点对应结论
    判别式模型能否生成细粒度深度?能,关键是用高精度合成标注数据替代真实数据,无需依赖扩散模型
    为何合成数据未成为主流?合成数据存在域偏移(风格 / 色彩与真实图像差异)和场景局限(无复杂真实场景),传统范式难以解决
    如何发挥合成数据优势?用 DINOv2-G 大模型做教师,通过大规模伪标注真实图像将知识迁移到多尺度学生模型
    伪标签与真实标注孰优?伪标签质量远超真实标注,在 DIML 数据集上,伪标签训练模型的 AbsRel 从 0.122 降至 0.099,δ1 从 0.882 升至 0.901
    大规模无标签真实图像是否必要?必要,单一数据集(SA-1B)迭代训练无法替代多数据集的多样性,62M 数据可显著提升模型泛化性

Revisiting the Labeled Data Design of Depth Anything V1

  • 基于MiDaS 在零触发MDE中的开创性工作,最近的研究倾向于构建更大规模的训练数据集,以提高估计性能。值得注意的是,Depth Anything V1 ,Metric3D V1 和V2 以及ZeroDepth 已经积累了1.5M,8M,16M,然而,很少有研究对这种趋势进行批判性的研究:如此大量的标记图像真的有好处吗?在回答这个问题之前,让我们先深入研究一下真实的标记图像可能被忽视的缺点。

  • 真实的标记数据的两个缺点:1)标签噪声,即深度图中的不准确标签。由于各种采集过程固有的局限性,真实的标记数据不可避免地存在不准确的估计,这种不准确可能源于各种因素,例如深度传感器无法准确捕获透明物体的深度(图3a),立体匹配算法对无纹理或重复模式的脆弱性(图3b),以及SfM方法在处理动态对象或离群值时的易受影响性质(图3c)。2)忽略的细节。这些真实的数据集经常忽略其深度图中的某些细节。

    • 图3:“GT”深度标签中的各种噪声(a:NYU-D ,B:HRWSI [83],c:MegaDepth )和相应训练模型中的预测误差(d)。在训练期间忽略黑色区域。

  • 如图4a所示,树和椅子的深度表示非常粗糙。这些数据集很难在对象边界或细孔内提供详细的监督,导致深度预测过于平滑,如图4c中间所示。因此,这些嘈杂的标签非常不可靠,以至于学习的模型也会犯类似的错误(图3d)。例如,MiDaS和Depth Anything V1在透明表面挑战中分别获得25.9%和53.5%的较差分数(表12中的更多细节:我们的V2以零样本方式获得83.6%的竞争分数)。

    • 图4:真实的图像(a)和合成图像(B)的深度标签,以及相应的模型预测(c)。合成图像的标签是高度精确的,它们的训练模型也是如此。

  • 为了克服上述问题,我们决定改变我们的训练数据,并寻找具有更好注释的图像。受最近几项基于SD的研究的启发,这些研究专门利用具有完整深度信息的合成图像进行训练,我们广泛检查合成图像的标签质量,并注意到它们缓解上述缺点的潜力。

  • 合成图像的优点。它们的深度标签在两个方面都非常精确。1)所有细节(例如,边界、薄孔、小物体等)被正确地标记。如图4b所示,甚至所有薄网格结构和叶子都被注释有真实深度。2)我们可以获得具有挑战性的透明物体和反射表面的实际深度,例如,图4b中桌子上的花瓶。总之,合成图像的深度是真正的“GT”。在图4c的右侧,我们展示了在合成图像上训练的MDE模型的细粒度预测。此外,我们可以通过从图形引擎收集来快速放大合成训练图像,这与真实的图像相比不会引起任何隐私或道德问题

  • 数据范式革新:用合成标注数据替换真实标注数据

    • 摒弃真实标注数据:指出真实标注的两大缺陷(标签噪声:深度传感器 / 立体匹配 / SfM 的固有误差;细节缺失:对细结构 / 透明物体标注粗糙),用 595K高精度合成标注图像(BlendedMVS/Hypersim 等 5 个数据集)完全替代 V1 的 1.5M 真实标注数据;合成数据标签可精准刻画细结构(如树叶、细网)与透明 / 反光物体,为模型提供无噪声的细粒度监督。
  • 模型蒸馏策略:大模型教师 + 大规模伪标注真实图像迁移

  • 升级教师模型:采用 DINOv2-G(1.3B 参数)作为教师模型,仅用合成数据训练,最大化合成数据的精度优势;生成伪标签:教师模型为 62M 真实无标签图像(BDD100K/SA-1B 等 8 个数据集)生成高精度伪深度标签,训练时忽略 top10% 高损失区域(过滤伪标签噪声);多尺度学生训练:基于 DINOv2-S/B/L/G(25M-1.3B 参数)训练学生模型,且仅用伪标注真实数据,弥合合成数据的域偏移与场景局限。

  • 评估基准构建:提出 DA-2K 高精度多场景基准

    • 针对现有基准(NYU-D/KITTI)标签噪声多、场景单一、分辨率低的缺陷,构建 DA-2K 基准:标注 1K 高清图像的 2K 稀疏深度对,覆盖 8 类场景(室内 / 室外 / 透明 / 航拍等),标注流程为 “SAM 掩码采样 + 模型分歧筛选 + 人工交叉校验”。
  • Depth Anything V2 的模型架构遵循 “教师 - 学生” 蒸馏范式,各模块分工明确,参数调节针对 “精度、泛化、效率” 三维目标优化:

    • 模块名称核心作用关键参数参数调节逻辑
      DINOv2 编码器(教师:G;学生:S/B/L/G)提取高维视觉特征,教师继承合成数据精度,学生继承真实场景泛化性1. 学习率:5e-6;2. 模型尺度:覆盖 25M-1.3B 参数;3. 输入分辨率:短边 resize 至 518,训练时裁剪为 518×5181. 编码器学习率远低于解码器,避免预训练特征被破坏;2. 多尺度适配不同算力场景(ViT-L 兼顾精度,ViT-S 侧重效率)
      DPT 解码器将编码器特征映射为像素级深度图,保持与 V1 的范式兼容1. 学习率:5e-5(编码器的 10 倍);2. 优化器:Adam;3. 学习率调度:固定迭代次数(教师 160K,学生 480K)解码器随机初始化,需更高学习率快速拟合深度回归;固定迭代次数适配大规模数据训练
      伪标签生成模块为真实无标签图像生成高精度深度标签,过滤噪声1. 忽略区域比例 n:10%;2. 伪标签生成模型:DINOv2-G;3. 数据比例:合成数据 595K + 伪标注真实数据 62M10% 的高损失区域过滤平衡伪标签精度与覆盖;用大模型生成伪标签保证标签质量
      DA-2K 标注模块构建高精度多场景评估基准1. 深度对采样阈值:深度比 > 3;2. 场景覆盖:8 类;3. 图像分辨率:1500×2000 级深度比阈值保证标注有效性;多场景覆盖验证模型全场景鲁棒性;高清图像适配现代应用需求
  • 教师模块:DINOv2-G+DPT 解码器,通过合成数据学习细粒度深度表征;伪标签模块:教师模型为真实图像标注,实现 “合成精度→真实场景” 的知识传递;学生模块:编码器提取特征后,经 DPT 解码器输出深度,同时通过特征对齐损失保留 DINOv2 语义先验;评估模块:DA-2K 基准从多维度验证模型性能,弥补传统基准的缺陷。

Challenges in Using Synthetic Data

  • 如果合成数据如此有利,为什么真实的数据仍然主导MDE?在本节中,我们确定了合成图像的两个限制,这两个限制阻碍了它们在现实中的轻松使用。

  • 局限性1.合成图像与真实的图像之间存在分布偏移,当前的图形引擎虽然追求真实感效果,但其风格和颜色分布与真实的图像仍有明显差异,合成图像在颜色上过于“干净”,在布局上过于“有序”,而真实的图像则包含更多的随机性,例如,在比较图4a和图4b时,我们可以立即区分合成图像。这种分布变化使得模型很难从合成图像转换到真实的图像,即使两个数据源共享类似的布局。

  • 限制2.合成图像具有有限的场景覆盖范围。它们是从具有预定义的固定场景类型的图形引擎迭代采样的,例如“客厅”和“街景”。因此,尽管Hypersim 或Virtual KITTI (图4b)具有惊人的精度,但我们不能期望在它们上训练的模型在现实世界的场景中很好地泛化,例如“拥挤的人”。相比之下,一些由网络立体图像(例如HRWSI )或单眼视频(例如MegaDepth )构建的真实的数据集可以覆盖广泛的现实世界场景。

  • 因此,在MDE中,合成到真实的传输是不平凡的。为了验证这一说法,我们进行了一项试点研究,使用四种流行的预训练编码器,包括BEiT ,SAM ,Syndrome 和DINOv 2 ,仅在合成图像上学习MDE模型。如图5所示,只有DINOv 2-G达到了令人满意的结果。所有其他模型系列,以及较小的DINOv 2模型,遭受严重的泛化问题。这项初步研究似乎给出了在MDE中使用合成数据的直接解决方案,即建立在最大的DINOv 2编码器上,并依赖其固有的泛化能力。然而,这种天真的解决方案面临两个问题。

    • 图5:不同视觉编码器在合成到真实的转换上的定性比较。只有DINOv 2-G产生令人满意的预测。有关定量比较,请参阅第B.6节。

  • 首先,DINOv 2-G经常遇到失败的情况,即合成训练图像中很少出现真实的测试图像的模式。在图6中,我们可以清楚地观察到天空(云)和人头的错误深度预测。这种失败是可以预料的,因为我们的合成训练集不包括各种天空模式或人类。此外,在存储和推理效率方面,大多数应用程序无法容纳资源密集型的DINOv 2-G模型(1.3B)。实际上,由于其实时速度,Depth Anything V1中最小的模型使用最广泛

    • 图6:最强大的DINOv 2-G模型在纯合成图像上训练时的失败案例。左:天空应该是超远的。右:头部的深度与身体不一致。

  • 为了缓解泛化问题,一些作品使用真实的和合成图像的组合训练集。不幸的是,如第B.9节所示,真实的图像的粗糙深度图对细粒度预测是破坏性的。另一个潜在的解决方案是收集更多的合成图像,这是不可持续的,因为创建模仿每个真实世界场景的图形引擎是棘手的。因此,在使用合成数据构建MDE模型时,需要一个可靠的解决方案。在本文中,我们将缩小这一差距,并提出一个路线图,解决精确性和鲁棒性的困境,没有任何权衡,并适用于任何模型规模。

Key Role of Large-Scale Unlabeled Real Images

  • 我们的解决方案很简单:结合未标记的真实的图像。我们最强大的MDE模型,基于DINOv 2-G,最初纯粹是在高质量的合成图像上训练的。然后它在未标记的真实的图像上分配伪深度标签。最后,我们的新模型只使用大规模和精确的伪标记图像进行训练。Depth Anything V1 强调了大规模未标记的真实的数据的重要性。在这里,在我们的合成标记图像的特殊背景下,我们将从三个方面更详细地说明它的不可或缺的作用。

  • 弥合领域差距。如前所述,由于分布偏移,从合成训练图像直接转换为真实的测试图像具有挑战性。但是,如果我们能够利用额外的真实的图像作为中间学习目标,则该过程将更加可靠。直观地,在对伪标记真实的图像进行明确训练之后,模型可以更加熟悉真实世界的数据分布。与手动注释的图像相比,我们自动生成的伪标签粒度更细,更完整,如图17所示。

  • 增强场景覆盖。合成图像的多样性有限,没有包含足够的真实世界场景。然而,我们可以通过合并来自公共数据集的大规模未标记图像来轻松覆盖许多不同的场景。此外,合成图像确实非常冗余,因为它们是从预定义的视频中重复采样的。相比之下,未标记的真实的图像清晰可辨,信息量很大,通过对足够的图像和场景进行训练,模型不仅表现出更强的零样本MDE能力,(如图6所示“+未标记的真实的图像”),但它们也可以作为下游相关任务的更好的预训练源。

  • 将知识从最有能力的模型转移到较小的模型。我们在图5中显示,较小的模型不能直接受益于合成到真实的转移。然而,配备了大规模未标记的真实的图像,它们可以学习模仿最有能力的模型的高质量预测,类似于知识蒸馏。但不同的是,我们的蒸馏是通过额外的未标记的真实的数据在标签级强制执行的,而不是在原始标记数据的特征或logit级强制执行的。这种做法更安全,因为有证据表明特征级蒸馏并不总是有益的,特别是当师生比例差距巨大时。最后,如图16所示,未标记的图像极大地提高了我们较小模型的鲁棒性

Depth Anything V2

Overall Framework

  • 根据上述所有分析,我们训练Depth Anything V2的最终管道是清晰的(图7)。它包括三个步骤:完全基于高质量的合成图像训练基于DINOv 2-G的可靠教师模型。在大规模未标记的真实的图像上产生精确的伪深度。在伪标记的真实的图像上训练最终的学生模型,以实现鲁棒的泛化(我们将在该步骤中展示合成图像是不必要的)。我们将发布四个学生模型,分别基于DINOv2 small、base、large和giant。
    • 图7:Depth Anything V2.我们首先在精确的合成图像上训练最有能力的教师。然后,为了减轻合成数据的分布偏移和有限的多样性,我们与教师一起注释未标记的真实的图像。最后,我们在高质量的伪标记图像上训练学生模型。

Details

  • 如表7所示,我们使用五个精确的合成数据集,(595 K图像)和8个大规模伪标记的真实的数据集(62M图像)进行训练。与V1 相同,对于每个伪标记样本,我们在训练期间忽略其前n个最大损失区域,其中n设置为10%。我们将它们视为潜在的噪声伪标签。类似地,我们的模型产生仿射不变的逆深度。我们使用两个损失项对标记图像进行优化:尺度和平移不变损失Lssi和梯度匹配损失Lgm。这两个目标函数并不是新的,因为它们是由MiDaS 提出的。但不同的是,我们发现Lgm在使用合成图像时对深度清晰度非常有益(第B.7节)。在伪标记图像上,我们遵循V1添加额外的特征对齐损失,以保留来自预训练的DINOv2编码器的信息语义。
    • 表7:我们的训练数据来源。

A New Evaluation Benchmark: DA-2K

Limitations in Existing Benchmarks

  • 在第2节中,我们证明了常用的真实的训练集具有噪声深度标签。在这里,我们进一步论证了广泛采用的测试基准也是噪声的。图8说明了尽管使用了专门的深度传感器,但NYU-D 上的镜子和薄结构的错误注释。如此频繁的标签噪声使得强大的MDE模型的报告指标不再可靠。

    • 图8:广泛采用但确实存在噪声的测试基准的可视化]。如突出显示的那样,镜子和薄结构的深度不正确(黑色像素被忽略)。相比之下,我们的模型预测是准确的。噪声将导致更好的模型,而不是获得更低的分数。

  • 除了标签噪声之外,这些基准测试的另一个缺点是多样性有限。它们中的大多数最初是针对单个场景提出的。例如,NYU-D 专注于一些室内房间,而KITTI 只包含几个街道场景。这些基准测试的性能可能无法反映真实世界的可靠性。理想情况下,我们希望MDE模型可以稳健地处理任何不可见的场景。

  • 这些现有基准测试的最后一个问题是分辨率低。它们大多提供分辨率约为500 x 500的图像。但对于现代相机,我们通常需要对更高分辨率的图像进行精确的深度估计,例如1000 x 2000。目前尚不清楚从这些低分辨率基准测试中得出的结论是否可以安全地转移到高分辨率基准测试中

DA-2K

  • 考虑到上述三个限制,我们的目标是构建一个用于相对单目深度估计的通用评估基准,该基准可以1)提供精确的深度关系,2)覆盖广泛的场景,3)包含大多数现代使用的高分辨率图像。事实上,人类注释每个像素的深度是不切实际的,特别是对于野外图像。因此,遵循DIW ,我们为每个图像标注稀疏深度对。通常,给定一个图像,我们可以选择其上的两个像素,并确定它们之间的相对深度(即哪个像素更接近)。

  • 具体地说,我们使用两个不同的管道来选择像素对。在第一个管道中,如图9a所示,我们使用SAM 来自动预测对象遮罩。我们利用提示它们的关键点(像素)来代替遮罩。我们随机采样两个关键像素并查询四个专家模型(和我们的)对它们的相对深度进行投票。如果存在分歧,该对将被发送给人类注释者以决定真正的相对深度。由于潜在的模糊性,注释者可以跳过任何对。然而,可能会有所有模型都错误地预测具有挑战性的对的情况,为了解决这个问题,我们引入了第二个管道,在那里我们仔细分析图像并手动识别具有挑战性的对。

    • 图9:我们提出的评估基准DA-2K。(a)两点之间相对深度的注释管道。基于SAM 掩码预测对点进行采样。四个深度模型之间不一致的对将弹出供注释器标记。(B)我们场景覆盖的详细信息。

  • 为了保证精确性,所有的标注都要经过另外两个标注者的三重检查。为了保证多样性,我们首先总结了MDE的八个重要应用场景(图9b),并要求GPT4生成与每个场景相关的不同关键字。然后我们使用这些关键字从Flickr下载相应的图像。最后,我们总共用2K像素对标注1K图像。由于篇幅所限,请参阅C节了解详细信息以及与DIW的比较。

  • DA-2K的定位。尽管有这些优势,我们并不期望DA-2K取代目前的基准。精确的稀疏深度与场景重建所需的精确密集深度仍然相距甚远。然而,DA-2K可以被认为是准确的密集深度的先决条件。因此,我们相信DA-2K可以作为现有基准的有价值的补充,因为它广泛的场景覆盖和精度。它还可以作为用户选择DA-2K覆盖的特定场景的社区模型的快速事先验证。最后,我们相信它也是未来多模态LLM三维感知的潜在试验平台。

    • 表8:将我们的Depth Anything V2编码器转移到语义分割。我们采用Mask2Former作为我们的分割模型。我们在没有Mapillary 或COCO 预训练的情况下实现了结果。

Experiment

Implementation details

  • 遵循Depth Anything V1 ,我们使用DPT 作为我们的深度解码器,构建在DINOv 2编码器上。所有图像都是在518×518的分辨率下训练的,方法是将较短的尺寸调整为518,然后随机裁剪。在合成图像上训练教师模型时,我们使用64的批量大小进行160 K次迭代。在伪标记的真实的图像上训练的第三阶段,该模型以192的批量大小进行480 K次迭代的训练。我们使用Adam优化器并将编码器和解码器的学习率分别设置为5e-6和5e-5。在这两个训练阶段中,我们不平衡训练数据集,而是简单地连接它们。Lssi和Lgm的权重比设置为1:2。

Zero-Shot Relative Depth Estimation

  • 传统基准测试的性能。由于我们的模型预测仿射不变的逆深度,为了公平起见,我们在五个看不见的测试数据集上与Depth Anything V1 和MiDaS V3.1 进行比较。如表2所示,我们的结果上级MiDaS,与V1 相当。我们在两个数据集上的指标略低于V1。然而,这些数据集上的普通度量不是本文的重点。该版本旨在为薄结构提供细粒度的预测,并为复杂场景,透明物体等提供鲁棒的预测。这些方面的改进无法正确反映在当前的基准测试中。

    • 表二:零样本相对深度估计。更好:AbsRel ↓,δ1 ↑。仅从指标来看,Depth Anything V2优于MiDaS,但仅与V1相当。但事实上,我们V2的重点和优势(例如,细粒度的细节、对复杂布局的鲁棒性、透明对象等)不能正确地反映在这些基准上。(即,模型更好,但评分更差)也在中观察到。

  • 在我们提出的基准测试DA-2K上的性能。如表3所示,在我们提出的具有不同场景的基准测试上,即使是我们最小的模型也明显优于其他基于SD的模型,例如,Marigold 和Geowlord 。我们最有能力的模型在相对深度分辨方面比Margold高出10.6%的准确度。请参阅表14了解综合性能。我们的模型的场景性能。

    • 表3:在我们提出的DA-2K评估基准上的性能,其中包括八个代表性的场景。即使是我们最轻量级的模型也上级所有其他社区模型。

Fine-tuned to Metric Depth Estimation

  • 为了验证我们模型的泛化能力,我们将其编码器转移到下游度量深度估计任务。首先,与V1 相同,我们遵循ZoeDepth 管道,但用我们的预训练编码器替换其MiDaS 编码器。如表4所示,我们在NYU-D和KITTI数据集上实现了比以前方法的显着改进。值得注意的是,即使是我们基于ViT-S的最轻量级模型,也上级基于ViT-L的其他模型。

    • 表4:将我们的Depth Anything V2预训练编码器微调为域内度量深度估计,即训练和测试图像共享相同的域。所有比较方法都使用接近ViT-L的编码器大小。

  • 虽然报告的指标看起来令人印象深刻,但由于训练集中的固有噪声,在NYUv2或KITTI上训练的模型无法产生细粒度的深度预测,并且对透明物体不鲁棒。因此,为了满足多视图合成等现实应用,我们在Hypersim 和Virtual KITTI 合成数据集上微调了我们强大的编码器,用于室内和室外度量深度估计,我们将发布这两个度量深度模型。请参考图15与以前的ZoeDepth方法进行定性比较。

Ablation Study

  • 由于篇幅所限,除了两个关于伪标签的消融外,我们将大部分消融推迟到附录。

  • 大规模伪标记的真实的图像的重要性。如表5所示,与仅在合成图像上训练相比,我们的模型通过合并伪标记的真实的图像得到了极大的增强。与Depth Anything V1 不同,我们进一步尝试在训练学生模型期间删除合成图像。我们发现这甚至可以为较小的模型带来稍好的结果(例如,ViT-S和ViT-B)。所以我们最终选择纯粹在伪标记图像上训练学生模型。这种观察确实类似于SAM ,它只释放其伪标记掩码。

    • 表5:伪标记的(未标记的)真实的图像的重要性(Di). Di:精确标记的合成图像。

  • 在真实的标记图像上的伪标记与手动标记。我们之前在图4a中已经证明,现有的标记真实的数据集非常嘈杂。在这里,我们进行定量比较。我们使用来自DIML 数据集的真实的图像,并分别比较其原始手动标签和我们生成的伪标签下的传输性能。我们可以在表6中观察到,使用伪标签训练的模型这个巨大的差距表明了我们的伪标签的高质量和当前标记的真实的数据集中的丰富噪声

    • 表6:原始手动标签和我们在DIML数据集上生成的伪标签之间的比较。我们生产的伪标签比DIML提供的手动标签质量高得多。

Related Work

  • 单目深度估计。早期的作品专注于域内度量深度估计,其中训练图像和测试图像必须共享相同的域。由于其应用场景受限,最近零样本相对单目深度估计受到越来越多的关注。其中,一些作品通过更好的建模方式解决了这一任务,例如,使用稳定扩散作为深度去噪器。其他作品专注于数据驱动的视角。例如,MiDaS 和Metric3D 分别收集2M和8M标记图像。意识到放大标记图像的困难,Depth Anything V1 利用62M未标记图像来增强模型的鲁棒性。在这项工作中,不同的是,我们指出了广泛使用的标记真实的图像的多种局限性。因此,我们特别强调了诉诸合成图像以确保深度精度的必要性。同时,为了解决合成图像引起的泛化问题,我们采用数据驱动(大规模伪标记的真实的图像)和模型驱动(按比例放大教师模型)策略

  • 从未标记的真实的图像中学习。如何从未标记的图像中学习信息表示在半监督学习领域得到了广泛的研究。然而,他们专注于学术基准,仅允许使用小规模的标记和未标记的图像。相比之下,我们研究了真实世界的应用场景,即,如何用62M未标记图像进一步提升0.6M标记图像的基线。此外,与Depth Anything V1 不同,我们展示了未标记真实的图像不可或缺的作用,特别是当我们用合成图像替换所有标记的真实的图像时,我们证明“精确的合成数据+伪标记的真实的数据”是比标记的真实的数据更有前途的路线图

  • 知识蒸馏。我们从我们最有能力的教师模型中提取可转移的知识到更小的模型中。这与知识蒸馏(KD)的核心精神相似。但我们也有根本的不同,因为我们通过额外的未标记的真实的图像在预测水平上进行蒸馏,而KD 通常通过标记图像在特征或logit水平上研究更好的蒸馏策略,我们旨在揭示大规模未标记数据和更大教师模型的重要性,而不是精致的损失设计或蒸馏管道。此外,直接在具有巨大规模差距的两个模型之间提取特征表示确实是不平凡的和有风险的。相比之下,我们的伪标签蒸馏更容易和更安全,甚至从1.3B参数的模型到25M参数的模型

  • 现有 MDE 模型分为两大阵营:以Depth Anything V1为代表的判别式模型,优势是复杂场景鲁棒性强、推理高效,但无法精准建模细粒度结构(如细网、透明物体);以Marigold为代表的 SD 类生成式模型,优势是细节丰富,但推理低效且复杂场景鲁棒性差,具体对比如下表:

    • 模型类型细粒度细节透明 / 反光物体复杂场景推理效率迁移性
      Marigold(生成式)
      Depth Anything V1(判别式)
      Depth Anything V2(优化判别式)

Conclusion

  • 在这项工作中,我们提出了一个更强大的单目深度估计基础模型Depth Anything V2,它能够1)提供鲁棒的细粒度深度预测,2)支持各种模型大小的广泛应用(从25 M到1.3B参数),(3)容易被罚款-调整到下游任务作为一个有前途的模型初始化。我们揭示了关键的发现,为建立一个强大的MDE模型铺平了道路。此外,针对现有测试集多样性差、噪声大的问题,构建了一个通用的评估基准DA-2K,该基准涵盖了具有精确且具有挑战性的稀疏深度标签的各种高分辨率图像。

  • Depth Anything V2 选择 “教师模型仅用合成数据、学生模型仅用伪标注真实数据” 的训练范式

    • 该范式的核心是分离 “精度构建” 与 “泛化适配” 任务:教师模型用合成数据可避免真实数据的噪声干扰,最大化标签精度;学生模型用伪标注真实数据可弥合合成数据的域差距,同时规避真实标注的细节缺失。直接混合合成与真实标注数据不可行,实验表明即使仅混入 5% 的真实数据(如 HRWSI),也会破坏合成数据带来的细粒度预测能力,导致模型输出重新变得粗糙。
  • DA-2K 基准相比现有 MDE 测试集的核心优势是高精度、多场景、高分辨率,弥补了现有基准的三大缺陷。其精度保障依赖三层机制:1)先通过 SAM 掩码采样像素对,确保采样点对应真实物体;2)用 4 个专家模型对像素对投票,仅将分歧样本送入人工标注,减少无效标注;3)所有标注经三人交叉校验,过滤模糊 / 歧义样本,最终形成的稀疏深度对可作为稠密深度评估的可靠先验。

  • Depth Anything V2 的损失函数分 “教师合成数据训练” 和 “学生伪标注数据训练” 两阶段,各损失针对不同阶段的核心矛盾设计:

    • 教师模型损失(合成数据训练):L_ssi + L_gm(权重比 1:2)

      • 尺度偏移不变损失(L_ssi).数学本质:与 V1 一致,通过对深度做零均值、单位尺度归一化,消除数据集间的量纲差异,实现跨数据集统一监督;保证模型对合成数据的深度尺度鲁棒性,为伪标签生成提供稳定基准。

      • 梯度匹配损失(L_gm),强制模型预测的深度梯度与合成标签梯度匹配;解决合成数据训练模型的深度锐度不足问题,实验证明权重从 0.5 提升至 2.0 时,细结构预测锐度持续增强(见图 10)。

      • 图10:梯度匹配损失Lgm在细粒度细节方面的影响。

    • 学生模型损失(伪标注数据训练):L_ssi + L_gm + 特征对齐损失

    • 特征对齐损失,数学本质:与 V1 一致,计算学生模型特征与冻结 DINOv2 特征的余弦相似度,仅对相似度低于阈值的像素计算损失;保留 DINOv2 的语义先验,提升模型对真实场景的语义理解能力,同时避免语义信息破坏深度的局部判别性。

  • 优先保证细粒度精度:L_gm 在合成数据上的强监督是细结构预测的关键;其次保证泛化性:特征对齐损失与伪标注数据结合,弥合域差距;最后保证跨数据集兼容性:L_ssi 实现不同数据的统一监督。

  • Depth Anything V2 的算法设计是“数据范式革新 + 模型蒸馏优化 + 评估基准升级”的协同成果:通过合成数据解决精度问题,通过伪标注真实数据解决泛化问题,通过多尺度架构解决效率问题,最终实现了判别式 MDE 模型的性能突破。其核心贡献不仅是指标的提升,更是为 MDE 领域提供了 “合成数据筑底 + 真实伪标注拓界” 的通用范式。

代码仓库结构与核心组件

  • 核心模块 / 文件功能说明
    depth_anything_v2/模型核心代码,包含网络结构定义(基于 DINOv2 编码器 + DPT 头)。
    metric_depth/基于预训练模型微调的 metric 深度估计模块(支持室内 / 室外场景)。
    run.py单张图像深度估计推理脚本。
    run_video.py视频序列深度估计脚本(支持长视频一致性深度生成)。
    app.pyGradio 交互式演示程序,方便可视化测试。
    DA-2K.md自定义的 DA-2K 基准测试集说明(用于评估相对深度估计性能)。
  • 研究工作的核心是基于DINOv2 编码器DPT 解码器的深度估计框架,代码中通过以下组件实现:

    • DINOv2 编码器(depth_anything_v2/dinov2.py,基于 Facebook 的 DINOv2 预训练模型(视觉 Transformer),负责提取图像的多尺度特征。代码中DinoVisionTransformer类实现了该编码器,支持不同参数规模(vits/vitb/vitl/vitg),并通过interpolate_pos_encoding适配不同输入图像尺寸。
    • DPT 解码器(depth_anything_v2/dpt.py,研究中采用 DPT(Dense Prediction Transformer)结构作为解码器,将编码器输出的特征转换为稠密深度图。DPTHead类实现了这一过程:通过projects层将多尺度特征投影到统一维度;通过resize_layers调整特征图尺寸,实现多尺度融合;最终通过output_conv生成单通道深度图。
    • 模型入口(DepthAnythingV2类),整合编码器和解码器,提供infer_image方法实现端到端的深度估计(见 README 中的使用示例)。支持不同规模模型(参数从 24.8M 到 1.3B),适配不同计算资源。
  • Metric 深度估计(metric_depth/目录),研究中基于预训练的 Depth Anything V2 编码器,在 synthetic 数据集(Hypersim 用于室内,Virtual KITTI 用于室外)上微调,实现绝对尺度的深度估计。

    • metric_depth/run.py提供微调脚本;
    • depth_to_pointcloud.py支持将 metric 深度图转换为点云(需输入相机内参),体现 metric 深度的实用价值。
  • 完整实现了 Depth Anything V2 的研究成果,从核心模型(DINOv2+DPT)到扩展功能(metric 深度、视频深度),再到评估工具(DA-2K),形成了一套完整的深度估计解决方案。

Depth Anything (V1/V2)

  • Depth Anything 是面向单目深度估计的判别式基础模型,V1 聚焦 “大规模无标签真实数据挖掘”,V2 升级为 “合成数据筑精度 + 伪标注真实数据拓泛化”,全流程围绕数据 - 模型 - 训练 - 评估 - 落地闭环设计

  • 维度Depth Anything V1Depth Anything V2
    核心数据范式「有标签真实数据 + 无标签真实数据」双轨「合成标注数据 + 伪标注真实数据」双轨(完全摒弃真实标注)
    数据规模 / 来源- 有标签:1.5M(6 个公开数据集,如 NYU-D/KITTI)- 无标签:62M(8 个数据集,如 SA-1B)- 合成标注:595K(5 个数据集,如 BlendedMVS/Hypersim)- 伪标注真实:62M(同 V1)
    标注类型 / 格式- 有标签:稠密深度图(.png/.npy,单通道浮点型,单位 m)- 无标签:无标注,仅原始 RGB- 合成标注:稠密深度图(无噪声,细粒度标注)- 伪标注:由 DINOv2-G 教师模型生成的稠密深度图
    标注工具 / 逻辑- 真实标注:依赖 LiDAR / 立体匹配 / SfM(存在噪声)- 无标签:无标注- 合成标注:3D 引擎渲染(如 Blender)- 伪标注:源码depth_anything_v2/run.py的教师模型推理生成
    源码数据加载类datasets/base_dataset.py(支持 NYU/KITTI 等格式)datasets/synthetic_dataset.py+datasets/real_dataset.py(区分合成 / 伪标注数据)
  • 输入图像:RGB 三通道,分辨率统一 resize 为「短边 518px」,训练时随机裁剪 518×518(源码transforms.pyResize+RandomCrop);

  • 深度标签:单通道浮点型数组,值为相对 / 绝对深度(V1 侧重相对,V2 新增 metric 深度后支持绝对),源码中存储为.npy(高效)或.png(8/16 位量化);

  • 数据组织形式:

    • dataset_root/ ├── rgb/# 按场景/数据集分文件夹,如nyu/rgb/0001.jpg├── depth/# 对应深度标签,如nyu/depth/0001.npy└── splits/# 训练/测试划分txt,每行是图像文件名(无后缀)
  • 数据增强(核心作用:提升鲁棒性,V2 强化细粒度)

    • 增强策略实现方式(源码transforms.py作用V1/V2 差异
      颜色畸变随机亮度 / 对比度 / 饱和度(0.8-1.2 倍)、高斯模糊(核大小 3/5)、灰度化(概率 0.2)降低模型对颜色的依赖,提升泛化V2 新增 “色彩匹配”,对齐合成 / 真实数据色域
      空间畸变CutMix(概率 0.5,随机矩形区域混合两张图)、随机水平翻转(概率 0.5)CutMix 提升空间鲁棒性,翻转扩充数据V2 CutMix 仅用于伪标注数据,避免破坏合成数据细粒度
      尺度扰动随机缩放(0.75-1.25 倍)后裁剪适配不同物体尺度一致
      噪声过滤(V2 新增)伪标注时忽略 top10% 高损失区域(源码pseudo_labeling.py过滤伪标签噪声V1 无,因 V1 伪标签由小模型生成,V2 由大模型生成但仍需过滤
  • 核心架构:DINOv2 编码器 + DPT 解码器(V1/V2 一致,仅编码器规模升级)

  • 输入RGB图像
    DINOv2视觉Transformer编码器
    多尺度特征提取-4个stage输出
    DPT解码器特征投影
    多尺度特征融合-上采样+拼接
    深度图回归-单通道输出
  • 各模块前向计算与作用(源码depth_anything_v2/dinov2.py+dpt.py

    • DINOv2 编码器: 图像分 patch(16×16)→ 线性投影为 token + 位置编码;经 12/24/32/40 层 Transformer(对应 ViT-S/B/L/G)→ 输出 4 个 stage 的特征(分辨率:1/4, 1/8, 1/16, 1/32);位置编码支持动态插值(interpolate_pos_encoding),适配任意输入分辨率。继承 DINOv2 预训练的通用视觉表征,兼顾语义理解与空间结构感知。

    • 模型规模层数隐藏维度参数量学习率(训练)
      ViT-S1238424.8M5e-6
      ViT-B2476886.6M5e-6
      ViT-L321024335M5e-6
      ViT-G4015361.3B5e-6
    • DPT 解码器: 特征投影:将编码器 4 个 stage 的特征通过 1×1 卷积投影到统一维度(256);多尺度融合:从最深层(1/32)开始,逐层上采样(转置卷积)并与浅层特征拼接;深度回归:最终拼接特征经 3×3 卷积→1×1 卷积→单通道深度图(分辨率与输入一致)。将 Transformer 的全局特征转换为稠密像素级深度预测,弥补编码器 “低分辨率” 缺陷。

    • 关键参数(源码dpt.py):投影维度:256(平衡精度与计算量);上采样方式:转置卷积(stride=2,kernel=4);输出激活:无(深度值为浮点型,无需 sigmoid/softmax)。

  • 前向传递完整流程(源码DepthAnythingV2forward方法)

  • defforward(self,x):# 1. 编码器提取多尺度特征features=self.encoder.get_intermediate_layers(x,n=4,reshape=True)# 2. 解码器投影+融合out=self.decoder(features)# 3. 深度图上采样至输入尺寸out=F.interpolate(out,size=x.shape[2:],mode='bilinear',align_corners=False)returnout
  • 端到端实现 “RGB→深度图”,V1/V2 仅编码器预训练权重、解码器初始化略有差异(V2 解码器从 0 初始化,V1 复用 MiDaS 初始化)。

  • 损失函数总览(V1/V2 对比)

    • 损失类型公式核心设计目标V1/V2 差异
      尺度偏移不变损失(L_ssi)L s s i = d ^ ∗ − d ^ \mathcal{L}_{ssi}=\hat{d}^* - \hat{d}Lssi=d^d^d ^ \hat {d}d^为归一化深度)消除深度尺度 / 偏移差异,统一监督一致
      梯度匹配损失(L_gm)L g m = ∇ d ^ ∗ − ∇ d ^ \mathcal{L}_{gm}=\nabla \hat{d}^* - \nabla \hat{d}Lgm=d^d^∇ \nabla为梯度)提升深度图锐度,保留细粒度V2 新增,权重 2:1(相对 L_ssi)
      特征对齐损失(L_feat)L f e a t = 1 − c o s ( f , f d i n o v 2 ) \mathcal{L}_{feat}=1 - cos(f, f_{dinov2})Lfeat=1cos(f,fdinov2)(余弦相似度)继承 DINOv2 语义先验V1/V2 一致,V2 阈值 α=0.85
      无标签损失(L_u)CutMix 分区域加权 L_ssi利用无标签 / 伪标注数据监督V1 用于无标签真实数据,V2 用于伪标注真实数据
    • L_ssi:解决 “多数据集深度量纲不一致” 问题(如 NYU-D 是室内米级,KITTI 是室外米级),通过归一化(深度 - 中位数 / 均值绝对偏差)实现 “相对深度” 监督,是核心回归损失;

    • L_gm(V2):针对 V1 深度图 “过度平滑” 缺陷,通过梯度约束强制模型还原细结构(如玻璃、细网),是细粒度优化损失;

    • L_feat:弥补 “深度回归仅关注距离,忽略语义” 的问题,通过对齐 DINOv2 特征,让模型理解 “桌子在椅子上” 等语义关系,提升复杂场景鲁棒性;

    • L_u:将无标签 / 伪标注数据转化为有效监督,V1 解决 “有标签数据少”,V2 解决 “合成数据域偏移”。

  • 损失权重与训练阶段(源码losses.py)

    • V1:L t o t a l = ( L l + L u + L f e a t ) / 3 \mathcal{L}_{total} = (\mathcal{L}_{l} + \mathcal{L}_{u} + \mathcal{L}_{feat}) / 3Ltotal=(Ll+Lu+Lfeat)/3(有标签:无标签批次比 1:2);
    • V2(教师):L t o t a l = L s s i + 2 ∗ L g m \mathcal{L}_{total} = \mathcal{L}_{ssi} + 2*\mathcal{L}_{gm}Ltotal=Lssi+2Lgm(合成数据无 L_feat);
    • V2(学生):L t o t a l = ( L s s i + 2 ∗ L g m + L f e a t ) / 4 \mathcal{L}_{total} = (\mathcal{L}_{ssi} + 2*\mathcal{L}_{gm} + \mathcal{L}_{feat}) / 4Ltotal=(Lssi+2Lgm+Lfeat)/4(伪标注数据为主);
    • 侧重点:V1 侧重 “泛化性”,V2 侧重 “精度 + 泛化”,L_gm 是 V2 细粒度提升的核心。
  • 训练技巧:作用与落地(源码train.py)

    • 训练技巧实现方式作用(论文验证)V1/V2 差异
      学习率策略编码器 5e-6,解码器 5e-5(解码器 10 倍),线性衰减(无 warmup)保护编码器预训练特征,解码器快速拟合V2 训练迭代更长(教师 160K,学生 480K)
      批次配比V1:有标签:无标签 = 1:2; V2:合成:伪标注 = 0:1(教师仅合成,学生仅伪标注)平衡不同数据的监督强度V2 无混合数据,避免合成 / 真实冲突
      模型初始化V1:解码器复用 MiDaS 权重V2:全模型从 0 初始化(编码器加载 DINOv2 预训练)V2 避免 MiDaS 平滑缺陷核心差异,V2 更依赖合成数据监督
      梯度裁剪max_norm=1.0(源码torch.nn.utils.clip_grad_norm_防止梯度爆炸,稳定训练一致
      混合精度训练FP16(NVIDIA AMP)降低显存占用,提升训练速度V2 ViT-G 必须用,否则显存不足
      伪标签过滤(V2)忽略 top10% 高损失区域(源码pseudo_labeling.py过滤伪标签噪声,提升监督质量V1 无,因 V1 伪标签质量低
    • 编码器低学习率:保留 DINOv2 语义先验,是 “多任务迁移”(如语义分割)的基础;批次配比:V1 解决无标签数据利用率,V2 避免合成 / 真实数据的域冲突;梯度裁剪 + 混合精度:支撑 62M 大规模数据训练,V2 ViT-G 训练需 8 卡 A100,混合精度可节省 50% 显存。

  • 核心评估维度(相对深度 + Metric 深度)

    • 指标类型具体指标计算公式(核心)意义
      相对深度δ1/δ2/δ3δk = % of pixels where max(d*/d, d/d*) < 1.25^k预测与真值的相对误差,δ1 越接近 1 越好
      相对深度AbsRel1 N ∑ d ∗ − d d ∗ \frac{1}{N}\sum\frac{d^* - d}{d^*}N1ddd平均绝对相对误差,越小越好
      相对深度RMSE1 N ∑ ( d ∗ − d ) 2 \sqrt{\frac{1}{N}\sum(d^* - d)^2}N1(dd)2均方根误差,越小越好
      Metric 深度SqRel1 N ∑ ( d ∗ − d ) 2 d ∗ \frac{1}{N}\sum\frac{(d^* - d)^2}{d^*}N1d(dd)2平方相对误差,对大误差敏感
      自定义基准(V2)DA-2K 准确率正确预测的深度对比例(深度比 > 3)多场景鲁棒性评估
    • 计算实现(源码eval.py

    • defcompute_metrics(pred,gt,mask):# 掩码过滤无效像素(如gt=0)pred=pred[mask]gt=gt[mask]# 计算AbsRelabs_rel=torch.mean(torch.abs(pred-gt)/gt)# 计算δ1ratio=torch.max(pred/gt,gt/pred)delta1=torch.mean((ratio<1.25).float())returnabs_rel.item(),delta1.item()
  • 可视化方式(源码visualization.py

    • 可视化类型实现方式观察分析维度
      深度图渲染归一化深度值→伪彩色映射(jet/rainbow 色板),叠加 RGB 图像对比1. 细结构是否还原(如细网、玻璃)2. 物体边界是否清晰3. 整体深度层次是否合理
      梯度热力图计算深度图梯度→热力图渲染V2 L_gm 是否生效(梯度越明显越好)
      点云可视化深度图 + 相机内参→点云(Open3D),RGB 着色3D 结构是否正确(如室内家具布局)
      误差热力图预测 - 真值的绝对误差→热力图(红 = 大误差,绿 = 小误差)误差集中区域(如透明物体、动态区域)
      视频时序可视化逐帧深度图拼接,添加光流约束的一致性渲染帧间深度是否连贯(无闪烁)
  • 结果后处理(源码post_processing.py

    • 后处理策略实现方式作用
      尺度校准(Metric)预测深度 × 缩放因子 + 偏移量(通过最小二乘拟合真值)相对深度→绝对深度
      边缘平滑引导滤波(guided filter),以 RGB 图像为引导保留边缘的同时降低噪声
      时序平滑(视频)前一帧深度图加权融合(权重 0.3)降低视频深度闪烁
      异常值过滤裁剪深度值至 [0.1, 100] m(室内)/[0.1, 200] m(室外)去除离谱预测值
  • 真实标注数据:存在两类问题,一是标签噪声(深度传感器无法捕捉透明物体、立体匹配易受重复纹理干扰、SfM 对动态物体失效);二是细节缺失(对细结构 / 物体边界标注粗糙,导致模型预测过度平滑)。合成标注数据:标签精度高且细节完整,但存在域偏移(风格 / 色彩与真实图像差异大)和场景覆盖局限(仅含预定义场景,无拥挤人群等真实场景)。

  • 教师模型训练:采用 DINOv2-G 编码器 + DPT 解码器,仅用 595K 合成数据训练,损失为尺度偏移不变损失L s s i L_{ssi}Lssi**与**梯度匹配损失L g m L_{gm}Lgm(权重比 1:2,L g m L_{gm}Lgm提升深度锐度)。伪标签生成:教师模型为 62M 真实无标签图像生成高精度深度伪标签,训练时忽略 top10% 高损失区域(过滤潜在噪声)。学生模型训练:基于 DINOv2-S/B/L/G 多尺度编码器,仅用伪标注真实数据训练,额外加入DINOv2 特征对齐损失保留语义先验,最终释放 25M-1.3B 多尺度模型。

  • 采用 “SAM 掩码采样 + 模型分歧筛选 + 人工校验” 流程:先通过 SAM 生成物体掩码并采样像素对,再用 4 个专家模型投票,分歧样本由人工标注相对深度(绿色点更近、红色点更远),最终标注 1K 图像、2K 像素对。涵盖8 类典型场景:室内(20%)、室外(17%)、非真实(15%)、透明 / 反光(10%)、恶劣风格、航拍、水下、物体,且以 1500×2000 级高清图像为主。

  • 平衡的关键是 “合成数据筑精度,伪标注真实数据拓泛化” 的双阶段方案:先通过合成数据为教师模型注入细结构监督,再通过大规模伪标注真实数据将知识迁移到学生模型。与 V1 的本质区别在于:V1 依赖 “真实标注 + 无标签数据”,存在真实数据的噪声 / 细节缺陷;V2 完全摒弃真实标注,用合成数据保证标签精度,同时通过伪标注真实数据解决合成数据的域偏移问题,实现 “细粒度 + 鲁棒性” 的统一。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/13 15:28:42

Wi-Fi® 网络管理技术

Wi-Fi Agile Multiband™ Wi-Fi Agile Multiband™ 有助于更好地管理 Wi-Fi 网络环境,并使 Wi-Fi 设备能够更好地响应不断变化的 Wi-Fi 网络条件。Wi-Fi 灵活多频段有助于高效利用多个频段,并包括更好地管理频谱和网络资源、平衡网络负载、提高移动性并提供最佳用户体验的机…

作者头像 李华
网站建设 2025/12/21 18:32:08

人工智能药学大会现场

如题&#xff0c;生信基地的小伙伴前两天参加了场学术会议&#xff0c;简单记录一下此次参会的收获。校长报告人工智能如何重塑药物研发的未来&#xff1f;智能药学将如何推动医药产业转型升级&#xff1f;是加速进程还是改变范式&#xff1f;首先上午第一场报告由校长提出三个…

作者头像 李华
网站建设 2026/1/2 19:54:57

X-CLIP多模态模型深度解析:视频理解的技术之旅

X-CLIP多模态模型深度解析&#xff1a;视频理解的技术之旅 【免费下载链接】xclip-base-patch32 项目地址: https://ai.gitcode.com/hf_mirrors/microsoft/xclip-base-patch32 在人工智能的快速发展中&#xff0c;多模态理解技术正成为连接视觉与语言世界的重要桥梁。X…

作者头像 李华
网站建设 2026/1/2 4:40:57

【Java】java 集合框架(详解)零基础入门到精通,收藏这篇就够了

1. 概述 &#x1f680; &#x1f525; Java集合框架 提供了一系列用于存储和操作对象组的接口和类。这些工具是为了解决不同数据结构通用操作的需求而设计的。集合框架主要包括两种类型的容器&#xff1a; 一种是 集合&#xff08;Collection&#xff09;&#xff0c;用于存储…

作者头像 李华
网站建设 2025/12/13 15:15:53

告别手动提交:用Git Auto Commit Action实现自动化工作流

告别手动提交&#xff1a;用Git Auto Commit Action实现自动化工作流 【免费下载链接】git-auto-commit-action Automatically commit and push changed files back to GitHub with this GitHub Action for the 80% use case. 项目地址: https://gitcode.com/gh_mirrors/gi/g…

作者头像 李华
网站建设 2025/12/13 15:15:33

解决ComfyUI-SeedVR2视频超分项目wandb依赖冲突的3种实用方法

解决ComfyUI-SeedVR2视频超分项目wandb依赖冲突的3种实用方法 【免费下载链接】ComfyUI-SeedVR2_VideoUpscaler Non-Official SeedVR2 Vudeo Upscaler for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-SeedVR2_VideoUpscaler 你在使用ComfyUI-SeedVR2…

作者头像 李华