Grounding DINO
Liu 2023 · 论文
一句话总结 — 一种开集物体检测器,通过紧密的语言-视觉Transformer融合,能够找到任意由自由文本提示描述的物体——是广泛使用的Grounded SAM流程中检测部分的核心。
问题
标准检测器(YOLO、DETR)是闭集的:它们只能检测训练时所用的固定类别(例如COCO的80个类别)。开集检测的关键在于引入语言,使闭集检测器能够泛化到未见过的概念——学习语言感知的区域嵌入,并在语义空间中进行分类,而非基于固定标签集。此前的开集检测器只进行了部分模态融合:GLIP仅在颈部(neck,阶段A)融合,OV-DETR仅在解码器输入处(阶段B)注入语言信息。本文的核心论点是,融合应该发生在检测器的全部三个阶段——颈部、查询初始化和头部——并且更紧密的融合能带来更好的开集泛化能力。
方法与架构
一种基于DINO(DETR变体)构建的双编码器单解码器架构:图像骨干网络(Swin-T/Swin-L)提取多尺度视觉特征,文本骨干网络(BERT-base)从提示词(拼接所有类别名称,或一个指称表达)中提取词元特征。随后是三个融合模块:
- 特征增强器(颈部,6层):每一层对图像特征应用可变形自注意力,对文本特征应用普通自注意力,然后进行图像到文本和文本到图像的交叉注意力——将区域锚定到词语上,并根据图像内容对词语进行语境化。
- 语言引导的查询选择:给定增强后的图像特征 和文本特征 (,,), 个解码器查询由与任意文本词元最相似的图像词元初始化:
其中 是在文本维度上取最大值。遵循DINO的混合查询选择方式,被选中的特征用于初始化位置部分(动态锚框),而内容查询则保持可学习。
- 跨模态解码器(头部,6层):每一层执行查询自注意力、图像交叉注意力、文本交叉注意力(相较DINO新增的部分)以及一个FFN,使查询在框细化过程中持续同时探测两种模态。
子句级文本表示:拼接类别名称使BERT中不相关的类别之间也能相互关注;注意力掩码阻断跨类别的注意力,同时保留逐词特征——比句子级更精细,比词级更干净。
训练:框回归采用L1 + GIoU损失,并遵循GLIP的做法,对分类采用预测物体与语言词元之间的对比损失(每个查询输出一个框以及与文本词元的点积相似度);匈牙利匹配代价为2.0/5.0/2.0(分类/L1/GIoU),损失权重为1.0/5.0/2.0。训练数据包括检测+指称(grounding)数据(+ 图像描述数据)。对于指称表达理解(REC),返回得分最高的框。
实验结果
- 零样本COCO(不使用COCO训练图像):Grounding DINO-L在COCO minival上达到52.5 AP;在COCO上微调后,minival达到62.6 AP(test-dev为63.0)。在Swin-T骨干下,相同设置中它比GLIP-T高出+1.8 AP,比DINO高出+0.5 AP;加入指称数据带来超过1 AP的提升(48.1对比46.7)。
- ODinW零样本(35个多样化真实世界检测数据集):达到创纪录的26.1平均AP。
- LVIS零样本:在可比数据规模下优于GLIP,在常见物体上表现更好,但在稀有类别上稍弱;相比GLIP,随数据规模扩展的效果更好(来自Cap4M图像描述数据的提升为+1.8 AP,而GLIP仅为+1.1),尽管落后于在更大规模数据上训练的DetCLIPv2。
- RefCOCO/+/g指称表达理解:在全部三个分片上进行了评估——带属性限定的短语(例如”最左边的椅子”)是比类别名称更严格的开集测试。
对SLAM的意义
Grounding DINO使语言驱动的语义SLAM变得实用:地图可以用自然语言命名的物体来填充,而不需要为每个新环境重新训练检测器。将其文本提示生成的框输入SAM(即Grounded SAM)可以为任意描述的物体生成实例掩码——这是ConceptGraphs等开放词汇3D场景图系统以及Clio等任务驱动建图系统的感知前端——并使机器人能够直接针对SLAM地图执行语言指令(例如”去白板那里”)。
相关条目
- DETR — 本文所扩展的Transformer检测架构家族
- SAM — Grounded SAM中的分割合作方
- ConceptGraphs — 基于该流程构建的开放词汇3D场景图
- Open-YOLO 3D — 使用2D开集检测器实现开放词汇3D实例分割
- CLIP — 支撑开放词汇感知的视觉-语言对齐思想
- Clio — 使用该检测器输出的任务驱动开放词汇建图