StarGAN:支持多领域图像生成的生成对抗网络实践

GAN家族在CVPR2018时候迎来一个新强悍的成员,即:StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation 。从这个题目可以看出,它与之前的pix2pix等相比,能够支持一生多。

1、论文原理

  GAN的基本框架都是G和D两个模型,一个生成模型,一个判别模型,那么为了同时生成多个,那么这个G模型必须具备生成多样化图像的能力。这也是论文要针对解决的问题是:

However, existing models are both inefficient and ineffectivein such multi-domain image translation tasks. Theirinefficiency results from the fact that in order to learn allmappings among k domains, k(k−1) generators have tobe trained.

而论文的创新点如下:

(1)We propose StarGAN, a novel generative adversarialnetwork that learns the mappings among multiple domains using only a single generator and a discriminator,training effectively from images of all domains.• (仅用一个G和D,即可实现多领域图像生成和训练)

(2) We demonstrate how we can successfully learn multidomain image translation between multiple datasets byutilizing a mask vector method that enables StarGAN to control all available domain labels. 

(3)We provide both qualitative and quantitative results on facial attribute transfer and facial expression synthesis tasks using StarGAN, showing its superiority over baseline models. 

论文的基本框架如下:

StarGAN:支持多领域图像生成的生成对抗网络实践_第1张图片

要想让G拥有学习多个领域转换的能力,需要对生成网络G和判别网络D做如下改动。

  • 在G的输入中添加目标领域信息,即把图片翻译到哪个领域这个信息告诉生成模型。
  • D除了具有判断图片是否真实的功能外,还要有判断图片属于哪个类别的能力。这样可以保证G中同样的输入图像,随着目标领域的不同生成不同的效果
  • 除了上述两样以外,还需要保证图像翻译过程中图像内容要保存,只改变领域差异的那部分。图像重建可以完整这一部分,图像重建即将图像翻译从领域A翻译到领域B,再翻译回来,不会发生变化。
同时模型为了支持多个数据集,需要增加mask来实现,即补位加0的办法。

2、论文复现

从论文原作代码:https://github.com/yunjey/StarGAN上进行复现,其运行结果如下:

StarGAN:支持多领域图像生成的生成对抗网络实践_第2张图片

输出测试结果如下:其中的选择的属性输出如下,结果相当的酷炫。特别是倒数第二个的性别转换。

selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young

StarGAN:支持多领域图像生成的生成对抗网络实践_第3张图片


StarGAN:支持多领域图像生成的生成对抗网络实践_第4张图片

StarGAN:支持多领域图像生成的生成对抗网络实践_第5张图片

StarGAN:支持多领域图像生成的生成对抗网络实践_第6张图片

你可能感兴趣的:(pytorch,GAN)