StackGAN论文解读

论文:https://arxiv.org/pdf/1612.03242.pdf

源码:https://github.com/hanzhanggit/StackGAN-v2

摘要

        从文字描述中生成具有照片般真实感的图片一直是计算机视觉中具有挑战性的一个课题,并且具有很多的应用。现有方法生成的图片可以粗略的反映出给定的描述,但是缺乏需要的细节和生动的对象局部。本文提出了堆叠生成对抗网络(StackGan),它从文字描述中生成具有照片般真实感的图像。第一阶段的GAN根据文字描述草绘出一张简单形状和基本颜色符合的低分辨率图片,第二阶段的GAN把第一阶段的结果和文字条件作为输入,生成具有照片真实感的高分辨率的图片。第二阶段的GAN能够修正错误,并且通过增强过程给图片增加令人信服的细节。StackGAN生成的图片比其它方式生成的看上去更加可信。重要的是,我们的StackGAN仅以文本描述第一次就可生成真实的256×256的图像,而最先进的方法最多可以生成128×128的图像。为了证明所提出的StackGAN的有效性,我们基于CUB 和Oxford-102 数据集做了广泛的实验,这两个数据集包含了足够多的各种类别的对象,并且每类对象有很多的外观变体,被广泛用于图像生成分析。

1  介绍

        从文本描述中生成照片真实的图像是一个具有挑战性的问题且有多方面的应用。当全自动合成系统可用时,它具有包括照片编辑和计算机辅助设计等广泛的应用前景。然而,即使是最先进的方法也未能使用文本描述生成具有照片真实细节的高分辨率图像。这个问题的主要挑战是,给定的文本描述的可信图像的空间是多模态的。有大量的图像可以正确地符合给定的文本描述。

        近年来,生成对抗性网络(GAN)在建模复杂的多模态数据和合成真实图像方面取得了良好的效果。Reed等人证明了GAN可以有效地生成基于文本描述的图像。他们成功地生成了基于文本描述的可信的64×64图像。然而,他们的合成图像在许多情况下缺乏细节和生动的物体部分,如鸟类的喙和眼睛。此外,如果不提供额外的对象的空间注释,它们就无法合成更高分辨率的图像(例如,128×128)。

        为了应对这些挑战,我们将文本问题分解为照片真实图像合成问题,并将其分解为两个更易于用堆叠生成对抗性网络(StackGAN)实现的子问题。使用Stage-I GAN可生成一个低分辨率的图像(图1(a))。该GAN学习在给定文本描述的条件下绘制生成对象的粗糙形状和基本颜色,并从先验分布采样的随机噪声向量生成背景区域。生成的低分辨率图像通常很粗糙,并且有很多缺陷,如物体形状扭曲和没有物体部件。它可能看起来并不真实,因为一些令人信服的细节可能被遗漏了。在Stage-I GAN之上,我们堆叠Stage-I GAN,以根据低分辨率图像和相应的文本描述生成真实的高分辨率图像(图1(b))。由于Stage-I GAN为对象和背景生成粗糙的形状和布局,因此Stage-II GAN只需要专注于绘制细节和纠正低分辨率图像中的缺陷。这个任务比从零开始直接绘制高分辨率图像要容易得多。通过再次调整文本,Stage-II GAN学习捕获Stage-I GAN省略的文本信息,并为对象绘制更多细节。

        本文的主要贡献是设计了堆叠生成对抗性网络(StackGAN),它可以从文本描述中合成照片真实图像。与现有的文本到图像生成模型相比,我们的StackGAN生成的图像具有更真实的细节,在CUB和Oxford-102数据集上的初始分数分别达到28.47%和20.30%。高分辨率256×256图像可以由我们提出的StackGAN生成,而最先进的方法很难在没有附加空间注释的情况下生成大于64×64的图像。

2  Stacked Generative Adversarial Networks(堆叠生成对抗性网络)

        为了生成具有照片真实细节的高分辨率图像,我们提出了一个简单而有效的叠加生成对抗性网络(StackGAN)。它将文本到图像的生成过程分解为两个阶段。

  • Stage-I GAN:它根据给定的文本描述绘制对象的基本形状和基本颜色,并从一个随机的噪声向量绘制背景布局,产生一个低分辨率的图像。
  • Stage-II GAN:它通过再次读取文本描述来纠正低分辨率图像中的缺陷,并完成对象的细节,产生高分辨率的照片逼真图像。

2.1  准备工作

        生成对抗性网络(GAN)由两个模型组成,它们交替地训练以相互竞争。生成器G通过生成判别器D难以与真实图像区分的图像来优化以再现真实的数据分布P_{data}。同时,对D进行了优化,以区分真实图像和G生成的合成图像。总的来说,训练过程类似于具有以下目标函数的两人最小最大博弈,

        其中,是x来自真实数据分布P_{data}的真实图像,而z是从分布P_z中采样的噪声向量。条件GAN是GAN的一个扩展,其中生成器和判别器都接收额外的附加条件变量c,产生G(z,c)D(x,c)。这个公式允许G生成以变量c为条件的图像。

 2.2  Stage-I GAN

  • Stage-I GAN:它根据给定的文本描述绘制对象的基本形状和基本颜色,并从一个随机的噪声向量绘制背景布局,产生一个低分辨率的图像。

        首先生成低分辨率图像,而不是直接生成基于文本描述的高分辨率图像。Stage-I GAN的设计是为了生成这样的低分辨率图像,并专注于为对象绘制粗糙的形状和正确的颜色。

图2.建议使用的StackGAN的架构。Stage-I生成器通过从给定的文本中绘制对象的粗糙形状和基本颜色,并从一个随机的噪声向量中绘制背景,来绘制一个低分辨率的图像。Stage-II生成器通过对第一级结果和文本再次进行调节,生成一个具有逼真细节的高分辨率图像。

        如图2所示,条件处理文本描述t首先由一个编码器进行编码,从而生成一个文本嵌入\varphi _t。在之前的著作中,对文本嵌入进行了非线性转换,为生成器生成条件反射潜在变量。然而,基于文本条件的潜在空间通常是高维的(>100维的)。在数据量有限的情况下,它通常会导致潜在数据流形的不连续,这是不适合学习生成器的。为了缓解这一问题,我们引入了一种条件增强技术,为生成器产生更多的条件变量。我们从一个独立的高斯分布N(\mu (\varphi _t),\sum (\varphi _t))中随机采样潜在变量,其中均值\mu (\varphi _t)和对角协方差矩阵\sum (\varphi _t)是文本嵌入\varphi _t的函数。该公式鼓励了对条件流形的小扰动的鲁棒性,从而在少量的图像-文本对下产生更多的训练对。为了进一步加强了条件流形的平滑性,避免过拟合,我们在训练过程中对生成器的目标添加了以下正则化项。

 这是标准高斯分布和条件高斯分布之间的Kullback-Leibler散度(KL散度)。

         在高斯潜变量c_0的条件下,第一阶段GAN通过在等式(3)中最大化LD_0来训练判别器D_0和最小化的LG_0,在等式(4)中训练生成器G_0

        其中,真实的图像I_0和文本描述t来自真实的数据分布P_{data}。z是一个从一个给定的分布p_z中随机采样的噪声向量(例如,本文中使用的高斯分布)。\lambda是一个正则化参数,它控制了等式(4)中这两个项之间的平衡。我们在所有的实验中都使用\lambda =1\varphi _t是本文中由一个预先训练好的编码器生成的文本嵌入方法。从N(\mu_0 (\varphi _t),(\sum)_0 (\varphi _t))对高斯条件调节变量c_0进行采样,以反映文本描述。利用引入再参数化技巧,将\mu_0 (\varphi _t)(\sum)_0 (\varphi _t)都与网络的其他部分一起学习。

         模型架构

  • 对于生成器,文本嵌入\varphi _t被输入到一个全连接层中,以生成高斯分布N(\mu_0 (\varphi _t),(\sum)_0 (\varphi _t))\mu _0\sigma _0值(\sigma _0(\sum) _0对角线中的值)。我们的N_g维条件向量c_0是由c_0=\mu _0+\sigma _0\odot \varepsilon(其中\odot是按元素计算的乘法,\varepsilon -N(0,1))。然后,将c_0与​​​​​​​N_z维噪声向量连接起来,通过一系列上采样块生成W_0\times H_0图像。
  • 对于判别器,文本嵌入\varphi _t首先使用全连接层压缩到N_d维,然后进行空间复制,形成一个M_d\times M_d\times N_d张量。同时,图像通过一系列的下采样块输入,直到它具有M_d\times M_d空间维数。然后,将图像过滤器映射沿着通道维度与文本张量连接起来。得到的张量进一步馈送到1 \times 1卷积层,以共同学习图像和文本的特征。最后,使用一个具有一个节点的全连接层来生成决策分数。

 2.3  Stage-II GAN

  • Stage-II GAN:它通过再次读取文本描述来纠正低分辨率图像中的缺陷,并完成对象的细节,产生高分辨率的照片逼真图像。

        由Stage-I GAN生成的低分辨率图像缺乏生动的对象部分,也可能包含形状失真。 此外,文本中的一些细节在第一阶段可能会被省略。而这是生成照片真实图像所需的重要信息。第二阶段GAN是建立在第一阶段GAN的基础上,以产生照片真实的高分辨率图像。它以前一阶段生成的低分辨率图像为基础,并再次嵌入文本以纠正第一阶段结果中的缺陷,并鼓励模型提取文本中先前忽略的信息,以生成更多的照片真实细节。

        基于低分辨率样本s_0和高斯潜变量c,Stage-II GAN中的判别器D和生成器G通过交替得最大化等式(5)的LD和最小化等式(6)中的LG进行训练。

 其中,s_0=G_0(z,c_0)由Stage-I GAN生成。与原始的GAN公式不同,随机噪声z在这个阶段没有被使用,并且假设随机性已经被保留在s_0中。本阶段使用的高斯条件变量c和Stage-I GAN中使用的c_0共享相同的预先训练好的文本编码器,生成相同的文本嵌入\varphi _t。但是,它们利用不同的全连接层来产生不同的方法和标准差。通过这种方式,Stage-II GAN学习捕获被Stage-I GAN省略的文本嵌入中的有用信息。

        模型架构

  • 对于生成器,与上一阶段类似,\varphi _t被用于生成我们的N_g维高斯条件向量c,它通过空间复制形成一个M_g \times M_g \times N_g张量。同时,由Stage-I GAN生成的样品s_0被送入几个下采样块,直到其空间大小为M_g \times M_g。然后,图像过滤器映射和文本张量沿着通道尺寸被连接起来。所得到的张量被输入到几个残余块中,来共同编码图像和文本特征,最后使用一系列的上采样块来生成一个W \times H图像。
  • 对于判别器,它的结构类似于Stage-I判别器,只有额外的下采样块,因为在这个阶段的图像大小更大。 为了明确地迫使GAN学习图像和条件文本之间更好的对齐,而不是使用朴素判别器,我们在两个阶段都采用了Reed等人提出的匹配感知判别器。在训练过程中,判别器将真实图像及其相应的文本描述作为正样本对,而负样本对由两组组成。第一种是具有不匹配文本嵌入的真实图像,而第二种是具有条件文本嵌入的合成图像。

 2.4  Implementation details(实现细节)

        上采样块由最近邻上采样和3×3步1卷积组成。除了最后一次卷积,批归一化和ReLU激活在每次卷积后应用。残差块由3×3步1卷积、批归一化和ReLU组成。 在128×128 StackGAN模型中使用了两个残差块,而在256×256模型中使用了四个残差块。下采样块由4×4步长2卷积、批归一化和Leaky ReLU组成,但第一个块没有批归一化。

        默认情况下,N_g=128N_z=100M_g=16M_d=4N_d=128W_0=H_0=64W=H=256。为了进行训练,我们首先通过固定Stage-II GAN,迭代训练Stage-I GAN的D_0G_0达600轮的时间。然后,我们通过固定Stage-I GAN,迭代地训练Stage-II GAN的D和训练另外600轮的G。所有的网络都使用批处理大小为64的Adam优化器和初始学习速率为0.0002进行训练。学习率每隔100轮就会衰减到它以前的值的1/2。

 3  实验结果

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值