论文题目:Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data —— 任何深度:释放大规模无标记数据的力量
论文地址:Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data
源码地址:https://github.com/LiheYoung/Depth-Anything
2024单目深度估计(MDE)最新工作,字节出品!任意深度!
这项工作介绍了深度任何东西,这是一种用于鲁棒单目深度估计的高度实用的解决方案。在不追求新的技术模块的情况下,我们的目标是构建一个简单而强大的基础模型来处理在任何情况下的任何图像。为此,我们通过设计一个数据引擎来收集和自动注释大规模未标记数据(~62M)来扩展数据集,这显着扩大了数据覆盖率,从而能够减少泛化误差。我们研究了两种简单而有效的策略,使数据扩展变得有希望。首先,通过利用数据增强工具创建了一个更具挑战性的优化目标。它迫使模型积极寻求额外的视觉知识并获得稳健的表示。其次,开发了一种辅助监督来强制模型从预训练的编码器继承丰富的语义先验。我们广泛评估了它的零样本能力,包括六个公共数据集和随机捕获的照片。它展示了令人印象深刻的泛化能力(图 1)。此外,通过使用来自NYUv2和KITTI的度量深度信息对其进行微调,设置了新的SOTA。我们更好的深度模型也产生了更好的深度条件 ControlNet。我们的模型在这里发布。
计算机视觉和自然语言处理领域目前正在随着“基础模型”[6]的出现而经历一场革命,在各种下游场景中表现出强大的零/少镜头性能[44,58]。这些成功主要依赖于可以有效覆盖数据分布的大规模训练数据。单目深度估计(MDE)是机器人[65]、自动驾驶[63,79]、虚拟现实[47]等广泛应用的一个基本问题,也需要基础模型从单个图像估计深度信息。然而,由于难以构建具有数亿个深度标签的数据集,这尚未得到充分探索。MiDaS[45]通过在混合标记数据集集合上训练MDE模型,沿着这个方向进行了开创性的研究。尽管展示了一定程度的零样本能力,但 MiDaS 受到其数据覆盖的限制,因此在某些情况下会遭受灾难性的性能。
在这项工作中,我们的目标是为MDE建立一个基础模型,该模型能够在任何情况下为任何图像生成高质量的深度信息。我们从数据集放大的角度来处理这个目标。传统上,深度数据集主要是通过从传感器 [18, 54]、立体匹配 [15] 或 SfM [33] 获取深度数据来创建的,这在特定情况下成本高昂、耗时甚至难以处理。相反,我们首次关注大规模的未标记数据。与立体图像或来自深度传感器的标记图像,我们使用的单目未标记图像有三个优点:(i)(获取简单廉价)单眼图像几乎无处不在,因此它们很容易收集,而不需要专门的设备。(ii)(多样化)单目图像可以覆盖更广泛的场景,这对于模型泛化能力和可扩展性至关重要。(iii)(易于注释)我们可以简单地使用预训练的 MDE 模型为未标记的图像分配深度标签,这只需要前馈步骤。为了提高效率,这也产生了比LiDAR[18]更密集的深度图,并省略了计算密集型立体匹配过程。
我们设计了一个数据引擎来自动为未标记的图像生成深度注释,使数据扩展到任意尺度。它从8个公共大规模数据集(如SA-1B[27]、Open Images[30]和BDD100K[81])中收集62M多样化和信息丰富的图像。我们使用它们的原始未标记图像,没有任何形式的标签。然后,为了为我们的未标记图像提供可靠的注释工具,我们从六个公共数据集中收集 150 万个标记图像来训练初始 MDE 模型。然后,未标记的图像以自我训练的方式自动注释并与标记图像联合学习[31]。
尽管单目未标记图像的所有上述优点,但充分利用如此大规模的未标记图像并非易事[72,89],特别是在足够的标记图像和强大的预训练模型的情况下。在我们的初步尝试中,直接组合标记和未标记的图像并不能提高仅使用标记图像的基线。我们推测,以这种幼稚的自我教学方式获得的额外知识相当有限。为了解决困境,我们建议在学习伪标签时以更困难的优化目标挑战学生模型。强制学生模型寻求额外的视觉知识,并在各种强扰动下学习鲁棒表示,以更好地处理看不见的图像。
此外,已经有一些工作[9,21]证明了辅助语义分割任务对MDE的好处。我们还遵循这一研究方向,旨在为我们的模型配备更好的高级场景理解能力。然而,我们观察到当MDE模型已经足够强大时,这样的辅助任务很难带来进一步的收益。我们推测这是由于将图像解码为离散类空间时语义信息的严重损失。因此,考虑到DINOv2在语义相关任务中的出色性能,我们建议通过简单的特征对齐损失来维护丰富的语义先验。这不仅提高了MDE的性能,而且还为中级和高级感知任务生成了一个多任务编码器。
我们的贡献总结如下:
单目深度估计(MDE)。早期的工作[23,36,50]主要依赖于手工制作的特征和传统的计算机视觉技术。他们受到他们对显式深度线索的依赖的限制,并努力处理具有遮挡和无纹理区域的复杂场景。
基于深度学习的方法通过有效地从精细注释数据集中学习深度表示,彻底改变了单目深度估计[18,54]。Eigenet等人[17]首先提出了一种多尺度融合网络来回归深度。在此基础上,许多工作通过精心设计回归任务作为分类任务[3,34]、引入更多的先验[32,53,75,82]和更好的目标函数[67,77]等,不断提高深度估计精度。尽管性能很有希望,但它们很难推广到不可见的领域。
零样本深度估计。我们的工作属于这一研究方向。我们的目标是训练一个具有不同训练集的MDE模型,从而可以预测任何给定图像的深度。一些开创性的工作[10,66]通过收集更多的训练图像来探索这个方向,但它们的监督非常稀疏,只在有限的点对上强制执行。
为了实现有效的多数据集联合训练,MiDaS[45]的一个里程碑工作利用仿射不变损失来忽略潜在的不同深度尺度和不同数据集的变化。因此,MiDaS 提供了相对深度信息。最近,一些作品 [4, 22, 78] 更进一步来估计度量深度。然而,在实践中,我们观察到这种方法的泛化能力比 MiDaS 差,尤其是其最新版本 [5]。此外,正如 ZoeDepth [4] 所证明的那样,通过使用度量深度信息进行微调,强大的相对深度估计模型也可以在可泛化的度量深度估计中很好地工作。因此,我们仍然在相对深度估计中遵循MiDaS,但通过突出大规模单目未标记图像的值来进一步加强它。
利用未标记的数据。这属于半监督学习的研究领域[31,55,89],它在各种应用中很受欢迎[7,74]。然而,现有的作品通常假设只有有限的图像可用。他们很少考虑具有挑战性但现实的场景,其中已经有足够的标记图像,但也考虑更大规模的未标记图像。我们对零镜头MDE采取了这一具有挑战性的方向。我们证明了未标记图像可以显着提高数据覆盖率,从而提高模型的泛化能力和鲁棒性。
我们的工作同时利用标记和未标记的图像来促进更好的单目深度估计 (MDE)。形式上,标记和未标记的集合分别表示为 Dl ={(xi, di)}M i=1 和 Du = {ui}N i=1。我们的目标是从 Dl 中学习教师模型 T。然后,我们利用 T 为 Du 分配伪深度标签。最后,我们在标记集和伪标记集的组合上训练了一个学生模型 S。图 2 中提供了简要说明。
这个过程类似于MiDaS[5,45]的训练。然而,由于 MiDaS 没有发布其代码,我们首先复制了它。具体来说,深度值首先通过 d = 1/t 转换为视差空间,然后在每个深度图上归一化为 0∼1。为了实现多数据集联合训练,我们采用仿射不变损失来忽略每个样本的未知尺度和位移:
L l = 1 H W ∑ i = 1 H W ρ ( d i ∗ , d i ) , (1) \mathcal{L}_{l}=\frac{1}{H W} \sum_{i=1}^{H W} \rho\left(d_{i}^{*}, d_{i}\right),\tag{1} Ll=HW1i=1∑HWρ(di∗,di),(1)
其中 d∗i 和 di 分别是预测和基本事实。ρ是仿射不变的平均绝对误差损失:ρ(d * i, di) = |ˆd * i−ˆdi|,其中ˆd * i和ˆdi是预测d * i和地面真值di的缩放和移位版本:
d ^ i = d i − t ( d ) s ( d ) (2) \hat{d}_{i}=\frac{d_{i}-t(d)}{s(d)}\tag{2} d^i=s(d)di−t(d)(2)
其中 t(d) 和 s(d) 用于对齐预测和地面实况以具有零平移和单位尺度:
t ( d ) = median ( d ) , s ( d ) = 1 H W ∑ i = 1 H W ∣ d i − t ( d ) ∣ (3) t(d)=\operatorname{median}(d), \quad s(d)=\frac{1}{H W} \sum_{i=1}^{H W}\left|d_{i}-t(d)\right|\tag{3} t(d)=median(d),s(d)=HW1i=1∑HW∣di−t(d)∣(3)
为了获得鲁棒的单目深度估计模型,我们从 6 个公共数据集中收集 150 万个标记图像。这些数据集的详细信息如表1所示。我们使用的标记数据集比MiDaS v3.15少,因为1)我们不使用NYUv2[54]和KITTI[18]数据集来确保对它们的零镜头评估,2)一些数据集不可用(更多),例如Movies[45]和WSVD[60],以及3)一些数据集质量较差,例如RedWeb(也是低分辨率)[66]。尽管标记图像较少,我们易于获取和多样化的未标记图像将理解数据覆盖率,大大提高模型的泛化能力和鲁棒性。
此外,为了增强从这些标记图像中学习到的教师模型 T,我们采用 DINOv2 [42] 预训练权重来初始化我们的编码器。在实践中,我们应用预先训练的语义分割模型[69]来检测天空区域,并将其视差值设置为0(最远)。
这是我们工作的要点。与之前费力构建不同标记数据集的工作不同,我们强调了未标记图像在增强数据覆盖率方面的价值。如今,我们实际上可以从各种任务的互联网或公共数据集构建多样化和大规模的未标记集。此外,我们可以简单地通过将单目未标记图像转发到预先训练的性能良好的MDE模型,轻松地获得单目未标记图像的密集深度图。这比对立体图像或视频执行立体匹配或SfM重建更方便和高效。我们选择八个大规模的公共数据集作为我们的未标记源,用于它们的不同场景。它们总共包含62M以上的图像。详细信息在表1的下半部分提供。
从技术上讲,给定之前获得的MDE教师模型T,我们对未标记的集合Du进行预测,以获得伪标记集ˆDu:
D ^ u = { ( u i , T ( u i ) ) ∣ u i ∈ D u } i = 1 N . (4) \hat{\mathcal{D}}^{u}=\left\{\left(u_{i}, T\left(u_{i}\right)\right) \mid u_{i} \in \mathcal{D}^{u}\right\}_{i=1}^{N} .\tag{4} D^u={(ui,T(ui))∣ui∈Du}i=1N.(4)
使用标记图像和伪标记图像的组合集 Dl ∪ ^Du,我们在它上训练一个学生模型 S。继之前的工作[73]之后,我们不是从T微调S,而是重新初始化S以获得更好的性能。
不幸的是,在我们的试点研究中,我们未能通过这样的自我训练管道获得改进,这确实与只有少数标记图像[55]时的观察结果相矛盾。我们推测,在我们的例子中,对于已经足够的标记图像,从额外的未标记图像中获得的额外知识相当有限。特别是考虑到教师和学生共享相同的预训练和架构,即使在没有明确的自我训练过程的情况下,他们也倾向于对未标记集 Du 做出类似的正确或错误预测。
为了解决这一困境,我们建议用更困难的优化目标来挑战学生,以便在未标记的图像上进行额外的视觉知识。在训练期间,我们对未标记图像注入强扰动。它迫使我们的学生模型积极寻求额外的视觉知识并从这些未标记的图像中获取不变表示。这些优势有助于我们的模型更稳健地处理开放世界。我们引入了两种扰动形式:一种是强颜色失真,包括颜色抖动和高斯模糊,另一种是强空间失真,即CutMix[83]。尽管简单,但这两个修改使我们的大规模未标记图像显着改善了标记图像的基线。
我们提供了更多关于CutMix的细节。它最初是为图像分类提出的,在单目深度估计中很少被探索。我们首先在空间上插值一对随机的未标记图像ua和ub:
u a b = u a ⊙ M + u b ⊙ ( 1 − M ) , (5) u_{a b}=u_{a} \odot M+u_{b} \odot(1-M),\tag{5} uab=ua⊙M+ub⊙(1−M),(5)
其中 M 是一个二进制掩码,矩形区域设置为 1。
未标记的损失 Lu 是通过首先分别计算 M 和 1 - M 定义的有效区域的仿射不变损失来获得的:
L u M = ρ ( S ( u a b ) ⊙ M , T ( u a ) ⊙ M ) , (6) \mathcal{L}_{u}^{M}=\rho\left(S\left(u_{a b}\right) \odot M, T\left(u_{a}\right) \odot M\right),\tag{6} LuM=ρ(S(uab)⊙M,T(ua)⊙M),(6)
L u 1 − M = ρ ( S ( u a b ) ⊙ ( 1 − M ) , T ( u b ) ⊙ ( 1 − M ) ) , (7) \mathcal{L}_{u}^{1-M}=\rho\left(S\left(u_{a b}\right) \odot(1-M), T\left(u_{b}\right) \odot(1-M)\right),\tag{7} Lu1−M=ρ(S(uab)⊙(1−M),T(ub)⊙(1−M)),(7)
为简单起见,我们省略了 P 和像素下标 i。然后我们通过加权平均聚合两个损失:
L u = ∑ M H W L u M + ∑ ( 1 − M ) H W L u 1 − M (8) \mathcal{L}_{u}=\frac{\sum M}{H W} \mathcal{L}_{u}^{M}+\frac{\sum(1-M)}{H W} \mathcal{L}_{u}^{1-M}\tag{8} Lu=HW∑MLuM+HW∑(1−M)Lu1−M(8)
我们使用概率为 50% 的 CutMix。CutMix 的未标记图像在颜色上已经严重扭曲,但输入到教师模型 T 的未标记图像进行伪标记是干净的,没有任何失真。
有一些工作[9,21,28,71]通过辅助语义分割任务改进深度估计。我们相信,用这种高级语义相关信息武装我们的深度估计模型是有益的。此外,在我们利用未标记图像的特定上下文中,来自其他任务的这些辅助监督信号也可以对抗我们的伪深度标签中的潜在噪声。
因此,我们通过结合 RAM [85] + GroundDINO [37] + HQ-SAM [26] 模型小心地将语义分割标签分配给我们的未标记图像进行了初步尝试。在后处理之后,这会产生一个包含 4K 类的类空间。在联合训练阶段,强制模型使用共享编码器和两个单独的解码器生成深度和分割预测。不幸的是,在反复试验后,我们仍然不能提高原始MDE模型的性能。我们推测,将图像解码为离散的类空间确实丢失了太多的语义信息。这些语义掩码中的有限信息很难进一步提高我们的深度模型,尤其是当我们的深度模型建立了非常有竞争力的结果时。
因此,我们的目标是寻求更多信息的语义信号作为我们深度估计任务的辅助监督。由于DINOv2模型[42]在语义相关任务(如图像检索和语义分割)中的强大性能,即使在没有任何微调的情况下具有冻结的权重,我们也大大证明了这一点。受这些线索的启发,我们建议将其强大的语义能力转移到我们的具有辅助特征对齐损失的深度模型。特征空间是高维和连续的,因此包含比离散掩码更丰富的语义信息。特征对齐损失公式为:
L feat = 1 − 1 H W ∑ i = 1 H W cos ( f i , f i ′ ) , (9) \mathcal{L}_{\text {feat }}=1-\frac{1}{H W} \sum_{i=1}^{H W} \cos \left(f_{i}, f_{i}^{\prime}\right),\tag{9} Lfeat =1−HW1i=1∑HWcos(fi,fi′),(9)
其中 cos(·,·) 测量两个特征向量之间的余弦相似度。f 是深度模型 S 提取的特征,而 f ’ 是冻结的 DINOv2 编码器的特征。我们不遵循一些作品 [19] 将在线特征 f 投影到一个新的空间中进行对齐,因为随机初始化的投影仪使得大对齐损失在早期阶段主导了整体损失。
特征对齐的另一个关键点是,像 DINOv2 这样的语义编码器倾向于为对象的不同部分生成相似的特征,例如汽车前后。然而,在深度估计中,同一部分的不同部分甚至像素可以具有不同的深度。因此,详尽地强制我们的深度模型产生与冻结编码器完全相同的特征并非易事。
为了解决这个问题,我们为特征对齐设置了容差边距 α。如果 fi 和 f 'i 的余弦相似性已经超过 α,则在我们的 Lf eat 中不会考虑该像素。这允许我们的方法享受来自DINOv2的语义感知表示和来自深度监督的部分级判别表示。作为副作用,我们生成的编码器不仅在下游 MDE 数据集中表现良好,而且在语义分割任务中也取得了强大的结果。它还表明我们的编码器有可能作为中级和高级感知任务的通用多任务编码器。
最后,我们的整体损失是三个损失 Ll、Lu 和 Lf eat 的平均组合。
我们采用DINOv2编码器[42]进行特征提取。在 MiDaS [5, 45] 之后,我们使用 DPT [46] 解码器进行深度回归。所有标记的数据集都简单地组合在一起,而无需重新采样。在第一阶段,我们在标记图像上训练了一个教师模型 20 个 epoch。在联合训练的第二阶段,我们训练一个学生模型一次扫描所有未标记图像。未标记图像由具有 ViT-L 编码器的最佳性能教师模型进行注释。每批中标记和未标记图像的比例设置为 1:2。在这两个阶段,预训练编码器的基本学习率设置为 5e-6,而随机初始化的解码器使用 10 倍更大的学习率。我们使用 AdamW 优化器并以线性时间表衰减学习率。我们只应用水平翻转作为标记图像的数据增强。特征对齐损失的容差裕度α设置为0.15。有关详细信息,请参阅附录。
如前所述,这项工作旨在为任何图像提供准确的深度估计。因此,我们在六个具有代表性的不可见数据集上全面验证了我们的深度任意模型的零镜头深度估计能力:KITTI[18]、NYUv2[54]、Sintel[7]、DDAD[20]、ETH3D[51]和DIODE[59]。与来自最新MiDaS v3.1[5]的最佳DPT-BEiTL-512模型进行比较,该模型使用了比我们更多的标记图像。如表 2 所示,使用 ViT-L 编码器,我们的深度 Anything 在 AbsRel(绝对相对误差:|d∗ − d|/d)和 δ1(最大百分比 (d∗/d, d/d∗) < 1.25) 指标方面在广泛的场景中大大超过了最强的 MiDaS 模型。例如,当在著名的自动驾驶数据集 DDD [20] 上进行测试时,我们将 AbsRel (↓) 从 0.251 → 0.230 改进,并将 δ1 (↑) 从 0.766 → 0.789 改进。
此外,我们基于更大的 ViT-L,我们的 ViT-B 模型已经明显优于 MiDaS。此外,我们的 ViT-S 模型的规模小于 MiDaS 模型的 1/10,甚至在包括 Sintel、DDAD 和 ETH3D 在内的几个看不见的数据集上也优于 MiDaS。这些小规模模型的性能优势证明了它们在计算受限的场景中的巨大潜力。
还值得注意的是,在最广泛使用的MDE上基准 KITTI 和 NYUv2,尽管 MiDaS v3.1 使用相应的训练图像(不再为零),但我们的 Depth Anything 仍然明显优于它,而无需使用任何 KITTI 或 NYUv2 图像进行训练,例如 AbsRel 中的 0.127 vs.0.076,KITTI 上的 δ1 中的 0.150 vs. 0.947。
除了在零样本相对深度估计中令人印象深刻的性能外,我们进一步检查了我们的深度任何模型作为下游深度估计的有希望的权重初始化。我们使用预训练的编码器参数初始化下游 MDE 模型的编码器,并将解码器随机初始化。该模型使用相应的度量深度信息进行了微调。在这一部分中,我们使用我们的VIT-L编码器进行微调。
我们研究了两种具有代表性的场景:1)域内深度估计,其中模型在同一域上训练和评估(第 4.3.1 节),以及 2)零样本度量深度估计,其中模型在一个域上进行训练,例如 NYUv2 [54],但在不同领域进行评估,例如 SUN RGB-D [56](第 4.3.2 节)。
如NYUv2[54]的表3所示,我们的模型显著优于之前的最佳方法VPD[86],将δ1 (↑)从0.964→0.984和AbsRel (↓)从0.069提高到0.056。KITTI数据集[18]的表4可以观察到类似的改进。我们将KITTI上的δ1 (↑)从0.978→0.982提高到。值得注意的是,我们采用ZoeDepth框架进行这个场景,具有相对基本的深度模型,我们相信如果配备了更先进的架构,我们的结果可以进一步提高。
我们遵循 ZoeDepth [4] 进行零样本度量深度估计。ZoeDepth微调预先训练的MiDaS具有来自NYUv254或KITTI[18]的度量深度信息的编码器(用于户外场景)。因此,我们只需将 MiDaS 编码器替换为我们更好的 Depth Annything 编码器,使其他组件保持不变。如表 5 所示,在广泛的室内和室外场景的看不见的数据集上,我们的深度任何事物都比基于 MiDaS 的原始 ZoeDepth 产生更好的度量深度估计模型。
在我们的方法中,我们设计了我们的MDE模型,通过简单的特征对齐约束从预先训练的编码器继承丰富的语义先验。在这里,我们检查了MDE编码器的语义能力。具体来说,我们将我们的MDE编码器微调到下游语义分割数据集。如表7所示,我们的大规模MDE训练编码器(86.2 mIoU)优于大规模ImageNet-21K预训练的现有编码器,如Swin-L38和ConvNeXt-XL40。表 8 中的 ADE20K 数据集 [88] 也有类似的观察结果。我们从 58.3 → 59.4 改进了之前的最佳结果。
我们希望强调的是,见证我们的预训练编码器在单目深度估计和语义分割任务上的优越性,我们相信它具有巨大的潜力,可以作为中级和高级视觉感知系统的通用多任务编码器。
除非另有说明,否则我们在这里使用 ViT-L 编码器进行消融研究。
每个训练数据集的零样本传输。在表 6 中,我们提供了每个训练数据集的零样本传输性能,这意味着我们在一个训练集上训练相对 MDE 模型并在六个看不见的数据集上评估它。有了这些结果,我们希望为未来的工作提供更多见解,这些工作同样旨在构建一个通用的单目深度估计系统。在六个训练数据集中,HRWSI [67] 以最强的泛化能力推动我们的模型,即使它仅包含 20K 图像。这表明数据多样性计数了很多,这与我们利用未标记图像的动机很好地一致。一些标记数据集可能表现不佳,例如 MegaDepth [33],但是,它有自己的偏好,没有反映在这六个测试数据集中。例如,我们发现使用MegaDepth数据训练的模型专门用于估计超远程建筑物的距离(图1),这将非常有利于飞行器。
**1)在学习未标记图像时具有挑战性的学生模型,以及2)语义约束的有效性。**如表 9 所示,简单地添加带有伪标签的未标记图像并不一定会给我们的模型带来收益,因为标记图像已经足够了。然而,在重新训练过程中,将强扰动 (S) 应用于未标记图像,学生模型受到挑战以寻求额外的视觉知识并学习更稳健的表示。因此,大规模的未标记图像显著提高了模型的泛化能力。
此外,使用语义约束 Lf eat,对于深度估计任务,未标记图像的功率可以进一步放大。更重要的是,如第 4.4 节所述,这种辅助约束还允许我们训练的编码器作为中级和高级感知的多任务视觉系统的关键组成部分。
与下游任务的 MiDaS 训练编码器的比较。我们的深度任何模型都表现出比 MiDaS 更强的零样本能力 [5, 45]。在这里,我们进一步将我们的训练编码器与根据下游微调性能训练的 MiDaS v3.1 [5] 进行比较。如表 10 所示,在下游深度估计任务和语义分割任务上,我们生成的编码器显着优于 MiDaS 编码器,例如 NYUv2 上的 δ1 度量中的 0.951 对 0.984,在 ADE20K 上的 mIoU 度量中为 52.4vs. 59.4。
与下游任务中的DINOv2的比较。我们已经展示了我们在微调到下游任务时训练编码器的优越性。由于我们最终生成的编码器(来自大规模 MDE 训练)是从 DINOv2 [42] 微调的,因此我们将我们的编码器与表 11 中的原始 DINOv2 编码器进行比较。可以观察到,我们的编码器在下游度量深度估计任务和语义分割任务中都比原始 DINOv2 编码器表现更好。尽管DINOv2权重提供了非常强的初始化(也远远好于表10中报告的MiDaS编码器),但我们的大规模和高质量的MDE训练可以进一步增强它在下游传输性能方面令人印象深刻。
我们在图 3 中可视化了我们对六个看不见的数据集的模型预测。我们的模型对来自不同领域的测试图像具有鲁棒性。此外,我们将我们的模型与图4中的MiDaS进行了比较。我们还尝试使用ControlNet[84]合成以预测的深度图为条件的新图像。我们的模型比 MiDaS 产生更准确的深度估计,以及更好的合成结果,尽管 ControlNet 使用 MiDaS 深度进行训练。为了获得更准确的合成,我们还基于我们的深度任意事物重新训练了一个更好的深度条件控制网络,旨在为图像合成和视频编辑提供更好的控制信号。有关更多定性结果,请参阅我们的项目页面或以下补充材料.
在这项工作中,我们提出了深度任何东西,这是一种高度实用的鲁棒单目深度估计解决方案。与现有技术不同,我们特别强调了廉价和多样化的未标记图像的价值。我们设计了两种简单而有效的策略来充分利用它们的值:1)在学习未标记图像时提出更具挑战性的优化目标,以及 2)从预训练模型中保留丰富的语义先验。因此,我们的深度任何模型都表现出出色的零样本深度估计能力,并作为下游度量深度估计和语义分割任务的有希望的初始化。
我们将所有图像的较短边调整为 518 并保持原始纵横比。在训练期间,所有图像都被裁剪为 51×518。在推理过程中,我们不裁剪图像,只保证两边都是14的乘数,因为DINOv2编码器[42]的预定义补丁大小为14。通过对预测进行插值,对原始分辨率进行评估。继 MiDaS [5, 45] 之后,在零样本评估中,我们预测的规模和偏移与地面实况手动对齐。
当微调我们的预训练编码器以度量深度估计时,我们采用 ZooeDepth 代码库 [4]。我们只是将原始的基于 MiDaS 的编码器替换为我们更强的深度任何编码器,并修改了一些超参数。具体来说,NYUv2[54]上的训练分辨率为392×518,KITTI[18]上的训练分辨率为384×768,以匹配编码器的补丁大小。由于我们的强初始化,编码器学习率设置为随机初始化解码器的学习率为 1/50,远小于 MiDaS 编码器采用的 1/10。批量大小为 16,模型训练 5 个 epoch。
当将我们的预训练编码器微调到语义分割时,我们使用 MMSegmentation 代码库 [14]。在ADE20K[88]和cityscape[15]上,训练分辨率都设置为896×896。编码器学习率设置为 3e-6,解码器学习率为 10 倍。我们使用 Mask2Former [12] 作为我们的语义分割模型。该模型是在 ADE20K 上的 160K 次迭代和 Cityscapes 上的 80K 次迭代训练的,批量大小为 16,没有任何 COCO [35] 或 Mapillary [1] 预训练。其他训练配置与原始代码库相同。
这里的所有消融研究都是在 ViT-S 模型上进行的。
容忍裕度对特征对齐的必要性。如表 12 所示,0 和 0.15 或 0.30 的容差裕度之间的差距清楚地表明了这种设计的必要性(平均 AbsRel:0.188 对 0.175)。
将特征对齐应用于标记数据。以前,我们在未标记的数据上强制特征对齐损失 Lf eat。事实上,将这种约束应用于标记数据在技术上也是可行的。在表 13 中,除了对未标记数据应用 Lf eat 外,我们还探索了将其应用于标记数据。我们发现将此辅助优化目标添加到标记数据中并不有利于我们不涉及任何特征对齐的基线(它们的平均 AbsRel 值几乎相同:0.180 对 0.179)。我们推测这是因为标记数据具有相对较高的深度注释。语义损失的参与可能会干扰对这些信息丰富的手动标签的学习。相比之下,我们的伪标签噪音更大,信息量更少。因此,将辅助约束引入未标记数据可以对抗伪深度标签中的噪声,并武装我们的模型具有语义能力。
目前,最大的模型尺寸只局限于ViTLarge[16]。因此,在未来,我们计划进一步将模型大小从 ViT-Large 扩展到 ViT-Giant,这也由 DINOv2 [42] 很好地预训练。我们可以用更大的模型训练一个更强大的教师模型,为较小的模型学习生成更准确的伪标签,例如 ViT-L 和 ViT-B。此外,为了促进实际应用,我们认为广泛采用的 512×512 训练分辨率是不够的。我们计划以 700+ 甚至 1000+ 的更大分辨率重新训练我们的模型。
有关六个看不见的测试集的综合定性结果,请参阅以下页面(KITTI [18] 的图 5,NYUv2 [54] 的图 6,Sintel [7] 的图 7,DDAD [20] 的图 8,ETH3D [51] 的图 9,DIODE[59] 的图 10)。我们将我们的模型与最强的MiDaS模型[5]进行比较,即DPT-BEiTL-512。我们的模型具有较高的深度估计精度和更强的鲁棒性。