StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation

StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation

简述:
现有的方法在两个以上的领域中具有有限的可扩展性和鲁棒性,因为不同的模型应该为每一对图像域独立地建立。为了解决这一限制,本文提出了StarGAN,可以仅使用一个模型在多个域中执行图像到图像的转换。stargan的这种统一的模型体系结构允许在一个网络中对不同领域的多个数据集进行并行训练。
下图为cycleGAN中,每一对图像域独立的建立模型结果:
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第1张图片
下图为本文starGAN中,可以同时对不同领域的多个数据集进行并行训练结果:
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第2张图片
下图为starGAN与其他GAN网络的异同点:
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第3张图片
模型:
StarGAN结构图:
1.保留了cycleGAN的思想,将G中生成好的模型在经过一个G’,进行图像重建,使得X域中的图像经过G变成我们期望的Y域图像,再经过G’生成原来X域的图像。
2.G和D都是C-GAN,输入都需要有标签,告诉G和D具体生成的图片是改动图像的哪个或那些label。
3.starGAN的模型结构中,生成器包含2个卷积层(下采样的步长设置为2),6个残差层,2个反卷积层(上采样的步长设置为2),生成器中还使用了归一化(instance normalization)。判别器则采用PatchGAN的结构,但没有使用归一化层。
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第4张图片
生成器和判别器的具体结构为:starGAN的模型结构参考了DIAT(仅用了 adversarial loss 来映射域之间的关系),cycleGAN( 用adversarial loss和 cycle consistency losses来映射域之间的关系 )和IcGAN(cGAN的改进版),同时为了防止模型倒塌,作者还借鉴了WGAN的思想,并对 adversarial loss (对抗损失)进行了改进。
生成器结构:
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第5张图片
判别器结构:
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第6张图片

LOSS:
其中,G是生成器,D是判别器,X是输入图像,c是标签,y是输出图像,它们之间的关系是:G(x, c) → y,我们的鉴别器在源和主标签上都给出了概率分布,D: x→{Dsrc(x),Dcls(x)}。
Adversarial Loss(对抗损失):
在这里插入图片描述
Domain Classification Loss(域分类损失):
1.D在分类真实数据时产生的损失:
其中术语Dcls(c’| x)表示D所计算的域标签上的概率分布。
在这里插入图片描述
2.D在分类假数据时产生的损失:
在这里插入图片描述
Reconstruction Loss(重建损失):
在最小化上述两种损失的情况下并不能保证在图片生成的时候只改变与领域有关的部分而保存其他部分,但是重建损失,可以计算原始图像和生成图像之间的距离,具体损失如下:
在这里插入图片描述
Full Objective(实际损失):
其中,λcls和λrec是超参数,它们分别控制域分类和域重构损失的相对重要性
在这里插入图片描述

训练技巧:

Mask Vector:
先展示一下Mask Vector的作用:上面为有Mask Vector的效果,下面为没有Mask Vector的效果,可以看出没有Mask Vector时除了改变了情绪这一特性,还改变了年龄特性。
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第7张图片
具体的Mask Vector为:
在这里插入图片描述
其中,ci表示第i个数据集标签的向量,m为one-hot vector,下图进行讲解,可以看到有两个数据集标签,当要改变Celec A标签的一些特征时,RaFD对应的ci为0,同理反之一样,可以看到下图abcd中Mask vector,Celec A标签对应的vector为1,RaFD对应的vector为0,同样的efgh中Mask vector,RaFD标签对应的vector为1,Celec A对应的vector为0:
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第8张图片
同时,在训练时,当使用CelebA中的图像进行训练时,D只最小化与CelebA属性相关的标签的分类错误,而不最小化与RaFD相关的面部表情。在这些设置下,通过在CelebA和RaFD之间交替,D学习两个数据集的所有鉴别特征,而G学习控制两个数据集中的所有标签。

实验:
不同GAN网络的AMT指数:
在这里插入图片描述
不同GAN网络的分类错误率:
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第9张图片
不同GAN网路的效果展示:
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第10张图片
StarGAN(2018): Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation_第11张图片

你可能感兴趣的:(GAN)