StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
paper motivation
Pix2Pix模型解决了有Pair对的数据翻译问题;CycleGAN解决了Unpaired数据下的图像翻译问题。但无论是Pix2Pix还是CycleGAN,都是解决了一对一的问题,即一个领域到另一个领域的转换。当有很多领域要转换时,对于每一个领域转换,都需要重新训练一个模型去解决。例如加入有K个领域,就需要训练K(K-1)个生成模型,这样的行为太低效了。本文所介绍的StarGAN就是将多领域转换用统一框架实现的算法。
主要贡献 创新点
- 提出了StarGAN,一个全新的生成对抗网络。只要一个生成网络G和判别网络D就可以实现多领域的转换。
- 提供了一种掩码向量方法,StarGAN能够通过掩码向量在不同数据集进行多目标领域的迁移。
- 在人脸属性转移和表情改变方面StarGAN效果很好
主要思想
在网络结构上为了让生成网络G拥有学习多个领域转换的能力,需要对生成网络G和判别网络D做如下改动。
-
在G的输入中添加目标领域信息,即把图片翻译到哪个领域这个信息告诉生成模型,生成模型通过信息进行翻译。
-
判别网络D除了具有判断图片是否真实的功能外,还要有判断图片属于哪个类别的能力。这样可以保证输入生成网络G中同样的图像,随着目标领域的不同映射到不同的领域。
-
还需要保证图像翻译过程中图像身份信息不丢失,只改变领域差异的那部分。因此需要对生成图像进行图像重建,图像重建即将图像翻译从领域A翻译到领域B,再翻译回来。
网络训练如下图所示:
(a)判别网络D不仅要学习去辨别图像的真假,还需要学习去辨别真实图像属于哪个领域。(b)生成网络G将图像和目标领域作为输入,直接在张量上concatenated,输出Fake image 。(c)生成网络试图通过original domain和Fake image重建图像。(d)通过判别网络D去更新生成网络G。G试图去生成Fake image去骗过判别网络为真实图像,并分类为target domain。
损失函数
Adversarial Loss
为了让图像接近真实
L a d v = E x [ log D s r c ( x ) ] + E x , c [ log ( 1 − D s r c ( G ( x , c ) ) ] \begin{aligned} \mathcal { L } _ { a d v } = & \mathbb { E } _ { x } \left[ \log D _ { s r c } ( x ) \right] + & \mathbb { E } _ { x , c } \left[ \log \left( 1 - D _ { s r c } ( G ( x , c ) ) \right] \right. \end{aligned} Ladv=Ex[logD