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

news/2024/7/19 10:09:33 标签: 目标检测, transformer, 人工智能, AIGC

在这里插入图片描述

文章目录

  • 背景知识补充
    • 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)


http://www.niftyadmin.cn/n/5323396.html

相关文章

【快速解决】保姆级Anaconda安装教程

目录 第一步 ​编辑第二步 ​编辑第三步 第四步 第五步 第六步 ​编辑 第七步 第八步 第九步 第一步 在anaconda清华大学开源软件镜像站下载anaconda。点击这里进入 我这里选的是windows-x86_64。 第二步 下载好以后进行安装 第三步 第四步 第五步 选择…

MyBatis第三课

目录 回顾 #和$区别 #(预编译SQL)和$(即时SQL,它是进行的字符串拼接)的区别,其中之一就是预编译SQL和即时SQL的区别 原因: 回顾 两者的共同点 MaBits可以看作是Java程序和Mysql的沟通桥梁&…

C#的String.LastIndexOf 方法

返回指定 Unicode 字符或字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 如果未在此实例中找到该字符或字符串,则此方法返回 -1。 一、重载 LastIndexOf(String, Int32, Int32, StringComparison)报告指定字符串在此实例中的最后一个匹配项的从零开始…

RIP【新华三与华为区别】

【介绍】 rip分为rip 1 与 rip 2 ,rip 2 是对 rip 1 的一种升级,rip 2 可以进行认证等功能 【命令】 新华三: [HC3-R1] rip #启用rip [HC3-R1-rip] version 2 #告知rip 版本号 [HC3-R1-rip] network 192.168.1.0 #宣告其网段 [HC3-R1-rip] …

Python系列(2)——Python核心数据类型

Python核心数据类型 一、Numbers(数字)三、String(字符串)三、Tuple(元组)四、List(列表)五、Set(集合)六、Dictionary(字典) 在Pytho…

常用计算电磁学算法特性与电磁软件分析

常用计算电磁学算法特性与电磁软件分析 参考网站: 计算电磁学三大数值算法FDTD、FEM、MOM ADS、HFSS、CST 优缺点和应用范围详细教程 ## 基于时域有限差分法的FDTD的计算电磁学算法(含Matlab代码)-框架介绍 参考书籍:The finite…

华为设备登录安全配置案例

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 厦门微思网络​​​​​​ https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle O…

力扣2182.构造限制重复的字符串

思路:先记录每个字符的出现次数,构建一个新字符串,从尾取字符,每取一个该字符个数-1,若该字符已经取到有repeatLimit个,则递归取次大的字符,并对应字符个数-1,若没有次大字符了&…