从文本描述中合成高质量的图像是计算机视觉中的一个挑战性问题,具有许多实际应用。现有的文本-图像方法生成的样本可以粗略地反映给定描述的含义,但是往往不包含必要的细节和物体生动的部分。在本文中,作者提出了Stacked Generative Adversarial Networks(StackGAN)生成基于文本描述的256 × 256照片真实图像。通过细化勾勒图像的过程将难题分解成更易处理的子问题:第一阶段GAN勾勒出原始形状和颜色基于给定文本描述的对象,产生低分辨率图像;第二阶段的GAN将第一阶段的结果和文字描述作为输入,并生成具有照片般逼真细节的高分辨率图像。第二阶段的GAN能纠正第一阶段结果中的缺陷,并通过细化过程增加很好的细节。为了改善合成图像的多样性并增加GAN训练的稳定性,作者引入了一种新的条件增强技术,鼓励平滑潜在的条件流形。在基准数据集上进行的实验和,以及与现有技术的对比表明,所提出的方法在产生以文本描述为条件的逼真图像方面有显着的改进。
从文本生成照片般逼真的图像是一个重要的问题,并且在照片编辑,计算机辅助设计等具有巨大的潜在应用。最近,生成对抗网络(GAN)[8,5,23] 在生成逼真图像上取得了很好的结果。根据给定的文本描述,Conditional GAN [26,24] 能够生成与文本含义高度相关的图像。
但是,要训练GAN从文本描述中生成高分辨率的照片般逼真的图像是非常困难的。简单的在最先进的GAN模型中添加更多的上采样层用于生成高分辨率图像(例如,256×256)的方法通常导致训练不稳定并产生无意义的输出(见 图1(c) )。 GAN生成高分辨率图像的主要困难在于自然图像的分布和隐含的模型分布在高维像素空间中可能不重叠[31,1]。随着分辨率的增加,这个问题愈发严重。 里德等人只成功地生成了合理的以文本描述为条件的64×64图像 [26] ,这些图像通常缺乏细节和生动的对象部分,例如鸟类的喙和眼睛。 此外,他们在不提供额外的对象注释的情况下无法合成更高分辨率(如128×128)的图像 [24] 。
图1 提出的StackGAN和单层vanilla GAN生成256×256图像的比较。
(a)给定的文本描述,StackGAN的第一阶段描绘粗糙的形状和物体的基本颜色,产生低分辨率的图像。
(b)StackGAN的第二阶段将第一阶段的结果和文本描述作为输入,并生成具有照片般逼真细节的高分辨率图像。
(c)Vanila 56×256 GAN的结果,只是对GAN-INT-CLS [26] 增加更多进行上采样的层数。如图所示,无法生成256×256分辨率的合理图像。
类似于人类画家的绘制方式,作者基于堆叠生成对抗网络(StackGAN)将该问题分解成两个更容易处理的子问题。低分辨率图像首先由第一层GAN产生(见 图1(a) )。之后,将第二层GAN堆叠到在第一层GAN的顶部,第二层GAN以第一层GAN的结果和文字描述为条件,生成高分辨率(如256×256)图像(见 图1(b) )。第二层GAN通过对第一层的结果和文本的再次调整,学习捕获第一层GAN忽略的文本信息,并为对象绘制更多细节。 由有大致轮廓的低分辨率图像产生的模型分布更有可能产生于自然高分辨率图像类似的分布。 这是第二层GAN能够生成更好的高分辨率图像的根本原因。
另外,对于从文本到图像的生成任务来说,有限的训练文本-图像对经常导致文本条件流形的稀疏性,这种稀疏性使得GAN难以训练。因此,作者提出了一种新的条件增强技术来鼓励平滑潜在的条件流形。它允许条件流形中存在小的随机扰动,并增加合成图像的多样性。
作者所提出的方法具有三方面的贡献:
(1)提出了一种新的叠加生成对抗网络,用于从文本描述中合成照片般逼真的图像。它将生成高分辨率图像的困难问题分解为更多可管理的子问题,并比state of art的方法效果更好。StackGAN首次从文字描述中生成256×256分辨率的图像,并带有照片般逼真的细节。
(2)提出了一种新的条件增强技术来稳定条件GAN的训练,同时也提高了条件GAN训练的多样性。
(3)广泛的定性和定量实验证明了整体模型设计的有效性以及单个组件的效果,这些组件为设计未来的条件GAN模型提供了有用的信息。代码可在https://github.com/hanzhanggit/StackGAN获得。
生成图像建模是计算机视觉中的一个基本问题。随着深度学习技术的出现,这个方向已经取得了显著的进展。变分自动编码器(VAE)[13,28] 提出了以最大化数据似然的下限为目标的概率图模型。利用神经网络模拟像素空间的条件分布的自回归模型(例如PixelRNN)[33] 也产生了吸引人的合成图像。最近,生成对抗网络(GAN)[8] 已经显示出有希望生成清晰图像的性能。但是训练的不稳定性使得GAN模型很难生成高分辨率图像(例如,256×256)。目前已经出现了几种稳定训练过程并产生令人信服的结果的技术 [23,29,18,1,3] 。基于能量的 GAN [38]也被提出用于更稳定的训练行为。
也有一些基于这几个生成模型的条件图像的生成方法。 大多数方法使用简单的调节变量,如属性或类标签 [37,34,4,22] 。还有一些以图像为条件来生成图像,包括照片编辑 [2,39],区域转换 [32,12] 和超分辨率 [31,15] 。然而,超分辨率方法 [31,15] 只能为低分辨率图像添加有限的细节,并且不能像StackGAN那样纠正大的缺陷。最近,已经开发了几种方法来从非结构化文本生成图像。 Mansimov等 [17] 通过学习估计文本和生成图像之间的对应的AlignDRAW模型。Reed等 [27] 使用条件 PixelCNN 来使用文本描述和对象位置约束来生成图像。Nguyen等人 [20] 使用近似 Langevin 抽样的方法来生成
条件文本的图像。然而,他们的抽样方法需要一个低效率的迭代优化过程。Reed等 [26] 基于条件GAN,成功根据文字描述生成了64×64的用于鸟和花的似是而非的图像。他们的后续工作 [24] 能够通过在对象部分位置上根据额外的注释来生成128×128的图像。
除了使用单一的GAN生成图像外,还有一些工作 [36,5,10] 利用一系列的GAN进行图像生成。王等人 [36] 提出了 S 2 S^2 S2 -GAN,将室内场景生成过程分解为结构生成和风格生成。与之不同的是,本文中的StackGAN第二阶段的目标是完成对象细节,和根据文本描述纠正第一阶段结果的缺陷。Denton等人 [5] 在拉普拉斯金字塔框架内建立了一系列GAN。在金字塔的每一层,残留图像都是在前一阶段的图像上生成的,然后加回到输入图像上以产生下一阶段的输入。黄等人 [10] 也表明他们可以通过堆叠几个GAN来重建预先训练的判别模型的多级表示来产生更好的图像。 然而,他们只能成功地生成32×32的图像,而本文的方法则采用更简单的架构来生成具有照片般逼真细节和比他们多64倍像素的256×256图像。
为了生成具有照片般逼真细节的高分辨率图像,作者提出了一种简单而有效的堆叠式生成对抗网络。它将文本到图像的生成过程分解为两个阶段(见 图2 )。
生成对抗网络(GAN)[8]由两个模型组成,彼此相对抗。生成器 G G G 被优化以生成使判别器 D D D 难以与真实数据区分的图像来再现真实的数据分布 p d a t a p_{data} pdata。同时,对 D D D 进行优化,以区分由 G G G 生成的合成图像与真实图像。总体而言,训练过程类似于双人最小最大游戏。GAN具有以下目标函数:
(1) min G max D V ( D , G ) = E x ∼ p d a t a [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] \min_G\max_D V(D,G)=\mathbb E_{x\sim p_{data}}[\log D(x)]+E_{z\sim p_{z}}[\log(1-D(G(z)))]\tag{1} GminDmaxV(D,G)=Ex∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))](1)
其中 x x x 是来自真实数据分布 p d a t a p_{data} pdata 的实际图像, z z z 是从分布 p z p_z pz 采样的噪声矢量(例如,均匀或高斯分布)。
条件GAN [7,19] 是GAN的延伸,生成器和判别器都会接收附加的条件变量 c c c ,产生 G ( z , c ) G(z,c) G(z,c) 和 D ( x , c ) D(x,c) D(x,c) 。这个公式允许 G G G 生成以变量 c c c 为条件的图像。
如 图2 所示,文本描述 t t t 首先由编码器编码,产生文本embedding φ t φ_t φt 。在以前的工作中 [26,24] ,文本嵌入是非线性的转化为潜在条件变量作为生成器的输入。但是,文字的潜在空间的embedding通常是高维的(>100维)。在数据量有限的情况下通常会导致潜在的数据流形的不连续,这是不可取的生成模型学习方法。为了缓解这个问题,作者引入条件增强技术来产生额外的条件变量 c ^ \hat c c^ 。与 [26,24] 中的固定调节文本变量 c c c 相比,作者从独立的高斯分布 N ( μ ( φ t ) , Σ ( φ t ) ) \mathcal N(μ(φ_t),Σ(φ_t)) N(μ(φt),Σ(φt)) 随机地采样潜在变量 c c c ,其中平均值 μ ( φ t ) μ(φ_t) μ(φt) 和对角协方差矩阵 Σ ( φ t ) Σ(φ_t) Σ(φt) 是文本embedding φ t φ_t φt 的函数。条件增强在少量图像-文本对的情况下产生更多的训练数据,并有助于对条件流形的小扰动具有鲁棒性。为了进一步强化条件流形的平滑性并避免过拟合 [6,14] ,作者在训练过程中将以下正则化项添加到生成器的目标中,
(2) D K L ( N ( μ ( φ t ) , Σ ( φ t ) ) ∣ N ( 0 , I ) ) D_{KL}(\mathcal N(μ(φ_t),Σ(φ_t))|\mathcal N(0,I))\tag{2} DKL(N(μ(φt),Σ(φt))∣N(0,I))(2)
这是标准高斯分布和条件高斯分布之间的Kullback-Leibler散度(KL散度)。 在条件增强中引入的随机性有利于对文本进行图像翻译建模,因为相同的句子通常对应于具有各种姿势和外观的对象。
比起直接生成以文本描述为条件的高分辨率图像,第一层GAN被用来简化任务,以便首先生成低分辨率的图像,这样的工作重点仅在于绘制粗糙的形状并为对象赋予正确的颜色。
令 φ t φ_t φt 是文本的embedding,这是由一个预先训练的编码器 [25] 产生的。文本embedding的高斯调节变量 c ^ 0 \hat c_0 c^0 来自 N ( μ 0 ( φ t ) , Σ 0 ( φ t ) ) \mathcal N(μ_0(φ_t),Σ_0(φ_t)) N(μ0(φt),Σ0(φt)),来使得文本描述有多样性。第一层GAN以 c ^ 0 \hat c_0 c^0 和随机变量 z z z 为条件,通过交替地最大化 L D 0 \mathcal L_{D_0} LD0 和最小化 L G 0 \mathcal L_{G_0} LG0 来训练判别器 D 0 D_0 D0 和生成器 G 0 G_0 G0 ,
(3) L D 0 = E ( I 0 , t ) ∼ p d a t a [ log D 0 ( I 0 , φ t ) ] + E z ∼ p z , t ∼ p d a t a [ log ( 1 − D 0 ( G 0 ( z , c ^ 0 ) , φ t ) ) ] , \mathcal L_{D_0}=\mathbb E_{(I_0,t)\sim p_{data}}[\log D_0(I_0,φ_t)]+\mathbb E_{z\sim p_{z},t\sim p_{data}}[\log (1-D_0(G_0(z,\hat c_0),φ_t))],\tag{3} LD0=E(I0,t)∼pdata[logD0(I0,φt)]+Ez∼pz,t∼pdata[log(1−D0(G0(z,c^0),φt))],(3)
(4) L G 0 = E z ∼ p z , t ∼ p d a t a [ log ( 1 − D 0 ( G 0 ( z , c ^ 0 ) , φ t ) ) ] + λ D K L ( N ( μ ( φ t ) , Σ ( φ t ) ) ∣ N ( 0 , I ) ) . \mathcal L_{G_0}=\mathbb E_{z\sim p_{z},t\sim p_{data}}[\log (1-D_0(G_0(z,\hat c_0),φ_t))]+\lambda D_{KL}(\mathcal N(μ(φ_t),Σ(φ_t))|\mathcal N(0,I)).\tag{4} LG0=Ez∼pz,t∼pdata[log(1−D0(G0(z,c^0),φt))]+λDKL(N(μ(φt),Σ(φt))∣N(0,I)).(4)
其中真实图像 I 0 I_0 I0 和文本描述 t t t 来自真实数据分布 p d a t a p_{data} pdata。 z z z 是从给定分布 p z p_z pz (本文中是高斯分布)随机采样的噪声向量。 λ λ λ 是一个正则化参数,可以平衡 方程 (4) 中的两项。此处设定λ= 1。在本文的实验中,使用 [13] 中介绍的“重新参数化”的技巧, μ 0 ( φ t ) μ_0(φ_t) μ0(φt) 和 Σ 0 ( φ t ) Σ_0(φ_t) Σ0(φt) 都是从神经网络的其余部分学习得到的。
模型架构 对于生成器 G 0 G_0 G0,为了获得文本调节变量 c ^ 0 \hat c_0 c^0 ,文本的embedding φ t φ_t φt 是首先被馈送到完全连接的层中以产生高斯分布的 μ 0 μ_0 μ0 和 σ 0 σ_0 σ0 ( σ 0 σ_0 σ0 是 Σ 0 Σ_0 Σ0 的对角线中的值)。 c ^ 0 \hat c_0 c^0 然后从高斯分布中取样。 N g N_g Ng 维条件矢量 c ^ 0 \hat c_0 c^0 通过 c 0 = μ 0 + σ 0 ⊙ ϵ c_0=μ_0+σ_0⊙\epsilon c0=μ0+σ0⊙ϵ 计算(其中 ⊙ ⊙ ⊙ 是元素乘法, ϵ ∼ N ( 0 , I ) \epsilon\sim\mathcal N(0,I) ϵ∼N(0,I) )。然后, c ^ 0 \hat c_0 c^0 与一个 N z N_z Nz 维噪声矢量拼接,通过一系列的上采样块生成一副 W 0 × H 0 W_0×H_0 W0×H0 的图像。
对于判别器 D 0 D_0 D0 ,文本的embedding φ t φ_t φt 首先被全连接层压缩到 N g N_g Ng 尺寸,然后在空间上重叠形成一个 $M_d×M_d×N_d
$ 的张量。同时,图像通过一系列的下采样块,直到它具有 M d × M d M_d×M_d Md×Md 空间维度。然后,图像滤波器沿着信道维度与文本张量拼接。 由此产生的张量进一步馈送到1×1的卷积层以在图像和文本上共同学习特征。最后,使用一个节点的全连接层来产生决策分数。
由第一层GAN生成的低分辨率图像通常缺乏生动的部分,并且可能包含形状失真。文本中的一些细节也可能在第一阶段被省略,而这些细节对于生成照片般逼真的图像至关重要。第二层GAN建立在第一层GAN的结果之上,可以生成高分辨率图像。它以低分辨率图像为条件,并且还使用embedding的文本以纠正第一阶段结果中的缺陷。第二层GAN将先前忽略的文字信息加到网络中,以产生更多照片般逼真的细节。
以低分辨率的结果 s 0 = G 0 ( z , c ^ 0 ) s_0=G_0(z,\hat c_0) s0=G0(z,c^0) 和高斯分布的隐变量 c ^ \hat c c^ 为条件,生成器 G G G 和判别器 D D D 在第二层GAN中被训练以最大化 L D \mathcal L_D LD 和最小化 L G \mathcal L_G LG ,
(5) L D = E ( I , t ) ∼ p d a t a [ log D ( I , φ t ) ] + E s 0 ∼ p G 0 , t ∼ p d a t a [ log ( 1 − D ( G ( s 0 , c ^ ) , φ t ) ) ] , \mathcal L_{D}=\mathbb E_{(I,t)\sim p_{data}}[\log D(I,φ_t)]+\mathbb E_{s_0\sim p_{G_0},t\sim p_{data}}[\log (1-D(G(s_0,\hat c),φ_t))],\tag{5} LD=E(I,t)∼pdata[logD(I,φt)]+Es0∼pG0,t∼pdata[log(1−D(G(s0,c^),φt))],(5)
(6) L G = E s 0 ∼ p z , t ∼ p d a t a [ log ( 1 − D ( G ( s 0 , c ^ ) , φ t ) ) ] + λ D K L ( N ( μ ( φ t ) , Σ ( φ t ) ) ∣ N ( 0 , I ) ) . \mathcal L_{G}=\mathbb E_{s_0\sim p_{z},t\sim p_{data}}[\log (1-D(G(s_0,\hat c),φ_t))]+\lambda D_{KL}(\mathcal N(μ(φ_t),Σ(φ_t))|\mathcal N(0,I)).\tag{6} LG=Es0∼pz,t∼pdata[log(1−D(G(s0,c^),φt))]+λDKL(N(μ(φt),Σ(φt))∣N(0,I)).(6)
与原来的GAN公式不同的是,随机噪声 z z z 在这个阶段没有被使用,而是假设随机性已经被 s 0 s_0 s0 保存了。在这个阶段使用的高斯条件变量 c ^ \hat c c^ 和在第一阶段GAN使用的 c ^ 0 \hat c_0 c^0 共享相同的预先训练的文本编码器,生成相同的文本嵌入 φ t φ_t φt 。但第一层和第二层的条件增强不同的全连接层,用于产生不同的均值和标准偏差。通过这种方式,第二层GAN学习捕获第一层GAN所忽略的文本embedding中的有用信息。
模型架构 本文设计的第二层生成器是一个带有残余块的编码器-解码器网络[9]。类似于前一阶段,文本的embedding φ t φ_t φt 被用来生成 N g N_g Ng 维空间的文本调节向量 c ^ \hat c c^ ,这是在空间中重复所形成的一个 M g × M g × N g M_g×M_g×N_g Mg×Mg×Ng 的张量。同时,第一层GAN产生的结果被送入几个下采样块(即编码器),直到它具有 M g × M g Mg×Mg Mg×Mg 的空间尺寸。图像特征和文本特征沿着通道的维度被拼接。编码的图像特征加上文本特征被馈送到多个残差块,其被设计成学习跨图像和文本特征的多模式表示。 最后是一系列的上采样层(即解码器)被用来生成一个高分辨率图片。这种生成器能够帮助纠正输入图像的缺陷,同时添加更多细节来生成逼真的高分辨率图像。
对于判别器而言,其结构与仅具有额外的下采样块第一阶段判别器的结构类似,因为在此阶段图像尺寸较大。为了明确强制GAN学习图像和条件文本之间的更好的对应,作者采用了Reed等人提出的匹配感知判别器 [26] ,而不是使用香草判别器。在训练期间,判别器将真实图像及其对应的文本描述作为正样本对,而负样本对包括两组:首先是真实的图像与不匹配的文本嵌入,而第二个是合成图像与相应的文本的embedding。
上采样块包括最近邻上采样,然后是3×3步长为1的卷积。批量标准化 [11] 和ReLU激活应用在除最后一个之外的每个卷积之后。剩余的块由3×3步长为1的卷积,批量标准化和ReLU组成。在128×128 Stack-GAN模型中使用两个残差块,而在256×256模型中使用四个残余块。 下采样块由4×4步长为2的卷积,批量归一化和LeakyReLU组成,除了第一个没有批量标准化,其他都使用了批量标准化。
默认情况下, N g = 128 , N z = 100 , M g = 16 , M d = 4 , N d = 128 , W 0 = H 0 = 64 , W = H = 256 N_g=128,N_z=100,M_g=16,M_d=4,N_d=128,W_0=H_0 = 64,W=H= 256 Ng=128,Nz=100,Mg=16,Md=4,Nd=128,W0=H0=64,W=H=256 。对于训练的过程,作者首先用六百个周期迭代训练第一阶段GAN的 D 0 D_0 D0 和 G 0 G_0 G0 。然后,用另外六百个周期迭代地训练第二阶段GAN的 D D D 和 G G G ,来修正第一层GAN的结果。所有网络都使用ADAM进行训练,求解器的批量大小为64,初始学习率为0.0002。学习率每100个周期衰减到先前值的1/2。
为了验证本文的方法,作者进行了大量的定量和定性评估。本文的方法与两种最先进的文本到图像合成方法:GAN-INT-CLS [26] 和GAWWN [24] 相比较。两种比较方法所使用的数据是由他们发布的代码生成的。另外,作者设计了几个baseline模型来研究所提出的StackGAN的总体设计和重要组成部分。 对于第一个baseline,作者直接训练第一阶段的GAN来生成 64×64 和 256×256 图像,调查所提出的的堆叠结构和条件增强对图像生成是否是有益的。然后,作者用StackGAN生成 128×128 和 256×256 的图像,以调查所提出的的方法能否生成更高质量的图像。作者也调查了在StackGAN的两个阶段输入文本是否有帮助。
CUB [35] 包含200种鸟类,11788个图像。由于该数据集中80%的鸟类的目标图像尺寸比率小于0.5 [35] ,作为预处理步骤,作者裁剪所有图像以确保鸟类的边框具有大于0.75的目标图像大小比。Oxford-102 [21] 包含来自102个不同类别的8,189幅花的图像。为了显示方法的泛化能力,一个更具挑战性的数据集 MS COCO [16] 也被用于评估。与CUB和Oxford-102不同,MS COCO 数据集包含具有多个对象和各种背景的图像。它有一个80k的图像训练集和40k的图像验证集。COCO 中的每个图像有5个描述,而 CUB 和 Oxford-102 数据集中的每个图像由 [25] 提供10个描述。在 [26] 中的实验设置之后,作者直接使用 COCO 提供的训练和验证集,同时将 CUB 和 Oxford-102 分割成不相交的训练和测试集。
评估指标 生成模型(例如GAN)的性能很难评估。作者选择最近提出的“Inception Score” [29] 进行定量评估,
(7) I = exp ( E x D K L ( p ( y ∣ x ) ∣ ∣ p ( y ) ) ) , I = \exp (\mathbb E_xD_{KL}(p(y|x)||p(y))),\tag{7} I=exp(ExDKL(p(y∣x)∣∣p(y))),(7)
其中 x x x 表示一个生成的样本, y y y 是由Inception模型预测的标签[30]。 这个指标背后的含义是好的模型应该产生多样但有意义的图像。因此,边际分布 p ( y ) p(y) p(y) 和条件分布 p ( y ∣ x ) p(y|x) p(y∣x) 之间的KL散度应该很大。在本文的实验中,作者直接为COCO数据集使用预先训练的Inception模型。对于细粒度的数据集,CUB和Oxford-102,作者为每个数据集调整了一个Inception模型。 正如 [29] 中所建议的那样,在每个模型上使用大量样本(在此处是30k个随机选择的样本)上评估这个度量。
尽管Inception Score与人类对样本视觉质量的感知有很好的相关性 [29] ,但它并不能反映所生成的图像是否与给定的文本描述有很好的对应关系。所以作者也进行了人类用户评估。作者随机选择50个 CUB 和 Oxford-102 测试集的文本描述,对于COCO数据集,从其验证集中随机选择4k个文本描述。对于每个句子,每个模型生成5个图像。在给出相同的文本描述的情况下,要求10个用户(不包括任何作者)通过不同的方法对结果进行排名。 计算人类用户的平均等级以评估所有比较的方法。
作者将他们的结果与最先进的文本图像方法 [24,26] 在CUB,Oxford-102和COCO等几个数据集进行比较。 表1 中列出了本文提出的 StackGAN 和相比较的方法的分数。在 图3 和 图4 中比较了有代表性的例子。
图3 StackGAN,GAWWN [24]和GAN-INT-CLS [26]以CUB测试集的文本描述为条件的测试结果。
图4 StackGAN和GAN-INT-CLS [26] 基于来自Oxford-102数据集(最左边的四列)和COCO数据集(最右边的四列)的文本描述的结果示例。
表1 Stack-GAN,GAWWN [24] 和GAN-INT-CLS [26]在CUB,Oxford-102和MS-COCO数据集上的Inception Score和真人评分。
StackGAN实现了最好的Inception Score和与其他几个模型差不多的真人评分。与GAN-INT-CLS [26] 相比,StackGAN在CUB数据集上的初始得分提高了 28.47%(从 2.88 到 3.70 ),在Oxford-102 (从2.66至3.20) 提高了 20.30%。Stack-GAN的较好的人类评价排名也表明,所提出的方法能够基于条件文本描述产生接近现实的样本。
如 图3 所示,由GAN-INT-CLS [26] 产生的 64×64 的图像只能反映一般的形状和鸟的颜色。他们的结果在大多数情况下缺乏生动的部分(例如喙和腿)和令人信服的细节,这使得它们既不够现实,也不具有足够高的分辨率。通过在位置上使用附加的条件变量,GAWWN [24] 在CUB数据集上获得了更好的Inception Score,这个分数仍然略低于StackGAN。它产生比GAN-INT-CLS更多细节的更高分辨率的图像,如 图3 所示。然而,正如其作者所述,GAWWN在基于文本描述时,不能产生任何合理的图像 [24]。相比之下,StackGAN可以从文本描述中生成256×256像素的照片般真实的图像。
图5 展示了StackGAN生成的第一阶段和第二阶段图像的一些例子。如 图5 的第一行所示,在大多数情况下,第一阶段的GAN能够绘制给定文本描述的物体的粗糙形状和颜色。然而,第一阶段的图像通常是模糊的,有各种缺陷和细节缺失,特别是对于前景物体。如第二行所示,第二阶段的GAN可以生成有四倍更高分辨率的图像,和更具有说服力的细节。在第一层GAN生成合理形状和颜色的情况,第二层GAN给图像添加细节。例如,在 图5 的第一列中,具有令人满意的第一阶段结果,第二阶段GAN侧重于绘制文中描述的短喙和白色以及尾巴和腿的细节。在所有其他示例中,将不同程度的细节添加到第二阶段的图像。在其他许多情况下,第二阶段的GAN能够通过再次处理文本描述来纠正阶段I结果的缺陷。例如,第5栏第一阶段的图像有一个蓝色的皇冠,而不是文中所述的红褐色的皇冠,这个缺陷由第二阶段的GAN来纠正。在一些极端情况下(例如 图7 的第七栏)即使在Stage-I GAN未能绘制出合理的形状的情况下,第二阶段的GAN也能够生成合理的对象。作者还观察到,StackGAN能够从第一层的图像传输背景,并在第二层中将其更精确地调整为更高的分辨率。
图5 StackGAN从CUB测试集中生成的样本。
图6 对第一列中生成的图像,用第二阶段的判别器特征之间的 L 2 L2 L2 距离去检索他们近邻的训练图像,如第二至六列所示。
重要的是,StackGAN并没有通过记忆训练样本而是通过捕捉复杂的基础语言-图像之间的关系来获得好的结果。作者从生成的图像和第二阶段判别器 D D D 的训练图像中提取视觉特征。对于每个生成的图像从训练集检索nearest neighbor。 通过将检索到的图像可视化(见 图6 ),可以得出结论,生成的图像具有与训练样本类似的特征,但本质上是不同的。
在这一小节中,作者用baseline模型分析CUB数据集上的StackGAN的不同组件。 表2 中报告了这些baseline的Inception Score。
表2 StackGAN的不同baseline模型生成的30,000个样本的Inception Score。
Stack-GAN的设计 如 表2 的前四行所示,如果直接使用第一阶段的GAN生成图像,则初始分数显著下降。这种性能下降可以通过 图7 中的结果很好地说明。如 图7 的第一行所示,第一阶段的GAN在不使用条件增强(CA)的情况下没有产生任何合理的256×256样本。虽然带有CA的第一阶段GAN能够产生更多样化的256×256样本,但这些样本不如StackGAN生成的样本逼真。这表明了所提出的堆叠结构的必要性。
图7 条件增强(CA)有助于稳定条件GAN的训练,并改善生成的样本的多样性。(第1行)没有CA,第一阶段的GAN不能产生合理的256×256采样。尽管每个列使用不同的噪声向量 z z z ,但是对于每个输入文本描述,所生成的样本崩溃成了一样的东西。(第2-3行)固定了噪声矢量 z z z ,方法能够产生具有不同姿势和视角的鸟。
另外,通过将输出分辨率从256×256降低到128×128,Inception Score从3.70降低到3.35。在计算Inception Score之前,所有图像都会缩放到299×299。因此,如果StackGAN没有增加更多信息却增加图像大小,对于不同分辨率的样本,Inception Score将保持不变。所以Inception Score降低表明256×256的StackGAN确实在更大的图像中增加了更多细节。 对于256×256的StackGAN,如果文本只输入到Stage-I(表示为“no Text twice”),则Inception Score从3.70下降到3.45。 这表明在第二阶段再次处理文本描述有助于完善第一阶段的结果。从128×128的StackGAN的结果可以得出同样的结论。
条件增强 作者调查了所提出的条件增强(CA)的功效。通过将其从StackGAN 256×256( 表2 中表示为“无CA”)中删除,开始得分从3.70降低到3.31。 图7 还显示,具有CA的256×256第一阶段的GAN和叠加的的GAN可以产生具有不同姿势和视角的鸟。相比之下,由于GAN的训练不稳定,在不使用CA的情况下,由256×256的第一阶段GAN产生的样本崩溃成为无意义的图像。因此,条件增强有助于稳定条件GAN训练,并且由于能够增加潜在流形的小扰动的鲁棒性,所以改善了所生成的样本的多样性。
图8 (从左到右)通过对两个句子的embedding进行插值生成的图像。可以观察到从第一个句子到第二个句子的逐渐的外观变化。噪声矢量 z z z 固定为每行都是零。
句子embedding的插值 为了进一步证明StackGAN学习了一个平滑的潜在数据流形,作者使用它来从线性内插的句子embedding中生成图像,如 图8 所示。我们令噪声矢量为 z z z ,生成的图像是从给定的文字描述中推断出来的。 第一行的图像是通过制作的简单句子来合成的。这些句子只包含简单的颜色描述。结果表明,从插值嵌入生成的图像可以准确地反映颜色的变化,并生成似是而非的鸟的形状。第二行说明从更复杂的句子中产生的样本,其中包含更多关于鸟类出现的细节。生成的图像将其主要颜色从红色更改为蓝色,并将翼色从黑色更改为棕色。
本文提出了 Stacking Generative Adversar-ial Networks(StackGAN),其中使用了条件增强来合成相片逼真的图像。 所提出的方法将文本到图像合成分解成两步:草图-细化过程。第一阶段的GAN根据给定文字描述的基本颜色和形状约束绘制对象。第二阶段的GAN纠正了第一阶段结果中的缺陷并增加了更多细节,从而产生更高分辨率的图像并获得更好的图像质量。广泛的定量和定性结果证明了所提出的方法的有效性。与现有的文字到图片生成模型相比,Stack GAN生成更高分辨率的图像(如256×256),并具有更逼真的细节和多样性。
[1] M. Arjovsky and L. Bottou. Towards principled methods for training generative adversarial networks. In ICLR, 2017.
[2] A.Brock, T.Lim, J.M.Ritchie, and N.Weston. Neural photo editing with introspective adversarial networks. In ICLR, 2017.
[3] T. Che, Y. Li, A. P. Jacob, Y. Bengio, and W. Li. Mode regularized generative adversarial networks. In ICLR, 2017.
[4] X. Chen, Y. Duan, R. Houthooft, J. Schulman, I. Sutskever, and P. Abbeel. Infogan: Interpretable representation learning by information maximizing generative adversarial nets. In NIPS, 2016. 2
[5] E. L. Denton, S. Chintala, A. Szlam, and R. Fergus. Deep generative image models using a laplacian pyramid of adversarial networks. In NIPS, 2015. 1, 2
[6] C. Doersch. Tutorial on variational auto-encoders. arXiv:1606.05908, 2016. 3
[7] J. Gauthier. Conditional generative adversarial networks for convolutional face generation. Technical report, 2015. 3
[8] I. J. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. C. Courville, and Y. Bengio. Generative adversarial nets. In NIPS, 2014. 1, 2, 3
[9] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016. 4
[10] X. Huang, Y. Li, O. Poursaeed, J. Hopcroft, and S. Belongie. Stacked generative adversarial networks. In CVPR, 2017. 2, 3
[11] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015. 5
[12] P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros. Image-to-image translation with conditional adversarial networks. In CVPR, 2017.2
[13] D. P. Kingma and M. Welling. Auto-encoding variational bayes. In ICLR, 2014. 2, 3
[14] A. B. L. Larsen, S. K. Sønderby, H. Larochelle, and O. Winther. Autoencoding beyond pixels using a learned similarity metric. In ICML, 2016. 3
[15] C. Ledig, L. Theis, F. Huszar, J. Caballero, A. Aitken, A. Tejani, J. Totz, Z. Wang, and W. Shi. Photo-realistic single image super-resolution using a generative adversarial network. In CVPR, 2017. 2
[16] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollr, and C. L. Zitnick. Microsoft coco: Common objects in context. In ECCV, 2014. 5
[17] E. Mansimov, E. Parisotto, L. J. Ba, and R. Salakhutdinov. Generating images from captions with attention. In ICLR, 2017.2
[18] L. Metz, B. Poole, D. Pfau, and J. Sohl-Dickstein. Unrolled generative adversarial networks. In ICLR, 2017. 2
[19] M. Mirza and S. Osindero. Conditional generative adversarial nets. arXiv:1411.1784, 2014. 3
[20] A. Nguyen, J. Yosinski, Y. Bengio, A. Dosovitskiy, and J. Clune. Plug & play generative networks: Conditional iter-
ative generation of images in latent space. In CVPR, 2017.2[21] M.-E. Nilsback and A. Zisserman. Automated flower classification over a large number of classes. In ICCVGIP, 2008. 5
[22] A. Odena, C. Olah, and J. Shlens. Conditional image synthesis with auxiliary classifier gans. In ICML, 2017. 2
[23] A. Radford, L. Metz, and S. Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. In ICLR, 2016. 1, 2
[24] S. Reed, Z. Akata, S. Mohan, S. Tenka, B. Schiele, and H. Lee. Learning what and where to draw. In NIPS, 2016. 1,
2, 3, 5, 6, 7
[25] S. Reed, Z. Akata, B. Schiele, and H. Lee. Learning deep representations of fine-grained visual descriptions. In CVPR, 2016. 3, 5
[26] S. Reed, Z. Akata, X. Yan, L. Logeswaran, B. Schiele, and H. Lee. Generative adversarial text-to-image synthesis. In ICML, 2016. 1, 2, 3, 5, 6
[27] S. Reed, A. van den Oord, N. Kalchbrenner, V. Bapst, M. Botvinick, and N. de Freitas. Generating interpretable
images with controllable structure. Technical report, 2016. 2
[28] D. J. Rezende, S. Mohamed, and D. Wierstra. Stochastic backpropagation and approximate inference in deep generative models. In ICML, 2014. 2
[29] T. Salimans, I. J. Goodfellow, W. Zaremba, V. Cheung, A. Radford, and X. Chen. Improved techniques for training
gans. In NIPS, 2016. 2, 5
[30] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna. Rethinking the inception architecture for computer vision. In CVPR, 2016. 5
[31] C. K. Snderby, J. Caballero, L. Theis, W. Shi, and F. Huszar. Amortised map inference for image super-resolution. In
ICLR, 2017. 2
[32] Y. Taigman, A. Polyak, and L. Wolf. Unsupervised cross-domain image generation. In ICLR, 2017. 2
[33] A. van den Oord, N. Kalchbrenner, and K. Kavukcuoglu. Pixel recurrent neural networks. In ICML, 2016. 2
[34] A. van den Oord, N. Kalchbrenner, O. Vinyals, L. Espeholt, A. Graves, and K. Kavukcuoglu. Conditional image generation with pixel cnn decoders. In NIPS, 2016. 2
[35] C. Wah, S. Branson, P. Welinder, P. Perona, and S. Belongie. The Caltech-UCSD Birds-200-2011 Dataset. Technical Report CNS-TR-2011-001, California Institute of Technology,2016. 5
[36] X. Wang and A. Gupta. Generative image modeling usingstyle and structure adversarial networks. In ECCV, 2016. 2
[37] X.Yan, J.Yang, K.Sohn, and H.Lee. Attribute2image: Conditional image generation from visual attributes. In ECCV,2016. 2
[38] J.Zhao, M.Mathieu, and Y.LeCun. Energy-based generative adversarial network. In ICLR, 2017. 2
[39] J. Zhu, P. Krähenbühl, E. Shechtman, and A. A. Efros. Generative visual manipulation on the natural image manifold. In ECCV, 2016. 2