AIGC系列之:GroundingDNIO原理解读及在Stable Diffusion中使用

news2024/11/25 1:05:24

目录

1.前言

2.方法概括

3.算法介绍

3.1图像-文本特征提取与增强

3.2基于文本引导的目标检测

3.3跨模态解码器

3.4文本prompt特征提取

4.应用场景

4.1结合生成模型完成目标区域生成

4.2结合stable diffusion完成图像编辑

4.3结合分割模型完成任意图像分割

1.前言

《Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection》

  • github: https://github.com/IDEA-Research/GroundingDINO

        Grounding DINO作者来自清华大学和IDEA(International Digital Economy Academy),Grounding DINO有非常强大的检测功能,提供和文本prompt进行结合自动进行检测,不需要手动参与。输入文本即可输出文本对应的检测对象。称之为目前的Detect Anything。与Mata发布的Segment Anything可以进行结合发挥更加强大的功能。至此CV界的几大研究领域都有了相关的大模型应用,Detect Anything,Segment Anything, Stable Diffusion, Recongnize Anything, Tracking Anything...

2.方法概括

        Grounding DINO是一种开集目标检测方案,将基于Transformer的检测器DINO与真值预训练相结合。开集检测 关键 是引入自然语言至闭集检测器,用于open world的检测。 可实现对新颖类别进行检测,特定属性目标识别。在COCO数据集上零样本检测达到52.5AP,在COCO数据集finetune后达到63AP。主要优势如下:

  • 基于Transformer结构与语言模型接近,易于处理跨模态特征;

  • 基于Transformer的检测器有利用大规模数据集的能力

  • DINO可以端到端优化,无需精细设计模块,比如:NMS

3.算法介绍

        对于图片-文本对,Grounding DINO可以输出多对目标框及对应名词短语。Grounding DINO采用双编码器,单解码器结构。图像backbone 用于提取图像特征,文本backbone用于提取文本特征,特征增强用于融合图像及文本特征,语言引导的query选择模块用于query初始化,跨模态解码器用于框精细化。流程如下:

  • 图像及文本backbone分别提取原始图像及文本特征;

  • 特征强化模块用于跨模态特征融合;

  • 通过语言引导查询选择模块从图像特征中选择与文本对应的跨模态query;

  • 跨模态解码器从跨模态query中提取需要特征,更新query;

  • 输出query用于预测目标框及提取对应短语。

3.1图像-文本特征提取与增强

        给定一个(图像,文本)对,用 Swin Transformer用于提取图像特征,BERT用于提取文本特征,特征强化层如图3中block2,利用Deformable self-attention强化图像特征,原始的self-attention强化文本特征,受GLIP影响,增加图像到文本跨模态以及文本到图像跨模态,帮助对齐不同模态特征。

3.2基于文本引导的目标检测

        引导文本进行目标检测,作者设计语言引导的query选择机制选择与文本更相关的特征作为解码器的query。算法下图所示。输出num_query索引,据此初始化query。每个decoder query包括两部分:content及position。位置部分公式化为dynamic anchor boxes,使用编码器输出进行初始化;内容部分训练中可学习,查询数量。

3.3跨模态解码器

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

3.4文本prompt特征提取

        之前工作中探究了两种文本prompt,句子层级表征将整个句子编码为一个特征,移除了单词间影响;单词级表征能够编码多个类别,但引入不必要依赖关系;为避免不相关单词相互作用,作者引入attention mask,此为sub-sentence级表征,既保留每个单词特征,又消除不相关单词间相互作用。

4.应用场景

4.1结合生成模型完成目标区域生成

4.2结合stable diffusion完成图像编辑

人脸编辑,换发型,换背景,换头

替换宠物并生成想要的内容

4.3结合分割模型完成任意图像分割

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第20章 多线程

创建线程 继承Thread 类 Thread 类时 java.lang 包中的一个类,从类中实例化的对象代表线程,程序员启动一个新线程需要建立 Thread 实例。 Thread 对象需要一个任务来执行,任务是指线程在启动时执行的工作,start() 方法启动线程…

第一百八十二回 自定义一个可以滑动的刻度尺

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法3. 示例代码4. 内容总结我们在上一章回中介绍了"如何绘制阴影效果"相关的内容,本章回中将介绍 如何自定义一个可以滑动的刻度尺.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 任何优美的文字在图…

[SaaS] 广告创意中stable-diffusion的应用

深度对谈:广告创意领域中 AIGC 的应用这个领域非常快速发展,所以你应该保持好奇心,不断尝试新事物,不断挑战自己。https://mp.weixin.qq.com/s/ux9iEABNois3y4wwyaDzAQ我对AIGC领域应用调研,除了MaaS服务之外&#xff…

电荷泵升压/降压电路

一、升压\降压电路原理分析 1、升压电路 电荷泵升压电路 VoutVa5V 5V_PLUS0V时,Va给C2充电,C2上节点电压比C2下节点电压高Va; 5V_PLUS5V时,C2电压不能突变,C2上节点电压依然比C2下节点电压高Va,但C2下节点…

supermap-iserver激活教程(linux)

本篇只介绍linux临时许可激活教程,windows的原理一摸一样不做赘述。 1.下载许可中心(web版) SuperMap技术资源中心|为您提供全面的在线技术服务 2.解压 supermap-bslicense-server-3.0.24-linux-x64.tar.gz tar -zxvf supermap-bslicense…

选择排序以及改进方案

选择排序以及改进方案 介绍: 选择排序是一种简单直观的排序算法,它的基本思想是在未排序序列中选择最小(或最大)的元素,然后将其放在已排序序列的末尾。选择排序的过程就像是每次从待排序的元素中选择最小的一个&…

Java基于ssm的租房求租网站房东直租中介托管房屋出租项目源码

演示视频 https://www.bilibili.com/video/BV1Lh411J7ic/?share_sourcecopy_web&vd_source11344bb73ef9b33550b8202d07ae139b 可转成springboot项目。 主要功能:租户可以浏览搜索收藏房源,预约看房,发布求租信息。房东可以发布管理房源…

2023-11-28-直播单细胞图表美化-seurat数据结构 featureplot dotplot vlnplot

单细胞常见的可视化方式有DimPlot,FeaturePlot ,DotPlot ,VlnPlot 和 DoHeatmap几种 ,Seurat中均可以很简单的实现,但是文献中的图大多会精美很多。 之前 跟SCI学umap图| ggplot2 绘制umap图,坐标位置 &am…

SSL证书实惠品牌——JoySSL

随着互联网的普及和发展,网络安全问题日益严重。为了保护网站数据的安全,越来越多的网站开始使用SSL证书。JoySSL证书作为一款高性价比的SSL证书,受到了广泛的关注和好评。 目前市面上主流的证书基本上都是国外证书,也就是说你在验…

【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏4(附项目源码)

文章目录 本节最终效果前言命中敌人闪白和击退效果敌人死亡效果等级 击杀数 经验绘制经验条显示等级和杀敌数游戏倒计时玩家血条参考源码完结 本节最终效果 前言 本节紧跟着上一篇,主要实现敌人受击死亡效果特效,主角等级、击杀数、经验、血条UI显示。 …

C# datagridview控件 绑定数据库中表中数据的方式-3

1.如下图所示,为数据库中的一张表结构,注意该表中共有11个字段 2.首先在窗体后台代码中拖入一个datagridview控件,并在窗体加载时,给datagridview控件添加列,添加的方式如下所示:请注意,每个列…

机器学习笔记 - 基于百度飞桨PaddleSeg的人体分割

一、简述 虽然Segment Anything用于图像分割的通用大模型看起来很酷(飞桨也提供分割一切的模型),但是个人感觉落地应用的时候心里还是更倾向于飞桨这种场景式的,因为需要用到一些人体分割的需求,所以这里主要是对飞桨高性能图像分割开发套件进行了解和使用,但是暂时不训练…

docker镜像原理

什么是镜像 容器解决应用开发、测试和部署的问题,而镜像解决应用部署环境问题。镜像是一个只读的容器模板, 打包了应用程序和应用程序所依赖的文件系统以及启动容器的配置文件,是启动容器的基础。镜像所打 包的文件内容就是容器的系统运行环…

SLURM资源调度管理系统REST API服务配置,基于slurm22.05.9,centos9stream默认版本

前面给大家将了一下slurm集群的简单配置,这里给大家再提升一下,配置slurm服务的restful的api,这样大家可以将slurm服务通过api整合到桌面或者网页端,通过桌面或者网页界面进行管理。 1、SLURM集群配置 这里请大家参考&#xff1…

【古月居《ros入门21讲》学习笔记】14_参数的使用与编程方法

目录 说明: 1. 参数模型(全局字典) 2. 实现过程(C) 创建功能包 参数命令行的使用 YAML参数文件 rosparam命令 使用示例 编程方法(C) 配置代码编译规则 编译并运行 编译 运行 3. 实…

开源堡垒机Jumpserver

文章目录 开源堡垒机JumpserverJumpserver介绍安装环境部署安装jumpserver访问jumpserver的web界面 开源堡垒机Jumpserver Jumpserver介绍 Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的运维安全审计系统。 Jumpse…

天鹅湖国家旅游度假区 | 展柜OLED透明屏:创新展示提升互动体验

天鹅湖国家旅游度假区 | 展柜OLED透明屏 产品:一块55寸OLED透明屏嵌入玻璃安装 应用场景:用在天鹅湖国家旅游度假区——三门峡城市文化客厅展馆中的一个透明展示柜,用一块55寸OLED透明屏嵌入展示柜的玻璃,让观众即可以看到展柜里…

【赠书第9期】巧用ChatGPT高效搞定Excel数据分析

文章目录 前言 1 操作步骤 1.1 数据清理和整理 1.2 公式和函数的优化 1.3 图表和可视化 1.4 数据透视表的使用 1.5 条件格式化和筛选 1.6 数据分析技巧 1.7 自动化和宏的创建 2 推荐图书 3 粉丝福利 前言 ChatGPT 是一个强大的工具,可以为你提供在 Exce…

【axios封装】万字长文,TypeScript实战,封装一个axios - 基础封装篇

目录 前言版本环境变量配置引入的类型1、AxiosIntance: axios实例类型2、InternalAxiosRequestConfig: 高版本下AxiosRequestConfig的拓展类型3、AxiosRequestConfig: 请求体配置参数类型4、AxiosError: 错误对象类型5、AxiosResponse: 完整原始响应体类型 目标效果开始封装骨架…

算法通关第十三关-青铜挑战数学基础问题

数组元素积的符号 描述 : 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的…