【T2I】Divide Bind Your Attention for Improved Generative Semantic Nursing
CODE:
GitHub - boschresearch/Divide-and-Bind: Official implementation of "Divide & Bind Your Attention for Improved Generative Semantic Nursing" (BMVC 2023 Oral)
ABSTRACT
新兴的大规模文本到图像生成模型,如稳定扩散(SD),已经显示出高保真度的压倒性结果。尽管取得了巨大的进步,但目前最先进的模型仍然难以完全按照输入提示生成图像。之前的研究,Attend & Excite,引入了生成语义护理(GSN)的概念,旨在优化推理时间的交叉注意,以更好地整合语义。它在生成简单提示(例如,“一只猫和一只狗”)方面展示了令人鼓舞的结果。然而,在处理更复杂的提示时,它的有效性下降,并且它没有明确地解决不正确的属性绑定问题。为了解决涉及多个实体的复杂提示或场景所带来的挑战,并实现改进的属性绑定,我们提出了Divide & Bind。我们引入了两个新的GSN损失目标:一个新的出勤损失和绑定损失。我们的方法的突出之处在于,它能够从复杂的提示中忠实地合成具有改进属性对齐的所需对象,并在多个评估基准中表现出卓越的性能。更多的视频和更新可以在项目页面上找到,源代码是可用的。
INTRODUCTION
在文本到图像的合成中存在两个众所周知的语义问题,即“缺失对象”和“属性绑定”。“缺物”是指输入文本中提到的物体并没有全部忠实地出现在图像中。“属性绑定”代表了关键的组合性问题,即属性信息,例如颜色或纹理,没有正确地与相应的对象对齐或错误地附加到另一个对象。为了缓解这些问题,最近的工作Attend & Excite (A&E) Chefer等人(2023)引入了生成语义护理(GSN)的概念。其核心思想在于动态更新潜在代码,从而使给定文本中的语义信息能够更好地融入预训练的综合模型中。
在强大的开源T2I模型Stable Diffusion (SD) Rombach等人(2022)的基础上,利用交叉注意图进行优化。
为了加强对象的出现,A&E定义了一个丢失目标,该目标试图最大化每个对象令牌的最大关注值。虽然在简单的构图上显示出令人满意的结果,例如“一只猫和一只青蛙”,但当提示变得更复杂时,发现结果并不令人满意,如图图所示。

在这项工作中,提出了一个新的GSN目标函数。我们将注意力图的总变化最大化,以提示多个空间上不同的注意力excitations。通过在空间上分配每个令牌的注意力,我们可以生成提示中提到的所有对象,即使在高令牌竞争下也是如此。直观地说,这相当于将注意力地图划分为多个区域。此外,为了缓解属性绑定问题,提出了基于Jensen-Shannon散度(JSD)的绑定损失来显式对齐每个对象的激励与其属性之间的分布。因此,方法命名为Divide & Bind。
贡献:
(i)提出了一种新的total-variation based attendance loss,使生成的图像中存在多个物体。
(ii)提出了一个基于jsd的属性绑定损失,以实现忠实的属性绑定。
(iii)方法在生成完全符合提示的图像方面表现出出色的能力,在涉及复杂描述的几个基准上优于A&E。
RELATED WORK
Text-to-Image Synthesis.
Total Variation. 总变异(TV)衡量邻居之间的差异。因此,最小化鼓励在不同任务中使用的平滑性,例如去噪Caselles等人(2015),图像恢复Chan等人(2006)和分割Sun & Ho(2011),仅举几例。在这里,把TV用于不同的目的。试图将注意力图划分为多个兴奋区域。因此,选择TV最大化来扩大图像上注意力地图的局部变化量,从而鼓励不同的对象区域出现。因此,提高了生成每个期望对象的机会,同时与其他对象竞争。
PRELIMINARIES
Stable Diffusion (SD). 基于SD

Cross-Attention in Stable Diffusion.
在SD中,采用冻结CLIP文本编码器将文本提示P作为条件c嵌入到顺序嵌入中,然后通过交叉注意(cross-attention, CA)将其注入UNet,合成文本编译图像。CA层采用编码文本嵌入并将其投影到查询Q和值v中。键K是从UNet的中间特征映射的。注意图然后由At = Softmax(QKT√d)计算,其中t表示时间步长,Softmax沿着通道维度应用。注意图At可以重构为Rh×w×L,其中h,w为特征图的分辨率,L为文本嵌入的序列长度。
此外,第s个文本标记对应的交叉注意映射为As t∈Rh×w,SD的一个已知问题是,并非所有物体都必须出现在最终图像中,而Balaji et al. (2022);Hertz等人(2022)发现,相应注意图的高激活区域与最终图像中属于特定物体的出现像素密切相关。因此,注意图的激活是语义引导合成的重要信号和影响因素。

METHOD
GENERATIVE SEMANTIC NURSING (GSN)
为了改善SD在推理过程中的语义引导,一种实用的方法是在采样的每个时间步进行潜在代码优化,即GSN。

其中αt为更新率,L为图像和文本描述之间的可信度,例如对象出勤和属性绑定。GSN的优点是避免对SD进行微调。
由于文本信息是通过交叉注意层注入到SD的UNet中,所以很自然地将交叉注意图作为输入设置lossL。给定文本提示P和对象标记S列表,我们将得到S∈S的一组注意图{Ast}。理想情况下,如果最终图像包含对象标记S提供的概念,则相应的交叉注意图Ast应显示出强烈的激活。为了实现这一点,A&E Chefer等人(2023)增强了注意图的单个最大值,即LA&E =−mins∈S(maxi,j(Ast [i, j]))。然而,它不能方便地处理多个激励,这在面对复杂的提示和需要生成多个实例时变得越来越重要。如图图所示,单个激励很容易被其他竞争令牌所取代,从而导致最终图像中的对象缺失。此外,它没有显式地解决属性绑定问题。

DIVIDE & BIND
提出的分割与绑定方法包含了一个新的GSN目标:

它有两个部分,attendance丢失Lattend和绑定丢失Lbind,分别执行对象attendance和属性绑定。λ是权重因子。两个损失条款的详细表述如下:
Divide for Attendance.
attendance损失Lattend是为了激励对象的存在,因此应用于与对象S相关的文本令牌,


-
S 是与对象相关的文本标记集合。
-
Ats[i,j]表示第s个文本标记在时间步t和空间位置 [i,j]处的注意力值。
-
TV(Ats)是注意力图 AtsAts 的总变差(Total Variation),用于衡量注意力值在空间维度上的变化。

-
这里通过计算相邻位置注意力值的差异,来衡量注意力图的空间变化。
最大化总变差:损失函数 LattendLattend 取总变差的负值,因此优化过程会最大化总变差。
最坏情况优化:公式中取所有对象标记的总变差的最小值(即最坏情况),确保每个对象都能得到足够的关注。
Attribute Binding Regularization.
我们将对象标记及其属性标记的注意映射分别表示为Ast和Art。对于属性绑定,希望Art和Ast在空间上对齐良好,即两个令牌的高激活区域在很大程度上重叠。为此,引入Lbind。在沿着空间维度进行适当的归一化之后,我们可以将归一化的注意映射Art和Ast视为两个概率质量函数,其样本空间大小为h × w。为了明确鼓励这种对齐,我们可以最小化这两个分布之间的对称相似度量Jensen-Shannon散度(JSD):

-
SD 是 Jensen-Shannon Divergence(Jensen-Shannon 散度),用于衡量两个概率分布之间的相似性。
-
A~tr 和 A~ts 分别是属性标记和对象标记的归一化注意力图。

-
属性与对象绑定:通过最小化 LbindLbind,模型能够将属性标记(如“紫色”)正确地绑定到对象标记(如“狗”或“皇冠”)所在的区域。
-
提高生成准确性:绑定损失确保生成的图像中,属性(如颜色、形状等)与对象(如物体)之间的关系更加准确和一致。
Implementation Details.
令牌识别过程可以手动完成,也可以借助GPT-3自动完成。利用GPT-3的上下文学习能力(in-context learning, Hu et al. (2022b)),通过提供一些上下文示例,GPT-3可以自动提取出新的输入提示所需的名词和形容词。
优化是在16 × 16分辨率的注意图上进行的,因为它们是最有语义意义的。基于图像语义由初始去噪步骤决定的观察,仅从t = T到t = Tend进行更新,其中在所有实验中t = 50和tend = 25。如果提供了属性信息,则绑定损失的权重λ = 1。否则,λ = 0,即仅使用attendance损失。
EXPERIMENTS
EXPERIMENTAL SETUP
Benchmarks.
我们对表1中总结的七个提示集进行了详尽的评估。Chefer等人(2023)提出了Animal-Animal和color - object,它们简单地组成两个主体,并交替地为主体分配一种颜色。在此基础上,我们添加一个描述场景或场景的后缀,以挑战具有更高提示复杂性的方法,称为动物场景和颜色- obj -场景。进一步,我们引入了Multi-Object,目的是在图像中产生多个实体。注意,不同的实体可能属于同一类别。例如,“一只猫和两只狗”总共包含三个实体,其中两个是狗。除了设计的模板,我们还过滤了TIFA基准Hu et al.(2023)中使用的COCO标题,并将其分类为COCO- subject和COCO- attribute。最多有四个对象没有在COCO-Subject中分配任何属性,两个对象分别具有COCO-Attribute属性。注意COCO-Attribute中的属性不仅包含颜色,还包含纹理信息,例如“a wooden bench”。

Evaluation metrics.
为了定量评估我们的方法的性能,我们使用了Chefer等人(2023)的文本相似度和最近引入的TIFA评分Hu等人(2023),该评分比CLIPScore Radford等人(2021)更准确,并且更符合人类对文本到图像合成的判断。为了计算文本-文本相似度,我们使用现成的图像字幕模型BLIP Li等人(2022c)在合成图像上生成字幕。然后我们测量原始提示和所有标题之间的CLIP相似性。TIFA指标的评估基于视觉问答(VQA)系统的性能,例如mPLUG Li等人(2022a)。根据定义,TIFA分数本质上是VQA准确性。Chefer et al.(2023)对TIFA评价方案以及对全提示文本-图像相似性和最小对象相似性的评价的更详细描述可在补充材料中找到。
MAIN RESULTS


Limitations.
尽管改进了语义引导,但仍然难以产生极其罕见或不可信的情况,例如不寻常的颜色绑定“a gray apple”。我们的方法可以与常用的方法一起生成这样的对象,例如在同一张图像中生成一个青苹果和一个灰苹果,如图图所示。由于我们使用未经微调的预训练模型,因此不可避免地会继承一些数据偏差。另一个问题是计数错误:生成的实例可能比应该生成的多。我们将错误计数归因于CLIP文本编码器Radford等人(2021)限制的不精确语言理解;Paiss et al.(2023)。在其他大规模T2I模型中也观察到这种效应,例如Parti Yu等人(2022),这使其成为未来研究的有趣案例。

ABLATION STUDY

IMPLEMENTATION & EVALUATION DETAILS

1. 输入和输出
-
输入:
-
文本提示 P。
-
预训练的 Stable Diffusion (SD) 模型。
-
-
输出:
-
下一个去噪步骤的噪声潜在表示 zt−1。
-
2. 算法步骤
步骤 1:确定对象和属性标记
-
使用 GPT 模型通过上下文学习(in-context learning)从文本提示 P 中提取对象标记 S 和属性标记 R。
步骤 2:提取注意力图
-
提取对象标记 S 的注意力图 Ats 和属性标记 R 的注意力图 Atr。
步骤 3-7:计算损失函数
-
如果存在属性标记 R(即 Atr 不为空),则计算综合损失:LD&B=Lattend+λLbind,
-
Lattend 是 Attendance Loss(出席损失),用于激励对象标记的注意力分布。
-
Lbind 是 Binding Loss(绑定损失),用于确保属性标记与对象标记正确绑定。
-
λ 是超参数,用于平衡两种损失的权重。
-
-
如果不存在属性标记 R,则仅使用出席损失:LD&B=Lattend.
步骤 8:更新潜在表示
-
使用梯度下降法更新噪声潜在表示 zt:zt′←zt−αt⋅∇ztLD&B
-
αtα 是学习率。
-
∇ztLD&B 是损失函数对 zt 的梯度。
-
步骤 9:去噪生成
-
使用 Stable Diffusion 模型对更新后的潜在表示 zt′ 进行去噪,生成下一个时间步的潜在表示zt−1:zt−1←SD(zt′,P,t).
步骤 10:返回结果
-
返回去噪后的潜在表示 zt−1,用于下一步生成。

相关文章:
【T2I】Divide Bind Your Attention for Improved Generative Semantic Nursing
CODE: GitHub - boschresearch/Divide-and-Bind: Official implementation of "Divide & Bind Your Attention for Improved Generative Semantic Nursing" (BMVC 2023 Oral) ABSTRACT 新兴的大规模文本到图像生成模型,如稳定扩散(SD),已…...
【2025】基于springboot+uniapp的企业培训打卡小程序设计与实现(源码、万字文档、图文修改、调试答疑)
基于 Spring Boot uniapp 的企业培训打卡小程序设计与实现 系统功能结构图如下: 一、课题背景 在当今快节奏的商业环境中,企业培训对于员工的成长和企业的发展至关重要。为了满足企业对高效培训管理和员工便捷学习的需求,基于 Spring Boot …...
腾讯面经,有点难度~
今天分享组织内的朋友在腾讯安全的实习面经。 内容涵盖了QPS测试方法、SQL聚合查询、Linux进程管理、Redis数据结构与持久化、NAT原理、Docker隔离机制、Go语言GMP调度模型、协程控制、系统调用流程、变量逃逸分析及map操作等等知识点。 下面是我整理的面经详解: …...
LeetCode(704):二分查找
二分查找 题目链接 题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 #include<stdio.h> //左闭…...
探索AI的无限可能,体验智能对话的未来,大模型 API 演示
探索AI的无限可能,体验智能对话的未来,大模型 API 演示 效果展示: 项目概述 这是一个基于 Vue 3 TypeScript Vite 构建的 Vista AI 演示项目,旨在提供一个简洁易用的界面来展示 Vista AI 大语言模型的能力。项目包含 API 演示…...
26考研——图_图的存储(6)
408答疑 文章目录 二、图的存储图的存储相关概念邻接矩阵存储方式邻接矩阵的定义顶点的度计算邻接矩阵的特点邻接矩阵的局限性 应用场景邻接矩阵的幂次意义(了解即可) 邻接表存储方式邻接表定义邻接表结构邻接表的特点 邻接矩阵和邻接表的适用性差异十字…...
Spark读取文件系统的数据(sbt打包测试)-入门级别Demo
学习目标 通过本关卡练习,您将学到: 如何使用Spark访问本地文件和HDFS文件Spark应用程序的编写、编译和运行方法 相关知识 操作系统:Ubuntu 16.04; Spark版本:2.4.0; Hadoop版本:3.1.3。 编…...
5.1 位运算专题:LeetCode 面试题 01.01. 判定字符是否唯一
1. 题目链接 LeetCode 面试题 01.01. 判定字符是否唯一 2. 题目描述 实现一个算法,确定一个字符串的所有字符是否全部唯一(即没有重复字符)。要求如下: 不使用额外的数据结构(如哈希表)字符串仅包含小写…...
datawhale组队学习--大语言模型—task4:Transformer架构及详细配置
第五章 模型架构 在前述章节中已经对预训练数据的准备流程(第 4 章)进行了介绍。本章主 要讨论大语言模型的模型架构选择,主要围绕 Transformer 模型(第 5.1 节)、详细 配置(第 5.2 节)、主流架…...
Python虚拟环境:从入门到实战指南
目录 一、为什么需要Python虚拟环境? 二、如何创建Python虚拟环境? 1. 使用venv(Python 3.3内置) 2. 使用virtualenv(第三方工具) 3. 使用conda(适合数据科学项目) 三、虚拟环…...
如何提升 Java 开发能力?
如何提升 Java 开发能力? 要系统提升 Java 开发能力,需从 基础巩固、技术拓展、实战经验、持续学习 四个维度入手。以下是详细的进阶路径和具体建议: 一、夯实 Java 核心基础 深入理解语言特性 必学内容: JVM 原理:…...
《TCP/IP网络编程》学习笔记 | Chapter 21:异步通知 I/O 模型
《TCP/IP网络编程》学习笔记 | Chapter 21:异步通知 I/O 模型 《TCP/IP网络编程》学习笔记 | Chapter 21:异步通知 I/O 模型同步与异步同步异步对比同步 I/O 的缺点异步 I/O 的优点 理解异步通知 I/O 模型实现异步通知 I/O 模型WSAEventSelect 函数和通知…...
Qt6相对Qt5的主要提升(AI总结)
我: Qt 6 相对于5 有哪些新功能? Qt 6 相对于 Qt 5 有诸多新功能和改进,以下是主要的新增特性: 1. 架构和核心库的重构 模块化设计:Qt 6 采用了更加灵活的模块化设计,开发者可以按需引入必要的功能模块&a…...
消息队列ActiveMQ、RabbitMQ、RocketMQ、Kafka对比分析和选型
ActiveMQ、RabbitMQ、RocketMQ、Kafka对比分析和选型 四大消息队列详细对比 1. ActiveMQ 核心特性: 基于JMS规范,支持多种协议(AMQP、STOPP、MQTT等)。提供主从架构(Master-Slave)和共享存储集群。支持持…...
2025:sql注入详细介绍
先说一个阿里云学生无门槛免费领一年2核4g服务器的方法: 阿里云服务器学生无门槛免费领一年2核4g_阿里云学生认证免费服务器-CSDN博客 SQL注入(SQL Injection)是一种常见的网络安全漏洞,攻击者通过在应用程序的输入参数中注入恶意…...
MyBatis操作数据库进阶——动态SQL
动态 SQL 是根据程序运行时的条件灵活生成不同 SQL 语句的技术。它的核心目的是在不修改代码 的前提下,通过条件判断、循环等逻辑,动态拼接 SQL 片段,解决传统 SQL 语句死板、难以应对复杂业务场景的问题。 一、<if> 标签 先来观…...
使用LLama-Factory的简易教程(Llama3微调案例+详细步骤)
引言:一套快速实现 Llama3 中文微调的教程 主要参考:胖虎遛二狗的 B 站教学视频《【大模型微调】使用Llama Factory实现中文llama3微调》 ✅ 笔者简介:Wang Linyong,西工大,2023级,计算机技术 研究方向&am…...
LabVIEW发电平台数据采集系统
本文详细介绍了基于LabVIEW的摇臂式波浪发电平台数据采集系统的设计与实现。通过整合LabVIEW软件与多种传感器技术,本系统能够有效提升数据采集的准确性和效率,为波浪能的利用和发电设备的优化提供科学依据。 项目背景 随着全球能源需求增长和环境保…...
气象可视化卫星云图的方式:方法与架构详解
气象卫星云图是气象预报和气候研究的重要数据来源。通过可视化技术,我们可以将卫星云图数据转化为直观的图像或动画,帮助用户更好地理解气象变化。本文将详细介绍卫星云图可视化的方法、架构和代码实现。 一、卫星云图可视化方法 1. 数据获取与预处理 卫星云图数据通常来源…...
abaqus 二次开发 No module named ‘abaqusConstants
在 Python 中遇到 “No module named ‘abaqusConstants’” 错误通常意味着 Python 无法找到名为 abaqusConstants 的模块。这可能是由以下几个原因造成的: 拼写错误:首先确认模块名是否正确。通常在 Abaqus 的 Python 环境中,正确的模块名…...
【蓝桥杯】每日练习 Day7
目录 前言 领导者 分析 代码 空调 分析 代码 面包店 分析 代码 前言 今天是第一部分的最后一天(主打记忆恢复术和锻炼思维),从明天开始主播会逐步更新从位运算到dp问题的常见题型。 领导者(分类讨论) 分析 …...
贪心算法(11)(java)加油站
题目:在一条环路上有n个加油站,其中第i个加油站有汽油 gas[i]升.。 你有一辆油箱容量无限的的汽车,从第i个加油站开往第i1个加油站需要消耗汽油 cost[i]升。你从其中的一个加油站出发,开始时油箱为空。 给定…...
Python(4)Python函数编程性能优化全指南:从基础语法到并发调优
目录 一、Lambda性能优化原理1.1 内联执行优势1.2 并行计算加速 二、工程级优化策略2.1 内存管理机制2.2 类型提示增强 三、生产环境最佳实践3.1 代码可读性平衡3.2 异常处理模式 四、性能调优案例4.1 排序算法优化4.2 数据管道加速 五、未来演进方向5.1 JIT编译优化5.2 类型系…...
本地部署Stable Diffusion生成爆火的AI图片
直接上代码 Mapping("/send") Post public Object send(Body String promptBody) { JSONObject postSend new JSONObject(); System.out.println(promptBody); JSONObject body JSONObject.parseObject(promptBody); List<S…...
qiankun微前端的使用
qiankun使用时注意以下几个点 1,子应用项目框架(react,vue)使用的打包格式需要为 umd 格式 2,子应用项目最好配置不受同源策略(跨域)的影响 3,子应用最好使用的路由模式是 histor…...
从国家能源到浙江交通投资,全息技术在能源交通领域的创新应用
一、3D全息技术行业应用参数及设计制作要求 全息投影 全息投影技术通过激光器、全息片等设备,将物体的三维信息记录下来,并在特定条件下再现。应用参数包括投影距离、投影面积、投影亮度等。设计制作要求:高清晰度、高亮度、低噪音、稳定性好…...
PageHiOffice网页组件(WebOffice文档控件)开发集成技巧专题一
PageHiOffice网页组件作为最新一代的WebOffice文档控件,这是目前市场上唯一能做到在Chrome等最新版浏览器中实现内嵌网页运行的商用文档控件,是OA及ERP等系统处理各种文档的福音。从发布到完善已经超过3年,不管是功能性还是稳定性都已经有了长…...
【人工智能】机器学习中的评价指标
机器学习中的评价指标 在机器学习中,评估指标(Evaluation Metrics)是衡量模型性能的工具。选择合适的评估指标能够帮助我们更好地理解模型的效果以及它在实际应用中的表现。 一般来说,评估指标主要分为三大类:分类、…...
本地安装deepseek大模型,并使用 python 调用
首先进入 ollama 官网 https://ollama.com/点击下载 下载完成后所有都是下一步,就可以 点击搜索 Models : https://ollama.com/search然后点击下载: 选择后复制: ollama run deepseek-r1:32b例如: 让它安装完成后࿱…...
Android:蓝牙设置配套设备配对
一、概述 在搭载 Android 8.0(API 级别 26)及更高版本的设备上,配套设备配对会代表您的应用对附近的设备执行蓝牙或 Wi-Fi 扫描,而不需要 ACCESS_FINE_LOCATION 权限。这有助于最大限度地保护用户隐私。使用此方法执行配套设备&am…...
