Cross-Modal Contrastive Learning for Text-to-Image Generation
公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)
目录
文本到图像合成系统的输出应该是连贯、清晰、具有高语义保真度的照片逼真场景,与其条件文本描述相一致。我们的跨模态对比生成对抗网络(Cross-Modal Contrastive Generative Adversarial Network,XMC-GAN)通过最大化图像和文本之间的相互信息来应对这一挑战。它通过多个对比损失来捕捉跨模态和内部模态的对应关系。XMC-GAN 使用一种注意力自调制生成器,强化文本与图像的对应关系,以及一种对比鉴别器,既充当评论家又作为对比学习的特征编码器。XMC-GAN的输出质量明显优于先前的模型,如我们在三个具有挑战性的数据集上展示的。在 MS-COCO 上,XMC-GAN 不仅将最先进的 FID 从 24.70 提高到 9.33,而且更重要的是,人们更倾向于选择XMC-GAN,对于图像质量为 77.3%,对于图像文本对齐为 74.1%,相较于其他三个近期的模型。XMC-GAN 还推广到具有更长、更详细描述的具有挑战性的 Localized Narratives 数据集,将最先进的FID从 48.70 提高到 14.12。最后,我们在具有挑战性的 Open Images 数据上训练和评估XMC-GAN,建立了一个强大的基准 FID 分数为 26.91。
与其他类型的输入(例如素描和物体掩模)相比,描述性句子是一种直观且灵活的表达视觉概念以生成图像的方式。文本到图像合成的主要挑战在于从非结构化的描述中学习,并处理视觉和语言输入之间的不同统计属性。
生成对抗网络(GANs)[12] 使用了条件 GAN 的表述 [11] 在文本到图像生成方面取得了令人期待的结果[44,61,62]。AttnGAN [58] 提出了一个多阶段的细化框架,通过关注描述中的相关单词生成细致的细节。这些模型在单一领域数据集(例如鸟类 [56] 和花卉 [35])上生成高保真度的图像,但在包含许多对象的复杂场景(例如 MS-COCO [30] 中的场景)上表现困难。近期的方法[18,27,16,22] 提出了以对象驱动的层次化方法,明确地对图像中的对象实例进行建模。在给定文本描述的情况下,它们首先推断出一个语义布局(例如对象边界框、分割掩模或其组合),然后从布局生成图像。这些层次化方法在应用于现实场景时很繁琐;生成变成了一个多步骤的过程(从框到掩模到图像),模型需要更多精细的对象标签来训练。
我们研究在文本到图像合成的背景下进行对比学习,并证明一个简单的一阶段 GAN 在没有对象级注释的情况下可以胜过先前的以对象为驱动和多阶段方法。除了生成逼真的图像外,我们还希望(1)图像应该整体上与描述相匹配;(2)当它们以相同描述为条件时,生成的图像应该与真实图像相匹配;(3)单个图像区域应该是可识别的,并与句子中的词语一致。为了实现这些愿望并实现强大的语言对齐,我们提出通过对比学习最大化相应对之间的相互信息的方法。我们的方法,跨模态对比生成对抗网络(XMC-GAN),使用图像到句子、图像区域到单词以及图像到图像的对比损失,以强化生成图像与其标题之间的对齐关系(图 1)。我们的主要贡献包括:
XMC-GAN 一贯产生比先前模型更连贯和详细的图像。除了更大的逼真度(具有更清晰、更明确的对象),它们更好地捕捉了完整的图像描述,包括命名对象的存在和背景组合。
文本到图像合成。文本到图像合成通过深度生成模型,包括 pixelCNN [55, 45]、近似 Langevin 采样 [34]、变分自动编码器(VAEs) [21, 13] 和生成对抗网络(GANs) [12, 44],得到了迅速改进。GAN-based 模型特别展示了更好的样本质量 [61, 64, 58, 66, 59, 26, 52, 42, 24]。GAN-INT-CLS [44] 是第一个使用条件 GAN 进行文本到图像生成的模型。StackGAN [61, 62] 通过渐进生成不同分辨率的图像的粗到细的框架,提高了高分辨率合成的质量。AttnGAN [58] 引入了跨模态注意力以更好地捕捉细节。DM-GAN [66] 通过一个内存模块自适应地完善生成的图像,该模块写入和读取文本和图像特征。MirrorGAN [43] 通过在生成的图像上进行标题生成来强化文本-图像一致性。SD-GAN [59] 提出了单词级条件 batch normalization 和双编码器结构,并使用三元损失来改善文本-图像对齐。与三元损失相比,我们的对比损失不需要寻找信息丰富的负例,因此降低了训练复杂性。CP-GAN [28] 提出了一个以对象为导向的图像编码器和细粒度鉴别器。它生成的图像获得了高 Inception Score [46];然而,我们展示了当用更强大的FID [15] 指标和人工评估进行评估时其性能较差(见 Sec. 6.1)。为了创建最终的高分辨率图像,这些方法依赖于多个生成器和鉴别器以在不同分辨率生成图像。其他人提出了明确在推断语义布局之后生成不同对象的分层模型 [18, 16, 22]。这些方法的缺点是它们需要细粒度的对象标签(例如对象边界框或分割地图),因此生成是一个多步骤的过程。与这些多阶段和多步骤的框架相比,我们提出的 XMC-GAN 只有一个单一的生成器和鉴别器进行端到端训练,并生成质量更高的图像。
对比学习及其在 GAN 中的应用。对比学习是一种强大的自监督表示学习方案 [36, 14, 5, 57]。它通过将正对和负对进行对比,强制在不同的增强下图像表示的一致性。在几个对抗训练场景下进行了探索 [25, 65, 9, 41]。Cntr-GAN [65] 在无条件图像生成中使用对比损失作为图像增强的正则化。ContraGAN [20] 探讨了类别条件图像生成的对比学习。DiscoFaceGAN [9] 引入对比学习以强化面部生成的解缠。CUT [39] 提出了基于补丁的对比学习,通过使用输入和输出图像中相同位置的正对来进行图像到图像的转换。与先前的工作不同,我们在文本到图像合成中使用了模态内(图像-图像)和跨模态(图像-文本和区域-单词)的对比学习(图 1)。
我们在下面描述 XMC-GAN 的损失和组件。请参见图 2。
文本到图像合成是一项有条件的生成任务。生成的图像应该既逼真又与给定的描述对齐。为了实现这一目标,我们建议最大化相应对之间的相互信息:(1) 图像和句子,(2) 生成的图像和具有相同描述的真实图像,以及(3) 图像区域和单词。直接最大化相互信息是困难的(参见 Sec. 3.1),因此我们通过优化对比(即 InfoNCE)损失来最大化相互信息的下限。
图像-文本对比损失。给定图像 x 及其相应的描述 s,基于余弦相似度,我们定义得分函数,按照先前对比学习中的工作 [14, 5, 36] 进行:
并且 τ 表示一个温度超参数。f_img 是一个图像编码器,用于提取整体图像特征向量,而 f_sent 是一个句子编码器,用于提取全局句子特征向量。这将图像和句子的表示映射到一个共同的嵌入空间 R^D。图像 x_i 和其配对的句子 s_i 之间的对比损失计算如下:
这种形式的对比损失也被称为归一化的温度缩放交叉熵损失(normalized temperature-scaled cross entropy loss,NT-Xent)[5]。
具有相同描述的生成图像和真实图像之间的对比损失。该损失也与 NT-Xent 有关。主要的区别在于共享的图像编码器 f'_img 提取了实际图像和生成图像的特征。两个图像之间的得分函数为 S_img(x,? ~x) = cos(f'_img(x),?f'_img(~x)) / τ。实际图像 x_i 和生成图像 G(z_i, s_i) 之间的图像-图像对比损失为:?
图像区域和单词之间的对比损失。各个图像区域应该与输入描述中对应的单词一致。我们使用注意力 [58] 来学习图像 x 中的区域与句子 s 中的单词之间的连接,而无需需要将单词和区域对齐的细粒度注释。首先,我们计算句子中所有单词与图像中所有区域之间的成对余弦相似性矩阵;然后,我们计算单词 w_i 对区域 r_j 的软注意力 α_i,j 如下:
其中,f_word 和 f_region 分别代表单词和区域特征编码器,R 是图像中的总区域数,而 ρ_1 是一个用于减少软注意力熵的锐化超参数。第 i 个单词的对齐区域特征定义为
然后,图像 x 中所有区域与句子 s 中所有单词之间的得分函数可以定义为:?
其中,T 是句子中的总单词数。 ρ_2 是一个超参数,用于确定最对齐的单词-区域对的权重,例如,当 ρ_2 → ∞ 时,得分函数近似为
最后,图像 x_i 中的单词和区域与其对齐的句子 s_i 之间的对比损失可以定义为:?
我们提出了一个一阶段的生成器,直接生成所需分辨率的图像。这比以前的多阶段生成器要简单得多,因为它们在多个不同的分辨率上创建图像。我们首先从标准的高斯分布中采样噪声 z。我们从预训练的 BERT [10] 模块中获得全局句子嵌入 e_s 和单词嵌入 e_w。将 e_s 和 z 连接起来形成全局条件,然后通过多个上采样块(详见附录)生成一个 16 x 16 的特征图。全局条件也用作计算条件批量归一化层中的尺度参数 γ 和偏移参数?β 的条件。这个公式也被称为自调制 [6]。
自调制层提高了隐特征与条件输入的一致性,但对于每个子区域缺乏更细致的细节。为了生成细粒度、可识别的区域,我们提出了注意力自调制层。具体来说,除了随机噪声 z 和全局句子嵌入 e_s 外,我们修改了注意机制 [58] 以计算单词-上下文向量作为每个子区域的附加调制参数。对于具有特征 h_j 的第 j 个区域,单词-上下文向量 c_j 为:
其中,T 是句子中的总单词数, ρ_0 是一个锐化的超参数。然后,第 j 个区域的调制特征 h'_j 可以定义为:
其中,μ 和 σ 是从聚合 batch 和空间维度得出的估计均值和标准差。γ_j(·) 和 β_j(·) 代表任何函数逼近器;在我们的工作中,我们简单地使用线性投影层。生成器的更多细节可以在附录中找到。
我们提出的鉴别器有两个角色:(1) 充当评论家,确定输入图像是真实的还是虚构的;(2) 充当编码器,计算全局图像和区域特征以用于对比损失。图像通过几个下采样块传递,直到其空间尺寸缩小到 16x16(见图 2,左下角)。然后,应用 1x1 卷积以获得区域特征,其中特征维度与单词嵌入的维度一致。原始图像特征通过另外两个下采样块和一个全局池化层。最后,一个投影头计算对抗损失的 logit,另一个投影头计算图像-句子和图像-图像对比损失的图像特征。请注意,仅使用真实图像及其描述来训练这些鉴别器投影头是重要的。原因是生成的图像有时是不可识别的,尤其是在训练开始时。使用这样的生成图像和句子对会损害图像特征编码器投影头的训练。因此,对来自虚构图像的对比损失仅应用于生成器。除了鉴别器投影层之外,我们还使用一个预训练的 VGG 网络 [49] 作为图像编码器,用于额外的监督图像-图像对比损失(见 Sec. 6.2)。算法1 总结了XMC-GAN的训练过程。为简单起见,在我们的实验中,我们将所有对比损失系数(算法 1 中的 λ_1、λ_2、λ_3)设置为 1.0。
我们在三个具有挑战性的数据集上对XMC-GAN进行了全面评估(见表1概述)。
MS-COCO [30] 常用于文本到图像合成。每个图像配有 5 个简短的标题。我们遵循大多数先前的工作,使用 2014 年的划分(COCO-14)进行评估。
Localized Narratives [40] 包含了几个图像集的长篇图像描述。我们在 LN-COCO 上进行了结果基准测试,其中包含了 MS-COCO(COCO-17)2017 年划分中图像的叙述。这些叙述平均比 MS-COCO 标题长四倍,并且它们更加描述性(见图 4)。叙述还包含了口语转录所存在的不流畅之处。这些因素使得对于 LN-COCO 的文本到图像合成比 MS-COCO 更具挑战性。
我们还使用 LN-OpenImages 进行训练和评估,这是 Localized Narratives 的 Open Images [23] 划分。其图像既多样又复杂(平均有 8.4 个对象)。LN-OpenImages 也比 MS-COCO 和 LN-COCO 大得多(见表 1)。据我们所知,我们是第一个为 Open Images 训练和评估文本到图像生成模型的研究者。XMC-GAN 能够生成高质量的结果,并为这项非常具有挑战性的任务设立了强有力的基准。
我们遵循先前的工作,通过生成 30,000 个随机标题的图像来报告验证结果。我们使用多个度量综合评估。?
图像质量。我们使用标准的自动化指标来评估图像质量。Inception Score(IS)[46] 计算了在给定预训练图像分类器的条件类分布和边际类分布之间的 KL 散度。Fr′echet Inception Distance(FID)[15] 是生成图像和真实图像的 Inception [51] 特征拟合的两个多变量高斯分布之间的 Fr′echet 距离。虽然 IS 和 FID 都已被证明与人类对生成图像质量的判断相关,但 IS 可能不够信息丰富,因为它容易过拟合,并且可以通过简单的技巧进行操纵,以实现更高的分数 [2, 17]。我们的结果进一步强调了这一点(Sec. 6.1),显示 FID 与人类对逼真度的判断更好地相关。?
文本-图像对齐。遵循先前的工作 [58, 27],我们使用 R-precision 来评估生成的图像是否可以用于检索其条件描述。然而,我们注意到先前的工作使用来自 AttnGAN [58] 的图像-文本编码器计算 R-precision,并且许多其他方法在训练期间将这些编码器作为优化函数的一部分使用。这会使结果出现偏差:许多生成的模型报告的 R-precision 分数明显高于真实图像。为了缓解这个问题,我们使用在 Conceptual Captions 数据集 [48] 中对真实图像进行预训练的图像-文本双编码器 [38],该数据集与 MS-COCO 不相交。我们发现使用独立编码器计算 R-precision 更好地与人类判断相关。
标题检索指标评估整个图像是否与标题匹配。相反,语义对象准确性(Semantic Object Accuracy,SOA)[17] 评估图像中各个区域和对象的质量。与先前的工作一样,我们报告 SOA-C(即每个类别的图像中检测到所需对象的百分比)和 SOA-I(即检测到所需对象的图像的百分比)。SOA 的更多细节可以在 [17] 中找到。SOA 最初是为 COCO-14 设计的,它可能需要很长时间来计算,因为它需要为每个 MS-COCO 类标签生成多个样本。我们使用官方代码来计算表 2 中报告的指标,但在我们计算 30,000 个随机样本的结果的 LN-COCO 和其他消融实验中,我们进行了结果的近似。
人工评估。自动化指标在实验过程中对模型进行迭代时很有用,但它们不能替代人眼。我们对从1000 个随机选择的标题生成的图像进行了彻底的人工评估。对于每个标题,我们请 5 名独立的人类标注员根据(1)逼真度和(2)语言对齐性对生成的图像进行排名,从最好到最差。
COCO-14。图 3 显示了人工评估,将 XMC-GAN 与三个最近的强模型进行比较:CP-GAN [28]、SD-GAN [59] 和 OP-GAN [17]。给定由这四个模型生成的图像(匿名化并随机排序),注释员被要求根据质量从最好到最差对它们进行排名。逼真度和文本对齐性的判断是独立收集的。在这两个方面,XMC-GAN 都是明显的赢家:在逼真度比较中,其输出在 77.3% 的情况下被评为最佳,在文本对齐比较中为 74.1%。OP-GAN 排名第二,分别为 9.90% 和 9.70%。XMC-GAN 实现了这一点,同时它是一个更简单的单阶段模型,而 OP-GAN 是多阶段模型,需要对象边界框。对选定的图像的视觉检查(图 4)有力地显示了质量的大幅提升。与其他模型相比,XMC-GAN 的图像保真度更高,描绘的对象更清晰,场景更连贯。这也适用于更多的随机样本(请参阅附录)。
表 2 提供了全面的 COCO-14 自动化指标结果。XMC-GAN 将 FID 从 24.70 提高到 9.33,相对于排名第二的模型 OP-GAN [17],相对提高了 62.2%。在我们独立训练的编码器计算的 R-precision中,XMC-GAN 也优于其他模型(71% 对 59%),表明生成的图像对其所依赖的标题的保真度有很大提高,并与人类判断一致。尽管 CP-GAN 获得了更高的 IS 和 SOA 分数,但我们的人工评估和对随机选择的图像的视觉检查都表明,XMC-GAN 的图像质量要高得多。这可能是由于 IS 和SOA 不惩罚类内模态丢失(类内低多样性)的问题,即生成每个类别的 “完美” 样本的模型可以在IS 和 SOA 上取得良好的分数。我们的发现与其他研究 [27, 2] 一致,表明 FID 可能是衡量文本到图像合成质量的更可靠的度量标准。
LN-COCO。Localized Narratives [40] 包含更长的描述,这增加了文本到图像合成的难度(见 Sec. 5.1)。表 3 显示 XMC-GAN 相对于先前的工作提供了巨大的改进。与 TReCS [22] 相比,XMC-GAN 将 IS 和 FID 分别提高了 7.07 和 34.58。相对于 AttnGAN [58],它还将 R-precision 提高了 23.04%,表明文本对齐性更好。通过随机选择的输出的定性比较来支持这一点:XMC-GAN 的图像明显更清晰、更连贯(见图 4)。我们强调,TReCS 利用了 LN-COCO 的鼠标轨迹注释,将这种训练信号纳入 XMC-GAN 中将在未来进一步提升性能。?
LN-OpenImages。我们在 Open Images 数据集上训练 XMC-GAN,该数据集比 MS-COCO 更具挑战性,因为图像和描述更加多样化。XMCGAN 实现了 IS 为 24.90,FID 为 26.91,和 R-precision 为 57.55,并成功生成高质量图像(见附录)。据我们所知,XMC-GAN 是第一个在 Open Images 上训练和评估的文本到图像模型。其强大的自动化评分为这个具有挑战性的数据集建立了强有力的基准结果。
我们彻底评估了 XMC-GAN 的不同组件并分析了它们的影响。表 4 总结了我们在 COCO-14 验证集上的消融。为了研究 XMC-GAN 中使用的每个对比损失组件的影响,我们尝试了四种损失:(1)图像-句子,(2)区域-词,(3)使用鉴别器特征的图像-图像,以及(4)使用 VGG 特征的图像-图像。对于(3),我们使用鉴别器编码器投影(在表 4 中用 D 表示)提取图像特征。对于(4),我们从在 ImageNet 上预训练的 VGG-19 网络[49] 中提取图像特征。
个体对比损失。表 4 显示,与基线相比,使用任何对比损失都改善了所有指标。在实验过程中,我们还发现包括任何对比损失都极大地改善了训练稳定性。最大的改进来自跨模态图像-句子和区域-词对比损失,分别将 FID 从 39.28 提高到 19.25 和 24.38。与图像-图像内模态对比损失相比,例如仅包括鉴别器特征编码器(D)的损失仅将 FID 提高到 29.71。这些消融突显了跨模态对比损失的有效性:句子和词对比损失分别极大地改善了文本对齐度指标,同时提高了图像质量。
组合对比损失。组合对比损失提供了进一步的增益。例如,同时使用图像-句子和区域-词损失比单独使用(分别为 FID 19.25 和 24.38)获得更好的性能(FID 14.25)。这表明局部和全局条件是互补的。此外,同时使用跨模态损失(句子和单词)胜过内模态损失(D + VGG):FID 得分分别为14.25 和 21.14。这些结果进一步强调了跨模态对比学习的有效性。然而,跨模态和内模态对比损失也相辅相成:最佳的 FID 分数来自结合图像-句子、区域-词和图像-图像(VGG)损失。在使用图像-图像(D + VGG)损失时,IS 和文本对齐性能进一步提高。为了获得我们的最终结果(表2),我们使用所有 4 个对比损失训练一个模型(基础通道维度为 96)。?
更深的对比头。在无监督表示学习中 [5, 7],通常通过添加非线性层来提高性能。为了研究这一点,我们增加了鉴别器中投影头的深度。在假图像上的 FID 和对比准确度 [5] 的训练曲线如图 5 所示,跨足 1000 个时代。我们发现不使用额外的投影层可以获得最佳的 FID(12.61,与 2 层 MLP的 19.42 相比)。此外,我们还发现在投影头中添加更多层时,假图像上的对比准确度也会提高(从 76.56% 到 88.55%)。我们假设在这种配置中,鉴别器对对比学习任务过拟合,导致在对抗任务中表现较差,因此作为生成器的监督信号也更差。
注意力自调制。我们比较了两种生成器设置:(1) 在所有残差块中使用自调制层 [6],和 (2) 在输入分辨率大于 16x16 的块中使用注意力自调制层(见第 4.2 节)。表 5 显示,提出的注意力自调制层在所有指标上优于自调制层。
损失类型。在生成模型中经常使用的损失函数是在假图像和相应真实图像之间的 VGG [49] 输出上的 L2 损失。这也通常被称为感知损失 [19]。表 6 显示,对比损失在性能上优于这种感知损失。这表明,远离不匹配的样本比简单地拉近对齐的样本更有效。鉴于这种卓越的性能,用对比损失替代感知损失可能有助于其他生成任务。
在这项工作中,我们提出了一种跨模态对比学习框架,用于训练文本到图像合成的 GAN 模型。我们研究了几种跨模态对比损失,以强制图像和文本之间的对应关系。通过在多个数据集上进行人工和自动评估,XMC-GAN 相比先前的模型取得了显著的改进:它生成了更高质量的图像,更好地匹配其输入描述,包括对于长篇、详细的叙述。而且,它是一个更简单的端到端模型。我们相信这些进展是朝着从自然语言描述生成图像的创造性应用迈出的重要一步。
为改进本文到图像对齐,本文提出跨模态对比生成对抗网络(Cross-Modal Contrastive Generative Adversarial Network,XMC-GAN)。它通过多个对比损失(图像-文本,真实图-生成图,图像区域-句中词语)来捕捉模态间和模态内的对应关系。XMC-GAN 使用一种注意力自调制生成器,强化文本与图像的对应关系,以及一种对比鉴别器,既进行评判又作为对比学习的特征编码器。
XMC-GAN 的架构如图 2 所示。本文使用如下损失来生成与描述对齐且逼真的图像: