DINOv2:元AI的自我监督计算机视觉模型

释放计算机视觉的潜力:Meta AI的划时代自监督模型DINOv2

Meta AI刚刚发布了开源的DINOv2模型,这是第一个使用自我监督学习来训练计算机视觉模型的方法。DINOv2模型取得了与标准方法和领域内模型相匹配或甚至更好的结果。

这些模型在不需要微调的情况下取得了强大的性能,这使它们成为许多不同计算机视觉任务和应用的完美选择。DINOv2可以从各种图像和特征集合中学习,例如深度估计,而不需要显式训练,这要归功于自我监督的训练方法。

1.自我监督学习的需求

1.1.不需要微调

自我监督学习是一种强大的方法,用于训练机器学习模型而不需要大量标记的数据。DINOv2模型可以在图像语料库上进行训练,而不需要相关元数据、特定的标签或图像标题。与最近几种自我监督学习方法不同,DINOv2模型不需要微调,从而为不同的计算机视觉应用程序生成高性能特征。

1.2.克服人类注释的限制

在过去的几年中,图像文本预训练已成为各种计算机视觉应用的主要方法。然而,由于它依赖于人类标记的标题来学习图像的语义含义,这种方法经常忽略了那些未明确包含在这些标题中的重要信息。例如,一张红色房间里的红色桌子的人类标注标题可能是“一张红色的木桌”。这个标题会忽略关于背景、位置和桌子大小的一些重要信息。这将导致对局部信息的理解不足,并导致在需要详细本地化信息的任务上表现不佳。

此外,需要人工标签和注释将限制我们收集用于训练模型的数据量。对于某些应用程序来说,这变得更加困难,例如标注细胞需要一定的人类专业知识,而这种专业知识在所需的规模下将不可用。在细胞图像上使用自我监督的训练方法为更基础的模型铺平了道路,因此将改善生物学发现的效果。同样的,对于类似的高级领域,如动物密度估计也适用。

从DINO到DINOv2需要克服几个挑战,例如:

  • 创建一个大型和精选的训练数据集
  • 改进训练算法和实现
  • 设计一个功能性的蒸馏管道。

2.从DINO到DINOv2

2.1.创建一个大型、精选和多样化的图像数据集

构建DINOv2的主要步骤之一是训练更大的架构和模型,以增强模型的性能。然而,更大的模型需要大型数据集才能有效地训练。由于没有满足要求的大型数据集可用,研究人员利用公开爬取的网络数据,并建立了一个选择仅有用数据的管道,如LASER。

但是,要使用这些数据集,需要完成两个主要任务:

  • 平衡不同概念和任务之间的数据
  • 删除不相关的图像

由于这项任务可以手动完成,他们从大约25个第三方数据集中筛选出一组种子图像,并通过获取与这些种子图像密切相关的图像来扩展它。这种方法使他们能够产生一个包含总共1.2亿张图像的相关数据集,从而获得142万张图像。

2.2.算法和技术的改进

尽管使用更大的模型和数据集将带来更好的结果,但也面临着重大的挑战。其中两个主要挑战是潜在的不稳定性和在训练过程中保持可追踪性。为了使训练更加稳定,DINOv2包括了额外的正则化方法,这些方法受到了相似性搜索和分类文献的启发。

DINOv2的训练过程集成了最新的混合精度和分布式训练实现,这是由最先进的PyTorch 2提供的。这使得代码的实现更快,并且使用相同的硬件来训练DINO模型使得速度加倍,内存使用量减少三分之一,从而实现了数据和模型大小的扩展。

2.3. 使用模型蒸馏减少推理时间

在推理中运行大型模型需要强大的硬件,这将限制方法在不同用例中的实际使用。为了解决这个问题,研究人员使用模型蒸馏将大型模型的知识压缩到较小的模型中。通过利用这种方法,研究人员能够将高性能的架构压缩成具有可忽略性能成本的较小的模型。这导致了强大的ViT-Small、ViT-Base和ViT-Large模型。

3. DINOv2入门

训练和评估代码需要PyTorch 2.0和xFormers 0.0.18以及许多其他第三方包,而且代码预期在Linux环境下运行。以下说明概述了如何配置所有必要的依赖项,以进行培训和评估:

  • 使用此处的说明安装PyTorch。建议安装支持CUDA的PyTorch。
  • 下载conda
  • 使用以下命令克隆DINOv2存储库:

作者提供的代码

  • 使用提供的环境定义创建并激活名为“dinov2”的Conda环境:

作者提供的代码

  • 要安装此项目所需的依赖项,请使用提供的requirements.txt文件。

作者提供的代码

  • 最后,您可以使用以下代码加载模型:

作者提供的代码

总之,Meta AI发布的DINOv2模型标志着一个重要的里程碑。DINOv2模型使用的自监督学习方法提供了一种无需大量标记数据就能训练机器学习模型的强大方式。这些模型能够在不需要微调的情况下实现高精度,适用于各种计算机视觉任务和应用程序。此外,DINOv2可以从不同的图像集合中学习,并且可以从深度估计等特征中进行学习而无需显式训练。DINOv2作为开源模型的可用性为研究人员和开发人员在计算机视觉任务和应用程序方面探索新的可能性打开了大门。

参考文献

  • DINOv2:具有自监督学习的最先进计算机视觉模型
  • DINOv2:学习无监督的鲁棒视觉特征

Youssef Rafaat是一位计算机视觉研究员和数据科学家。他的研究重点是为医疗保健应用程序开发实时计算机视觉算法。他还在市场营销、金融和医疗保健领域担任数据科学家超过3年。