【文献阅读】Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data
-
深度任何内容:释放大型未标记数据的功能
-
论文是在大佬博客的帮助下进行阅读的,跳转链接
摘要:
这项工作提出了深度Athothing,这是一种非常实用的解决方案,用于稳健的单眼估计。
在不追求新颖的技术模块的情况下,我们旨在建立一个简单而强大的基础模型,该模型在任何情况下都涉及任何图像。
为此,我们通过设计数据引擎来收集和自动注释大型未标记数据(约62m)来扩展数据集,从而大大扩大了数据覆盖范围,从而可以减少概括错误。我们研究了两种简单而有效的策略,使数据扩展有希望。
首先,通过利用数据增强工具来创建一个更具挑战性的优化目标。它迫使模型积极寻求额外的视觉知识并获得强大的表示。
其次,开发了辅助监督,以强制该模型从预训练的编码器中继承丰富的语义先验。我们广泛评估其零射击功能,包括六个公共数据集和随机捕获的照片。
它表现出令人印象深刻的概括能力(图1)。此外,通过使用NYUV2和Kitti的度量深度信息进行微调,设置了新的SOTA。我们更好的深度模型还可以带来更好的深度条件控制网络。我们的模型在这里发布。
结论:
在这项工作中,我们提出了任何深度,这是对稳健单眼估计的高度实用解决方案。与以前的艺术不同,我们特别强调了廉价和多样的未标记图像的价值。
我们设计了两种简单而高效的策略来充分利用其价值:
1)在学习未标记的图像时提出更具挑战性的优化目标,
2)从预训练的模型中保留丰富的语义先验。
结果,我们的深度任何模型都具有出色的零射击深度估计能力,并且也是下游度量深度估计和语义分割任务的有希望的初始化。
引言:
计算机视觉和自然语言处理领域目前正在经历一场革命,出现了“基础模型”,这些模型在各种下游场景中表现出强大的零/少样本性能(比如说Segment
Anything)。这些成功主要依赖于可以有效涵盖数据分布的大规模培训数据。单眼深度估计(MDE)是机器人技术[66],自主驾驶[64,80],虚拟现实[48]等的基本问题,也需要一个基础模型来估算单个图像中的深度信息。但是,由于难以构建具有数千万个深度标签的数据集的困难,因此该数据集并没有得到充实。
Midas [46]通过在混合标记的数据集的集合中训练MDE模型,从而沿着这个方向进行了开创性的研究。
尽管显示了一定程度的零射能力,但MiDaS仍受其数据覆盖率的限制,因此在某些情况下遭受了灾难性的表现。
在这项工作中,我们的目标是为MDE(单目深度估计)建立一个基础模型,能够在任何情况下为任何图像生成高质量的深度信息。我们从数据集扩展的角度来实现此目标。传统上,深度数据集主要是通过从传感器[18,55],立体声匹配[15]或SFM
[33]中获取深度数据而创建的,该数据在特定情况下是昂贵,耗时,甚至是棘手的。(真实标签数据获取困难)。相反,我们第一次注意大规模的未标记数据。
与立体声图像或1个ARXIV相比,来自深度传感器的标记图像,我们使用的单眼未标记图像具有三个优势:
1.(简单而便宜的获取)几乎到处都有单眼图像,因此它们易于收集,而无需使用专用设备。
2.(不同的)单眼图像可以涵盖更广泛的场景,这对于模型的概括能力和可扩展性至关重要。
3.(易于注释)我们可以简单地使用预训练的MDE模型来为未标记的图像分配深度标签,这只标记的图像仅采用进料步骤。
比LiDAR [18]更有效地产生了密集的深度图,并忽略了计算密集的立体声匹配过程。
我们设计了一个数据引擎,以自动生成未标记图像的深度注释,从而使数据扩展到任意刻度。
它从八个公共大规模数据集(例如SA-1B [27],Open Images [30]和BDD100K
[82]中收集了6200万种多样性且有益的图像。我们使用他们的原始未标记图像,没有任何形式的标签。
然后,为了为我们的未标记图像提供可靠的注释工具,我们收集了150万个从六个公共数据集标记的图像来培训初始MDE模型。
然后,未标记的图像自动注释并以自我训练方式与标记的图像共同学习[31]。
尽管单眼未标记的图像具有上述所有优势,但积极地使用如此大规模的未标记图像[73,90],尤其是在足够标记的图像和强大的预训练模型的情况下,确实并非易事。(但是利用大规模无标记数据并不容易,尤其在标记图像足够和强大的预训练模型的情况下。)
在我们的初步尝试中,直接将标记和伪标记的图像结合的尝试无法改善仅使用标记图像的基线。(就是直接将标记和伪标记数据结合来训练有监督模型,即依赖图像标记的模型基线,与仅使用真实标记数据训练的模型效果相比,并没有提升)
我们猜想,以这种幼稚的自我教学方式获得的其他知识相当有限。(认为大规模无标记数据信息并没有高效利用到)
为了解决困境,我们建议在学习伪标签时以更难的优化目标来挑战学生模型。学生模型被强制寻求额外的视觉知识,并在各种强大的扰动下学习强大的表示形式,以更好地处理看不见的图像。(上述解决方案就是利用扰动,数据增强等策略使得学生模型学习的目标更困难,强化模型的泛化能力。)
此外,还有一些作品[9,21]证明了MDE的辅助语义分割任务的好处。我们还遵循这一研究线,旨在为我们的模型配备更好的高级场景理解能力。(语义对于单目深度估计任务是有益处)
但是,我们观察到,当MDE模型已经足够强大时,这种辅助任务很难带来进一步的收益。我们推测,将图像解码为离散类空间时,语义信息的严重损失。
因此,考虑到与语义相关的任务中Dinov2的出色表现,我们建议通过简单的特征对齐损失(余弦相似性损失,二范数损失等)来维持丰富的语义先验。
这不仅可以增强MDE性能,而且还产生了中级和高级感知任务的多任务编码器。
我们的贡献总结如下:
•我们强调了MDE的大量,廉价和不同未标记的图像的数据扩展的价值。(大批量数据对于单目深度估计的改善,首次)
我们指出的是共同训练标记和未标记图像的大型训练的关键实践。我们没有直接学习原始未标记的图像,而是用更难的优化目标挑战模型,以供额外的知识。(指出了如何更好的联合训练GT数据和伪标记数据,通过数据增强策略来产生更难的优化目标,提高模型的学习能力,学到额外的知识)。
我们建议从语义分割的预训练编码器中继承丰富的语义先验,以提供更好的场景理解,而不是使用辅助语义分割任务。(生成语义分割特征来为模型提供丰富的语义先验知识)
我们的模型比MIDAS-BEITL-512具有更强的零击功能[5]。此外,用度量深度进行微调,它的表现要优于ZOEDEPTH [4]。
相关工作
单目深度估计( MDE ):早期的工作[
23,37,51]主要依赖于手工设计的特征和传统的计算机视觉技术。他们受限于对显式深度线索的依赖,难以处理具有遮挡和无纹理区域的复杂场景。基于深度学习的方法通过有效地从精细标注的数据集[ 18、55 ]中学习深度表示,彻底改变了单目深度估计。
Eigen等人[ 17 ]首先提出了一种多尺度融合网络来回归深度。
此后,许多工作通过将回归任务精心设计为分类任务[ 3、34 ]、引入更多的先验[ 32、54、76、83]和更好的目标函数[ 68、78
]等方法来不断提高深度估计精度。尽管它们的性能很好,但很难推广到看不见的领域(模型未见过的场景)。零样本深度估计:
我们的工作就属于这一研究路线。我们的目标是训练一个具有不同训练集的MDE模型,从而可以预测任意给定图像的深度。
一些开创性的工作[ 10、67]通过收集更多的训练图像来探索这个方向,但是他们的监督非常稀疏,并且只在有限的点对上执行。
为了实现有效的多数据集联合训练,一个里程碑式的工作MiDaS [ 46
]使用了一个仿射不变损失来忽略潜在的不同深度尺度和在不同数据集之间的偏移。因此,MiDaS提供了相对深度信息。
最近,一些工作[ 4,22,79]进一步估计了度量深度.
但在实际应用中,我们发现这类方法的泛化能力不如MiDaS,尤其是其最新版本[ 5 ]。
此外,正如ZoeDepth [ 4
]所证明的那样,一个强大的相对深度估计模型也可以通过度量深度信息进行微调来很好地工作在可泛化的度量深度估计中(在可推广的度量深度估计中很好地工作)。因此,我们在相对深度估计上仍然沿用Mi Da S,但通过突出大规模单目无标签图像的价值来进一步加强。
表明本文的模型在训练和推理的时候都是进行的相对深度估计。如果在自驾任务或其他需要绝对深度的时候呢?那就通过微调就可以获取很好的模型性能。所以作者在实验期间用的绝大多数是相对深度估计,在后续模型性能展示和消融的时候也同样会用到绝对深度估计。
利用无标记数据:
这属于半监督学习[ 31、56、90 ]的研究范畴,受到各种应用[ 71、75 ]的青睐。
然而,现有的工作通常假设只有有限的图像可用。
他们很少考虑具有挑战性但现实的场景,即已经有足够多的有标签图像,但也有更大规模的无标签图像。
对于零样本MDE,我们采取这一具有挑战性的方向。我们证明了无标签图像可以显著增强数据覆盖率,从而提高模型的泛化性和鲁棒性。
Depth anything:
我们的工作利用了有标记和无标记图像,以促进更好的单目深度估计( MDE )。
形式上,标记集合和未标记集合分别记为Dl = { ( xi、di) } M i = 1和Du = { ui } N i = 1。
我们目的是从标记数据中学习教师模型T.
然后,我们利用T为Du分配伪深度标签。
最后,我们在标记数据集和伪标记数据集组合上训练一个学生模型S。
在图2中提供了简要的说明。
有标签图像的学习:
这一过程与MiDaS [ 5、46 ]的训练类似。
但是,因为MiDaS没有公开它的代码,我们首先重现它。
具体来说,首先将深度值通过d = 1 / t变换到视差空间,然后在每个深度图上归一化为0⋅1。
为了实现多数据集联合训练,我们采用仿射不变损失来忽略每个样本的未知尺度和平移:(这里面每个样本的未知尺度和平移是什么误差,不是很明白)
式中:d⋅i和di分别为预测真值和真实真值。其中ρ是仿射不变的平均绝对误差损失:
其中d^* i和d^i分别是预测d* i和真实值di的缩放版本和移位版本:
其中t ( d )和s ( d )用于对齐预测和真实值,使其具有零平移和单位尺度:
t(d)是d的中位数。
为了获得一个鲁棒的单目深度估计模型,我们从6个公共数据集中收集了1.5 M的带标签图像。这些数据集的详细信息列于表1。
与MiDaS v3.1 [ 5 ] ( 12个训练数据集)相比,我们使用了更少的标记数据集,因为1 )我们没有使用NYUv2 [ 55
]和KITTI [ 18 ]数据集来确保在它们上的零样本评估,2 )一些数据集是不可用的,例如,Movies [ 46 ]和WSVD [
61 ],3 )一些数据集表现出较差的质量,例如,RedWeb (分辨率也较低) [ 67 ]。尽管使用的有标签图像较少,但我们易于获取和多样化的无标签图像将理解数据的覆盖范围,并极大地增强模型的泛化能力和鲁棒性。
此外,为了加强从这些标记图像中学习到的教师模型T,我们采用DINOv2 [ 43
]预训练的权重来初始化我们的编码器。在实际应用中,我们采用预训练的语义分割模型[ 70 ]来检测天空区域,并将其视差值(相对深度)设置为0
(最远)。Unleashing the Power of Unlabeled Images:
这是我们工作的重点。与以前的工作费力地构造不同的标记数据集不同,我们强调了未标记图像在增强数据覆盖率方面的价值。
如今,我们可以从互联网或各种任务的公共数据集中实际地构建多样化和大规模的未标记数据集。
此外,通过将单目未标记图像转发给一个预训练的性能良好的MDE模型,我们可以轻松地获得单目未标记图像的稠密深度图。
这比对立体图像或视频进行立体匹配或SfM重建要方便、高效得多。
我们选择了八个大规模的公共数据集作为我们的未标记源,用于它们不同的场景。
它们总共包含62M多幅图像。详情见表1下半部分。
在技术上,给定先前得到的MDE教师模型T,我们对未标记集合Du进行预测,得到伪标记集合^D ( u ):
利用标记图像和伪标记图像的组合集Dl∪D ( u ),在其上训练一个学生模型S。
根据之前的工作[ 74 ],我们不再从T中微调S,而是重新初始化S以获得更好的性能。
最终作者是在有标签和无标签数据集上训练的S模型。同时需要注意的,根据之前的工作,没有从T模型微调S模型,而是重新初始化S以获得更好的性能。
遗憾的是,在我们的预实验研究中,我们并没有通过这种自训练方式获得改进,这确实与只有少量标记图像时的观察结果相矛盾。我们猜想,在我们的情况下,已经有足够多的标记图像,从额外的未标记图像中获得的额外知识是相当有限的。特别是考虑到教师和学生共享相同的预训练和架构,即使没有明确的自我训练过程,他们也倾向于对未标记集合Du做出相似的正确或错误的预测。
为了解决这个问题,我们提出向学生模型挑战一个更困难的优化目标,以便在未标记图像上获得额外的视觉知识。
我们在训练过程中对未标记图像注入强扰动。它迫使我们的学生模型主动寻求额外的视觉知识,并从这些未标记的图像中获得不变的表示。
这些优势有助于我们的模型更加稳健地应对开放世界。我们引入了两种形式的扰动:一种是强颜色失真,包括颜色抖动和高斯模糊;另一种是强空间失真,即Cut
Mix [ 84 ]。
记录一下,今天第一次看深度估计的论文,上午给电脑安装zotero和插件,找论文,下午简单了解了一下数据采集流程,今天没读完,就读到这一部分,因为第一次看这个领域的论文,所以前面的引言和相关技术部分我看的比较细,哈哈哈,当然也不是很细…