DINOv2论文
DINOv2代码
The recent breakthroughs in natural language processing for model pretraining on large quantities of data have opened the way for similar foundation models in computer vision.These models could greatly simplify the use of images in any system by producing allpurpose visual features, i.e., features that work across image distributions and tasks without finetuning. This work shows that existing pretraining methods, especially self-supervised methods, can produce such features if trained on enough curated data from diverse sources.We revisit existing approaches and combine different techniques to scale our pretraining in terms of data and model size. Most of the technical contributions aim at accelerating and stabilizing the training at scale. In terms of data, we propose an automatic pipeline to build a dedicated, diverse, and curated image dataset instead of uncurated data, as typically done in the self-supervised literature. In terms of models, we train a ViT model (Dosovitskiy et al, 2020) with 1B parameters and distill it into a series of smaller models that surpass the best available all-purpose features, OpenCLIP (Ilharco et al, 2021) on most of the benchmarks at image and pixel levels.
最近在自然语言处理中对大量数据进行模型预训练的突破为计算机视觉中类似的基础模型开辟了道路。这些模型可以极大地简化图像在任何系统中的使用,因为它产生了通用的视觉特征,也就是说,无需微调就可以跨图像分布和任务工作的特征。这项工作表明,现有的预训练方法,特别是自监督方法,如果在来自不同来源的足够多的精心整理的数据上训练,可以产生这样的特征。我们重新审视现有的方法,并结合不同的技术,在数据和模型大小方面扩展我们的预训练。大多数技术贡献旨在加速和稳定大规模培训。在数据方面,我们提出了一个自动管道来构建一个专用的、多样化的、经过管理的图像数据集,而不是像自我监督文献中通常做的那样未经管理的数据。在模型方面,我们用1B个参数训练了一个ViT模型,并将其提炼成一系列较小的模型,这些模型在图像和像素级别的大多数基准上超过了可用的最佳通用功能OpenCLIP 。
我们计算来自同一列(a, b, c和d)的图像patch之间的PCA,并显示它们的前3个分量。每个分量都与不同的颜色通道相匹配。无论姿势、风格甚至物体的变化,相同的部分在相关图像之间都是匹配的。背景通过阈值法去除第一个PCA分量。
从存储库中的每个网页中,我们从标签中提取图像的URL链接。我们丢弃不安全或受域限制的url,并对下载的图像进行后处理(PCA哈希重删,NSFW过滤和模糊可识别的面孔)。这将产生12亿个独特的图像。
我们将Pizzi等人(2022)的复制检测管道应用于未整理的数据,并去除近重复的图像。这减少了冗余并增加了图像之间的多样性。我们还删除了本工作中使用的任何基准的测试或验证集中包含的接近重复的图像。
我们通过从我们的非策划数据源中检索与我们策划源中的图像接近的图像来构建我们的策划预训练数据集。为了做到这一点,我们首先使用在ImageNet-22k上预训练的自监督ViT-H/16网络计算图像嵌入,并使用余弦相似度作为图像之间的距离度量。然后,我们对未整理的数据执行k-means聚类。给定一个用于检索的查询数据集,如果它足够大,我们为每个查询图像检索N(通常为4)个最近邻。如果它很小,我们从每个查询图像对应的集群中采样M个图像。我们通过目视检查检索结果来调整N和M。
我们的管道的重复数据删除和检索阶段依赖于Faiss库来有效地索引和计算最近嵌入的批量搜索。特别是,我们大量利用其对gpu加速索引的支持,使用带有产品量化代码的反向文件索引。整个处理过程分布在20个节点的计算集群上,配备8个V100-32GB的gpu,生成LVD-142M数据集的时间不超过两天。
我们使用一种判别式自监督方法来学习特征,该方法可以看作是DINO和iBOT损失与SwAV中心的结合。我们还添加了一个正则化器来扩展特征和一个短的高分辨率训练阶段。