【文献阅读】Depth Anything Unleashing the Power of Large-Scale Unlabeled Data
Depth Anything
CVPR2024
摘要
本文提出了 Depth Anything [1],这是一种高度实用的稳健单目深度估计解决方案。我们的目标不是追求新颖的技术模块,而是构建一个简单而强大的基础模型,能够在任何情况下处理任何图像。
为此,我们通过设计一个数据引擎来收集和自动标注大规模无标签数据(约 6200 万),从而扩大数据集规模,显著扩大了数据覆盖范围,进而能够降低泛化误差。我们研究了两种简单而有效的策略,使数据规模扩大具有前景。
第一,利用数据增强工具创建一个更具挑战性的优化目标,这迫使模型积极寻找额外的视觉知识并获得稳健的表征。
第二,开发一种辅助监督,强制模型从预训练的编码器中继承丰富的语义先验。我们广泛评估了其零样本能力,包括六个公共数据集和随机拍摄的照片。结果显示出令人印象深刻的泛化能力(图 1)。
此外,通过使用来自 NYUv2 和 KITTI 的度量深度信息对其进行微调,我们创造了新的最先进成果。我们性能更优的深度模型还带来了更好的基于深度条件的 ControlNet。我们的模型在此处发布。
图 1:我们的模型在广泛的未见场景中表现出令人印象深刻的泛化能力。左两列:COCO [35]。中间两列:SA - 1B [26](一个未见过的保留集)。右两列:我们自己拍摄的照片。我们的模型在低光环境(第 1 列和第 3 列)、复杂场景(第 2 列和第 5 列)、雾天(第 5 列)和超远距离(第 5 列和第 6 列)等情况下都能稳健地工作。
1 引言
计算机视觉和自然语言处理领域目前正经历一场革命,“基础模型”[6] 的出现使其在各种下游场景中展现出强大的零样本 / 少样本性能 [44, 58]。
这些成功主要依赖于大规模的训练数据,这些数据能够有效覆盖数据分布。单目深度估计(MDE)是一个基础性问题,在机器人 [65]、自动驾驶 [63, 79]、虚拟现实 [47] 等领域有着广泛的应用,它也需要一个基础模型从单张图像中估计深度信息。
然而,由于构建包含数千万深度标签的数据集存在困难,这方面的研究尚未得到充分探索。MiDaS [45] 在这个方向上进行了开创性的研究,它在一组混合标注的数据集上训练了一个 MDE 模型。尽管 MiDaS 展示出了一定程度的零样本能力,但它受到数据覆盖范围的限制,因此在某些场景下性能不佳。
在这项工作中,我们的目标是构建一个用于 MDE 的基础模型,能够在任何情况下为任何图像生成高质量的深度信息。我们从扩大数据集规模的角度来实现这个目标。传统上,深度数据集主要通过从传感器获取深度数据 [17, 54]、立体匹配 [14] 或结构光运动(SfM)[32] 来创建,这些方法成本高昂、耗时,在某些特定情况下甚至难以实现。
相反,我们首次关注大规模无标签数据。与立体图像或来自深度传感器的标注图像相比,我们使用的单目无标签图像具有三个优点:
(i)(获取简单且成本低)单目图像几乎随处可见,因此易于收集,无需专门设备。
(ii)(数据多样)单目图像可以覆盖更广泛的场景,这对模型的泛化能力和可扩展性至关重要。
(iii)(标注容易)我们可以简单地使用预训练的 MDE 模型为无标签图像分配深度标签,这只需要一次前向传播。这不仅高效,而且比激光雷达(LiDAR)[17] 生成的深度图更密集,并且省略了计算密集的立体匹配过程。
我们设计了一个数据引擎,用于自动为无标签图像生成深度注释,使数据规模可以任意扩大。它从八个公共大规模数据集中收集了 6200 万张多样且信息丰富的图像,例如 SA - 1B [26]、Open Images [29] 和 BDD100K [81]。
我们使用这些数据集的原始无标签图像,不使用任何形式的标签。然后,为了为我们的无标签图像提供可靠的标注工具,我们从六个公共数据集中收集了 150 万张标注图像,以训练一个初始的 MDE 模型。然后,无标签图像被自动标注,并以自训练的方式 [30] 与标注图像一起进行联合学习。
尽管单目无标签图像具有上述所有优点,但要充分利用如此大规模的无标签图像确实并非易事 [72, 89],尤其是在有足够的标注图像和强大的预训练模型的情况下。
在我们的初步尝试中,直接将标注图像和伪标注图像结合并没有提高仅使用标注图像的基线性能。我们推测,以这种简单的自训练方式获得的额外知识相当有限。
为了解决这个困境,我们建议在学习伪标签时,为学生模型设置一个更具挑战性的优化目标。学生模型被强制在各种强扰动下寻找额外的视觉知识,并学习稳健的表征,以便更好地处理未见图像。
此外,一些研究 [9, 20] 已经证明了辅助语义分割任务对 MDE 的益处。我们也沿着这条研究路线进行探索,旨在为我们的模型配备更好的高级场景理解能力。
然而,我们观察到,当一个 MDE 模型已经足够强大时,这样的辅助任务很难带来进一步的提升。我们推测这是由于在将图像解码为离散的类别空间时,语义信息严重丢失。因此,考虑到 DINOv2 在语义相关任务中的出色性能,我们建议通过一个简单的特征对齐损失来保留它丰富的语义先验。这不仅提高了 MDE 的性能,还产生了一个用于中级和高级感知任务的多任务编码器。
我们的贡献总结如下:
- 我们强调了大规模、低成本且多样的无标签图像对 MDE 进行数据规模扩大的价值。
- 我们指出了联合训练大规模标注和无标签图像的一个关键实践。我们不是直接学习原始的无标签图像,而是通过更具挑战性的优化目标来促使模型获取额外知识。
- 我们建议从预训练的编码器中继承丰富的语义先验,以实现更好的场景理解,而不是使用辅助语义分割任务。
- 我们的模型比 MiDaS - \(BEiT_{L - 512}\)[5] 具有更强的零样本能力。此外,通过度量深度进行微调后,它显著优于 ZoeDepth [4]。
2 相关工作
2.1 单目深度估计(MDE)
早期的工作 [22, 36, 50] 主要依赖手工制作的特征和传统的计算机视觉技术。它们受到对明确深度线索的依赖的限制,难以处理具有遮挡和无纹理区域的复杂场景。
基于深度学习的方法通过从精心标注的数据集中有效学习深度表征,彻底改变了单目深度估计 [17, 54]。Eigen 等人 [16] 首次提出了一种多尺度融合网络来回归深度。此后,许多工作通过将回归任务精心设计为分类任务 [3, 33]、引入更多先验 [31, 53, 75, 82] 以及更好的目标函数 [67, 77] 等方式,不断提高深度估计的准确性。尽管性能有前景,但它们很难泛化到未见领域。
2.2 零样本深度估计
我们的工作属于这一研究方向。我们旨在使用多样化的训练集训练一个 MDE 模型,从而能够为任何给定的图像预测深度。一些开创性的工作 [10, 66] 通过收集更多的训练图像来探索这个方向,但它们的监督非常稀疏,仅在有限的点对上实施。
为了实现有效的多数据集联合训练,具有里程碑意义的工作 MiDaS [45] 利用仿射不变损失来忽略不同数据集之间潜在的不同深度尺度和偏移。因此,MiDaS 提供相对深度信息。最近,一些工作 [4, 21, 78] 进一步尝试估计度量深度。然而,在我们的实践中,我们观察到这些方法的泛化能力比 MiDaS 更差,尤其是其最新版本 [5]。此外,正如 ZoeDepth [4] 所展示的,一个强大的相对深度估计模型也可以通过使用度量深度信息进行微调,在可泛化的度量深度估计中表现良好。因此,我们在相对深度估计中仍然遵循 MiDaS 的方法,但通过突出大规模单目无标签图像的价值来进一步强化它。
2.3 利用无标签数据
这属于半监督学习的研究领域 [30, 55, 89],在各种应用中都很受欢迎 [70, 74]。然而,现有的工作通常假设只有有限数量的图像可用。它们很少考虑具有挑战性但现实的场景,即已经有足够的标注图像,但同时也存在更大规模的无标签图像。我们朝着这个具有挑战性的方向进行零样本 MDE 研究。我们证明了无标签图像可以显著扩大数据覆盖范围,从而提高模型的泛化能力和稳健性。
3 Depth Anything
我们的工作同时利用标注图像和无标签图像来促进更好的单目深度估计(MDE)。形式上,标注集和无标签集分别表示为\(D^{l}=\{(x_{i}, d_{i})\}_{i = 1}^{M}\)和\(D^{u}=\{u_{i}\}_{i = 1}^{N}\)。我们旨在从\(D^{l}\)中学习一个教师模型T。然后,我们利用T为\(D^{u}\)分配伪深度标签。最后,我们在标注集和伪标注集的组合上训练一个学生模型S。图 2 提供了简要说明。
图 2:我们的流程。实线:标注图像的流程,虚线:无标签图像的流程。我们特别强调大规模无标签图像的价值。S表示添加强扰动(3.2 节)。为了使我们的深度估计模型具有丰富的语义先验,我们在在线学生模型和一个固定的编码器之间实施辅助约束,以保留语义能力(3.3 节)。
3.1 学习标注图像
这个过程与 MiDaS [5, 45] 的训练类似。然而,由于 MiDaS 没有发布其代码,我们首先进行了复现。具体来说,深度值首先通过\(d = 1/t\)转换到视差空间,然后在每个深度图上归一化到 0 - 1。为了实现多数据集联合训练,我们采用仿射不变损失来忽略每个样本未知的尺度和偏移: \(\mathcal{L}_{l}=\frac{1}{HW}\sum_{i = 1}^{HW}\rho(d_{i}^{*}, d_{i})\) 其中\(d_{i}^{*}\)和\(d_{i}\)分别是预测值和真实值。
\(\rho\)是仿射不变平均绝对误差损失:\(\rho(d_{i}^{*}, d_{i}) = |\hat{d}_{i}^{*}-\hat{d}_{i}|\),其中\(\hat{d}_{i}^{*}\)和\(\hat{d}_{i}\)是预测值\(d_{i}^{*}\)和真实值\(d_{i}\)的缩放和平移版本: \(\hat{d}_{i}=\frac{d_{i}-t(d)}{s(d)}\) 其中\(t(d)\)和\(s(d)\)用于对齐预测值和真实值,使其具有零平移和单位尺度: \(t(d)=\text{median}(d), s(d)=\frac{1}{HW}\sum_{i = 1}^{HW}|d_{i}-t(d)|\)
为了获得一个稳健的单目深度估计模型,我们从 6 个公共数据集中收集了 150 万张标注图像。这些数据集的详细信息列在表 1 中。我们使用的标注数据集比 MiDaS v3.1 [5](12 个训练数据集)少,原因如下:
1)我们不使用 NYUv2 [54] 和 KITTI [17] 数据集,以确保在它们上面进行零样本评估;
2)一些数据集不再可用,例如 Movies [45] 和 WSVD [60];
3)一些数据集质量较差,例如 RedWeb(分辨率也较低)[66]。尽管使用的标注图像较少,但我们易于获取且多样的无标签图像将涵盖数据范围,极大地增强模型的泛化能力和稳健性。
表 1:总的来说,我们的 Depth Anything 在 150 万张标注图像和 6200 万张无标签图像上进行联合训练。
此外,为了强化从这些标注图像中学习的教师模型T,我们采用 DINOv2 [42] 的预训练权重来初始化我们的编码器。在实践中,我们应用一个预训练的语义分割模型 [69] 来检测天空区域,并将其视差值设置为 0(最远)。
3.2 释放无标签图像的力量
这是我们工作的重点。与之前费力构建多样标注数据集的工作不同,我们强调无标签图像在扩大数据覆盖范围方面的价值。
如今,我们实际上可以从互联网或各种任务的公共数据集中构建一个多样且大规模的无标签集。此外,我们只需将单目无标签图像输入到一个预训练的性能良好的 MDE 模型中,就可以轻松获得其密集的深度图。
这比为立体图像或视频执行立体匹配或 SfM 重建要方便和高效得多。我们选择了八个大规模公共数据集作为我们的无标签数据来源,因为它们包含多样的场景。它们总共包含超过 6200 万张图像。详细信息在表 1 的下半部分提供。
从技术上讲,给定之前获得的 MDE 教师模型T,我们对无标签集\(D^{u}\)进行预测,以获得一个伪标注集\(\hat{\mathcal{D}}^{u}\): \(\hat{\mathcal{D}}^{u}=\{(u_{i}, T(u_{i}))|u_{i}\in\mathcal{D}^{u}\}_{i = 1}^{N}\)
使用标注图像和伪标注图像的组合集\(D^{l}\cup\hat{D}^{u}\),我们在其上训练一个学生模型S。
遵循先前的工作 [73],为了获得更好的性能,我们不是从T对S进行微调,而是重新初始化S。
不幸的是,在我们的初步研究中,我们使用这种自训练流程并没有取得性能提升,这与在只有少量标注图像的情况下的观察结果相矛盾 [55]。我们推测,在我们的情况下,由于已经有足够的标注图像,从额外的无标签图像中获得的额外知识相当有限。
特别是考虑到教师模型和学生模型具有相同的预训练和架构,它们倾向于对无标签集\(D^{u}\)做出相似的正确或错误预测,即使没有明确的自训练过程。
为了解决这个困境,我们建议为学生模型设置一个更具挑战性的优化目标,以从无标签图像中获取额外的视觉知识。我们在训练过程中对无标签图像注入强扰动。这迫使我们的学生模型积极寻找额外的视觉知识,并从这些无标签图像中获得不变的表征。
这些优势有助于我们的模型更稳健地处理开放世界的情况。我们引入了两种形式的扰动:一种是强颜色失真,包括颜色抖动和高斯模糊;另一种是强空间失真,即 CutMix [83]。尽管简单,但这两种修改使我们的大规模无标签图像显著提高了仅使用标注图像的基线性能。
我们提供关于 CutMix 的更多细节。它最初是为图像分类提出的,在单目深度估计中很少被探索。我们首先对一对随机的无标签图像\(u_{a}\)和\(u_{b}\)进行空间插值: \(u_{ab}=u_{a}\odot M + u_{b}\odot(1 - M)\) 其中M是一个二进制掩码,其中一个矩形区域设置为 1。
无标签损失\(L_{u}\)通过首先分别在由M和\(1 - M\)定义的有效区域中计算仿射不变损失来获得: \(\mathcal{L}_{u}^{M}=\rho(S(u_{ab})\odot M, T(u_{a})\odot M)\) \(\mathcal{L}_{u}^{1 - M}=\rho(S(u_{ab})\odot(1 - M), T(u_{b})\odot(1 - M))\) 为了简单起见,我们省略了\(\sum\)和像素下标i。
然后,我们通过加权平均聚合这两个损失: \(\mathcal{L}_{u}=\frac{\sum M}{HW}\mathcal{L}_{u}^{M}+\frac{\sum(1 - M)}{HW}\mathcal{L}_{u}^{1 - M}\)
我们以 50% 的概率使用 CutMix。用于 CutMix 的无标签图像在颜色上已经受到强烈失真,但输入到教师模型T用于伪标注的无标签图像是干净的,没有任何失真。
3.3 语义辅助感知
存在一些工作 [9, 20, 27, 71] 通过辅助语义分割任务来改进深度估计。我们认为为我们的深度估计模型配备这种与高级语义相关的信息是有益的。此外,在我们利用无标签图像的特定背景下,来自其他任务的这些辅助监督信号也可以对抗我们伪深度标签中潜在的噪声。
因此,我们进行了初步尝试,通过结合 RAM [85] + GroundingDINO [37] + HQ - SAM [25] 模型,仔细为我们的无标签图像分配语义分割标签。
经过后处理,这产生了一个包含 4K 个类别的类别空间。在联合训练阶段,模型被强制使用一个共享编码器和两个单独的解码器同时生成深度和分割预测。不幸的是,经过反复试验,我们仍然无法提高原始 MDE 模型的性能。
我们推测,将图像解码为离散类别空间确实会丢失大量语义信息。这些语义掩码中的有限信息很难进一步提升我们的深度模型,尤其是当我们的深度模型已经取得极具竞争力的结果时。
因此,我们旨在寻找更具信息性的语义信号,作为深度估计任务的辅助监督。DINOv2 模型 [42] 在语义相关任务(如图像检索和语义分割)中展现出的强大性能让我们大为惊叹,即使其权重被冻结且未进行任何微调。
受这些线索的启发,我们提出通过辅助特征对齐损失将其强大的语义能力转移到我们的深度模型中。特征空间是高维且连续的,因此比离散掩码包含更丰富的语义信息。特征对齐损失的公式为: \(\mathcal{L}_{feat }=1-\frac{1}{H W} \sum_{i=1}^{H W} \cos \left(f_{i}, f_{i}'\right)\) 其中\(\cos (\cdot, \cdot)\)衡量两个特征向量之间的余弦相似度。
f是深度模型S提取的特征,而\(f'\)是来自冻结的 DINOv2 编码器的特征。我们没有像一些工作 [18] 那样将在线特征f投影到新空间进行对齐,因为随机初始化的投影器会使大的对齐损失在早期主导总损失。
特征对齐的另一个关键点是,像 DINOv2 这样的语义编码器倾向于为物体的不同部分(如汽车的前部和后部)生成相似的特征。然而,在深度估计中,不同部分甚至同一部分内的不同像素,深度可能不同。因此,强制我们的深度模型生成与冻结编码器完全相同的特征并不有利。
为了解决这个问题,我们为特征对齐设置了一个容差阈值\(\alpha\) 。如果\(f_{i}\)和\(f_{i}'\)的余弦相似度超过\(\alpha\),这个像素将不会被考虑在\(L_{feat }\)中。
这使我们的方法既能享受来自 DINOv2 的语义感知表示,又能获得来自深度监督的部分级判别表示。作为一个附带效果,我们生成的编码器不仅在下游 MDE 数据集上表现良好,在语义分割任务中也取得了优异的成绩。这也表明我们的编码器有潜力作为中级和高级感知任务的通用多任务编码器。
最后,我们的总损失是\(L_{l}\)、\(L_{u}\)和\(L_{feat }\)这三个损失的平均组合。
4 实验
4.1 实现细节
我们采用 DINOv2 编码器 [42] 进行特征提取。遵循 MiDaS [5, 45],我们使用 DPT [46] 解码器进行深度回归。所有标注数据集直接合并在一起,不进行重新采样。
在第一阶段,我们在标注图像上训练一个教师模型 20 个 epoch。在联合训练的第二阶段,我们训练一个学生模型,使其遍历所有无标签图像一次。无标签图像由具有 ViT-L 编码器的最佳性能教师模型进行标注。
每批中标注图像和无标签图像的比例设置为 1:2。在两个阶段中,预训练编码器的基础学习率设置为\(5\times10^{-6}\),而随机初始化的解码器使用 10 倍更大的学习率。我们使用 AdamW 优化器,并使用线性调度衰减学习率。我们仅对标注图像应用水平翻转作为数据增强。特征对齐损失的容差阈值\(\alpha\)设置为 0.85。更多细节,请参考我们的附录。
4.2 零样本相对深度估计
如前所述,这项工作旨在为任何图像提供准确的深度估计。因此,我们在六个具有代表性的未见数据集(KITTI [17]、NYUv2 [54]、Sintel [7]、DDAD [19]、ETH3D [51] 和 DIODE [59])上全面验证我们的 Depth Anything 模型的零样本深度估计能力。
我们与最新的 MiDaS v3.1 [5] 中最好的 DPT-\(BEiT_{L - 512}\)模型进行比较,该模型使用的标注图像比我们多。如表 2 所示,同样使用 ViT-L 编码器,我们的 Depth Anything 在广泛的场景中,在 AbsRel(绝对相对误差:\(\vert d^{*}-d\vert/d\) )和\(\delta_{1}\) (\(\max(d^{*}/d, d/d^{*})<1.25\)的百分比)指标上都大幅超越了最强的 MiDaS 模型。例如,在著名的自动驾驶数据集 DDAD [19] 上进行测试时,我们将 AbsRel 从 0.251 提升到 0.230,将\(\delta_{1}\)从 0.766 提升到 0.789。
表 2:零样本相对深度估计。更好的指标:AbsRel 越低越好,\(\delta_{1}\)越高越好。我们与 MiDaS v3.1 中的最佳模型进行比较。注意,MiDaS 在 KITTI 和 NYUv2 上没有严格遵循零样本评估,因为它使用了它们的训练图像。我们基于 ViT-S(2480 万参数)、ViT-B(9750 万参数)和 ViT-L(3.353 亿参数)分别提供了三种模型规模,以满足不同目的。展示最佳、第二好的结果。
此外,我们的 ViT-B 模型已经明显优于基于更大的 ViT-L 的 MiDaS 模型。而且,我们的 ViT-S 模型规模不到 MiDaS 模型的十分之一,甚至在几个未见数据集(包括 Sintel、DDAD 和 ETH3D)上的表现都超过了 MiDaS。这些小模型的性能优势展示了它们在计算资源受限场景中的巨大潜力。
值得注意的是,在最广泛使用的 MDE 基准测试 KITTI 和 NYUv2 上,尽管 MiDaS v3.1 使用了相应的训练图像(不再是零样本),但我们的 Depth Anything 在未使用任何 KITTI 或 NYUv2 图像进行训练的情况下,仍然明显优于它,例如在 KITTI 上,AbsRel 为 0.127 对 0.076,\(\delta_{1}\)为 0.850 对 0.947。
4.3 微调为度量深度估计
除了在零样本相对深度估计中令人印象深刻的性能外,我们进一步研究将我们的 Depth Anything 模型作为下游度量深度估计的有前景的权重初始化。我们使用预训练的编码器参数初始化下游 MDE 模型的编码器,解码器则随机初始化。使用相应的度量深度信息对模型进行微调。在这部分,我们使用 ViT-L 编码器进行微调。
我们研究两个代表性场景:
1)域内度量深度估计,模型在同一域上进行训练和评估(4.3.1 节);
2)零样本度量深度估计,模型在一个域(如 NYUv2 [54])上进行训练,但在不同域(如 SUN RGB-D [56])上进行评估(4.3.2 节)。
4.3.1 域内度量深度估计
如表 3(NYUv2 [54])所示,我们的模型显著超越了之前最好的方法 VPD [86],将\(\delta_{1}\)从 0.964 提升到 0.984,AbsRel 从 0.069 降低到 0.056。在表 4(KITTI 数据集 [17])中也可以观察到类似的改进。我们将 KITTI 上的\(\delta_{1}\)从 0.978 提升到 0.982。值得注意的是,在这个场景中我们采用了相对基础的 ZoeDepth 框架,我们相信如果配备更先进的架构,我们的结果可以进一步提升。
表 3:使用我们预训练的 MDE 编码器在 NYUv2 [54] 上进行微调并评估。我们突出显示最佳、第二好的结果,以及最具区分度的指标。*:由我们复现。
4.3.2 零样本度量深度估计
我们遵循 ZoeDepth [4] 进行零样本度量深度估计。ZoeDepth 使用来自 NYUv2 [54](用于室内场景)或 KITTI [17](用于室外场景)的度量深度信息对 MiDaS 预训练编码器进行微调。因此,我们只需用更好的 Depth Anything 编码器替换 MiDaS 编码器,其他组件保持不变。如表 5 所示,在广泛的室内和室外未见数据集上,我们的 Depth Anything 产生的度量深度估计模型比基于 MiDaS 的原始 ZoeDepth 更好。
表 4:使用我们预训练的 MDE 编码器在 KITTI [17] 上进行微调并评估。*:由我们复现。
表 5:零样本度量深度估计。表头中的前三个测试集是室内场景,后两个是室外场景。遵循 ZoeDepth,我们使用在 NYUv2 上训练的模型进行室内泛化,使用在 KITTI 上训练的模型进行室外评估。为了公平比较,我们报告在我们环境中复现的 ZoeDepth 结果。
4.4 微调为语义分割
在我们的方法中,我们设计 MDE 模型通过简单的特征对齐约束从预训练编码器继承丰富的语义先验。在这里,我们研究 MDE 编码器的语义能力。具体来说,我们将 MDE 编码器微调至下游语义分割数据集。如在 Cityscapes 数据集 [14] 的表 7 中所示,我们从大规模 MDE 训练中得到的编码器(mIoU 为 86.2)优于现有的从大规模 ImageNet-21K 预训练得到的编码器,例如 Swin-L [38](84.3)和 ConvNeXt-XL [40](84.6)。在 ADE20K 数据集 [88] 的表 8 中也有类似的观察结果。我们将之前的最佳结果从 58.3 提升到 59.4。
表 7:将我们的 MDE 预训练编码器转移到 Cityscapes 进行语义分割。我们没有使用 Mapillary [1] 进行预训练。s.s./m.s.:单尺度 / 多尺度评估。
表 8:将我们的 MDE 编码器转移到 ADE20K 进行语义分割。我们使用 Mask2Former 作为分割模型。
我们希望强调的是,见证了我们的预训练编码器在单目深度估计和语义分割任务上的优越性,我们相信它有很大潜力作为中级和高级视觉感知系统的通用多任务编码器。
4.5 消融研究
除非另有说明,我们在这里使用 ViT-L 编码器进行消融研究。
零样本转移每个训练数据集。在表 6 中,我们提供了每个训练数据集的零样本转移性能,这意味着我们在一个训练集上训练一个相对 MDE 模型,并在六个未见数据集上进行评估。通过这些结果,我们希望为未来类似旨在构建通用单目深度估计系统的工作提供更多见解。在六个训练数据集中,HRWSI [67] 为我们的模型提供了最强的泛化能力,尽管它只包含 20000 张图像。这表明数据多样性非常重要,这与我们利用无标签图像的动机非常契合。一些标注数据集可能表现不是很好,例如 MegaDepth [32],然而,它有自己的偏好,在这六个测试数据集中没有体现出来。例如,我们发现用 MegaDepth 数据训练的模型擅长估计超远距离建筑物的距离(图 1),这对飞行器非常有益。
表 6:检查每个标注训练集(左)到六个未见数据集(上)的零样本转移性能。更好的性能:AbsRel 越低越好,\(\delta_{1}\)越高越好。我们分别用加粗、下划线和斜体突出显示每个测试数据集的最佳、第二和第三好的结果。
学习无标签图像时挑战学生模型和语义约束的有效性。如表 9 所示,简单地添加带有伪标签的无标签图像不一定会给我们的模型带来提升,因为标注图像已经足够。然而,在重新训练时对无标签图像施加强扰动(S),学生模型会被挑战去寻找额外的视觉知识并学习更稳健的表征。因此,大规模无标签图像显著增强了模型的泛化能力。
此外,通过我们使用的语义约束\(L_{feat }\),无标签图像在深度估计任务中的作用可以进一步放大。更重要的是,正如在 4.4 节中强调的,这个辅助约束还使我们训练的编码器能够作为多任务视觉系统中中级和高级感知的关键组件。
与 MiDaS 训练的编码器在下游任务中的比较。我们的 Depth Anything 模型比 MiDaS [5, 45] 具有更强的零样本能力。在这里,我们进一步比较我们训练的编码器和 MiDaS v3.1 [5] 训练的编码器在下游微调性能方面的表现。如表 10 所示,在下游深度估计任务和语义分割任务中,我们生成的编码器都显著优于 MiDaS 编码器,例如在 NYUv2 上的\(\delta_{1}\)指标中,分别为 0.951 对 0.984,在 ADE20K 上的 mIoU 指标中,分别为 52.4 对 59.4。
表 9:对 1)学习无标签图像时用强扰动(S)挑战学生模型,以及 2)语义约束(\(L_{feat }\) )的消融研究。由于篇幅限制,我们仅报告 AbsRel(越低越好)指标,并使用数据集名称的前两个字母进行缩写。
与 DINOv2 在下游任务中的比较。我们已经展示了我们训练的编码器在微调至下游任务时的优越性。由于我们最终生成的编码器(来自大规模 MDE 训练)是从 DINOv2 [42] 微调而来的,我们在表 11 中比较了我们的编码器和原始 DINOv2 编码器。可以观察到,在下游度量深度估计任务和语义分割任务中,我们的编码器都比原始 DINOv2 编码器表现更好。尽管 DINOv2 的权重提供了非常强大的初始化,但我们大规模高质量的 MDE 训练可以在下游转移性能上进一步显著提升它。
表 10:比较我们训练的编码器和 MiDaS [5] 训练的编码器在下游微调性能方面的表现。更好的性能:AbsRel 越低越好,\(\delta_{1}\)越高越好,mIoU 越高越好。
表 11:比较原始 DINOv2 和我们生成的编码器在下游微调性能方面的表现。
4.6 定性结果
我们在图 3 中可视化了我们的模型在六个未见数据集上的预测结果。我们的模型对来自不同领域的测试图像具有稳健性。此外,我们在图 4 中比较了我们的模型和 MiDaS。我们还尝试使用 ControlNet [84] 根据预测的深度图合成新图像。我们的模型比 MiDaS 产生更准确的深度估计,以及更好的合成结果。为了实现更准确的合成,我们基于 Depth Anything 重新训练了一个更好的基于深度条件的 ControlNet,旨在为图像合成和视频编辑提供更好的控制信号。更多关于使用我们的 Depth Anything 进行视频编辑的定性结果,请参考我们的项目页面 [34]。
图 3:在六个未见数据集上的定性结果。
图 4:我们将深度预测结果与 MiDaS 进行比较。同时,我们使用 ControlNet 根据深度图合成新图像。
5 结论
在这项工作中,我们提出了 Depth Anything,这是一种高度实用的稳健单目深度估计解决方案。与先前的方法不同,我们特别强调了低成本且多样的无标签图像的价值。我们设计了两种简单而高效的策略来充分利用其价值:1)在学习无标签图像时提出更具挑战性的优化目标;2)从预训练模型中保留丰富的语义先验。结果,我们的 Depth Anything 模型展示出卓越的零样本深度估计能力,并且还可以作为下游度量深度估计和语义分割任务的有前景的初始化。