【深度学习】Semantically Multi-modal Image Synthesis

Posted by ShawnD on March 22, 2021

Abstract

在本文中,我们专注于语义多模态图像合成(SMIS)任务,即在语义级别生成多模态图像。先前的工作试图使用多个特定类的生成器,以限制其在具有少量类的数据集中的使用。我们进一步提出了一种新颖的组减少网络(GroupDNet),它利用生成器中的组卷积并逐渐减少解码器中卷积的组数。因此,GroupDNet在将语义标签转换为自然图像方面具有更大的可控性,并且对于具有很多类的数据集具有合理的高质量收益。在几个具有挑战性的数据集上进行的实验证明了GroupNet在执行SIMS任务方面的优越性。我们还表明GroupDNet能够执行各种有趣的综合应用程序。 可以在以下位置找到代码和模型:https://github.com/Seanseattle/SMIS

Introduction

语义图像合成(Semantic image synthesis)是一种将语义标签转换为自然图像的方法,在现实生活中有着广泛的应用,受到了社会各界的广泛关注。它本质上是一个一对多映射问题。无数可能的自然图像对应于一个单一的语义标签。以前的工作采用了不同的策略:采用变分自动编码器的思想[36,56,2,11],在训练时引入噪声[19],构建多个子网络[10],包括实例级特征嵌入[41]等。虽然这些方法在提高图像质量和扩展更多应用方面取得了卓越的成就,但我们进一步特别关注一个特定的多模态图像合成任务,该任务增加了控制生成结果的灵活性。

想象一下用人类解析图的内容创建场景。借助于图像翻译模型的语义,可以将解析图转换为真实的人物图像。总体上看起来不错,但上衣不适合你的口味。然后问题来了要么这些模型不支持多模态合成,要么当这些模型改变上衣,其他部分相应地变化。这两个都不符合你的意图。总之,这种用户可控制的内容创建场景可以解释为执行一项任务,该任务在语义级别生成多模态结果,而其他语义部分不受影响。我们把这个任务总结为:语义多模态图像合成(SMIS)。如图1所示,对于每个语义,我们都有其特定的控制器。通过调整特定类的控制器,仅相应地更改相应的区域。

Figure 1: 语义多模态图像合成(SMIS)任务的演示。图像上方每列的文本表示整个列中正在变化的语义区域。第一行代表输入标签,其余行是通过我们的方法生成的图像。

一个直观的解决方案是为不同的语义构建不同的生成网络,然后通过融合不同网络的输出来生成最终的图像。它与[10]的整体方案非常相似,后者侧重于肖像编辑。然而,随着种类数量的增加, 这种方法很快就会面临性能下降、训练时间线性增加和计算资源消耗不断增加的问题。

为了使网络更加优雅,我们创造性地将生成器中的所有规则卷积替换为组卷积,从而将生成过程统一到一个模型中。

Figure 4: GroupDNet与其他基准模型之间的定性比较。前两行表示通过更改其上衣隐编码的不同模型的结果,而后两行表示其在更改裤子隐编码的结果。请注意,对于那些没有类特定控制器的模型(例如VSPADE),我们将更改其整体隐编码以生成不同的图像。当卷积的组数等于类的数量时,我们的策略在数学上和函数上等价于[10]。然而,我们采用的另一种策略是,设置不同的路径,在前向过程中减少解码器卷积中的组数。我们观察到,不同的类之间有内在的相关性,例如,草和树叶的颜色应该是高度相似的。在这种情况下,逐步合并组使模型有足够的能力在不同的类之间建立相互关联,从而提高整体图像质量。此外,当数据集的类数很大时(如ADE20K[53]),该策略也大大缓解了计算消耗问题。我们称配备这两种策略的发生器为群递减网络(GroupDNet)。为了评估GroupDNet在SMIS任务中的性能,我们提出了两个新的度量标准:平均特定类多样性(mCSD)和平均其他类多样性(mOCD)。当某些语义部分变化很大而其他部分保持不变时,mCSD度量往往保持较高的值,而mOCD往往保持较低的值。

我们在几个具有挑战性的数据集上进行了实验:DeepFashion[30]、Cityscapes[5]和ADE20K[53]。结果表明,我们的GroupDNet在生成过程中引入了更多的可控性,从而产生语义上的多模态图像。此外,GroupDNet在图像质量方面保持了与以前最先进方法的竞争力,显示了GroupDNet的优越性。 此外,GroupDNet在生成过程中引入了许多可控性,并具有多种有趣的应用,如外观混合、语义操作和风格变形。

2. Related work

Generative models. 生成性对抗网络(GANs)[9],由一个生成器和一个鉴别器组成,具有惊人的能力,即使在非常具有挑战性的数据集上也能生成清晰的图像[9, 21, 3, 22]。 变分自动编码器[24]包含一个编码器和一个解码器,并且要求编码器产生的隐编码符合高斯分布。其结果通常表现出很大的多样性。一些方法[2]在模型中结合了VAE和GAN,产生了逼真而多样的图像。

Conditional image synthesis. 条件生成对抗网络[34]激发了广泛的条件图像合成应用,如图像到图像的转换[19,17,41,55,27,29,15],超分辨率[26,20],域自适应[14,52],单模型图像合成[54,37,33,38],风格转换[16,7,20],人物图像生成[31,57,11]和从文本[48,49]合成图像等。我们致力于将条件语义标签转换为自然图像,同时在语义层次上为这项任务增加更多的多样性和可控性。

Multi-modal label-to-image synthesis. 在多模态标签到图像合成任务中,已经有许多工作[1,28,40]。Chen等人[4]避免使用GAN和利用级联优化网络生成高分辨率图像。Wang等人[41]在编码器的输出中添加了额外的实例级特征通道,允许对生成的结果进行对象级控制。Wang等人[40]使用另一种源图像作为风格样本来指导生成过程。Park等人[36]将VAE整合到他们的网络中,使生成器能够产生多模态图像。Li等人[28]采用隐式最大似然估计框架来缓解GAN的模式崩溃问题,从而鼓励多样化的输出。Bansal等人[1]使用经典的工具,以指数方式将画廊的形状,环境和部分与语义标签输入进行匹配,从而产生不同的结果。与这些作品不同,我们专注于语义多模态图像合成,它要求在语义级别而不是全局级别具有细粒度的可控制性。Gu等人[10]为每个人脸组成部分构建了多个自动编码器,以提取不同的组件表示,然后将其合并到下一个前景生成器中在人像编辑任务中。我们的工作与这项工作高度相关,因为这两种方法都旨在通过处理具有不同参数的不同类来应对SMIS任务。然而,我们独特的设计逐渐减少解码器中的组数,使我们的网络能够处理许多类的数据集,而这些方法可能无法处理。

Group convolution.. 以往的工作[25,44,51,32,43]表明组卷积有利于降低计算复杂度和模型参数,因此在轻量级网络中得到了广泛的应用。Ma等人[32]提到,过度使用组卷积会导致较大的内存访问成本(MAC)。虽然在网络中使用小的分组卷积甚至不使用分组卷积是理想的,但是我们的实验表明,在解码器中完全避免分组卷积对于SMIS任务的性能是有问题的。此外,我们的减少组数策略也有效地缓解了巨大的MAC问题,使其适用于实际应用。

Semantically multi-modal image synthesis

Problem definition

用 $M$ 表示一个语义分割mask。 假设数据集中有 $C$ 个语义类。 $H$ 和 $W$ 分别表示 图像的高和宽。 作为一种非常直接的方式进行标签到图像的翻译,生成器 $G$ 需要 $M$作为 条件输入 生成 图像。然而,为了支持多模态生成器,我们需要另一个输入源来控制生成器的多样性。受到VAE[24]的启发, 我们通常采用编码器提取隐编码 $z$ 作为控制器。 接收到上面两个输入, 图像输出 $O$ 可以通过 $O = G(Z, M)$ 产生。 但是,在语义多模态图像合成(SMIS)任务中,我们旨在通过干扰特定于类的隐编码来产生语义上多样化的图像,这些隐编码独立地控制了其对应类的多样性。

Challenge

对于SMIS任务,关键是将隐编码划分为一系列特定类的隐编码,每个隐编码仅控制特定语义类的生成。传统的卷积编码器不是最佳选择,因为所有类的特征表示都在内部隐藏在隐编码中。即使我们有特定于类的隐编码码,在如何利用这些编码方面仍然存在问题。正如我们将在实验部分中说明的那样,仅用特定类的编码替换SPADE [36]中的原始隐编码对处理SMIS任务的能力有限。这种现象启发我们,我们需要在编码器和解码器中都进行一些体系结构修改,以更有效地完成任务。

GroupDNet

基于以上分析,我们现在提供有关此任务的解决方案-组减少网络(GroupDNet)的更多详细信息。考虑到其在标签到图像生成任务中的卓越性能,GroupDNet的主要体系结构从SPADE [36]中汲取了设计灵感。GroupDNet的主要修改是将典型的卷积替换为组卷积[25],以实现特定于类的可控性。在下文中,我们将首先简要概述我们的网络体系结构,然后描述我们在网络的不同组件中所做的修改。

Overview. 如图2所示, GroupDNet由一个编码器和一个解码器组成。 受到 VAE 和 SPADE 的启发, 编码器 $E$ 产生一个隐编码 $Z$, 它在训练期间服从高斯分布 $N(0, 1)$。 在测试期间, 编码器 $E$ 弃用, $ Z$ 从高斯分布随机采样编码。 为了实现这一目标,我们使用重新参数技巧[24]在训练过程中使得损失函数可微。具体地,编码器通过两个全连接层预测均值向量和方差向量以表示编码的分布。编码器分布和高斯分布可以通过KL散度损失最小化:

\[L_{KL} = D_{KL}(E(I) \| N(0, 1))\]

其中 $D_{KL}$ 表示 KL 散度。

Figure 2: 我们生成器 (GroupDNet) 的结构。 “GConv” 表示 组卷机 以及 “Sync BN”表示同步batch normalization。$\mathcal{G}^i$ 表示 第 $i^{th}$ 层 的组数。注意, 对于GroupDNet, $i \geq 1$, 有 $\mathcal{G}^i \geq \mathcal{G}^{i+1}$。

Encoder. 用 $M_c$ 表示 类 $c$ 的二值mask 并且 用 $X \in R^{H \times W}$ 表示 输入图像。 将 $X$ 分成不同语义类的图像, 我们有:

\[X_c = M_c · X\]

此操作减少了对 $E$ 处理特征解纠缠的依赖,节省了更大的容量来精确地编码特征。编码器的输入是这些图像的拼接:$S = \mathop{cat}\limits_c X_c$。 $E$ 中 所有的卷积 有着相同的组数, 也就是类的总数量 $C$。 从输入端和体系结构端,我们将不同的类解耦为相互独立的类。结果是, 编码的隐向量 $Z$ 由 所有类的隐编码 $Z$ ($Z$的离散部分) 组成。 在解码阶段, $z_c$充当$c$ 类的控制器。 与产生两个向量作为高斯分布的均值和方差预测的一般方案不同,我们的编码器通过卷积层产生均值映射和方差映射,以大量保留隐编码 $Z$ 中的结构信息。

Decoder. 一旦接收隐编码 $Z$, 解码器在语义标签的引导下将其转换为自然图像。问题是如何利用语义标签来正确引导解码阶段。有几种方法可以达到这个目的,例如将语义标签连接到输入或解码器的每个阶段上的条件。前者不适合我们的情况,因为解码器输入的空间大小非常有限,会严重丢失语义标签的许多结构信息。我们选择后者,并选择一个典型的先进模型SPADE生成器[36]作为我们网络的主干。如[36]所述,SPADE是一些条件规范化层的更一般形式[6,16],并且在语义图像合成中显示出产生像素级引导的优越能力。按照在生成器中使用所有组卷积的一般思想,我们将SPADE模块中的卷积层替换为组卷积,并将这个新的条件模块称为条件组规范化(CG Norm),如图2所示。然后通过动态合并CG-Norm和组卷积,构成一个称为条件组块(CG block)的网络块。CG块的体系结构如图2所示。

同样的, 用 $F^i \in R^{H^i \times W^i}$ 表示 解码器网络的 第 $i^{th}$ 层特征图, $\mathcal{G}^i$ 表示 第 $i^{th}$ 层的组数。 此外, $N, D^i, H^i$ 和 $W^i$ 分别是特征图的batch size, 通道数量, 高和宽。 如图2所示, CG-Norm内部的组卷积将会将语义标签输出转化为像素级的调整参数 $\gamma \in R^{D^i \times H^i \times W^i}$ 以及 $\beta \in R^{D^i \times H^i \times W^i}$。 特征输入 $F^i$ 将会首先通过 batch normalization层 规范化 $F^i$:

\[BN(F^i) = \gamma_{BN} (\frac{F^i - \mu(F^i)}{\sigma(F^i)}) + \beta_{BN}\]

其中 $\gamma_{BN}, \beta_{BN} \in R^D$ 是从数据中学到的仿射参数。 $\mu_d$ 和 $\sigma_d$ 对每个通道 跨 batch size 和 空间维度 计算得到:

\[\mu_d (F^i) = \frac{1}{NH^iW^i} \sum_{n=1}^N \sum_{h=1}^{H^i} \sum_{w=1}^{W^i} F_{ndhw}^i\] \[\sigma_d(F^i) = \sqrt{\frac{1}{NH^iW^i} \sum_{n=1}^N \sum_{h=1}^{H^i} \sum_{w=1}^{W^i} (F^i_{ndhw})^2 - (\mu_d(F^i))^2}\]

然后, 输出 $BN(F^i)$ 和之前预测出的像素级的 $\gamma$ 和 $\beta$ 进行运算, 产生出一个有语义信息嵌入新的特征图 $F^o$。

\[\begin{aligned} F^o &= \gamma · BN(F^i) + \beta \\ &= \gamma · \gamma_{BN} (\frac{F^i - \mu(F^i)}{\sigma(F^i)}) + (\gamma · \beta_{BN} + \beta) \end{aligned}\]

当 $i$ 变大, 组数逐渐减少为 1。 最后特征被映射为一个三通道的RGB图像 $O$。

Other solutions

除了GroupDNet之外,执行SMIS任务的一个简单解决方案是构建一组编码器和解码器,每个编码器和解码器都关注于特定的语义类,如图3(a)所示。其基本思想是独立处理每个类,然后融合不同子网络的结果。为简单起见,我们将这种网络称为 Multiple Networks (MulNet)。另一种类似的方法是在整个网络中使用组卷积[25]。 如图3(b)所示,将编码器和解码器中的所有卷积替换为组卷积[25],并将组编号设置为表示组网络(GroupNet)的类编号。如果每个组中的通道数等于MulNet单个网络中相应层的通道 数,则理论上等价于MulNet。图3(c)显示了我们的GroupDNet。GroupDNet和GroupNet的主要区别是解码器中的组数是单调递减的。虽然这一修改看似简单,但带来了几个明显的好处,主要体现在以下三个方面:

Class balance. 值得注意的是,不同的类具有不同数量的实例[30、5、53],并且需要不同的网络容量来建模这些类。MulNet和GroupNet很难找到一个合适的网络设计来平衡所有的类。更重要的是,并不是所有的类都出现在一个图像中。在这种情况下,MulNet和GroupNet不可避免地会浪费大量的计算资源,因为它们必须在训练或测试期间激活所有类的所有子网络或子组。然而,在GroupDNet中,不同的类共享参数,极大地缓解了类不平衡问题。

Class correlation. 在自然界中,一个语义类通常与其他类有关系,如草的颜色和树叶的颜色相似,建筑物影响附近道路上的阳光等。为了产生合理的结果,MulNet和GroupNet在解码器的末尾都有一个融合模块(在我们的例子中有几个规则卷积),用于将不同类别的特征合并到一个图像输出中。一般来说,融合模块粗略地考虑了不同类之间的相关性。然而,我们认为这是不够的,因为不同类别的相关性太复杂了,不能通过使用这样一个简单的具有有限感受野的成分来充分探讨。另一种方法是使用一些网络模块(如self-attention block)来捕获图像的长距离依赖性,但其prohibitive的计算妨碍了其在此类场景中的使用[47]。然而,GroupDNet将这些关系贯穿在整个解码器中;因此,它更准确、更彻底地利用相关性。结果表明,GroupDNet生成的图像比其他两种方法生成的图像更真实、更好。

GPU memory. 为了保证MulNet的每个网络或GroupNet中每个类的分组参数都有足够的容量,总的通道数将随着类数的增加而显著增加。在某种程度上,图形卡的最大GPU内存将不再能够容纳一个样本。正如我们在ADE20K数据集[53]上粗略估计的那样,即使批量大小设置为1,一个Tesla V100图形卡也无法容纳足够容量的模型。然而,GroupDNet中的问题不那么严重,因为不同的类共享参数,因此不需要为每个类设置那么多通道。

Figure 3: MulNet(a), GroupNet (b) 和 GroupDNet(c)。 注意 MulNet 和 GroupNet 的最后一层的融合模块, 它由几个常规卷积层组成, 用于融合不同的类。

Loss function

我们采用了SPADE的损失函数:

\[L_{full} = arg \min_G \max_D L_{GAN} + \lambda_1 L_{FM} + \lambda_2 L_P + \lambda_3 L_{KL}\]

$L_{GAN}$ 是 GAN 损失的hinge版本, $L_{FM}$是真实图像和生成图像的特征匹配损失。 具体来说,我们使用多层判别器从真实和合成图像中提取特征。然后我们计算这些配对特征的 $L_1$ 距离。 相似地, $L_p$ 是用于风格迁移提出的感知损失。 使用预训练的VGG网络得到配对的中间特征图, 我们我们计算配对特征图的 $L_1$ 距离。 $L_{KL}是 KL散度, 我们设置 $\lambda_1 = 10, \lambda_2 = 10, \lambda_3=0.05$ , 和SPADE相同。

Figure 5: 与SOTA标签到图像方法的定性比较。图像从上到下分别代表在DeepFashion,Cityscapes和ADE20K上进行的实验。

Figure 6: 所提出方法的典型应用。 (a) 演示语义多模式图像合成(SMIS)任务。(b) 我们的SMIS模型在外观混合中的应用。 我们的模型从不同的来源提取不同语义类别的风格,并通过将这些语义风格与给定的语义mask组合来生成混合图像。(c) 我们的SMIS模型在语义处理中的应用。(d)我们的SMIS模型在图像外推中的应用。