一、模型简介
Grounding DINO 推动了开集目标检测的重大进步,它将基于 Transformer 的 DINO 检测架构与基础预训练(Grounded Pre-Training)技术的优势相结合。这种融合使模型能够通过自然语言输入检测任意指定的物体,打破了过往基于预定义类别来进行目标检测的范式。
为了解决现有开放世界检测系统存在的局限性,比如处理长尾分布(某些物体频繁出现而许多其他物体较为罕见)、以及多种输入模态的支持和兼容问题,IDEA-CVR 团队在 Grounding DINO 的基础上构建出了 DINO-X,DINO-X 的突出特点是它不仅能接受文本提示,还能接受视觉提示和自定义提示,这种特性使其能够适应更加多样化的检测场景。
此外,该模型还集成了用于分割、关键点检测和语言理解的专门模块,由此创建出一个全面的图像分析框架。
图1:DINO-X是一个统一的以物体为中心的视觉模型,支持各种开放世界感知和物体级理解任务,包括开放世界物体检测与分割、短语定位、视觉提示计数、姿态估计、无提示物体检测与识别、密集区域描述等。
1. 模型架构
DINO-X 基于 Transformer 编码器-解码器架构构建,其设计类似于 Grounding DINO 1.5。该架构包含几个关键组件:
(1)视觉主干网络:这是一个预训练的 Vision Transformer(ViT),用于处理输入图像并提取视觉特征。这个网络就像是人眼和大脑视觉皮层,负责“看”图像并提取关键特征。例如,当看到一只猫时,它会注意到猫的耳朵、尾巴、四肢等特征。
(2)文本编码器:CLIP 文本编码器,用于处理文本提示,实现语言引导的检测。这个编码器相当于语言理解中心,将"找到红色消防栓"这样的文字提示转化为模型可理解的表示。
(3)提示处理机制:该模型支持三种类型的提示:
(a)用于语言引导检测的文本提示;
(b)用于基于示例检测的视觉提示,比如给它看一张苹果的图片,它会在目标图像中找到所有苹果;
(c)结合文本和视觉信息的自定义提示,比如同时提供"红色"的文本描述和一张苹果的图片,让它找出所有红色苹果。
(4)Transformer 编码器-解码器:处理视觉特征和提示信息以定位图像中的目标。
(5)任务特定模块:多个专门的模块负责实现不同的感知任务:
(a)检测模块用于目标定位(指出“那个物体在哪里”);
(b)掩码模块用于实例分割(精确勾勒出“物体的边界到底在哪”);
(c)关键点模块用于姿态估计(标记出“人的手肘、膝盖在哪里”);
(d)语言模块用于目标级语言理解(描述出“这是一只正在草地上奔跑的棕色小狗”)。
举个例子,当你给 DINO-X 一张公园的照片,并提示“找出所有的狗”时,系统会通过视觉主干网络分析图像,文本编码器理解“狗”的概念,然后通过编码器-解码器整合这些信息,最终检测模块会框出所有狗的位置,掩码模块会精确描绘每只狗的轮廓,关键点模块可能会标记出狗的关节位置,而语言模块则可能生成“一只棕色的拉布拉多正在草地上奔跑”这样的描述。
这种统一架构使得模型能够进行高效的多任务学习和推理,从而减少用户对不同感知任务使用单独模型的需求和不便。
2. 训练方法
DINO-X 采用了复杂的训练方法,使其能够有效地跨多个任务进行学习:
2.1 数据集创建
研究人员创建了一个名为“Grounding-100M”的数据集,该数据集包含了超过 1 亿个高质量的标注样本。与此同时,他们使用开源分割模型对于该数据集的一个子集生成了伪掩码标注,用于训练掩码模块。
2.2 两阶段训练
训练过程遵循两阶段方法:
(1)第一阶段:基于三种方式进行联合训练,包括:a)基于文本提示的检测;b)基于视觉提示的检测;c)目标分割。
例如,模型先学习如何通过文字"红色消防车"或者一张消防车的图片来识别消防车,同时学习精确描绘消防车的轮廓。
(2)第二阶段:添加并训练额外的感知模块(关键点、语言),同时保持主干网络冻结,即关键点模块只在人体姿态数据集上训练;语言模块只在区域描述数据集上训练。这种分阶段学习能够有效防止了新知识冲淡旧知识,就像一个人在掌握了画画的基本功后,可以进一步学习素描或油画而不会忘记基础技巧。
3. 关键能力
在继承 Grounding DINO 能力的基础上,DINO-X 提供了更强大的关键能力,其中包括:
图2 DINO-X 与 Grounding DINO 的能力对比
3.1 多模态提示
DINO-X 的提示系统非常灵活,类似于与一位聪明助手的多种沟通方式:
(1)文本提示:用户可以用自然语言描述物体(例如“找出图像中所有的猫”)。
(2)视觉提示:用户可以提供他们想要检测的物体的示例图像,实现少样本检测(例如,给模型看一张特斯拉汽车的图片,它可以在街景照片中识别出所有特斯拉车型)。
(3)自定义提示:结合文本和视觉信息进行更精确的检测(例如"找出所有比这个示例更大的同类物体",同时提供一张小型帆船的图片)。
这种灵活性使 DINO-X 能够适应更广泛的检测场景和用户需求。
3.2 长尾识别更精确
DINO-X 在 LVIS 基准上检测罕见物体类别方面显示出显著改进,突破了先前模型的重要限制。这种能力使 DINO-X 在专业领域(如生物多样性监测、稀有文物识别)特别有价值。该模型主要通过以下方式实现这一点:
(1)在多样化的 Grounding-100M 数据集上进行广泛训练;
(2)有效利用预训练的 CLIP 编码器,该编码器具有强大的零样本能力;
(3)支持多模态提示,可以为罕见类别提供视觉示例。
3.3 全面的目标理解
除了简单的检测外,DINO-X 还能提供丰富的信息:
(1)实例分割:精确标出物体边界,如在医学图像中准确勾勒出肿瘤区域;
(2)关键点检测:标记出重要点位,如在体育分析中标记运动员的关节位置,帮助分析投篮姿势或跑步姿态。DINO-X在人体 2D 关键点检测基准上取得了有竞争力的结果,并在 HInt 基准上的手部姿态估计中表现出色。
(3)语言理解:目标识别、区域描述、文本识别和基于区域的视觉问答,比如将街景照片中的一部分描述为"一家繁忙的咖啡店,室外座位区有几位顾客正在交谈"。DINO-X 的语言模块在目标识别基准上表现出有效性能,达到了高语义相似性和语义IoU(交并比)分数。
这种全面的方法实现了对检测目标的深入理解。
4. DINO-X Edge
DINO-X 的研究团队还通过知识蒸馏技术开发了 DINO-X Edge,这是一个为部署在资源受限设备上而优化的版本,就像一位资深教师(Pro 模型)将其多年经验浓缩传授给学生(Edge 模型)。例如,完整版模型可能知道 1000 种识别猫的细微特征,而通过蒸馏,轻量级模型可能只保留 100种 最重要的特征,却仍能达到接近的识别准确率。
二、应用场景
DINO-X 的能力使其适用于众多实际场景:
1. 自动驾驶和机器人导航
自动驾驶系统可以利用 DINO-X 识别道路上的各种物体,包括那些训练数据中不常见的物体(如路上的杂物、不常见的车辆类型或动物)。例如,即使系统从未专门学习过"电动平衡车",当一个骑电动平衡车的人出现在道路上,DINO-X 仍能将其识别为"人骑乘的移动设备"并采取适当的避让行为。
2. 零售和库存管理
商店可以利用 DINO-X 识别架上商品,自动检测缺货情况。例如,超市管理员可以简单地给系统一个提示"找出所有缺货的货架位置",系统就能自动生成补货清单。对于新产品上架,只需展示一张产品图片,系统就能在整个商店中追踪这类产品的摆放和数量。
3. 医疗影像分析
医生可以使用 DINO-X 辅助分析 X 光片、CT 扫描和 MRI 图像。通过简单的文本提示如“查找肺部异常”或视觉提示(提供类似病例的示例图像),系统可以帮助标记潜在问题区域,加速诊断过程。在皮肤科领域,医生可以使用视觉提示功能,上传特定皮肤病变的图像,让系统在全身皮肤扫描中找出所有类似的病变。
4. 智能制造和质检
工厂可以利用 DINO-X 进行自动化质检。例如,给系统展示几张有缺陷产品的图片作为视觉提示,系统就能在生产线上自动识别出类似缺陷。即使是新型缺陷,质检员只需提供几个示例,系统就能快速适应并开始检测。
5. 环境监测和野生动物保护
生态学家可以使用 DINO-X 分析野外相机陷阱捕获的图像,识别和计数各种动物物种,包括罕见的物种。例如,通过提供几张雪豹的图片作为视觉提示,系统可以从数千张野外相机图像中找出所有可能的雪豹出现记录,极大提高研究效率。
6. 边缘计算
Edge 版本使部署在资源受限设备(如手机和嵌入式系统)上成为可能,使先进的计算机视觉在更多场景中可用。
结语
DINO-X代表了开放世界目标检测和理解的重大进步。通过将多种感知任务统一到单个模型中并支持灵活的提示机制,它为全面的图像分析提供了一个多功能框架。
该模型处理长尾分布的能力以及在罕见物体类别上的强大性能,解决了先前方法的重要局限性。此外,优化的Edge版本的开发使这项技术在资源受限设备上的实际应用更加普及,让先进的计算机视觉能力不再局限于高性能服务器,而是可以融入我们的日常设备。
随着计算机视觉的不断发展,像 DINO-X 这样能够通过灵活的提示适应用户需求并处理真实世界物体多样性的模型,将在从医疗诊断到智能制造、从自动驾驶到个人助理的各种应用中发挥越来越重要的作用,最终帮助我们创建更智能、更理解人类需求的技术产品。
== 彩蛋 ==
1. 论文《DINO-X: A Unified Vision Model for Open-World Object Detection and Understanding》,作者:Tianhe Ren, Yihao Chen, Qing Jiang, Zhaoyang Zeng, Yuda Xiong, Wenlong Liu, Zhengyu Ma, Junyi Shen, Yuan Gao, Xiaoke Jiang, Xingyu Chen, Zhuheng Song, Yuhong Zhang, Hongjie Huang, Han Gao, Shilong Liu, Hao Zhang, Feng Li, Kent Yu, Lei Zhang。链接:https://arxiv.org/abs/2411.14347
2. 调用最新 DINO 家族 API 请前往 DINO-X 开放平台:https://cloud.deepdataspace.com/
3. 在线体验最新的 DINO-X 模型,请前往 DINO-X Playground: