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

devtools/2024/11/14 20:56:29/

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 所示,作者的方法未能遵循段条件的精细细节,例如叶子的形状。

http://www.ppmy.cn/devtools/11013.html

相关文章

埋点,自己写插件,自己写的按钮埋点,掘金同款投递简历

20分钟掌握 Vite 插件开发 - 掘金 vite的生命周期啥的 1.浏览器的控制台输出有样式的字 // const randomLetterPlugin ()>{ // const letters [wwwwwww,000000000000,888888888888]; // //随机获取一个字符并打印 // const printRandomLetter ()>{ // …

用html写一个窗口风景动画

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>窗边风景动画</title><link rel"stylesheet" href"./style.css"> </head> <body><!-- 窗户 -->&l…

Redis入门到通关之Redis实现Session共享

文章目录 ☃️前期概要☃️基于Session实现登录方案☃️现有方案存在的问题☃️Redis代替Session的业务流程❄️❄️设计key的结构❄️❄️设计key的具体细节❄️❄️整体访问流程 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博…

Python异步任务框架CeleryCelery

Python异步任务框架Celery Celery简介第一个CeleryCelery基本概念任务TasksCelery基本概念消息代理Message BrokersCelery基本概念工作者&#xff08;Workers&#xff09;Celery基本概念任务调度&#xff08;Task Scheduling&#xff09;Celery apicelery命令Celery应用Applic…

物理隔离条件下的数据安全导入导出方案,哪种最安全可控?

数据安全在当今信息化社会中扮演着至关重要的角色&#xff0c;尤其像政府、军工等单位&#xff0c;有比较多的核心数据要保护&#xff0c;一旦出现数据泄漏&#xff0c;将造成不可估量的后果。因此为了保护数据安全&#xff0c;政府、军工等单位一般会采取纯物理隔离&#xff0…

设计模式—门面模式

定义: 门面模式,也称为外观模式&#xff0c;是一种结构型设计模式。它的主要目的是提供统一的接口来访问子系统中的多个接口&#xff0c;从而简化客户端与复杂子系统之间的交互。 在门面模式中&#xff0c;一个门面类充当中介&#xff0c;为客户端提供一个简化了的访问方式&…

API接口的用途以及接入示例

API接口的主要用途是允许不同的软件系统之间进行通信和数据交换。具体来说&#xff0c;API接口可以用于以下几个方面&#xff1a; 数据传输和交换&#xff1a;API接口可以用于不同系统之间的数据传输和交换&#xff0c;例如将数据从一个系统传递到另一个系统&#xff0c;或者从…

Vue打包部署

黑马程序员JavaWeb开发教程 文章目录 一、打包二、部署1、Nginx服务器2、下载Nginx3、部署4、更换Nginx的端口号 一、打包 直接点击NPM脚本下的build 即可 打包完成之后会产生一个dist文件夹&#xff0c;之后部署的时候就是使用dist文件夹下的文件 二、部署 1、Nginx服务器…