GroundingDINO-根据文本提示检测任意目标

1. 背景介绍

GroundingDINO是一种新的SOTA零样本物体检测模型。在这篇文章中,我们将讨论Grounding DINO模型的优势,分析其具体的模型架构,并提供真实的测试样例。

闲话少说,我们直接开始吧!

2.零样本目标检测

大多数目标检测模型被训练来识别预先定义的特定类别的集合,这方面的主要缺陷是缺乏相应的灵活性。每次要扩展或更改可识别对象的类别集合时,都必须收集新类别的数据,对其进行人工标记,然后再次重新训练模型。这一点对于工业落地来说,当然 是非常耗时且昂贵的。

零样本目标检测技术希望打破这一现状,使其能够在不重新训练模型的情况下检测新类别的物体。而我们所要做的就是更改相应的文本提示词,模型将检测到大家所描述的对象。

3.举个栗子

上面讲了一堆大道理,可能有的童鞋们还是没有直观的认识,不防我们来举个栗子吧。
在这里插入图片描述

如上图所示,我们观测左边的图像,我们输入提示词类别椅子(chair) — 属于COCO数据集的某个类别。该模型成功地检测到了这张图像上所有的椅子(chair)对象,检测结果很完美。
对于右边的图像,我们试图输入提示词狗的尾巴(dog's tail),显而易见,这个类别 当然不在任何常用的数据集中,但它仍然可以让模型正常检测识别,并给出正确的结果。

4.性能表现

GroundingDINO在COCO零样本检测任务上实现检测精度AP=52.5 — 而在训练过程中没有使用COCO的任何训练样本。党使用COCO数据进行微调后,GroundingDINO的检测精度达到了AP=63.0 。并且它以26.1 的AP创下了ODinW零样本基准数据集的最高分记录。
在这里插入图片描述

5.技术优势

事实上,Grounding DINO 共有以下三个技术优势:

  • 零样本目标检测 — Grounding DINO擅长检测目标对象,即使它们不是训练数据中预定义类别集合中的对象。这种独特的功能使模型能够适应新的场景对象,使其具有更通用的泛化性,并适用于各种现实世界的任务。
  • 指称表达理解 — 在给定的文本描述语境下,识别和定位图像中的特定对象或区域。换言之,可以使用提示词来要求模型只检测人坐的椅子,而不是检测图像中的人和椅子,然后编写额外附加的逻辑来确定椅子是否被占用。这要求模型对语言和视觉内容都有深刻的理解,并能够将单词或词语与相应的视觉元素特征进行关联。
  • 消除手工设计的组件,如NMS — Grounding DINO通过消除对手工设计的组件(如非最大抑制(NMS))的需求,简化了目标检测流程。此外,这种设计进一步简化了模型体系结构和训练过程,同时提高了效率和检测性能。

在这里插入图片描述

6.网络结构

Grounding DINO旨在融合DINOGLIP论文中的设计。DINO是一种基于tranformer的检测方法,它可以实现最先进的对象检测器的性能以及相应的端到端优化,消除了对NMS(非最大抑制)等手工模块的依赖。另一方面,GLIP侧重于文本侧,这项任务涉及将给定文本中的短语或单词将其与图像或视频中相应的视觉元素进行关联,可以有效地将文本描述与其各自的视觉表示进行关联。

Grounding DINO的网络结构分为以下几个部分:

  • 文本主干和图像特征提取主干 —  一般使用像Swin Transformer这样的图像主干来提取多尺度图像特征,并且使用像BERT这样的文本主干来提取文本特征。
    在这里插入图片描述

  • 文本图像特征融合  —  在提取出图像和文本特征后,将它们输入到特征增强器中进行跨模态特征融合。特征增强包括多个特征增强器层。可变形的自注意机制被用来增强图像特征,普通自注意机制被用于文本特征增强。
    在这里插入图片描述

  • 文本语义引导的query选择 – 为了有效地利用输入文本来引导对象检测,设计了一个语言引导查询选择模块,以选择与输入文本更相关的融合特征作为解码器的query。

  • 多模态解码器 - 开发了一种来组合图像和文本特征的跨模态解码器。每个跨模态query被送到自注意力层、用于组合图像特征的图像交叉注意力层、用来组合文本特征的文本交叉注意力层以及每个跨模态解码器层中的FFN层。与DINO解码器相比,每个解码器层都有一个额外的文本交叉注意力层,因为文本信息需要注入到query中以更好地对齐多模态特征。

在这里插入图片描述

7.简单例子

为了让大家更容易地尝试这个模型,我们准备了一个Jupyter测试样例,你可以点击链接进行访问。
在这里插入图片描述

如上图所示,Grounding DINO允许根据语义进行更加精确地检测。我们可以使用文本提示词 “一个坐在椅子上的人”,来将要搜索范围缩小到仅一个人占用的椅子,而不是检测图像中所有的椅子 。我们可以看到右侧图像中,该模型不仅返回了一个检测到的椅子,还返回了一个被检测到的“男人” — 提示词中的附加词。

8.复杂例子

与GLIP一样,可以通过通过合适的prompt engineering来提高网络检测的质量。在下面的照片中,使用简单的文本查询 — “餐巾纸” 喂入模型,那么我们将不会检测到任何物体。
在这里插入图片描述

但是在这种情况下,提供更多描述细节来帮助我们寻找特定的对象的是有帮助的,例如“蓝色餐巾”和“桌子上的餐巾”,以实现所需要的输出。

9.总结

正如大家在本文开头的表格中所看到的,Grounding DINOGLIP推理速度更快,但在要求实时检测场景中考虑起来仍然推理速度太慢。

然而,该模型可以在灵活性和泛化性很重要的任务中大放异彩,比如Grounding DINO可以成功地用于自动化数据标注。此外,Grounding DINO还可以通过使用语言约束而不是复杂且容易出错的手工组件来分析检测关系,从而大大简化图像和视频分析的处理逻辑。

总之,Grounding DINO无疑是一个重大突破,它将为物体检测及其他领域的更多创新应用铺平道路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/308724.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IC入门必备!数字IC中后端设计实现全流程解析(1.3万字长文)

吾爱IC社区自2018年2月份开始在公众号上开始分享数字IC后端设计实现相关基础理论和实战项目经验,累计输出文字超1000万字。全部是小编一个个字敲出来的,绝对没有复制粘贴的情况,此处小编自己得给自己鼓鼓掌鼓励下自己。人生不要给自己设限&am…

【Mode Management】EcuM模块详细介绍

目录 1.功能概述 2.关键概念理解 3.EcuM模块对其他模块的依赖 3.1Mcu模块 3.2具有唤醒能力外设模块 3.3操作系统OS 3.4BSW调度器 3.5BswM模块 3.6应用软件组件SWC 3.7小结 4.EcuM模块的各个阶段介绍 4.1 STARTUP阶段 4.2 UP Phase阶段 4.3 SHUTDOWN阶段 4.4 SLE…

LeetCode 刷题日志

文章目录 1954. 收集足够苹果的最小花园周长思考:暴力枚举代码实现二分查找代码实现 1954. 收集足够苹果的最小花园周长 1954. 收集足够苹果的最小花园周长 难度: 中等 题目大意: 给你一个用无限二维网格表示的花园,每一个 整…

R503S指纹识别模块的指令系统(二)

18 获取随机数 GetRandomCode(0x14) 功能说明:令模块生成一个随机数返回给上位机 输入参数:无 返回参数:确认码 RandomCode(随机数) 指令代码:0x14 确认码0x00 表示获取成功&…

传统项目基于tomcat cookie单体会话升级分布式会话解决方案

传统捞项目基于servlet容器 cookie单体会话改造分布式会话方案 ##引入redis,spring-session依赖 <!--redis依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>&…

英文建筑图纸翻译工程图纸翻译

建筑图纸是以图形和文字为语言&#xff0c;详细描绘了工程建筑、机械、设备等结构、形状、尺寸及其他要求。对于建筑图纸翻译&#xff0c;表达必须清楚准确。那么&#xff0c;如何确保英文建筑图纸翻译工程图纸翻译的准确性&#xff1f; 首先&#xff0c;我们需要深入了解建筑图…

Stable Diffusion WebUI安装合成面部说话插件SadTalker

SadTalker可以根据一张图片、一段音频&#xff0c;合成面部说这段语音的视频。图片需要真人或者接近真人。 安装ffmpeg 下载地址&#xff1a; https://www.gyan.dev/ffmpeg/builds/ 下载ffmpeg-git-full.7z 后解压&#xff0c;将解压后的目录\bin添加到环境变量的Path中。 在…

Halcon颜色通道的处理decompose3/image_to_channels/channels _to _image

Halcon颜色通道的处理 文章目录 Halcon颜色通道的处理一. 图像的通道二. 访问通道1.访问通道2.获取通道的数量 三. 通道分离与合并1. decompose3算子2. image_to_channels 算子3. compose3算子4. channels_to_image算子 四. 处理RGB信息 由于彩色图像通常包含不止一个通道&…

LeetCode刷题--- 单词搜索

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述…

RS-485 RS-232 RS-422 区别和理解

RS-485&#xff0c;RS-232&#xff0c;RS-422区别和理解 目录概述需求&#xff1a; 设计思路实现思路分析1.概述2.区别 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a b…

ORACLE P6 v23.12 最新虚拟机(VM)全套系统环境分享

引言 根据上周的计划&#xff0c;我简单制作了两套基于ORACLE Primavera P6 最新发布的23.12版本预构建了虚拟机环境&#xff0c;里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机&#xff0c;请先与Oracle Primavera销售代…

管理系统设计开发与学习

目录 封面 一&#xff0e;内容简介 二&#xff0e;技术概述 1.Spring Boot 2.MVC模式 3.数据库技术 4.Web前端技术 5.对接技术 四&#xff0e;体系架构 设计架构 系统分层 系统结构 五.数据库的设计 六.开发准备 开发工具 开发环境 七&#xff0e;学习总结 八…