Grounding DINO:开放集目标检测,将基于Transformer的检测器DINO与真值预训练相结合

在这里插入图片描述

文章目录

  • 背景知识补充
    • CLIP (Contrastive Language-Image Pre-training):打破文字和图像之间的壁垒
    • DINO(Data-INterpolating Neural Network):视觉 Transformer 的自监督学习
    • Stable Diffusion:从文本描述中生成详细的图像
    • Open-set Detector开集检测器
  • 一、Grounding DINO的创新点
  • 二、Grounding DINO的网络架构:双encoder单decoder
    • (一)特征提取与融合
    • (二)Language-Guided Query Selection:文字信息更好地指导目标检测
    • (三)Cross-Modality Decoder
    • (四) Sub-Sentence Level Text Feature
  • 三、Grounding DINO损失函数


背景知识补充

CLIP (Contrastive Language-Image Pre-training):打破文字和图像之间的壁垒

  1. CLIP是一种多模态模型,能够同时处理图像和文本,而不是独立地处理它们;
  2. CLIP的预训练阶段是在大规模的图像和文本数据集上进行的,这样模型可以学习到图像和文本之间的语义对应关系;
  3. CLIP模型经过预训练后,可以在多个领域和任务中进行迁移学习,如图像分类、目标检测、文本生成等,无需进行额外的任务特定的微调
    在这里插入图片描述

参考:基于Diffusion的典型可控图片生成模型


DINO(Data-INterpolating Neural Network):视觉 Transformer 的自监督学习

DINO是一种用于无监督学习的方法,主要思想是通过让模型学会自行对数据进行插值,从而学习出对数据有意义的表示;DINO架构的核心是不使用标签的知识提炼。它训练了一个学生网络来模仿一个更强大的教师网络的行为,所有这些都不需要在训练数据中有明确的标签。
在这里插入图片描述 DINO 训练过程的简化概述: 一张图片被裁剪成两种尺寸,然后输入学生和教师网络。 对教师的输出应用居中操作,并且两个输出都通过 softmax 层归一化整理。为了交叉熵作为损失函数为模型反向传播提供更新参数的策略。

两个 softmax 输出都传递到损失函数中,使用随机梯度下降 (SGD) 执行反向传播。在这里的反向传播是通过学生网络执行的,这时教师的权重尚未更新的原因。 为了更新教师模型,DINO 对学生权重使用指数移动平均 (EMA),将学生网络的模型参数传输到教师网络。

参考:
自监督学习经典制作:DINO


Stable Diffusion:从文本描述中生成详细的图像

  1. Stable Diffusion是一种潜在扩散模型,能够从文本描述中生成详细的图像;
  2. Stable Diffusion解决了扩散模型时间成本和经济成本都极其“昂贵”的问题;
  3. Stable Diffusion只是将潜在扩散模型应用于高分辨率图像,同时使用 CLIP 作为文本编码器。
    Stable Diffusion模型架构

以Stable Diffusion 文生图技术为例,其训练阶段和采样阶段总体框架可以划分成 3 个大模块:PART1-CLIP 模型,PART2-Unet 训练,PART3-采样器迭代

参考:
Stable Diffusion文生图技术
Stable Diffusion原理详解

Open-set Detector开集检测器

大多开集检测器都是通过将闭集检测器扩展到具有语言信息的开集场景来开发的。如下图所示,一个封闭集检测器通常有三个重要的模块:

  • 用于特征提取的主干backbone
  • 用于特征增强的颈部neck
  • 用于区域细化(或box预测)的头部head(回归和分类等)。

通过学习语言感知区域嵌入,可以将闭集检测器推广到检测新对象,使每个区域在语言感知语义空间中被划分为新的类别。

在这里插入图片描述实现这一目标的关键是:在颈部(和/或头部)输出的语言特征和区域输出 之间使用对比损失


Grounding DINO,一种开集目标检测方案,将基于Transformer的检测器DINO与真值预训练相结合。

一、Grounding DINO的创新点

  1. Grounding DINO支持文本的目标检测(实现方式:将language信息引入到目标的通用特征表示中);
  2. Grounding DINO实现从 close-set 到 open-set的创新(实现关键:引入 text encoder)

二、Grounding DINO的网络架构:双encoder单decoder

Grounding DINO的整体结构:

  • image backbone用于提取image feature
  • text backbone用于提取text feature
  • feature enhancer(特征增强)用于融合image和text feature
  • language-guide query selection模块用于query初始化
  • cross-modality decoder用于bbox预测(bbox预测指对目标对象的边界框进行预测)
    在这里插入图片描述

(一)特征提取与融合

  • 采用Swin Transformer作为image backbone提取图像特征,采用BERT作为text backbone提取文本特征;
  • 利用Self-Attention实现文本特征的增强,利用Deformable Self-Attention实现图像特征的增强;
  • 利用GLIP中的image-to-text 和 text-to-image cross-attention实现特征融合(图像到文本跨模态以及文本到图像跨模态,帮助对齐不同模态特征)。

在这里插入图片描述Q是词的查询向量,K是“被查”向量,V是内容向量

(二)Language-Guided Query Selection:文字信息更好地指导目标检测

  • 输入:融合更新后的文本特征和图像特征;
  • language-guide query selection模块用于筛选与输入文字特征相似更高的图像特征
  • 输出:Cross-Modality用作decoder的queries。

在这里插入图片描述
language-guided query selection方法用于初始化Head的query
为引导文本进行目标检测,作者设计language-guided query selection机制选择与文本更相关的特征作为解码器的query。算法下图所示:
在这里插入图片描述

  • 输出num_query索引,据此初始化query;
  • 每个decoder query包括两部分:content及position;
    • 位置部分公式化为dynamic anchor boxes,使用编码器输出进行初始化;
    • 内容部分训练中可学习。

(三)Cross-Modality Decoder

  1. 跨模态解码器结合图像及文本模态信息,跨模态query经过self-attention层image cross-attention层与图像特征结合,text cross-attention层与文本特征结合,以及FFN层
  2. 与DINO相比,每个解码器都有一个额外的文本cross-attention层,引入文本信息,便于对齐模态。
    在这里插入图片描述

(四) Sub-Sentence Level Text Feature

Sub-Sentence Level Text Feature是指在处理文本数据时,关注于对文本进行子句级别的特征提取。

在自然语言处理(NLP)中,通常有不同层次的文本表示,从单词级别到句子级别,再到段落和文档级别。子句级别的特征提取意味着将关注点放在句子内的更小单元上。

句子层级表征将整个句子编码为一个特征,移除了单词间影响;单词级表征能够编码多个类别,但引入不必要依赖关系;为避免不相关单词相互作用,作者引入attention mask,此为sub-sentence级表征,既保留每个单词特征,又消除不相关单词间相互作用
在这里插入图片描述

三、Grounding DINO损失函数

  • 回归 loss:类似DETR,作者使用L1损失及GIOU损失用于box regression;
  • 分类 loss:沿用GLIP,计算预测目标和文字token之间的contrastive loss用于分类。

参考:
Grounding DINO-开集目标检测论文解读
【目标检测】Grounding DINO:开集目标检测器(CVPR2023)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《与新能源互补和独立参加多级市场的抽蓄电站容量分配策略》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 这个标题涉及到抽蓄电站在能源系统中的角色,特别是在多级市场中的参与,并强调了新能源的互补性以及抽蓄电站的独立性。下面我将…

java swing UI第三方设计器JFormDesiner和FlatLaf UI

安装JFormDesiner 官网:https://www.formdev.com/ 先去IDEA的插件市场安装吧 JFormDesiner是非开源,且付费的插件,可以自己去找找不付费的使用方法。在swing可视化设计UI非常高效快捷,初学者可能需要一定时间探索,熟…

最左前缀法则

概念 最左前缀法则是针对于复合索引而言的,也就是说一个索引有多个字段那么索引的查询从最左列开始,并且不跳过索引的列,如果跳过索引中的某一列,那么,会导致索引部分失效(跳过列之后的索引失效)如果出现了范围查询(&…

学习redis有效期和数据类型

1、安装redis和连接redis 参考:ubuntu安装单个redis服务_ubuntu redis单机版安装-CSDN博客 连接redis:redis-cli.exe -h localhost -p 6379 -a 123456 2、Redis数据类型 以下操作我们在图形化界面演示。 2.1、五种常用数据类型介绍 Redis存储的是key…

数据结构与算法教程,数据结构C语言版教程!(第三部分、栈(Stack)和队列(Queue)详解)六

第三部分、栈(Stack)和队列(Queue)详解 栈和队列,严格意义上来说,也属于线性表,因为它们也都用于存储逻辑关系为 "一对一" 的数据,但由于它们比较特殊,因此将其单独作为一章,做重点讲解。 使用栈…

UISegmentedControl控件定制

1.在xib中设计如下: 背景颜色: 段标题与数量 : 2.在代码中控制 关联控件 注册控件事件 控件事件处理函数实现: 定制Title颜色 4 --- > UIControlStateSelected 0 --- > UIControlStateNormal 最终实现效果: 取控件选中时的索引与显示文本: 输出:

我在代码随想录|写代码Day7之454.四数相加II ,​ 383. 赎金信​,​ 15. 三数之和​

454.四数相加II 题目 解题思路 四个数字相加的和为0,我们要选俩数组,让他们的笛卡尔积储存在哈希表中,然后我们要找的是这俩数和的相反数,然后就是将后面俩数组相加在后面的数组和中找相反数. 383. 赎金信 解题思路 题目意思是让在字符串1中找到字母组成字符串2所以找字符串1…

Sentinel微服务保护

文章目录 Sentinel微服务保护1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.解决方案1.1.3.总结 1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制2.1.簇点链路2.1.快速入门2.2.流控模式2.2.1.…

【C++】wxWidgets库实现窗体程序

一、安装wxWidgets库 在Debian系统上使用wxWidgets库来创建一个基本的窗体程序,首先需要确保已经安装了wxWidgets相关的库和开发工具。下面是安装wxWidgets的步骤: 打开终端,使用下述命令安装wxWidgets库及其开发文件: sudo ap…

Tomcat解压打包文件和并部署

一、文件压缩和上传解压 1.本地打包好dist.tar.gz文件 2.通过xftp拖拽上传到知道文件夹下,或者通过命令: cp dist.tar.gz /path/to/destination/folder注:将dist.tar.gz复制到 /path/to/destination/folder文件夹下,该文件夹只是举个例子怎么复制和解压! 3.进入/path/…

ENNOID-BMS从控板分析-基于LTC6813的版本

LTC6813简单说明 单体电压采集部分,总共可以采集18个电芯电压,这18个电压分别交给3个16位Delta-Sigma ADC来进行采样;官方手册宣称的采样误差低于2.2mV,采样范围为0~5V,所有18个电芯采样一次只要290uS时间。电压均衡部…

Python中的列表跟C/C++里面的数组什么关系?

你好,我是安然无虞。 文章目录 Python数据类型列表创建列表新增列表元素append方法insert方法 删除列表元素pop方法remove方法 查找列表元素in相关index方法 下标访问列表元素负索引 遍历列表元素子列表提取拼接列表 相关extend方法 列表常用接口汇总列表操作列表的…

SpringCloud Aliba-Nacos-从入门到学废【1】

🥚今日鸡汤🥚 当你最倒霉地时候一定要扛住。 因为,那正是你运气该上升的时候。 ——《一人之下》 目录 🧈1.Nacos介绍 🧂2.Nacos服务提供者注册 🥓3.Nacos服务消费者 🌭4.Nacos作为配置中心…

双目测距工程Stereo-Vision-master学习笔记

硬件: 首先要要把两个摄像头固定到支架上,并且两个摄像头的间距应该在110mm,两个摄像头没有落差 相机的内参数包括焦距、主点坐标、像素尺寸等,这些参数决定了相机成像的几何变换关系。内参数是相机固有的属性,不会随…

Bean作用域及生命周期

关于Bean对象,在将其存储到spring中以后,在使用或读取该Bean对象时,如果该对象是公有的,难免就会出现被一方修改,从而影响另外一方读取到的对象准确性的情况。因此了解Bean的作用域和生命周期就是十分必要的了。 首先…

2024年AMC8模拟考试实测流程、注意事项和常见问题

和往年的AMC8比赛一样,在正式比赛的前一周左右会开放两天的模拟考试时间,AMC8的主办方建议所有的参赛选手重视且参加模拟考试,以测试设备、熟悉流程,避免将来正式考试不小心违规,或者设备不给力。 2024年的AMC8模拟考…

Matlab字符识别实验

Matlab 字符识别OCR实验 图像来源于屏幕截图,要求黑底白字。数据来源是任意二进制文件,内容以16进制打印输出,0-9a-f’字符被16个可打印字符替代,这些替代字符经过挑选,使其相对容易被识别。 第一步进行线分割和字符…

一个简易的PHP论坛系统

一个简易的PHP论坛系统 php课程设计,毕业设计 预览 技术 bootstrap 4.x jquery css php mysql 5.7 目录结构 登录 管理员 admin/123456 测试用户 user1/123456 更多文章和源码获取查看

MongoDB认证考试小题库

Free MongoDB C100DBA Exam Actual Questions 关于MongoDB C100 DBA 考试真题知识点零散整理 分片架构 应用程序 --> mongos --> 多个mongod对于应用来说,连接分片集群跟连接一台单机mongod服务器一样分片好处, 增加可用RAM、增加可用磁盘空间、…

【Spring Cloud Alibaba】Sentinel 服务熔断与流量控制

目录 前言 一、Sentinel 入门 1.1 什么是 Sentinel ? 1.2 微服务集成 Sentinel 1.3 安装Sentinel控制台 二、Jmeter 压力测试工具 2.1 Jmeter 介绍 2.2 Jmeter 安装 2.3 接口测试 三、Sentinel 使用 3.1 限流规则 3.1.1 warm up(预热模式) 3.1.2 排队等待 3.1.3…