news 2026/4/15 18:39:22

多模态-7 Grounding DINO

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多模态-7 Grounding DINO

这篇文章介绍多模态模型Grounding DINO

Transformer介绍可以看:深度学习基础-5 注意力机制和Transformer

多模态基础知识点可以看:多模态-1 基础理论

计算机视觉Transformer Backbone可以看:计算机视觉Transformer-1 基础结构

介绍Grounding DINO之前先说一下多模态领域中“Grounding”的含义,传统目标检测输入待检测的图片,模型输出图片中物体所在位置的矩形框和置信度(详细介绍可以看:计算机视觉-目标检测),这种模型依赖训练数据集,对于训练数据集中不包含的物体,要么检测不出来,要么给出低置信度的其它物体类别标签。多模态领域中的“Grounding”指的是模型能够检测任意用户输入文本中包含的物体,也就是输入是待检测图片+用户的检测要求,比如输入一张图片+用户的问题“图片中穿红色衣服的人在哪里”,多模态模型应该给出穿红色衣服人的坐标回答,将传统的目标检测流程变为了一个问答流程,多模态模型的Grounding能力是一项重要的评测指标,体现了模型的语义+空间理解能力,可以理解为是“开放集合目标检测(Open-Set Object Detection)”,不像传统目标检测模型一样只认识训练数据集中已标记过的类别,借助多模态能力,可以检测查询文本中要求检测的任意物体类别。

一 模型结构与训练

Grounding DINO整体结构如下:

分为4个部分

1.特征提取:分别利用图像编码器、文本编码器,提取输入<图像,文本>的特征

2.特征增强:基于交叉注意力(Cross-Attention)对齐图像编码表示和文本编码表示的语义信息

3.特征查询:根据文本编码表示从图像编码表示中筛选出和当前输入文本最相关的特征信息

4.多模态解码生成:在图像编码表示和文本编码表示的引导下,解码出当前输入对应的输出(物体所在位置坐标、类别)

1.1 特征提取和增强

首先利用图像编码器,比如ViT、Swin Transformer(相关介绍可以看:计算机视觉Transformer-1 基础结构),获取输入图像的特征编码表示,因为Grounding任务需要多尺度的特征,所以融合了图像编码器不同层的输出作为最终的图像特征编码表示。利用文本编码器,比如BERT,获取输入文本的特征编码表示。

然后利用特征增强层融合图像特征编码表示和文本特征编码表示,生成语义一致的<图像,文本>联合表示(模态对齐),特征增强层的结构如下图所示:

Deformable Self-Attention的详细介绍可以看:计算机视觉Transformer-2 目标检测

1.2 特征查询

图像特征编码表示中大部分是冗余的,比如用户可能只是提问“穿红色衣服的人在哪里”,但是图像特征编码中包含着和用户问题无关的特征,所以利用特征查询模块对图像特征编码进行筛选,将哪些和“红色”、“穿衣服的人”相关的视觉语义信息保留下来,剩下的不要了,具体做法是计算图像特征编码表示和文本特征编码表示之间的内积相似度,然后只保留Top-k个就可以,Grounding DINO最后是从10000个图像特征编码表示中保留900个作为最相关的视觉语义信息编码。

1.3 多模态解码生成

Grounding DION的解码生成流程采取的是类似DETR的方法(DETR介绍可以看:计算机视觉Transformer-2 目标检测),将特征查询筛选出来的图像特征编码表示作为Object query,输入到Decoder中,解码出目标所在的位置和类别,Decoder层的具体结构如下:

其中Cross-Modality Query就是上一步筛选出来的图像特征编码表示,经过一个Self-Attention层提取自身的特征信息作为Q,然后利用经过特征增强的图像特征编码表示和文本特征编码表示作为K、V,通过对应模态的Cross-Attention层,生成出融合输入图像、文本信息的Cross-Modality Query。Cross-Modality Query是一个[N,d-model]的矩阵,其中N是Object Query的个数,论文中设置的是N=900,d-model是嵌入向量的维度,然后将这900个query分别送到类别检测头、物体所在位置检测头,类别检测头计算query和不同文本token的内积,具有最大相似性的作为这个query的预测类别,位置检测头利用FFN计算query对应物体的所在位置框坐标,和DETR一样,匈牙利匹配算法保证预测类别不重复,每个真实类别只对应一个query,最终利用Focal Loss计算类别预测损失,L1+GIoU Loss计算检测框损失,反向传播训练整体的Grounding DINO。

二 输入文本处理

Grounding DINO最后输出的预测类别来自于用户输入的文本,而不是像以往目标检测模型的类别标签信息,那么就有一个问题,如何从用户输入的文本中提取出来应该检测的类别信息,比如用户输入了“图片中穿红色衣服的人在哪里”,起码应该提取出来“红色衣服”、“人”作为预测类别,以往的提取方式要么是整个句子作为一个表示、要么每个词语作为一个表示,Grounding DINO试了这两种方法都不怎么好,自己重新提出了一种处理方式

三 实验结果

公共数据集实验结果:

推理速度实验结果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 17:28:15

学霸同款10个降AIGC网站,千笔帮你轻松降AI率

学霸同款10个降AIGC网站&#xff0c;千笔帮你轻松降AI率 AI降重工具&#xff1a;让论文更自然&#xff0c;更安全 在研究生阶段&#xff0c;论文写作不仅是学术能力的体现&#xff0c;更是对语言表达和逻辑思维的全面考验。然而&#xff0c;随着AI技术的广泛应用&#xff0c;许…

作者头像 李华
网站建设 2026/4/12 22:49:05

收藏!50W+年薪大模型链路开发,往届生程序员小白转型全指南

近期&#xff0c;互联网与AI科技公司校招薪资频频霸屏热搜&#xff0c;其中大模型链路开发相关岗位的薪资更是脱颖而出——50万、60万甚至更高的年薪包&#xff0c;让无数应届生、职场新人&#xff0c;乃至深耕传统开发的程序员们&#xff0c;都直呼“这才是AI时代的黄金offer”…

作者头像 李华
网站建设 2026/4/14 18:53:07

理解挂起和阻塞

挂起: 保存点记录下来就去干别的事了。 等做完后再回到保存点。阻塞: 死等。

作者头像 李华
网站建设 2026/4/12 17:23:11

FarmBot v15.4.1分析

FarmBot v15.4.1分析 https://github.com/FarmBot/farmbot_os/tree/v15.4.1?tabreadme-ov-file Chat Conversation Note: This is purely the output of the chat conversation and does not contain any raw data, codebase snippets, etc. used to generate the output. Use…

作者头像 李华