今天看啥  ›  专栏  ›  jiangweijie1981

文献阅读·StarGAN

jiangweijie1981  · 简书  ·  · 2020-02-19 21:41

简介

Stargan: Unified generative adversarial networks for multi-domain image-to-image translation.CVPR-2018,Cited-690.
官方开源,是pytorch版本的: https://github.com/yunjey/StarGAN

关键字

风格迁移,GAN,深度学习,机器学习

正文

1. 任务

StraGAN目标是多个域之间的图像可以相互转换,与CycleGAN不同的是StraGAN转换域只需要一个模型就可以实现,其基本思路可以想象成CycleGAN的输入输出各自加上个域开关,使用这个开关来指示域转换的方向。用个图(文献Figure3)来表示:

思路和结构.png

从图上可以看出在生成器增加了个目标域标记输入,输入样本 x 时附加上目标域标记 c ;判别器增加了域标记判别的输出,即在判别生成的样本 \tilde x 时,需要判别 \tilde x 的真假外,还需要判别 \tilde x 的属于哪个域。

2. 损失和训练过程

损失有3个构成:对抗损失 L_{adv} 对应传统GAN的损失,使用二分类损失计算; L_{cls} 域损失对应判别域标签的损失,使用交叉熵或多个二分类损失来计算;循环一致性损失 L_{rec} ,和CycleGAN一样使用 L_1 来计算。

训练过程包含2个,更新 G,D 参数时使用的目标函数分别如下:

\begin{align} & L_D=-L_{adv}+\lambda_{cls}L_{cls}^r\\ & L_G=L_{adv}+\lambda_{cls}L_{cls}^r+\lambda_{rec}L_{rec} \end{align}

3. 多数据集联合训练

为了发挥StarGAN的优势,可以同时训练多个数据集,但是多个数据集包含的属性未必相同,在训练过程中不仅对每个数据集的属性进行了编码,还增加了一个Mask来指示数据域,如图(文献Figure8),更加具体的可以参考开源。

多集训练.png
4. 效果

放个文献的图(文献Figure1):

效果.png

参考资料

[1] Choi, Yunjey, et al. "Stargan: Unified generative adversarial networks for multi-domain image-to-image translation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.




原文地址:访问原文地址
快照地址: 访问文章快照