前言
之所以关注到DINOV2,原因在于我解读多个具身机器人模型时——发现他们的视觉基座都用的DINOV2,比如
- rekep
- Open-TeleVision
- OpenVLA
- CogACT
- OKAMI
不过,实话讲,Meta发布的DINOv1及其v2论文的可读性是真的不高,使得本次解读不易——反到IDEA-Research推出的Grounding Dino和DINO-X论文可读性好不少..
总之,本文目前只是个初稿,后面还得花不少时间 反复优化
第一部分 DINO
1.1 提出背景与相关工作
1.1.1 DINO的提出背景
近年来,Transformer [70] 已经成为视觉识别领域中卷积神经网络convnets的替代方案[19,69,83]。它们的采用伴随着一种受NLP启发的训练策略,即在大量数据上进行预训练,然后在目标数据集上进行微调[18,55]
由此产生的视觉Transformer[19-即VIT,由Google于20年10月提出,详见此文《图像生成发展起源:从VAE、扩散模型DDPM、DDIM到DETR、ViT、Swin transformer》的第4部分] 与卷积网络具有竞争力,但尚未显现出明显的优势:它们在计算上更为苛刻,要求更多的训练数据,并且其特征没有表现出独特的属性
- 对此,作者质疑视觉领域中Transformer成功受限是否可以通过其预训练中的监督方式来解释。作者的动机是,Transformer在自然语言处理领域成功的一个主要因素是使用自监督预训练,例如BERT中的close procedure[18]或GPT中的语言建模[55]
- 这些自监督预训练目标使用句子中的词语来创建伪任务,比预测每个句子单一标签的监督目标提供了更丰富的学习信号。同样,在图像中,图像级别的监督通常将图像中包含的丰富视觉信息简化为从预定义的几千个类别中选择的单一概念[60]
受以上种种的启发,21年4月,Meta发布了DINO
- 其对应的paper为:Emerging Properties in Self-Supervised Vision Transformers
作者包括Mathilde Caron1,2、Hugo Touvron1,3、Ishan Misra1 Herve Jegou ´1、Julien Mairal2、Piotr Bojanowski1、Armand Joulin1
他们来自1 Facebook AI Research、2Inria∗、3 Sorbonne University - 其对应的GitHub为:facebookresearch/dino
1.1.2 相关工作:自训练和知识蒸馏
自训练旨在通过将一小部分初始标注传播到大量未标注的实例来提高特征的质量。这种传播可以通过标签的硬分配[41,78,79]或软分配[76]来完成
- 当使用软标签时,该方法通常被称为知识蒸馏[7,35],其主要设计目的是训练一个小网络以模拟大网络的输出来压缩模型
- Xie等人[76]表明,蒸馏可以用于在自训练流程中将软伪标签传播到未标注的数据,从而在自训练和知识蒸馏之间建立了一个重要的联系
- 作者的工作基于这一关系,并将知识蒸馏扩展到无标签的情况。之前的工作也结合了自监督学习和知识蒸馏[25,63,13,47],实现了自监督模型压缩和性能提升。然而,这些工作依赖于预训练的固定教师,而作者的教师是在训练过程中动态构建的。这样,知识蒸馏不是作为自监督预训练的后处理步骤,而是直接作为自监督目标
- 最后,作者的工作也与协同蒸馏[1]相关,其中学生和教师具有相同的架构,并在训练过程中使用蒸馏。然而,在协同蒸馏中,教师也从学生中蒸馏,而在我们的工作中,教师通过学生的平均值进行更新
1.2 方法
1.2.1 知识蒸馏的自监督学习
本研究中使用的框架DINO,与最近的自监督方法[10-Unsupervised learning of visual features by contrasting cluster assignments,16,12,30,33]共享相同的整体结构
然而,作者的方法也与知识蒸馏[35- Distilling the knowledge in a neural network]有相似之处
下图图2中展示了DINO「模型将输入图像的两种不同随机变换传递给学生和教师网络。两个网络具有相同的架构但参数不同。教师网络的输出以批次计算的均值为中心。每个网络输出一个K维特征,该特征通过特征维度上的温度softmax进行归一化。然后用交叉熵损失测量它们的相似性。作者在教师上应用一个停止梯度(sg)操作符 只通过学生传播梯度——We apply astop-gradient (sg) operator on the teacher to propagate gradientsonly through the student。教师参数通过学生参数的指数移动平均(ema)进行更新」
总之,知识蒸馏是一种学习范式,作者训练一个学生网络来匹配给定教师网络
的输出,分别由
和
参数化
给定输入图像,两个网络输出在
维上的概率分布,分别表示为
和
。概率P 是通过使用softmax函数对网络g 的输出进行归一化得到的。更准确地说
其中是控制的温度参数——输出分布的尖锐度,以及一个类似的公式适用于
,其中温度为
。给定一个固定的教师网络
,作者通过最小化相对于学生网络参数
的交叉熵损失来学习匹配这些分布(定义为方程2)
其中
接下来,作者详细说明如何将方程(2)中的问题适应于自监督学习
- 首先,使用多裁剪策略[10] 构建图像的不同失真视图或裁剪。更具体地说,从给定的图像中,生成一组V 的不同视图。该集合包含两个全局视图,xg1 和xg2,以及几个较小分辨率的局部视图。所有裁剪都会通过学生模型,而只有全局视图会通过教师模型,因此鼓励” 局部到全局” 的对应关系
- 最小化损失(定义为方程3)
这种损失是通用的,可以用于任意数量的视图,甚至只有两个视图。然而,遵循多裁剪的标准设置,使用两个分辨率为224×224的全局视图。覆盖原始图像的大部分(例如大于50%)区域,以及几个分辨率为96×96的局部视图。仅覆盖原始图像的小区域(例如小于50%)。除非另有说明,否则将此设置称为DINO的基本参数化
两个网络共享相同的架构,但具有不同的参数集
和
。作者通过使用随机梯度下降法最小化方程(3)来学习参数θs
额外说一句,作者还在算法1中提出了一个伪代码实现
对于教师网络
与知识蒸馏不同,作者没有先验给定的教师,因此作者从学生网络的过去迭代中构建它。作者在原论文的第5.2 节研究了教师的不同更新规则,并展示了在作者的框架中冻结教师网络在一个epoch 内出乎意料地有效,而将学生权重复制给教师则无法收敛
- 特别感兴趣的是,在学生权重上使用指数移动平均(EMA),即动量编码器[33],特别适合他们的框架。更新规则为
,其中λ 在训练过程中按照余弦调度从0.996 到1 [30]
- 最初,动量编码器被引入作为对比学习中队列的替代品[33]。然而,在他们的框架中,其角色有所不同,因为他们没有队列也没有对比损失,可能更接近于自我训练中使用的均值教师的角色[65]
- 事实上,作者观察到这个教师执行了一种类似于Polyak-Ruppert 平均的模型集成形式,具有指数衰减[51, 59]。使用Polyak-Ruppert 平均进行模型集成是提高模型性能的标准做法[38]。作者观察到这个教师在整个训练过程中表现优于学生,因此,通过提供更高质量的目标特征来指导学生的训练。这种动态在先前的工作中未被观察到[30, 58]
对于网络架构
神经网络g 由一个主干f(ViT [19] 或ResNet [34])和一个投影头组成
再简要回顾下视觉Transformer(ViT) [19, 70] 的机制
作者遵循DeiT [69-Training data-efficient image transformers & distillation through attention] 中使用的实现。且在下表1 中总结了本文中使用的不同网络的配置
其中,ViT 架构以分辨率为N ×N 的非重叠连续图像块网格作为输入
- 在本文中,作者通常使用N = 16(”/16”) 或N = 8 (”/8”)
然后将这些图像块通过一个线性层以形成一组嵌入- 在序列中添加一个额外的可学习token [18, 19],这个token的作用是聚合整个序列的信息——为了与之前的研究保持一致,将此token称为分类token[CLS],且在其输出处附加投影头h「projection head h」
- patch token集和[CLS] token被输入到一个带有” 预归一化” 层归一化的标准Transformer 网络[11, 39]「The set of patch tokens and [CLS] token are fed to a standard Transformer network with a “pre-norm” layer normalization [11, 39],说白了,所谓的预归一化——就是先Norm再attention 或先Norm再MLP」
而其中的Transformer 是由自注意力和前馈层组成的序列,并与跳跃连接并行。自注意力层通过注意力机制[4] 查看其他token表示来更新token表示「如果对transformer的自注意力机制有所遗忘的话,详见此文《Transformer通俗笔记:从Word2Vec、Seq2Seq逐步理解到GPT、BERT》」
TheTransformer is a sequence of self-attention and feed-forwardlayers, paralleled with skip connections. The self-attentionlayers update the token representations by looking at the other token representations with an attention mechanism [4].
下游任务中使用的特征是主干f 的输出。投影头由一个3 层多层感知器(MLP)组成,隐藏维度为2048,后接归一化和一个权重归一化的全连接层[61],具有K 维度,这与SwAV [10- Unsupervised learning of visual features by contrasting cluster assignments] 的设计相似
- 作者测试了其他投影头,这种特定设计似乎对DINO 效果最佳(附录C)。作者没有使用预测器[30,16],导致学生和教师网络中的架构完全相同
- 特别值得注意的是,与标准卷积神经网络不同,ViT架构默认不使用批量归一化(BN)。因此,当将DINO应用于ViT时,作者在投影头中也不使用任何BN,使系统完全不含BN
// 待更
第二部分 Grounding Dino
2.1 Grounding Dino的提出与相关背景
2.1.1 Grounding Dino:类似DETR
23年3月,清华大学、IDEA-Research等机构「即粤港澳大湾区数字经济研究院(International Digital Economy Academy,简称IDEA研究院,后还于24年1月提出了Grounded SAM,详见此文《SAM(分割一切):从SAM、FastSAM、Grounded SAM到SAM2、SAMURAI——从分割图像到分割视频》」推出Grounding DINO
- 其对应的论文为《Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection》
作者机构包括清华大学、IDEA、港科大、港中文、微软研究院、华南理工 - Grounding DINO——类似DETR,通过结合基于Transformer的检测器DINO与基础预训练,可以通过人类输入(如类别名称或指代表达)检测任意对象
开放集目标检测的关键解决方案是将语言引入闭集检测器以实现开放集概念泛化。为了有效融合语言和视觉模态,他们将闭集检测器概念性地划分为三个阶段,并提出了一种紧密融合的解决方案,包括特征增强器、语言引导的查询选择以及用于模态融合的跨模态解码器
2.1.2 提出背景:将封闭集检测器扩展到开放集场景
首先,对于基于DINO的紧密模态融合
开放集检测的关键在于引入语言来实现对未见物体的泛化[1,7,25]。大多数现有的开放集检测器是通过将闭集检测器扩展到具有语言信息的开放集场景而开发的
如下图图2所示——将封闭集检测器扩展到开放集场景
闭集检测器通常有三个重要的模块
- 一个用于特征提取的主干
- 一个用于特征增强的颈部
- 以及一个用于区域细化(或框预测)的头部
通过学习语言感知的区域嵌入,一个闭集检测器可以被泛化以检测新颖的物体,从而使每个区域可以在语言感知的语义空间中分类为新颖类别。实现这一目标的关键是在颈部Neck和/或头部Head输出的区域输出和语言特征之间使用对比损失——比如contrastive Loss A/contrastive Loss B,为了帮助模型对齐跨模态信息,一些工作尝试在最终损失阶段之前融合特征
特征融合可以在三个阶段进行:颈部(阶段A 即Feature Fusion A)、查询初始化(阶段B 即Feature Fusion B)、头部(阶段C 即Feature Fusion C)。例如,GLIP [25]在颈部模块(阶段A)中进行早期融合,而OV-DETR [55]使用语言感知查询作为头部输入(相当于在阶段B融合)
总之,作者认为在管道中引入更多的特征融合可以促进不同模态特征之间的更好对齐,从而实现更好的性能
作者在论文中说,尽管概念上简单,但以往的工作很难在所有三个阶段进行特征融合
- 经典检测器如Faster RCNN的设计使得在大多数模块中难以与语言信息交互
- 与经典检测器不同,基于Transformer的检测方法如DINO具有与语言模块一致的结构。逐层设计使其能够轻松与语言信息交互
基于后者这一原则,他们在颈部、查询初始化和头部阶段设计了三种特征融合方法,更具体地说
- 他们设计了一个特征增强器,通过堆叠自注意力、文本到图像的交叉注意力和图像到文本的交叉注意力作为颈部模块
- 然后,开发了一种语言引导的查询选择方法来初始化检测头的查询
且还为头部阶段设计了一个跨模态解码器,具有图像和文本的交叉注意力层,以增强查询表示
其次,对于大规模的零样本转移基础训练
作者指出,大多数现有的开放集模型[14,21]依赖于预训练的CLIP模型进行概念泛化。然而,CLIP的效力,特别是在图像-文本对上预训练的效力,对于区域-文本对检测任务是有限的——正如RegionCLIP [61]研究所指出的那样
- 相比之下,GLIP [25]通过将目标检测重新表述为短语定位任务并在大规模数据上引入对象区域与语言短语之间的对比训练,展示了一种不同的方法
它在异构数据集上表现出极大的灵活性,并在封闭集和开放集检测上表现出显著的性能 - 作者采用并改进了基础训练方法。GLIP的方法涉及将所有类别以随机顺序连接成一个句子。然而,直接的类别名称连接在提取特征时并未考虑不相关类别之间的潜在影响
为了缓解这一问题并提高基础训练期间的模型性能,作者引入了一种利用子句级别文本特征的技术。它在单词特征提取期间消除了不相关类别之间的注意力。关于这一技术的进一步说明可以在原论文第3.4节中可以找到
总之,他们在大规模数据集上预训练了Grounding DINO,并在COCO [29]等主流目标检测基准上评估性能
2.2 Grounding DINO的整体方法论与架构
Grounding DINO为给定的(图像,文本)对输出多个对象框和名词短语对。例如,如下图图 3 所示
模型从输入图像中定位到一只猫和一张桌子,并从输入文本中提取出单词“猫”和“桌子”作为相应的标签。对象检测和REC 任务都可以与该流程对齐
按照 GLIP [25] 的方法,将所有类别名称连接为对象检测任务的输入文本。REC 需要一个边界框用于每个文本输入。使用得分最高的输出对象作为REC任务的输出
Grounding DINO 是一种双编码器-单解码器架构,它包含
- 一个用于图像特征提取的图像骨干网络
- 一个用于文本特征提取的文本骨干网络
- 一个用于图像和文本特征融合的特征增强器,即a Feature Enhancer for image and text feature fusion
- 一个用于查询初始化的语言引导查询选择模块,即a Language-guided Query Selection module for query initialization
- 以及一个用于框体细化的跨模态解码器,即a Cross-Modality decoder for box refinemen
对于每个图像-文本对——(Image, Text) pair,首先使用图像骨干网络和文本骨干网络分别提取原始图像特征和原始文本特征。两个原始特征被输入到特征增强器模块中进行跨模态特征融合
在获得跨模态文本和图像特征后,使用语言引导查询选择模块从图像特征中选择跨模态查询。就像大多数类似 DETR模型中的对象查询一样
这些跨模态查询将被输入到跨模态解码器中,以从两个模态特征中探测所需特征并更新自身,最后一个解码器层的输出查询将用于预测对象框并提取相应的短语
2.2.1 特征提取和增强器
给定一个图像-文本对——(Image, Text) pair,使用类似Swin Transformer [32] 的图像骨干网络提取多尺度图像特征,并使用类似BERT [8] 的文本骨干网络提取文本特征
遵循之前类似DETR 的检测器[57,64],多尺度特征从不同块的输出中提取。在提取原始图像和文本特征后,将它们输入到一个特征增强器中进行跨模态特征融合
- 特征增强器包括多个特征增强层。在图3 的第2 块中展示了一个特征增强层。利用可变形自注意力来增强图像特征,并使用原始自注意力来增强文本特征
- 受GLIP [25] 的启发,添加了一个图像到文本和一个文本到图像的交叉注意力模块用于特征融合。这些模块有助于对齐不同模态的特征
2.2.2 语言引导的查询选择
Grounding DINO旨在检测由输入文本指定的图像中的对象。为了有效利用输入文本指导对象检测,作者设计了一个语言引导的查询选择模块,用于选择与输入文本更相关的特征作为解码器查询
- 令图像特征为
,文本特征为
。这里,
表示图像token的数量,
表示文本token的数量,
对应特征维度
在作者的实验中,作者特别使用了特征维度。通常,在模型中,
的值超过10,000,而
保持在256 以下
- 作者的目标是从编码器的图像特征中提取
个查询,以用作解码器的输入。根据DINO 方法,作者将
设置为900。图像特征的前
个查询索引,记为
,使用以下表达式选择:
在这个表达式中,表示选择前
个索引的操作。函数
在
维度上执行最大操作,符号
表示矩阵转置
作者在算法1 中以PyTorch 风格展示了查询选择过程。语言引导的查询选择模块输出
个索引。可以基于选定的索引提取特征来初始化查询。参考DINO [57],使用混合查询选择来初始化解码器查询。每个解码器查询包含两个部分:内容部分和位置部分[33]
- 将位置部分表述为动态锚框[31],这些框由编码器输出初始化
- 另一部分,内容查询,在训练过程中被设置为可学习的
2.2.3 跨模态解码器、子句级文本特征、损失函数
对于跨模态解码器,作者开发了一个跨模态解码器来结合图像和文本模态特征,如图3的模块3所示
每个跨模态查询被输入到一个自注意力层、一个图像跨注意力层以结合图像特征、一个文本跨注意力层以结合文本特征,以及每个跨模态解码器层中的一个FFN层。与DINO解码器层相比,每个解码器层有一个额外的文本跨注意力层,因为需要将文本信息注入查询以实现更好的模态对齐
对于DINO与Grounding DINO的比较而言,下图用用蓝色标记修改
对于子句级文本特征,在之前的工作中探索了两种文本提示,作者称之为句子级表示和词级表示,如图4所示
- 句子级表示[35,52]将整个句子编码为一个特征
如果短语定位数据中的某些句子包含多个短语,它会提取这些短语并丢弃其他词语。通过这种方式,它消除了词语之间的影响,同时失去了句子中的细粒度信息 - 词级表示[12,18]可以通过一次前向编码多个类别名称,但引入了类别之间不必要的依赖,尤其是在输入文本是多个类别名称以任意顺序串联时
- 如图4(b)所示,一些不相关的词在注意力机制中发生了交互。为了避免不必要的词语交互,引入了注意力掩码来阻止不相关类别名称之间的注意力交互,称为“子句”级别表示。它消除了不同类别名称之间的影响,同时保留了每个词的特征,以实现细粒度的理解
对于损失函数,继承之前的DETR类工作[2,24,31,33,57,64],作者使用L1损失和GIOU[40]损失进行边界框回归。且遵循GLIP[25]的做法,使用预测对象与语言token之间的对比损失进行分类
具体来说
- 将每个查询与文本特征进行点乘,以预测每个文本token的对数几率,然后计算每个对数几率的焦点损失[28]。框回归和分类成本首先用于预测和真实值之间的二分匹配
- 然后,使用相同的损失组件计算真实值与匹配预测之间的最终损失。遵循DETR类模型,在每个解码器层之后以及编码器输出之后添加辅助损失
// 待更
第三部分 DINOV2
3.1 相关工作与数据处理
3.1.1 相关工作
23年4月,Meta AI提出DINOv2——是一系列在大型精心挑选的数据上进行无监督预训练的图像编码器,其对应的论文为《DINOv2: Learning Robust Visual Features without Supervision》
- 在数据方面,作者提出了一种自动化流程来构建一个专用的、多样化的、精心策划的图像数据集,而不是像自监督文献中通常所做的那样使用未策划的数据
比如下图所示,来自精选和非精选数据源的图像首先被映射到嵌入。非精选图像在与精选图像匹配之前会进行去重。最终的组合通过自监督检索系统增强了初始数据集 - 在模型方面,作者训练了一个具有10亿参数的ViT模型(Dosovitskiy等,2021),并将其蒸馏成一系列较小的模型,这些模型在图像和像素级别的大多数基准测试中超越了最佳可用的通用特征OpenCLIP(Ilharco等,2021)
而在此之前,其实有不少与之相似或相关的工作,比如
第一类自监督方法侧重于伪任务从图像中构建,即从图像中提取信号以预测图像的其余部分
- 图像内自监督训练这个想法在Doersch等人(2015)的工作中变得普遍,他们通过预测给定patch的上下文进行训练。许多其他的前置任务也被引入,例如重新上色图像(Zhang等人,2016)、预测变换(Gidaris等人,2018)、图像修复(Pathak等人,2016)或补丁重排序(Noroozi & Favaro,2016;Misra & Maaten,2020)
- 最近,基于patch的架构如ViTs的出现,导致对前置训练的图像修复进行重新审视(He等人,2022;Bao等人,2021;El-Nouby等人,2021),可能在特征空间中(Assran等人,2023;Baevski等人,2022)
特别有趣的是,He等人(2022)表明,掩码自动编码器(MAE)学习到的特征在下游任务微调时提供了显著的改进。MAE的这一特性在视频(Tong等人,2022)、音频(Xu等人,2022)和其他模态(Girdhar等人,2023)上得到了进一步验证
然而,它们的特征需要有监督的微调,而DINOV2的特征在未经微调的情况下表现良好。判别式自监督学习
第二类与DINOV2更接近的工作是使用判别式信号在图像或图像组之间学习特征
- 这类方法的根源可以追溯到早期的深度学习工作(Hadsell等,2006),但随着实例分类方法的出现而流行起来(Dosovitskiy等,2016;Bojanowski & Joulin,2017;Wu等,2018)。几项改进基于实例级目标(Hénaff等,2019;He等,2020;Chen & He,2021;Chen等,2020;Grill等,2020;Caron等,2021)或聚类(Caron等,2018;Asano等,2020;Caron等,2020)进行
- 这些方法在ImageNet(Russakovsky等,2015)等标准基准上提供了高性能的冻结特征,但难以扩展到更大的模型规模(Chen等,2021)
在DINOV2工作中,作者重新审视了这些方法在大规模预训练数据集和模型背景下的训练。特别是,作者基于Zhou等(2022a)的研究进行构建,发现其特别适合于扩展
第三类,扩展自监督预训练
- 越来越多的研究集中于自监督学习在数据和模型规模方面的扩展能力(Caron等,2019;Goyal等,2019;Tian等,2021;Goyal等,2022a)。这些研究大多数使用大量未经筛选的数据来训练无监督的模型。他们提供的证据表明,判别方法可以随着数据的增加而扩展,但由于预训练数据质量较差,大多数结果是通过微调特征获得的
- 特别值得注意的是,Goyal等(2021)还表明,在有足够预训练数据的情况下,这些方法在模型规模扩展方面也受益。这一研究方向质疑了自监督方法在任何数据上工作的能力,而我们则专注于生成最佳的预训练编码器
第四类相关的工作是自动化数据整理
- DINOV2的数据集构建借鉴了图像检索领域(Wein-zaepfel等人,2021;Radenović等人,2018b;Berman等人,2019;Douze等人,2009;Tolias等人,2016;Revaud等人,2019)。特别是在半监督学习的背景下,使用检索来扩充训练集已经被研究过(Yalniz等人,2019)
- 类似地,其他人使用标签或其他元数据(Mahajan等人,2018;Radford等人,2021)或预训练视觉编码器(Schuhmann等人,2021;2022)来过滤未整理的数据集
与这些工作不同的是,DINOV2不使用预训练编码器、元数据或监督来过滤图像,而是利用图像之间的视觉相似性
DINOV2的方法受到文本整理流程的启发(Wenzek等人,2020),其中语言模型在维基百科上训练,以对从未整理的来源提取的文本进行评分
3.1.2 数据处理
作者通过从大量未经过筛选的数据中检索出与几个经过筛选的数据集中的图像相似的图像,从而构建了的精选 LVD-142M 数据集
接下来,介绍下该数据处理流程中的主要组件,包括整理/未整理的数据来源、图像去重步骤和检索系统。且该流程不需要任何元数据或文本,直接处理图像,如上图图3所示
- 数据来源
作者选择的精心整理的数据集详见附录(表15),包括ImageNet-22k、ImageNet-1k的训练集、Google地标以及几个细粒度数据集
对于未经整理的数据源,作者从一个公开可用的网络爬取数据存储库中收集未经过滤的原始图像数据集
比如从存储库中的每个网页提取标签中的图像URL链接。然后丢弃不安全或被域名限制的URL,并对下载的图像进行后处理(PCA哈希去重、NSFW过滤和模糊处理可识别的面孔)。最终得到12亿张独特的图像 - 去重
作者应用了Pizzi等人(2022年)的复制检测流程到未经整理的数据中,并移除了近似重复的图像。这减少了冗余并增加了图像的多样性
且还移除了在本文使用的任何基准的测试或验证集中包含的图像的近似重复项 - 自监督图像检索
作者通过从未经筛选的数据源中检索接近于他们筛选过的数据源的图像来构建我们精心策划的预训练数据集
为此,首先使用在ImageNet-22k 上预训练的自监督ViT-H/16 网络计算图像嵌入,并使用余弦相似度作为图像之间的距离度量
然后,对未经筛选的数据进行k-means 聚类
给定一个用于检索的查询数据集
如果它足够大,为每个查询图像检索N(通常为4)个最近邻
如果它较小,从与每个查询图像对应的聚类中采样M 个图像
尽管视觉检查似乎表明对于N 远大于4 的检索质量较好,但这会导致更多的冲突(即多个查询的最近邻检索结果相同的图像)。故作者选择N = 4,因为它在这方面提供了良好的权衡 - 实现细节
作者的管道的去重和检索阶段依赖于Faiss库(Johnson等,2019)来高效地索引和批量搜索最近的嵌入
特别是,作者大量利用其对GPU加速索引的支持,使用带有产品量化码的倒排文件索引(Jegou等,2010)
整个处理分布在一个由20个节点组成的计算集群上,每个节点配备8个V100-32GB GPU,生成LVD-142M数据集用时不到两天
3.2 判别式自监督预训练与高效实现
// 待更
第四部分 DINO-X
24年11月,IDEA-Research提出DINO-X,其对应的论文为《DINO-X: A Unified Vision Model for Open-World Object Detection and Understanding》
// 待更