Github: https://github.com/LiheYoung/Depth-Anything
2024年 TikTok 实习生的工作
主要内容
这篇论文提出了一个使用的方案,用于鲁棒的单目深度估计,Depth Anything
论文的模型结构没有创新(Transformer),主要贡献在于
- 探索了简单有效的数据扩展方式(如何有效利用大量的无标签数据
- 从预训练模型继承语义(使用冻结的 DINOv2 进行特征约束
论文的方法在各中深度估计数据集上都取得了SOTA
故事逻辑
- 通过在大量数据上预训练得到的基础模型,在各种下游任务上,表现出了强大的zero-/few- shot 能力。这一定程度上依赖于大规模的训练数据(当然也包括强大的并行计算能力以及庞大的模型,对于深度估计这一领域来说,强调了大规模的训练数据的重要性)。
- 单目深度估计领域同样需要一个这样的基础模型,但是受限于深度估计数据集有限且难以获得
传统的深度估计数据集,通过 sensors, stereo matching, SfM 等方式获得,花费大,耗时且难以处理
-
论文关注大规模的无标签数据
- 数据简单廉价,容易获取
- 多样性,图像场景更丰富
- 容易标注(使用预训练的单目深度估计模型标注伪标签
-
类似于SAM的自动标注过程(SAM 有人工微调的过程,DAM没有)
- 收集了深度估计公开数据集以及大量无标签数据
- 使用带标签数据训练模型
- 使用训练好的模型对无标签数据标注伪标签,然后将伪标注图像加入到训练集(self-training)
- 实验表明,简单的合并带标签数据和伪标签数据的方式不能能够改进模型的性能(这一点是比较关键的,也是论文需要解决的问题之一)
- 使用语义分割的辅助监督(过去方法采用的)能够带来深度估计的性能提升
- 然而本文实验表明,使用语义分割辅助监督并没有带来精度的提升(应该是模型性能优化到一定程度之后,语义分割辅助不再带来性能提升)。作者分析了原因:可能是因为语义分割监督只关注类别相关的特征,或者监督使得特征映射到了离散的类别空间上,损失了深度估计关注的其他信息。(这是论文需要解决的第二个问题)
解决方案
问题一:如何更好的利用伪标签数据
- 模型从伪标签数据中获得的额外信息是有限,因为在无标签数据上老师和学生模型都进行相似的正确或错误预测(原因分析
- 使用更加困难的优化目标,以迫使模型从无标签数据中获取额外的知识。主要的逻辑是对无标签数据添加强扰动,包括颜色扰动(包括颜色扰动和高斯模糊)以及空间扰动(CutMix)(解决方案
- 这样简单的改动使得自训练带来了较大的提升(效果
问题二:语义分割辅助监督
- 尝试使用分割预测辅助监督(共享编码器,不同的解码器)但是没有性能的提升(前面分析了原因,语义分割只关注分割的语义类别,得到的是离散的类别特征表示)
- 使用语义信息更丰富的信号进行辅助监督,辅助的特征对齐损失(DINOv2的高层次特征,空间高维且连续,与离散的类别相比,具有更丰富的语义)
- 具体的使用冻结的DINOv2的顶层特征监督模型的顶层特征(不使用线性层映射!直接监督主干提取的高层次特征)
使用 RAM,GroundingDINO,HQ-SAM 组合一起得到无标签图像的语义分割伪标签
没有使用映射层,由于随机的初始化的映射器在早期会有较大的损失,进而导致在训练初期占主导了模型的训练
DINO通常产生相似的特征表示在同一个物体上,而深度的在空间上是变化的,过于强制深度特征和DINO特征相同是无益的,因此相似性监督会有容忍度 tolerance margin α \alpha α(相似度超过,不计入损失)
使用逐像素的余弦相似度损失,f表示深度模型提取的特征,f‘表示冻结的DINOv2编码器提取的特征
实验结果
下面挑选了部分实验结果展示
消融实验结果
以下是对使用带标签数据、伪标签数据、图像干扰、语义约束进行的消融实验
以下是对超参数和语义约束的实验
文章来源:https://www.toymoban.com/news/detail-855409.html
横向对比实验
文章来源地址https://www.toymoban.com/news/detail-855409.html
到了这里,关于【论文阅读】Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!