Cycle GAN 与 Star GAN

1. Cycle GAN与图像风格转换

  WGAN后,GAN生成图像不稳定的问题已基本解决,剩余的缺点以难以盖过它的优点。在这种情况下,Jun-Yan Zhu等人将GAN的应用推广到图像风格转换领域,并基于此给出了许多有趣的应用。图像风格转换一般需要一对图像作为训练样本,但是成对的训练样本在现实生活中往往是难以得到的,鉴于此,作者在Cycle GAN中取消了成对样本的限制,直接使用具有不同风格的样本对进行训练,完成图像风格转换,这使得训练模型的前期准备工作变得轻松许多。本文首先介绍图像风格转换所遇到的问题及Cycle GAN,在此基础上介绍Cycle GAN中存在的计算代价高等问题,最后介绍一种能够弥补该缺点的方法:Star GAN

1.1 一致稳定损失(Cycle Consistent Loss)

  图像风格转换在是指将一幅图像转换成具有另一种风格的图像,如灰度转彩色,涂鸦画转化为梵高风格的图像等。经过图像处理、信号处理界多年的研究,提出过一种有监督学习方法,该方法需要成对图像作为训练数据,如下图左所示。但是工程实践中,由于各种各样的原因,很难得到成对的训练数据,现有的数据集规模十分小,并且数量不多,这启发作者寻找一种无需成对图像做训练的算法。
  作者认为,对要进行图像风格转换的两个域之间存在某种隐式关系,去除成对图像作为输入后,虽然难以通过有监督学习获得两张图像之间风格的映射函数,但是可以通过两种不同风格的一系列图像获得两种风格之间的映射关系。基于此,训练样本的收集可以不限定在同一物品的图像,而将其扩大到具有不同风格的图像,如下图所示。设来自两个不同域(风格)XX分别是 和 的映射。Cycle GAN同时训练这两个映射,并保证使用这两个映射复原图像时能够较好地复原原图像。一致稳定损失较好地解决了风格转换时解空间太大导致转换的图像面目全非的现象。

1.2 Cycle GAN

  在加入一致稳定损失后,作者提出一种基于GAN的图像风格转换模型,即Cycle GAN。该模型接受一对风格不同且画面描述内容也不同的图像,同时初始化两个判别器D1D1,并按生成器-判别器的顺序依次循环训练这四个网络。Cycle GAN总共有3个损失函数,它们分别是:

  • 对抗损失
      该损失函数与一般GAN的损失函数相同,判别器尽力区分真假图片而生成器尽力迷惑之。下式给出了训练GG并生成两个判别器和两个生成器。
      Step2:首先训练两个判别器。将真实图像和经过风格转换的图像送入两个判别器中,借助对抗损失优化判别器权重。
      Step3:根据对抗损失、一致稳定损失和Identity Mapping Loss优化生成器权重。
      Step4:重复步骤2~3直到达到最大迭代次数。
      结果如下图所示,Cycle GAN能够成功的转变图像风格,并且加入Identity Mapping Loss后,得到的图像显得更加稳定,不会出现整个图像色调都改变的情况。
      Cycle
      除数据收集方式和训练算法不同外,Cycle GAN中的生成器与普通的GAN也有一些不同。普通GAN模型以一个随机噪声作为输入,但Cycle GAN是以要转换的图像作为输入,这种情况下网络结构会发生一定变化,原始接受随机噪声作为输入的层被改为一系列卷积层进行降采样,当图像大小降到一定程度后,就加入类似残差神经网络的网络块,这些网络块不降低输入数据的尺寸,仅仅是一些卷积和残差合并操作,最后加入升采样的转置卷积层将图像恢复到输入图像大小。如此改动后的网络结构就可以替换原始生成器的网络结构用于图像风格转换了。

2. 多属性转换—Star GAN

  Cycle GAN仅仅是对图像进行风格一对一的转换,当想要一对多地转换图像风格时,往往面临巨大的时间花费。Star GAN很好地解决了这个问题,其基本思想来自cGAN,将特定的风格标签作为额外的信息一起传入网络,并与图像特征进行融合,最终取得了很好的效果。

2.1 Star GAN

  如果我们有四种风格的图像,希望借助Cycle GAN能将一种图像转换成另一种图像,那么完成此任务需要训练4*(4-1)=12个模型。四种风格之间两两组成一个风格转换对,形成有向完全图。可见,随着要转换风格数目的增多,使用Cycle GAN将被要训练的模型数目这只拦路虎挡下。
  另一方面,Cycle GAN处理多风格图像转换任务时,由只能每两种风格之间训练两个模型,所以与这两种风格无关的数据对模型训练并没有做出贡献,大量的数据被浪费而得不到充分利用。
  为了减少模型的数目,一种比较自然的想法是把Cycle GAN转换成一对多的模型,即训练一次就能将一种风格的图片随意转换成其他风格。基于此,Yunjey Choi等人[2]从cGAN中得到启发,提出Star GAN。该模型由判别器和生成器共同组成,判别器用于区分输入图片的真假,同时,还要判断图像所属的风格类别;生成器接收要转换风格的图像和希望转换的属性。将它们经过特征映射和融合后,传入深层卷积网络中进行训练,生成假图像。这种模型就如下图右方显示的那样,一个生成器可以生成多种模型,大大降低了模型训练的数目。
  Star
  Star GAN总共包含三个损失:
  1. 对抗损失
  与传统GAN模型没有区别,这里不再赘述。
  2. 域分类损失
  对于给定图像xx
  整个网络的训练过程如下图所示:
  train
Step1:根据输入的真实图像训练判别器,用于判断输入图片真假并给出图片类别,更新判别器权重。
Step2:根据目标风格标签和输入图像,生成假图像,并用假图像重新复原原始风格图像,计算复原损失。
Step3:用假图像迷惑判别器,获得对抗损失与对应的分类损失,更新生成器和分类器权重(注意 对两个模型均有影响)。
Step4:重复步骤2~3直到达到最大迭代次数。
作者在CelebA数据集上,与当前较为流行的几种GAN模型实现效果进行了对比,结果如下:
reS
  Star GAN无论是在生成图像的色彩方面,还是效果方面,都较前几种模型有优势。除了能够实现一转多,Star GAN还能借助Mask Vector实现将不同数据集的不同风格进行转换。

2.2 Mask Vector与跨数据集属性转换

  实现跨数据集风格转换主要问题在于不同数据集有不同的标签,这些标签可能根本没有关系。
  作者拿CelebA数据集与RaFD举例,CelebA主要标注了人的外貌、五官方面的特征,而RaFD主要标注了人的表情。二者没有关系,很难对图像标签进行One-hot编码,生成图像和求解复原损失也就无从谈起。
  为了解决这个问题,作者提出了一种Mask Vector,该向量基本形式如下:

c~=[c1,...cn,m](11)(11)c~=[c1,...cn,m]
设置为不正确的[1,0],即标注为CelebA数据集时,模型就专注于转换输入图像的年龄特征而非表情特征。
  StarMul
  总的来说,Star GAN通过加入One-hot条件特征和Mask Vector以较低的训练代价实现了跨数据集的图像风格转换,是图像风格转换中较为成功的案例之一。
  如果各位在阅读过程中对文章排版和公式显示效果不满意,我这里上传了一份综合前4篇博文的PDF可供下载,收8个资源分。^-^
  http://download.csdn.net/download/opensuse1995/10236456

参考文献:
[1] Jun-Yan Z., Park T., Isola P., et.al. Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks[J]. arXiv preprint arXiv:1703.10593, 2017.
[2] Choi Y., Choi M., Kim M., et.al. StarGAN_Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation[J]. arXiv: 1711.09020, 2017.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章