ControlGAN:Controllable Text-to-Image Generation

1 研究目的

        当前的生成网络通常是不可控的,这意味着如果用户更改句子的某些单词,合成图像将与原始文本生成的合成图像显着不同;当给定的文本描述(例如颜色)发生变化时,鸟类的相应视觉属性被修改,但其他不相关的属性(例如,姿势和位置)也发生了变化。

图1 使用自然语言描述修改合成图像的示例

        本文的目标是从文本中生成图像,并允许用户在一个框架中使用自然语言描述来操纵合成图像。特别是专注于通过改变  给定的文本描述  来修改生成图像中的对象的视觉属性(例如类别、纹理和颜色)

        为此,作者提出了一种新的可控文本到图像生成对抗网络(ControlGAN),它可以合成高质量的图像,还允许用户操纵对象的属性,而不影响其他内容的生成。

提出三个新颖的组件:

1)词级空间通道注意驱动生成器可以有效地解开不同的视觉属性

2)词级鉴别器为生成器提供与每个视觉属性相关的细粒度训练信号

 3)感知损失的采用减少了生成中涉及的随机性,并强制生成器重建与未修改文本相关的内容。

2 模型结构

2.1 整体框架

采用多阶段AttnGAN作为骨干架构(见图2),在(b)中,L_{corre}是第2.3节中讨论的相关损失。在(c)中,L_{per}是第2.4节中讨论的感知损失。

图2 ControlGAN 的架构

  • 给定一个句子 S,文本编码器采用预训练的双向 RNN (AttnGAN用到的),将句子 S 编码为句子特征s\in R^{D} ,维度为 D 描述整个句子  和  单词特征 w\in R^{D*L}长度为 L(即单词数)和维度 D。
  • 接下来的StackGAN,还将条件增强 (CA) 应用于 s。增强的句子特征 \tilde{s}随机向量 z 进一步连接,作为第一阶段的输入。
  • 整个框架分多个阶段从粗到细生成图像,在每个阶段,网络产生一个隐藏的视觉特征v_{i},它是对应生成器G_{i}的输入,生成合成图像。
  • 空间注意模块和提出的通道注意模块以w(单词特征)v_{i}(隐藏的视觉特征)为输入,输出注意的单词上下文特征。这些注意力特征进一步与隐藏的视觉特征 v_{i}连接,然后作为下一阶段的输入。
  • 生成器通过结合空间注意模块 和提出的通道注意模块来利用注意力机制(上面两个蓝色框框)。
  • 由于AttnGAN的空间注意模块只能将单词与单个空间位置相关联,而不考虑通道信息。所以,作者引入了一个通道注意模块来利用单词和通道之间的连接。
  • 通过实验发现,通道注意模块将语义上有意义的部分与相应的单词高度相关,而空间注意力侧重于颜色描述(见图 6)。
  • 因此,作者提出的通道注意模块以及空间注意模块可以帮助生成器解开不同的视觉属性,并允许它只关注最相关的子区域和通道。

2.2 通道注意模块

图3(a)  通道注意模块

在第 k 阶段,通道注意模块(见图 3 (a))接受两个输入:

  • 单词特征 w
  • 隐藏视觉特征 v_{k}\in \mathbb{R}^{C*\left ( H_{k} * W_{k}\right )} ,其中 H_{k}W_{k}  表示第 k 阶段特征图的高度和宽度。
  1. 单词特征 w首先通过感知层 F_{k}映射到与视觉特征v_{k} 相同的语义空间中,产生\tilde{w}_{k}= F_{k}w,其中 F_{k}\in \mathbb{R}^{\left ( H_{k}*W_{k} \right )*D}
  2. 然后,通过将转换后的单词特征\tilde{w}_{k}  和视觉特征 v_{k} 相乘来计算通道注意矩阵 m_{k}\in\mathbb{R} ^{C*L},表示为 m^{k}=v_{k} \tilde{w}_{k}。因此,m^{k} 聚合所有空间位置的通道和单词之间的相关性值。
  3.  接下来,通过 softmax 函数对 mk 进行归一化以生成归一化的通道注意矩阵 \alpha ^{k}为:

注意力权重\alpha _{i,j}^{k} 表示视觉特征v_{k} 中的第 i 个通道与句子 S 中的第 j 个单词之间的相关性,值越高表示相关性越大。

  • 配备了通道注意矩阵\alpha ^{k},得到了最终的通道注意特征f_{k}^{a}\in \mathbb{R}^{C*\left ( H_{k}*W_{k} \right )},记为f_{k}^{a}= \alpha ^{k}\left ( \tilde{w}_{k}\right )^{T}f_{k}^{a}中的每个通道都是一个动态表示,由视觉特征中单词与相应通道之间的相关性加权。

        因此,具有高相关值的通道被增强,从而对相应的单词有很高的响应,这有助于将单词属性分解为不同的通道,并通过分配较低的相关性来减少不相关通道的影响。

2.3 词级判别器

        为了鼓励生成器根据文本仅修改图像的一部分,判别器应该提供具有细粒度训练反馈的生成器,这可以指导与最相关的单词相对应的子区域的生成。

        实际上,文本自适应鉴别器(text-adaptive)也探索了鉴别器中的词级信息,但它采用全局平均池化层输出一维向量作为图像特征,然后计算图像特征与每个词之间的相关性。但是通过这样做,图像特征可能会丢失重要的空间信息,这为解开不同的视觉属性提供了关键线索。

        为了解决这个问题,作者提出了一种新的词级鉴别器,其灵感来自 文本自适应鉴别器(text-adaptive)来探索图像子区域和每个词之间的相关性;见图3(b)。

图3(b) 词级判别器

词级鉴别器接受两个输入:

  1. 从文本编码器编码的词汇特征 w, w',它遵循与生成器中使用的架构相同的架构(见图 3 (a)),其中 w 和 w' 分别表示从原始文本 S 和随机采样的不匹配文本编码的单词特征。
  2. 视觉特征 n_{real}, n_{fake},分别由来自真实图像 I 和生成图像 I' 的基于 GoogleNet 的图像编码器编码。

为了简单起见,

  • 使用n\in \mathbb{R}^{C*\left ( H*W \right )}来表示视觉特征n_{real}n_{fake}
  • 使用w\in \mathbb{R}^{D*L}来表示原始和不匹配的单词特征
  • 词级鉴别器包含一个感知层{F}',用于对齐视觉特征n和单词特征w的通道维度,记为\tilde{n}= {F}'n,其中{F}'\in \mathbb{R}^{D*C}是要学习的权重矩阵。
  • 然后,词-上下文相关矩阵m\in \mathbb{R}^{L*\left ( H*W \right )}可由m= w^{T}\tilde{n}导出,并通过softmax函数进一步归一化得到相关矩阵β:

其中,\beta _{i,j}表示图像第i个单词与第j个子区域的相关值。

  • 然后,将所有由词-上下文相关矩阵β加权的空间信息进行聚合,通过b= \tilde{n}\beta ^{T}得到图像子区域感知的词特征b\in \mathbb{R}^{D*L}
  • 此外,为了进一步降低不重要词的负面影响,采用词级自注意推导出一个长度为L的一维向量\gamma,它反映了每个词的相对重要性。
  • 然后,重复\gamma乘以D次,得到与b大小相同的{\gamma }'
  • 接下来,b进一步被{\gamma }'重新加权,得到\tilde{b},记为\tilde{b}=b\bigodot {\gamma }',其中表示元素的乘法。
  • 最后,我们推导出第i个单词与整个图像之间的相关性,如Eq. (3):

其中\sigma为sigmoid函数,r_{i}表示第i个单词与图像的相关性,\tilde{b}_{i}w_{i}分别表示b和w的第i列。

        因此,图像I与句子S之间的最终关联值L_{corre}通过对所有词-上下文关联求和来计算,记为L_{corre}\left ( I,S \right )= \sum_{i=0}^{L-1}r_{i}

        通过这样做,生成器可以从单词级鉴别器接收每个视觉属性的细粒度反馈,这可以进一步帮助独立监督每个子区域的生成和操作。

2.4 感知损失

        在没有对与文本无关的区域(例如背景)添加任何约束的情况下,生成的结果可能高度随机,也可能无法与其他内容在语义上一致。为了减轻这种随机性,采用了基于在ImageNet数据集上预训练的16层VGG网络的感知损失。该网络用于从生成的图像{I}'和真实图像I中提取语义特征,感知损失定义为:

其中\varphi _{i}\left ( I \right ) 是 VGG 网络第 i 层的激活,H_{i}W_{i}分别是特征图的高度和宽度。

在可控文本到图像生成中应用感知损失,可以通过匹配特征空间来减少图像生成中涉及的随机性。

2.5  目标函数

通过最小化生成器损失L_{G} 和鉴别器损失L_{D} 交替训练生成器和鉴别器。

2.5.1 生成器目标

生成器损失L_{G}如式(5)所示,包含:

  • 对抗性损失L_{G_{k}}
  • 文本图像相关损失L_{corre}
  • 感知损失L_{per}
  • 文本图像匹配损失L_{DAMSM}

其中 :

  • K 是阶段数。
  • I_{k} 是从第 k 阶段的真实图像分布 P_{data}中采样的真实图像。
  • I_{​{k}'}是从模型分布 PG_{k},\lambda _{2}, \lambda _{3}, \lambda _{4} 中采样的第 k 个阶段的生成图像是控制不同损失的超参数。
  • L_{per}是第 2.4 节中描述的感知损失,它对生成过程施加了约束以减少随机性。
  • L_{DAMSM} 用于基于余弦相似度测量文本图像匹配分数。
  • L_{corre}反映了生成的图像与给定文本描述之间的相关性考虑空间信息。

对抗性损失L_{G_{k}}由Eq.(6)所示的无条件和条件对抗损失组成:

        采用无条件对抗损失使合成图像是真实的,利用条件对抗损失使生成的图像与给定的文本S匹配。

2.5.2 判别器目标

训练鉴别器 D 的最终损失函数定义为:

其中:

  •  L_{corre}是决定图像中是否存在与单词相关的视觉属性的相关损失(参见第 2.3 节)。
  •  {S}'是从数据集中随机采样的不匹配文本描述,与I_{k}无关,\lambda _{1}是控制额外损失重要性的超参数。

对抗性损失L_{D_{k}}包含两个组件:

  •  无条件对抗性损失决定了图像是真实的
  •  条件对抗性损失决定了给定图像是否与文本描述 S 匹配

3 实验评估

3.1 数据集

在CUB鸟和MS COCO数据集上进行评估:

  • CUB数据集包含 8,855 个训练图像和 2,933 个测试图像,每张图像有 10 个相应的文本描述。
  • COCO 数据集,它包含 82,783 个训练图像和 40,504 个验证图像,每张图像有 5 个相应的文本描述。

根据 StackGAN中介绍的方法预处理这两个数据集。

3.2 实施细节

  • 在AttnGAN之后的ControlGAN生成器中有三个阶段(K =3)。这三个尺度分别为64 × 64、128 × 128和256 × 256,在第2和3阶段应用空间和通道注意。
  • 文本编码器是一个预先训练的双向LSTM,将给定的文本描述编码为256维的句子特征和长度为18、维数为256的单词特征。
  • 感知损失中,计算在ImageNet上预训练的VGG-16层relu2 _2处的内容损失。
  • 整个网络使用 Adam 优化器进行训练,学习率为 0.0002。
  • 两个数据集的超参数\lambda _{1} ,\lambda _{2}, \lambda _{3}, 和 \lambda _{4}分别设置为 0.5、1、1 和 5。

3.3 与现有的技术相比

3.3.1 定量评估

  •  Inception Score(IS)来评估生成图像的质量和多样性。
  • 由于 Inception 分数不能反映图像和文本描述之间的相关性,利用 R-precision 来衡量生成的图像与其对应的文本之间的相关性。

        定量结果如表 1 所示,最先进方法的和ControlGAN在CUB 和 COCO 数据集上的 Inception Score、R-precision 和 L_{2} 重建误差的数值对比。

表1 定量比较

        与最先进的方法相比,ControlGAN在 CUB 数据集上实现了更好的 IS 和 R 精度值,并且在 COCO 数据集上具有具有竞争力的性能。这表明ControlGAN方法可以生成具有更好多样性的高质量图像,这在语义上与文本描述对齐。

        为了进一步评估模型是否可以生成可控结果,作者计算了从原始文本生成的图像与表1所示的修改后的文本生成的图像之间的L_{2}重建误差。与其他方法相比,ControlGAN的重构误差明显较低,这表明ControlGAN可以更好地保留原始文本生成的图像中的内容。

3.3.2 定性评估

        在图 4 中展示了定性比较。根据修改给定的文本描述,ControlGAN可以成功地准确地操纵特定的视觉属性。此外,ControlGAN方法甚至可以处理分布外查询,例如,图 4 的最后两列所示的河上的红斑马。

        上述所有都表明ControlGAN方法可以独立操作不同的视觉属性,这证明了ControlGAN方法在解开文本到图像生成的视觉属性方面的有效性。(图4中,奇数列显示原始文本,偶数列显示修改后的文本。最后两个是分布外的情况。)

图4 CUB和COCO数据集的定性结果

什么是分布外的情况?

        当模型在训练过程中学习到了这个分布内的数据模式后,如果遇到了来自不同分布的数据,这些数据就被称为分布外数据。例如,一个在白天图像数据上训练的图像分类模型,夜晚图像(与白天图像具有不同的特征分布)对于该模型而言可能就是分布外数据。

        图 5 显示了 ControlGAN、AttnGAN和 StackGAN++ 的视觉比较。可以观察到,当文本被修改时,两种比较方法更有可能生成新的内容,或者更改一些与修改后的文本无关的视觉属性。

例如,如前两列所示,当修改颜色属性时,StackGAN++ 改变了鸟的姿势,AttnGAN 生成新的背景。相比之下,ControlGAN方法能够准确地操纵与修改后的文本对应的图像生成部分,同时保留与不变文本相关的视觉属性。(图5中,奇数列显示原始文本,偶数列显示修改后的文本)

图5 CUB和COCO数据集上三种方法的定性比较

        在COCO数据集中,ControlGAN模型再次取得了比图5所示的更好的结果。例如,如最后四列所示,比较方法不能保持物体的形状,甚至无法生成合理的图像。

COCO 上的结果不如 CUB 数据集的原因:

        一般来说,COCO 上的结果不如 CUB 数据集。将此归因于数据集中的少数文本图像对和更抽象的字幕。尽管 COCO 中有很多类别,但每个类别只有几个示例,字幕主要集中在对象类别上,而不是详细描述,这使得文本到图像的生成更具挑战性。        

3.4 消融实验

3.4.1 通道注意机制的有效性

        ControlGAN模型实现了生成器中的通道注意,以及空间注意力,以生成逼真的图像。为了更好地理解注意力机制的有效性,作者可视化了不同阶段的中间结果和相应的注意力图。

  • 顶部:阶段 3 特征通道的可视化。右上角的数字是通道数,等式1中相关性最高的词 \alpha _{i,j}与通道显示在图像下方
  • 底部:第 3 阶段产生的空间注意力

图6 显示了与不同语义相关的几个特征图通道

        通过实验发现,通道注意对象的语义部分密切相关,而空间注意主要关注颜色描述图6通道注意模块  为 与描述鸟部分的单词语义相关的通道  分配较大的相关值。

这种现象通过图 7所示的消融研究进一步验证:

  • 在没有通道注意的情况下,当修改与鸟部分相关的文本时,ControlGAN模型无法生成可控的结果。
  • 有通道注意力的情况下,ControlGAN模型可以生成更好的可控结果。

图7 通道注意的消融研究

3.4.2 词级判别器的有效性

        为了验证词级鉴别器的有效性,首先进行了消融研究,即ControlGAN模型在没有词级鉴别器的情况下进行训练,如图8所示。

图8 词级鉴别器的消融研究

        然后通过用文本自适应鉴别器替换作者的鉴别器来构建基线模型,该鉴别器还探索了图像特征和单词之间的相关性,视觉比较如图9所示。

图9 词级鉴别器和文本自适应鉴别器之间的比较

        可以很容易地观察到,比较的基线无法操纵合成图像(图9第一行)。例如,如前两列所示,修改后的文本生成的鸟形状完全不同,背景也发生了变化。这是因为文本自适应鉴别器使用全局池化层提取图像特征,可能会丢失重要的空间信息。

3.4.3 感知损失的有效性

        ControlGAN模型在没有感知损失的情况下进行训练,如图 10所示。

图10 感知损失的消融研究

        在没有感知损失的情况下,从修改后的文本生成的图像很难保留与未修改文本相关的内容,这表明感知损失可以潜在地对图像生成引入更严格的语义约束,并有助于减少所涉及的随机性。

4 优缺点

        ControlGAN可以基于自然语言描述生成图像的生成和操作。

        ControlGAN可以成功地解开不同的视觉属性,并允许准确地操纵合成图像的部分,同时保留其他内容的生成。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyexcel常见问题分析

文章目录 一、读取数字多了很多小数位的精度问题 一、读取数字多了很多小数位的精度问题 浮点型转成BigDecimal的时候会出现精度问题,例如 这儿设置的实体类对象类型是String,默认用到的是StringNumberConverter转换器 2.1.4 版本 public class Strin…

【无人机设计与技术】四旋翼无人机的建模

摘要 本项目的目标是通过 Simulink 建模和仿真,研究四旋翼无人机的建模、姿态控制、定点位置控制及航点规划功能。无人机建模包含了动力单元模型、控制效率模型和刚体模型,并运用这些模型实现了姿态控制和位置控制。姿态控制为无人机的平稳飞行提供基础…

计算机视觉实战项目4(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

往期热门项目回顾: 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上-俯卧撑计数…

在VMware虚拟机上部署polardb

免密登录到我们的虚拟机之后,要在虚拟机上部署polardb数据库,首先第一步要先克隆源码: 为了进SSH协议进行传输源码需要先进行下面的步骤: 将宿主机上的私钥文件复制到虚拟机上 scp "C:\Users\waitw\.ssh\id_rsa" ann…

ThinkPHP发送邮件教程:从配置到发送指南!

ThinkPHP发送邮件功能实现策略?Thinkphp如何发邮件? ThinkPHP作为一个流行的PHP框架,提供了强大的邮件发送功能,使得开发者可以轻松地在应用中集成邮件发送功能。AokSend将详细介绍如何在ThinkPHP中配置和发送邮件。 ThinkPHP发…

【Linux-基础IO】如何理解Linux下一切皆文件磁盘的介绍

目录 如何理解Linux系统上一切皆文件 1.物理角度认识磁盘 2.对磁盘的存储进行逻辑抽象 磁盘寻址 3.磁盘中的寄存器 如何理解Linux系统上一切皆文件 计算机中包含大量外设,操作系统想要管理好这些外设,就必须对这些外设进行先描述再组织&#xff0c…

【Linux 23】线程池

文章目录 🌈 一、线程池的概念🌈 二、线程池的应用场景🌈 三、线程池的实现 🌈 一、线程池的概念 线程池 (thread pool) 是一种利用池化技术的线程使用模式。 虽然创建线程的代价比创建进程的要小很多,但小并不意味着…

一篇文章快速学会docker容器技术

目录 一、Docker简介及部署方法 1.1Docker简介 1.1.1什么是docker 1.1.2 docker在企业中的应用场景 1.1.3 docker与虚拟化的对比 1.1.4 docker的优势 二 、部署docker 2.1 容器工作方法 2.2 部署第一个容器 2.2.1 配置软件仓库 2.2.2 安装docker-ce并启动服务 2.2.…

【AIGC】ChatGPT提示词解析:如何生成爆款标题、节日热点文案与完美文字排版

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯情绪化的吸睛爆款标题提示词使用方法 💯紧跟节日热点选题文案提示词使用方法 💯高效文字排版技巧提示词使用方法 💯小结 &#x1f4af…

数据结构-链表笔记

移除节点 203. 移除链表元素 - 力扣(LeetCode) /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListN…

Oracle数据库体系结构基础

关于Oracle体系结构 基于Oracle11g体系结构 目标: 了解Oracle体系结构掌握逻辑存储结构掌握物理存储结构熟悉Oracle服务器结构熟悉常用的数据字典 Oracle数据库管理中的重要的三个概念 实例(instance):实例是指一组Oracle后台进程以及在服务器中分配…

安宝特分享 | AR技术重塑工业:数字孪生与沉浸式培训的创新应用

在数字化转型的浪潮中,AR(增强现实)技术与工业的结合正在呈现新的趋势和应用延伸。特别是“数字孪生”概念的崛起,为AR技术在工业中提供了独特而创新的切入点。 本文将探索AR如何与数字孪生、沉浸式体验和实用案例相结合&#xf…

ResNet50V2:口腔癌分类

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 ResNet和ResNetV2对比 改进点:(a)original表示原始的ResNet的残差结构,(b)proposed表示新的ResNet的残差结构,主要差别就是(a)结构先卷积后进行BN和激活函数…

JAVAEE如何实现网页(jsp)间的数据传输?一文总结

刚刚接触到JAVAEE的WEB开发,解释不周的地方希望感谢指正!!! 情景如下: 我的使用是21版的IDEA,9.03版本的tomcat,来做一个示范。 构建项目 点击下一步 -> 完成,等待项目构建结束…

袋鼠云数据资产平台:数据模型标准化建表重构升级

数据模型是什么?简单来说,数据模型是用来组织和管理数据的一种方式。它为构建高效且可靠的信息系统提供了基础,不仅决定了如何存储和管理数据,还直接影响系统的性能和可扩展性。 想要建立一个良好的数据模型,设计时需…

Ubuntu开机进入紧急模式处理

文章目录 Ubuntu开机进入紧急模式处理一、问题描述二、解决办法参考 Ubuntu开机进入紧急模式处理 一、问题描述 Ubuntu开机不能够正常启动,自动进入紧急模式(You are in emergency mode)。具体如下所示: 二、解决办法 按CtrlD进…

在 Kali Linux 中安装 Impacket

步骤 1:更新系统 打开终端并确保你的系统是最新的: sudo apt update && sudo apt upgrade -y 步骤 2:安装依赖 在安装 Impacket 之前,你需要确保安装了 Python 和一些必要的依赖。通常,Kali 已经预装了 Pytho…

基于R语言机器学习遥感数据处理与模型空间预测

随机森林作为一种集成学习方法,在处理复杂数据分析任务中特别是遥感数据分析中表现出色。通过构建大量的决策树并引入随机性,随机森林在降低模型方差和过拟合风险方面具有显著优势。在训练过程中,使用Bootstrap抽样生成不同的训练集&#xff…

C++ set,multiset与map,multimap的基本使用

1. 序列式容器和关联式容器 string、vector、list、deque、array、forward_list等STL容器统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间一般没有紧密的关联关系,比如交换一下,他依旧是序列式容器。顺…

reverse--->恶意代码分析(第一次接触)。

学习笔记。 前言:第一次接触,朋友发给我的。 取自:22年信息安全管理与评估二阶段。 要求: 下载 查壳 32ida打开。 先上微步云沙箱看看: 样本报告-微步在线云沙箱 (threatbook.com)https://s.threatbook.com/repor…