DINO-X:开放世界目标检测与理解的统一视觉模型.
1. 方法简介
DINO-X是由IDEA Research开发的以目标为中心的统一视觉模型,支持各种开放世界感知和目标级理解任务,包括开放世界目标检测和分割、短语定位、视觉提示目标计数、姿态估计、无提示目标检测和识别、密集区域描述等。
DINO-X采用与Transformer相同的编码器-解码器架构,并将开集检测作为其核心训练任务。为了使长尾目标检测更容易,DINO-X在模型输入阶段采用了更全面的提示设计:
- 文本提示:基于用户提供的文本输入来识别感兴趣的目标,这可以覆盖大多数检测场景;
- 视觉提示:DINO-X支持画框或点等视觉提示,进一步覆盖了仅靠文本无法很好描述的检测场景;
- 定制提示符:DINO-X特别引入了定制提示符,它可以作为预定义的或用户调整的提示符嵌入来满足定制需求。通过提示调优,可以为不同的域或特定于功能的提示创建域定制的提示,以满足各种功能需求。
DINO-X能够集成多个感知头,同时支持多个目标感知和理解任务,对输入图像提供更详细的目标级理解。除了用于目标检测的边界框头之外,DINO-X还实现了三个额外的头:
- 用于预测检测目标的分割掩码的掩码头;
- 用于预测特定类别的关键点的关键点头;
- 用于为每个检测目标生成细粒度描述性标题的语言头。
DINO-X包括两个模型:DINO-X Pro模型为各种场景提供增强的感知能力;DINO-X Edge模型优化了更快的推理速度,更适合部署在边缘设备上。
为了增强模型的预训练能力,作者构建了一个包含超过1亿个高质量样本的大型数据集Grounding-100M,以提高模型的开放词汇检测性能。在这样一个大规模的基础数据集上进行预训练可以得到一个目标的基础级表示。
DINO-X Pro模型在COCO、LVIS-minival和LVIS-val的零样本基准测试中分别达到了56.0 AP、59.8 AP和52.4 AP。值得注意的是,它在LVIS-minival和LVIS-val的罕见类别中得分为63.3和56.5,比Grounding DINO 1.6 Pro提高了5.8 AP和5.0 AP,比Grounding DINO 1.5 Pro提高了7.2 AP和11.9 AP,突出了其识别长尾物体的能力显著提高。
2. 模型细节
(1)DINO-X Pro模型
DINO-X利用ViT作为特征提取的骨干,并结合了类似的Transformer编码器-解码器架构。DINO-X支持的提示编码器:
- 文本提示编码器:DINO-X Pro使用预训练的CLIP模型作为文本编码器;
- 视觉提示编码器:DINO-X Pro采用T-Rex2的视觉提示编码器,通过使用框和点两种格式的用户自定义视觉提示来增强目标检测:使用正弦余弦层将这些提示转换为位置嵌入,然后投影到统一的特征空间中;使用不同的线性投影分离框和点提示;然后采用多尺度可变形交叉注意力层,以用户提供的视觉提示为条件,从多尺度特征图中提取视觉提示特征。
- 定制提示:DINO-X Pro定义了一系列定制提示,可以通过提示调优技术对其进行微调,以资源效率和成本效益高的方式覆盖更多的长尾、特定于领域或特定于功能的场景。例如作者开发了一个通用的目标提示符来支持无提示的开放世界检测,使检测图像中的任何目标成为可能,
DINO-X会在上述提示和从输入图像中提取的视觉特征之间进行深度特征融合,然后对不同的感知任务应用不同的头部。
- 边界框头:采用语言引导的查询选择模块,选择与输入提示最相关的特征作为解码器目标查询。然后将每个查询馈送到Transformer解码器并逐层更新;最后应用简单的MLP层预测每个目标查询的相应边界框坐标。使用L1损失和G-IoU损失进行边界框回归,同时使用对比损失将每个目标查询与输入提示对齐。
- 掩码头:通过融合来自Transformer编码器的1/4分辨率骨干特征和上采样的1/8分辨率特征来构建像素嵌入图。然后在Transformer解码器的每个目标查询和像素嵌入映射之间进行点积,以获得查询的掩码输出。为了提高训练效率,只将主干的1/4分辨率特征图用于掩码预测。在最终的掩码损失计算中,只计算采样点的掩码损失。
- 关键点头:DINO-X为人和手实例化了两个关键点头,它们分别有17个和21个预定义的关键点。关键点头从DINO-X获取与关键点相关的检测输出(人和手),每个检测输出都被视为查询,并利用一个单独的解码器解码目标关键点,然后将这些关键点发送到多个可变形的Transformer解码器层,以预测关键点位置及其可见性。
- 语言头:对于任何从DINO-X中检测到的目标,首先使用RoIAlign操作符从DINO-X主干特征中提取其区域特征,并结合其查询嵌入形成目标标记;然后应用一个简单的线性投影来确保它们的尺寸与文本嵌入对齐;轻量级语言解码器将这些区域表示与任务令牌集成在一起,以自动回归的方式生成输出;可学习的任务令牌使语言解码器能够处理各种任务。
(2)DINO-X Edge模型
DINO-X Edge采用EfficientViT作为高效特征提取的骨干。为了进一步提高DINO-X Edge模型的性能和计算效率,作者对模型架构和训练技术进行了以下几个方面的改进:
- 更强的文本提示编码器:DINO-X Edge采用与Pro型号相同的CLIP文本编码器。在实践中文本提示嵌入可以预先计算,并且不会影响视觉编码器和解码器的推理速度。使用更强大的文本提示编码器通常会产生更好的结果。
- 知识蒸馏:DINO-X Edge从Pro模型中提取知识以提高性能。具体来说,作者利用了基于特征的蒸馏和基于响应的蒸馏,它们分别在Edge模型和Pro模型之间对齐特征和预测logits值。
- 改进的FP16推理:作者采用一种归一化技术进行浮点乘法,使模型量化到FP16而不影响精度。
(3)训练数据
为了确保核心的开放词汇目标检测能力,作者开发了一个高质量和语义丰富的Grounding数据集,该数据集由从网络上收集的1亿多张图像组成,称为Grounding-100M。
作者使用T-Rex2的训练数据和一些额外的工业场景数据进行基于视觉提示的预训练。
作者使用开源分割模型,如SAM和SAM2为Grounding-100M数据集的一部分生成伪掩码注释作为掩码头的主要训练数据。
作者从Grounding-100M数据集中采样了一个高质量的数据子集,并利用它们的框注释作为无提示检测训练数据。
作者还收集了超过1000万个区域理解数据用于语言头训练,涵盖了目标识别、区域描述、OCR和区域级QA场景。
(4)训练策略
DINO-X采用了两阶段训练策略:
- 第一阶段对基于文本提示的检测、基于视觉提示的检测和目标分割进行了联合训练;这种大规模的预训练确保了DINO-X出色的开放词汇检测性能,并产生了基本的目标级表示。
- 第二阶段冻结了DINO-X骨干网络,并添加了两个关键点头(人和手)和一个语言头,每个都被单独训练;通过增加更多的头部,极大地扩展了DINO-X执行更细粒度感知和理解任务的能力。
随后作者利用提示调优技术训练了一个通用目标提示符,允许在保留模型的其他功能的同时进行无提示的任何目标检测。
这种两阶段训练方法确保模型的核心检测能力不受引入新能力的影响,它还验证了大规模开集检测预训练可以作为以目标为中心的模型的强大基础,允许无缝转移到其他开放世界的理解任务。