1. 论文动机
首先,我们来看看这篇论文的动机。传统的目标检测模型,比如 YOLO、Faster R-CNN,通常是闭集检测(Closed-Set Detection),只能识别训练数据中预定义的类别。这种限制在现实世界中非常明显,因为实际场景中经常会出现训练时未见过的新物体,比如罕见物体(Long-Tailed Objects)或者用户自定义的目标。现有的开放集检测模型(Open-Set Detection),如 Grounding DINO,虽然能根据用户提供的文本提示检测物体,但仍然存在两个问题:
-
长尾检测的覆盖不足:由于训练数据的多样性有限,模型很难处理那些非常稀有的物体类别。
-
单一提示方式的局限性:仅靠文本提示有时无法准确描述复杂的检测需求,比如难以用语言表达的视觉特征。
基于这些问题,论文提出 DINO-X,旨在构建一个统一的视觉模型,不仅能提升开放世界检测的性能,还能支持多种提示方式(文本、视觉、自定义),甚至实现无需提示的“任意物体检测”(Prompt-Free Detection)。同时,模型希望通过多任务集成(检测、分割、姿态估计等),提供更全面的物体理解能力。这种多功能性和对长尾问题的关注,是 DINO-X 的核心动机。
2. 模型可以完成的任务
接下来,我们看看 DINO-X 能做什么。论文中提到,DINO-X 是一个“物体中心”(Object-Centric)的视觉模型,支持以下任务:
-
开放世界目标检测(Open-World Detection):
-
可以根据用户提供的提示(Prompt)检测任何物体,不限于训练时的类别。
-
支持“零样本”(Zero-Shot)检测,即在未见过的数据集(如 COCO、LVIS)上直接测试。
-
-
目标分割(Segmentation):
-
为检测到的物体生成精确的分割掩码,提供更细致的区域信息。
-
-
姿态估计(Pose Estimation):
-
针对特定类别(如人和手),预测关键点位置,比如人的 17 个关键点、手的 21 个关键点。
-
-
物体描述生成(Object Captioning):
-
为每个检测到的物体生成详细的自然语言描述,比如“一个戴眼镜的人在弹吉他”。
-
-
基于物体的问答(Object-Based QA):
-
支持区域级别的视觉问答,比如“图片中桌子上的物体是什么?”。
-
-
视觉提示计数(Visual Prompt Counting):
-
用户通过绘制框或点指定目标,模型可以计数特定物体的数量。
-
-
无提示检测(Prompt-Free Detection):
-
不需要用户输入任何提示,就能检测并识别图像中的所有物体。
-
这些任务的集成让 DINO-X 非常强大,从粗粒度的边界框到细粒度的关键点和描述,它几乎覆盖了所有物体理解的需求。论文中还提到,DINO-X 有两个版本:Pro 版专注于高性能,适用于复杂场景;Edge 版优化了推理速度,适合边缘设备部署。
3. 基于什么的技术
DINO-X 的技术基础建立在 Grounding DINO 1.5 的 Transformer 编码器-解码器架构之上。让我们拆解一下它的核心技术:
-
视觉主干(Vision Backbone):
-
Pro 版:使用预训练的 ViT(Vision Transformer),通过深层特征融合(Deep Early Fusion)提取图像特征。
-
Edge 版:使用 EfficientViT,一个轻量化多尺度注意力模型,兼顾效率和性能。
-
-
提示编码器(Prompt Encoder):
-
文本提示(Text Prompt):采用 CLIP 模型(对比语言-图像预训练),替换了 Grounding DINO 的 BERT,因为 CLIP 在多模态对齐上更强。
-
视觉提示(Visual Prompt):借鉴 T-Rex2 的设计,将用户绘制的框或点转换为位置嵌入,再通过多尺度可变形注意力层提取特征。
-
自定义提示(Customized Prompt):通过提示调优(Prompt-Tuning)生成特定领域的嵌入,比如通用的“任意物体提示”。
-
-
多任务感知头(Perception Heads):
-
边界框头(Box Head):基于语言引导的查询选择,预测物体坐标。
-
掩码头(Mask Head):融合多分辨率特征,生成分割掩码。
-
关键点头(Keypoint Head):为特定类别预测关键点位置。
-
语言头(Language Head):一个轻量级生成模型,结合物体特征和任务标记生成描述或回答问题。
-
这些技术组件通过统一的 Transformer 架构整合在一起,共享一个强大的物体级表示(Object-Level Representation),这是 DINO-X 能同时支持多任务的关键。
4. 做了什么样的改进
相比 Grounding DINO 1.5 和 1.6,DINO-X 在以下几个方面做了显著改进:
-
扩展提示支持:
-
增加了视觉提示和自定义提示的支持,使得模型能处理文本无法描述的场景和特定领域的长尾需求。
-
开发了“通用物体提示”(Universal Object Prompt),实现无需提示的检测,极大地提升了实用性。
-
-
更强的文本编码器:
-
将 BERT 替换为 CLIP,提升了多模态对齐能力,尤其是在开放词汇检测上的表现。
-
-
多任务集成:
-
新增掩码头、关键点头和语言头,使模型从单一检测扩展到分割、姿态估计和语言理解。
-
-
Edge 版优化:
-
使用知识蒸馏(从 Pro 版到 Edge 版),提升了轻量化模型的零样本性能。
-
引入 FP16 推理优化,推理速度从 Grounding DINO 1.5 Edge 的 10.7 FPS 提升到 20.1 FPS。
-
-
大规模预训练:
-
构建了 Grounding-100M 数据集(见下节),通过大规模预训练增强了模型的泛化能力。
-
这些改进让 DINO-X 在性能和功能上全面超越前代模型,尤其是在长尾物体检测和多任务支持上。
5. 数据上的领先
数据是 DINO-X 的一个亮点。论文中提到,他们构建了一个超大规模数据集 Grounding-100M,包含超过 1 亿张高质量图像,来自网络和其他来源。这个数据集的细节如下:
-
数据来源:
-
融合了 T-Rex2 的训练数据,增加了工业场景数据。
-
使用 SAM 和 SAM2 等开源分割模型生成伪掩码标注。
-
抽取高质量子集用于无提示检测训练。
-
收集了 1000 万区域理解数据,覆盖物体识别、区域描述、OCR 和问答。
-
-
训练策略:
-
第一阶段:联合训练文本提示检测、视觉提示检测和分割,不使用 COCO、LVIS 等基准数据集,确保零样本能力。
-
第二阶段:冻结主干,分别训练关键点头和语言头,再通过提示调优训练通用物体提示。
-
-
数据优势:
-
相比 Grounding DINO 的训练数据,Grounding-100M 规模更大(1 亿 vs. 数百万),语义更丰富。
-
通过排除基准数据集,验证了模型的零样本迁移能力。
-
这种大规模预训练为 DINO-X 提供了强大的基础表示,使其在 COCO、LVIS 等数据集上取得了显著领先的性能。
6. 模型的特点
最后,我们总结一下 DINO-X 的核心特点:
-
统一性(Unified):
-
一个模型同时支持检测、分割、姿态估计和语言理解,任务间共享一个物体级表示。
-
-
开放性(Open-World):
-
支持开放词汇检测,能识别训练时未见过的类别,尤其擅长长尾物体。
-
-
灵活性(Flexible Prompting):
-
提供文本、视觉和自定义三种提示方式,甚至支持无提示检测,适应各种场景。
-
-
高性能:
-
Pro 版在 COCO 上达到 56.0 AP,在 LVIS-val 上 52.4 AP,在稀有类别上提升 5-11.9 AP,刷新了 SOTA。
-
Edge 版推理速度达 20.1 FPS,适合实时应用。
-
-
扩展性:
-
通过提示调优和多任务头设计,模型易于扩展到新任务或领域。
-
-
实用性:
性能数据展示
为了直观展示 DINO-X 的能力,我摘录了一些关键结果:
-
COCO Zero-Shot:56.0 AP(比 Grounding DINO 1.5 Pro 高 1.7 AP)。
-
LVIS-minival:59.8 AP,稀有类别 63.3 AP(提升 5.8 AP)。
-
LVIS-val:52.4 AP,稀有类别 56.5 AP(提升 5.0 AP)。
这些数据表明,DINO-X 不仅整体性能强,在长尾检测上尤为突出。