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)从提示词(拼接所有类别名称,或一个指称表达)中提取词元特征。随后是三个融合模块:

INq=TopNq(Max(1)(XIXT))\mathbf{I}_{N_q} = \texttt{Top}_{N_q}\big(\texttt{Max}^{(-1)}(\mathbf{X}_I \mathbf{X}_T^{\intercal})\big)

其中 Max(1)\texttt{Max}^{(-1)} 是在文本维度上取最大值。遵循DINO的混合查询选择方式,被选中的特征用于初始化位置部分(动态锚框),而内容查询则保持可学习。

子句级文本表示:拼接类别名称使BERT中不相关的类别之间也能相互关注;注意力掩码阻断跨类别的注意力,同时保留逐词特征——比句子级更精细,比词级更干净。

训练:框回归采用L1 + GIoU损失,并遵循GLIP的做法,对分类采用预测物体与语言词元之间的对比损失(每个查询输出一个框以及与文本词元的点积相似度);匈牙利匹配代价为2.0/5.0/2.0(分类/L1/GIoU),损失权重为1.0/5.0/2.0。训练数据包括检测+指称(grounding)数据(+ 图像描述数据)。对于指称表达理解(REC),返回得分最高的框。

实验结果

对SLAM的意义

Grounding DINO使语言驱动的语义SLAM变得实用:地图可以用自然语言命名的物体来填充,而不需要为每个新环境重新训练检测器。将其文本提示生成的框输入SAM(即Grounded SAM)可以为任意描述的物体生成实例掩码——这是ConceptGraphs等开放词汇3D场景图系统以及Clio等任务驱动建图系统的感知前端——并使机器人能够直接针对SLAM地图执行语言指令(例如”去白板那里”)。

相关条目