DenseDiffusion:Dense Text-to-Image Generation with Attention Modulation

2024-04-22 20:36

本文主要是介绍DenseDiffusion:Dense Text-to-Image Generation with Attention Modulation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 研究目的

该文献的研究目的主要是:

探讨一种更为广泛的调制方法,通过设计多个正则化项来优化图像合成过程中的空间控制。论文的大致思想是,在现有的基于数据驱动的图像合成系统基础上,通过引入更复杂的调制策略,实现对文本描述和空间控制更为精确的图像合成。

在研究中,作者发现了以下问题:

现有的文本到图像扩散模型很难在给定密集字幕的情况下合成逼真的图像,并且倾向于省略或混合不同对象的视觉特征。其中每个文本提示为特定图像区域提供详细的描述,用户很难仅使用文本提示精确控制生成图像的场景布局。有些模型提供了对图像布局的控制,但它们通常需要每次重新训练新的控制类型或增加推理时间。

为了解决这些问题,作者提出了一种新的方法:

提出了 DenseDiffusion,这是一种无需训练的方法,它采用预训练的文本到图像模型来处理这种密集的字幕,同时提供对场景布局的控制。

  • 首先分析了生成的图像布局与预训练模型的中间注意图之间的关系,以表明生成的图像的布局与自我注意和交叉注意图显著相关,但专注于空间控制而不是图像编辑的图像合成。
  • 接下来,基于这一观察,动态根据布局条件调节中间注意力图,开发了一种注意力调制方法,根据布局引导对象出现在特定区域。不需要额外的微调或数据集
  • 进一步提出考虑原始注意力分数的值范围并根据每个片段的面积调整调制程度。

该方法基于自注意力和交叉注意力映射,通过实时调制中间注意力映射来适应布局条件。

此外,作者还考虑了原始注意力得分的值范围,并根据每个区域的面积调整调制的程度。

这种方法旨在更准确地反映文本和布局条件,从而提高图像合成的质量和灵活性

2 方法介绍

2.1 前期介绍

2.1.1 注意力分数分析

通过分析稳定扩散产生的16 × 16注意图来展示类似的趋势。

随着图像生成的进行,注意力图往往类似于上面的图像布局。

  • 在 (a) 中,可视化了“sloth”和“beer”的交叉注意力图。感兴趣的对象用蓝色和黄色的边界框概述。
  • 在 (b) 中,展示了自注意力层中红框中标记的标记键注意力图。
  • 由于时间步 t 接近零,属于同一对象的标记更仔细地通信,影响图像布局。

匹配键和未匹配键的注意力分数分析。首先,YOLOv7检测对象边界框。

  • 在交叉注意力层的上下文中,如果键的文本标记与框的类标签匹配,定义一个匹配键。
  • 在自注意力层中,框内的图像标记有资格作为匹配的键。
  • 在这两个层中,匹配的键始终比不匹配的键具有更高的平均值和最大注意力值;属于同一对象的查询键对在生成过程中往往具有更大的分数。

为什么要进行匹配键和为匹配键的注意力分数分析?

      其目的主要是为了探究和解释在自注意力层和交叉注意力层中,注意力机制是如何运作的,以及这种机制如何影响图像的生成过程。

首先,匹配键和未匹配键的区分是基于查询-键对是否属于同一对象。在注意力机制中,每个查询都会与所有的键进行匹配,计算得到一个注意力分数,这个分数决定了在生成新特征时,应该给予哪些键(即哪些位置或特征)多大的权重。

对于匹配键,即查询和键属于同一对象的情况,理论上,它们之间的注意力分数应该更高,因为模型需要确保同一对象内的信息能够得到有效传播和整合。

对于未匹配键,即查询和键属于不同对象的情况,注意力分数可能相对较低,以避免不同对象之间的特征混淆。

通过对比匹配键和未匹配键的注意力分数,可以验证模型的注意力机制是否按照预期工作。

  • 如果匹配键的分数显著高于未匹配键,那么说明模型能够有效地识别和整合同一对象内的信息。
  • 如果两者分数相差不大,或者未匹配键的分数过高,可能意味着模型在处理不同对象时存在混淆,需要进一步优化。

此外,这种分析还有助于理解模型在生成过程中的不同阶段如何利用注意力机制的

  • 早期阶段,模型可能更注重位置和对象的基本形状,
  • 后期阶段,可能更注重细节和纹理。

通过比较不同阶段的注意力分数,可以揭示模型在生成过程中的这种变化趋势。

2.1.2 注意力层

注意层是稳定扩散的构建块之一,它根据注意图A∈R|query|×|keys|更新中间特征,定义如下:

其中 Q 和 K 是查询和键值,每个值都从中间特征和上下文特征映射。这里 d 表示键和查询特征的长度。

  • 自注意力层中,中间特征也用作上下文特征,允许我们通过连接不同区域的图像标记来合成全局连贯的结构。
  • 交叉注意力层更新以文本特征为条件,这些特征使用 CLIP 文本编码器从输入文本标题 c 编码。

2.2 布局引导注意调制

上述的注意力图的分析结果促使作者干预生成过程调制原始分数以更好地反映文本和布局条件。具体来说,我们将注意力图调制如下:

引入了矩阵 Mpos、Mneg ∈ R|query|×|keys|来考虑原始值范围,旨在保留预训练模型的生成能力。为了进一步根据每个对象的大小调整调制程度,计算矩阵S∈R|query|×|keys|,表示每个图像查询标记的段面积。

其中每个段\left ( c_{n} ,m_{n}\right )描述单个区域,如上图所示。

这里c_{n}是全文标题c的非重叠部分

m_{n}表示表示表示每个区域的二值映射

A是注意力图

A'是调制后的注意力图

给定输入条件,我们动态调制所有注意力层的注意力图,以便 c_{n}描述的对象可以在相应的区域m_{n}中生成。为了保持预训练模型的生成能力,作者设计了调制来考虑原始值范围和每个片段的面积。

2.2.1 交叉注意力层注意调制

在交叉注意力层中,根据文本特征更新中间图像特征,这些特征构建对象的外观和布局。它们反映的程度和位置由  图像标记和文本标记  之间的注意力分数决定。因此,我们修改了交叉注意力图,以根据其相应的布局条件 m_{n}在特定区域中聚合某些文本特征

2.2.2 自我注意力层注意调制

自注意力层允许中间特征相互交互以创建全局连贯的结果。

注意力调制旨在限制不同段标记之间的通信,从而防止不同对象特征的混合。具体来说,增加了同一段中标记的注意力分数,并将其减少到不同段中的标记的注意力得分来实现其目的。

这样做可以使得自注意力层更好地反映文本和布局条件,使得属于同一对象的图像标记对在自注意力层中展现出更高的得分。

2.2.3 值范围自适应注意调制

由于作者的方法改变了原始的去噪过程,它可能会破坏预训练模型的图像质量。

为了减轻这种风险,根据原始注意力分数的范围调制值。

计算以下矩阵来识别每个查询的最大值和最小值,确保调制值保持在原始范围附近。因此,调整与原始值和最大值(对于正对)或最小值(对于负对)之间的差异成正比

2.2.4掩码区自适应注意调制

当段之间存在较大的面积差异时,观察到明显的质量下降。

具体来说,如果一个段的面积比其他段小得多,我们的方法可能无法生成逼真的图像。

为了解决这个问题,使用等式 2 中的矩阵 Sin 来根据每个片段的面积自动调整调制程度:增加小段的程度并减少大段。为了计算矩阵 S,首先计算每个查询标记所属的掩码的面积百分比,然后沿键轴复制值。

什么是段之间的面积差异大?

在图像处理、计算机视觉或相关领域中,经常需要将图像划分为不同的区域或段(segments),这些段可以基于颜色、纹理、形状等特征进行区分。

这些段可能代表了图像中的不同对象、部分或场景。当这些段之间的面积存在显著差异时,即有的段面积很大,而有的段面积很小,就可能对后续的图像处理任务产生不利影响。

2.2.5 实施细节

  • 使用在LAION数据集上训练的稳定扩散
  • 在实验中,只对初始去噪步骤 (t = 1 ∼ 0.7) 应用注意力调制,因为观察到除了这一点之外没有明显的改进。
  • 为了进一步提高方法的有效性,将文本特征的部分替换为每个文本段c_{n} 的单独编码部分。当文本标题包含多个密切相关的对象(例如微波和烤箱)时,这种策略特别有用。

3 评估

3.1 评估设置

3.1.1 评估指标

根据两个标准评估每种方法:文本提示的保真度与布局条件对齐

对于文本提示:

  •  CLIP-Score ,它测量输入文本特征和生成的图像特征之间的距离,
  • 使用 YOLOv7 的 SOA-I 分数来检查所描述的对象是否存在于生成的图像中。

对于布局对齐方面:

  • 比较了YOLOv7预测的分割图相对于给定布局条件的IoU分数。
  • 进一步评估了裁剪对象图像(Local CLIP-score)上的CLIP-scores,以检查生成的对象是否遵循详细的描述。

由于  可组合扩散   和   结构扩散  不采用布局条件,因此将它们排除以进行公平比较。

3.1.2 数据集

作者策划了一个新的评估数据集,其中包含每个片段的详细描述。

具体来说,从 MS-COCO 验证集中选择具有两个或多个独特对象的 250 个样本。然后用从标题中提取的短语手动替换每个分割图的类标签;例如,“狗”到“黑白狗”。为每个标题生成四个随机图像,导致评估中使用的每个基线有 1,000 张图像。

3.1.3 用户研究

使用 Amazon Mechanical Turk 进行用户研究。

对于每个任务,向用户展示两组 4 张图像以及相同的输入条件。他们被要求根据以下任一标准选择更好的集合:对文本条件的保真度,同时反映关键对象的详细说明或对布局条件的保真度,并准确描述对象。

以随机顺序呈现每一对,并从唯一用户那里收集三个评级。

3.2 实验结果

3.2.1 文本条件保真度的评估

在该图 4 中,将 DenseDiffusion 与使用密集字幕生成的图像的所有基线进行比较。

虽然基线方法有时会省略文本标题中描述的一个或多个对象,但作者的结果更忠实于文本和布局条件。特别是,与 SD-Pwww 的比较突出了我们的无训练调制方法的有效性。

 SD-Pwww 和作者的方法 DenseDiffusion 支持分割图进行布局控制。

文本条件保真度的定量评估结果。

我们将我们的方法与各种无训练方法进行比较,这些方法旨在在使用密集字幕时提高预训练的稳定扩散的保真度。由于 eDiffi 模型没有公开,使用在稳定扩散 (SD-Pww) 上实现的 Pwww 进行了实验。

由于LAION和MS-COCO之间的域差距,SOA-I似乎与人类评估结果松散相关,分别用于训练稳定扩散和YOLOv7。有趣的是,当推理方法与原始方法的变化太大时,性能往往会受到显着影响,如可组合扩散的情况所示。

3.2.2 布局条件保真度的评估

为了评估布局条件的保真度,只与 SD-Pww 的结果进行比较,SD-Pww 是唯一可以控制图像布局的基线。

可以看一下表和图,得到DenseDiffusion 大大优于 SD-Pwww。S

D-Pww不仅不能忠实地反映布局条件,而且倾向于混合不同的对象特征或省略关键对象。特别是,IoU 分数的显着差异表明 DenseDiffusion 在反映布局条件方面更有效。

表 3:布局条件保真度的定量评估结果。我们只与 SD-Pww进行比较,因为它是使用分割图的唯一基线。

3.2.3 与布局条件的模型比较

为了突出DenseDiffusion 即使在无训练方法的情况下也能有效,我们进一步与 MAS 和 SpaText 进行了比较,它们都是使用布局条件训练的文本到图像模型。

MAS 使用标记化的语义分割图作为附加条件

SpaText 根据布局条件微调具有空间飞溅的 CLIP 图像特征的稳定扩散。由于这些模型没有公开,我们使用原始 SpaText 论文中呈现的示例。

下图 5 显示 DenseDiffusion 可以相对反映布局条件,甚至优于不同概念的 MAS。

图 6 显示,作者的方法可以很好地响应通过改变给定文本条件的一部分创建的各种条件,例如对象类型或图像样式,同时保持原始布局条件。

3.3 消融实验

下面评估DenseDiffusion中使用的每个组件:

(a)交叉注意层的注意调制

(b)自我注意层的注意调制

(c)值范围自适应注意调制

(d)掩码区域自适应注意调制

我们首先展示了我们在图7中消融研究的视觉结果。同一行中的所有图像都是从相同的初始噪声图生成的。

  • w/o (a) 和 w/o (b) 列所示,交叉注意力层和自注意力层中的注意力调制对于满足文本和布局条件至关重要。
  • w/o (c) 列中的图像表明,值范围自适应调制进一步提高了方法对给定条件的保真度。
  • w/o (d) 列,该方法遵循条件,但产生纹理单调的图像。

结果表明,除了组件 (d) 之外,每个组件的删除都会导致所有指标分数显着下降。

关于组件 (d),将此异常解释为消融方法创建单调背景的倾向的结果,如图 7 所示。虽然它看起来可能与真实图像相距甚远,但分割模型更容易预测分割图。因此,它有助于在与布局条件相关的指标上获得良好的分数,但它并不总是满足文本条件。

4 优点

  • 提出的 DenseDiffusion,是一种无需训练的方法,可以将预训练的文本到图像模型的保真度提高到密集字幕,并实现图像布局控制。
  • 考虑值范围和段大小显着提高了我们的注意力调制方法。
  • DenseDiffusion的无训练方法提供了与专门为此任务训练的现有模型相当的布局控制。

5 限制

DenseDiffusion 有几个限制。

  • 首先,作者的方法高度依赖于其基础模型的容量,稳定扩散。如图 8a 所示,如果 Stable Diffusion 无法产生它们本身,作者的方法无法产生某些对象,例如 jugling 熊。
  • 其次,作者的方法难以处理具有薄结构的细粒度输入掩码,因为自注意力层和交叉注意力层都相当粗糙。如图 8b 所示,作者的方法未能遵循段条件的精细细节,例如叶子的形状。

这篇关于DenseDiffusion:Dense Text-to-Image Generation with Attention Modulation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/926791

相关文章

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

Python安装llama库出错“metadata-generation-failed”

Python安装llama库出错“metadata-generation-failed” 1. 安装llama库时出错2. 定位问题1. 去官网下载llama包 2.修改配置文件2.1 解压文件2.2 修改配置文件 3. 本地安装文件 1. 安装llama库时出错 2. 定位问题 根据查到的资料,发现时llama包中的execfile函数已经被下线了,需要我们手动修改代码后

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

【ReactJS】困惑于text/babel与browser.js还是babel.js?

使用JSX   使用JSX,可以极大的简化React元素的创建,JSX抽象化了React.createElement()函数的使用,其语法风格类似于HTML语法风格。对比如下代码可以让你更好的理解这一点。 // 使用React.createElement()return React.createElement('div',null,'Hello',this.props.name);//使用J

Android:EditText在hint字体大小和text字体大小不一致时的设置方法

今天碰到一个需求,有一个输入框EditText,要求输入某项金额,要求在未输入文字之前,hint提示,输入文字之后显示输入的文字,要求是未输入内容时hint字体大小为14sp,输入金额之后字体大小要变成30sp。,可是EditText本身没有这个属性可以设置,怎么办呢,只有在代码中添加监听事件了: /*** 添加监听,在hint时和text时切换字体大小*/cetMoney.addTextCha

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention 文章目录 一、基本原理1. 变分模态分解(VMD)2. 双向时域卷积(BiTCN)3. 双向门控单元(BiGRU)4. 注意力机制(Attention)总结流程 二、实验结果三、核心代码四、代码获取五、总结 时序预测|变分模态分解-双向时域卷积