有界注意力:增强文本到图像合成中的控制

2024-08-22 17:44

本文主要是介绍有界注意力:增强文本到图像合成中的控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

人工智能咨询培训老师叶梓 转载标明出处

传统的文本到图像扩散模型虽然能够生成多样化和高质量的图像,但在处理包含多个主题的复杂输入提示时,往往难以准确捕捉预期的语义。特别是当这些主题在语义上或视觉上相似时,模型生成的图像常常出现语义不准确的问题,如主题特征混合、属性绑定错误或主题被忽略等。为了解决上述问题,特拉维夫大学与 Snap 研究团队共同提出了一种名为“Bounded Attention”(有界注意力)的方法。这种方法不需要训练,通过在采样过程中限制信息流,有效减少了在去噪过程中固有的语义泄露现象。通过限定每个主题的注意力,该方法鼓励每个主题保持其独特性,即使在复杂的多主题条件下也能如此。

图1为本文提出的Bounded Attention方法如何应用于控制预训练文本到图像扩散模型的布局生成。图像中包含了多个场景,每个场景都有多个主题(如不同颜色的小猫),它们被放置在不同的位置上,例如楼梯上、街道上、篮子里和树上。这些场景的生成显示了即使在主题语义或视觉上相似的情况下,有界注意力也能够确保每个主题保持其独特性,避免了在去噪过程中由于注意力层导致的不同主题间的视觉特征混合,从而减少了语义泄露的问题。

方法

现有布局到图像的方法虽然在理论上可行,但在实践中却常常因为语义泄露而产生不准确的图像。这种泄露主要发生在去噪过程中,当模型试图在图像中同时表示多个语义或视觉上相似的主题时。由于注意力层的设计初衷是在图像中混合不同区域的特征,这就不可避免地导致了主题间的信息泄露。

自注意力层中语义泄露的出现,特别是对于视觉上相似的主题,如螃蟹和青蛙的眼睛和腿部特征

图5 通过在不同分辨率的 UNet 层级上生成不同的主题(如小猫、小狗、蜥蜴和水果),并绘制了交叉注意力查询的前两个主成分,来展示模型在生成过程中的行为。图中显示,小猫和小狗由于在语义上高度相似,它们在所有层级的查询都非常接近,它们在去噪过程中共享了许多语义信息。这种共享导致在生成图像时,一个主题可能会借用另一个主题的特征,比如颜色或形状,这可能会导致最终图像与原始的文本提示不完全一致。

与此同时,蜥蜴和水果在语义上并不相似,但由于它们具有相似的纹理,它们在最高分辨率层的查询有所纠缠。这种视觉相似性同样会导致特征的泄露,但只在图像的最终细节阶段发生。

这种现象揭示了现有扩散模型在处理多主题图像生成时的一个关键局限性:当主题在语义上或视觉上相似时,模型的注意力层倾向于混合不同主题之间的视觉特征,从而导致信息泄露。这种泄露可能会损害图像的准确性和主题的独特性。

为了解决这个问题,研究团队提出了Bounded Attention机制。该机制在去噪过程中应用,通过限制每个像素上不相关视觉和文本标记的影响,减少了主题间的不利信息泄露。具体为有界注意力通过在自注意力和交叉注意力层中引入时间特定的掩码,这些掩码由零和负无穷大的元素组成,有效地阻止了不同主题间的信息流动,从而鼓励每个主题保持其独特性,即使在复杂的多主题条件下也能如此。通过这种方式,有界注意力有助于生成与给定提示和布局更加一致的图像。

Bounded Attention方法接收一个全局提示y,其中包含n个不同的文本主题S={si},以及它们对应的边界框B={bi}。该方法的目标是在不进行任何训练或微调的情况下,根据y、S和B调节生成过程,同时保持每个主题的预期语义。

图6 展示了该方法的概览。输入提示y是“一只小猫和一只小狗”,S包括“小猫”和“小狗”,相应的两个边界框{b1, b2}在左上角展示。Bounded Attention有两种模式:Bounded Guidance和Bounded Denoising。在去噪过程的开始,对于时间步t ∈ [T, Tguidance],首先执行Bounded Guidance步骤,然后是Bounded Denoising步骤。在Guidance步骤中,使用Bounded Guidance损失函数。这个时间步区间构成了优化阶段。然后,对于t ∈ [Tguidance, 0],只应用Bounded Denoising步骤。

在这两种模式中,通过在注意力层采用增强的加权方案来操作模型的前向传递,这种方案保护了查询和键之间的信息流。具体为通过引入时间特定的掩码Mt,这些掩码由零和负无穷大元素组成,来限制自注意力层中像素之间以及跨注意力层中像素和标记嵌入之间的有害信息流动。

在Bounded Guidance中,通过反向传播通过扩散模型来引导潜在信号朝向期望的布局,使用梯度下降法。Bounded Guidance损失函数鼓励每个主题si的Bounded Attention图位于其对应的bi边界框内。为此对于每个主题键,考虑在相应边界框内的注意力与整个Bounded Attention图的比例。损失函数Li的计算方式是,对于每个主题,将边界框内的注意力总和与整个注意力图的注意力总和进行比较,并引入一个超参数α来增强对背景的注意力,帮助防止主题混合。

图7 展示了在第一阶段,主题的粗略形状形成后,进入第二阶段,使用细粒度的主题掩码应用Bounded Denoising步骤。在这个阶段,定期通过聚类自注意力(SA)图来细化这些掩码。

在Bounded Denoising中,计算模型的输出并将其作为下一个潜在变量。这里的掩码旨在减少主题之间的语义泄露,并防止不希望的语义泄露到背景中。与Bounded Guidance和典型的基于注意力的引导方法不同,Bounded Denoising可以应用于所有时间步来减轻细节中的泄露,这些细节只在后期阶段显现。然而,后期阶段的粗糙掩码可能会降低图像质量并导致明显的接缝。为了解决这个问题,在优化阶段之后,对于t ∈ [Tguidance, 0],用通过聚类自注意力图获得的细分割掩码替换每个边界框。

图8 展示了通过分割UNet瓶颈处的平均自注意力图,可以将输入边界框细化为密集的分割掩码,即使在高幅度噪声中也能实现。Bounded Attention利用这些掩码将不断发展的图像结构(由自注意力图表示)与其语义(由跨注意力图反映)对齐,确保每个主题在去噪过程中保持其独特的特征。

实验

研究者将该方法与三种无需训练的基线方法进行了比较:布局引导(Layout-guidance, LG)、BoxDiff(BD)和MultiDiffusion(MD)。还包括了需要训练的GLIGEN和ReCo方法的比较。为了公平比较,研究者在比较中使用了Stable Diffusion模型。

研究者展示了在SDXL模型上使用Bounded Attention在具有挑战性的场景中生成多个语义相似主题的有效性。在图9中,展示了Bounded Attention能够生成具有复杂位置关系和遮挡的主题,例如堆叠的蛋糕层,以及自然融入背景的视觉上相似的主题,如部分浸没在池中的各种犬种。该方法即使在改变提示、种子或边界框分配时,也能生成具有各自独特特征的所有主题。

在图10中,展示了在不同种子下生成具有不同修饰语的多个语义相似主题的结果。可以看出,Vanilla SDXL由于语义泄露而未能遵循提示。例如,在第一行中,它错误地生成了狗和小猫的数量并混合了它们的颜色。在中间一行中,服装组合结合了提示中提到的织物、轮廓和颜色。在最后一行中,它合并了主题的外观,同时将粉色属性泄露到了背景中。

然后研究者进行了非策划的比较,并在图11中展示了每种方法从种子0采样的前六个图像。预计在没有Bounded Attention的情况下,语义泄露可能会自由混合主题特征,阻碍预期布局的形成。结果表明,没有一种竞争方法能够始终如一地构建输入布局。例如,Layout Guidance经常忽略一个主题,即使生成了三个主题,也难以避免泄露,导致小狗具有类似小猫的特征或不正确的颜色分配。BoxDiff通常能生成正确数量的主题,但会产生斑点等人工制品。即使MultiDiffusion分别生成主题,也会在自举阶段面临一些消失或合并的挑战。

与这些方法相比,Bounded Attention始终优于这些方法,在所有六个图像中生成了与提示和布局一致的三个主题。

研究者使用DrawBench数据集评估了方法的有效性,该数据集以具有挑战性的提示而闻名,旨在测试模型构成具有特定数量和关系的多个主题的能力。在表1中总结了结果。与其他不考虑语义泄露的方法不同,Bounded Attention在计数类别上展示了显著的改进。它通过0.1提高了召回率,这是一个值得注意的进步。它还提高了计数精度和空间精度,突显了Bounded Attention在解决语义错位方面的有效性。

为了评估每个组件的重要性,研究者进行了消融研究,通过在每种设置中省略一个组件来系统地改变方法的配置。在图13中展示了使用SDXL(顶行)和SD(底行)生成的两个示例。引导对于将潜在信号与预期布局对齐至关重要。然而,没有Bounded Guidance机制尝试引导潜在信号会导致结果不佳,如图中蜥蜴与其边界框的部分对齐和小狗的扭曲形态所示。问题源于每次检查中两个语义相似主题之间固有的查询纠缠。如果没有Bounded Guidance,优化在顶行达到一个平台期,蜥蜴与其边界框的对齐减少了它的损失,但也增加了海龟的损失。在底行中,优化将两个主题查询彼此推开,造成人工制品。

同时省略Bounded Denoising会导致明显的语义泄露。在顶示例中,蜥蜴被海龟替换,"红色"属性错误地泄露到了错误的主题上。同样,在底示例中,小狗被小猫替换。

在后期加入掩码细化可以保留细节并防止它们泄露。没有掩码细化,小猫的腿失去了姜黄色皮草纹理的细节,海龟的面部特征类似于蜥蜴,蜥蜴的背部呈现出类似壳的轮廓。

Bounded Attention技术为生成包含多个主题的图像提供了一种新的解决方案,它通过调节注意力机制,强调了在图像生成过程中保持每个主题个性和独特性的重要性。尽管Bounded Attention在减少语义泄露方面取得了显著进步,但研究者也指出,该技术并未完全消除泄露现象,仍有改进空间。

论文链接:https://arxiv.org/abs/2403.16990

这篇关于有界注意力:增强文本到图像合成中的控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.