starGAN 论文学习

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

2018年的cvpr

论文地址:

http://openaccess.thecvf.com/content_cvpr_2018/papers/Choi_StarGAN_Unified_Generative_CVPR_2018_paper.pdf

Abstract

解决图像转换一对多的问题,本文主要对人脸进行改变

1. Introduction

文章提到几个关键字的解释:

Domain---男人 or 女人

Arrtibute---年龄 头发颜色 表情

Attribute value---13 黑色 开心

 

starGAN 论文学习_第1张图片

左图为一对一图片转换所需的生成器

右图为本文的,只需要一个?!来看看怎么实现的把

本文贡献:

1. StarGAN只要一个G和一个D实现多领域转换

2. 提供一种掩码向量方法,使StarGAN能够控制所有可用的域标签

3. 在人脸属性转移和表情改变方面StarGAN效果很好

2. Related Work

cGAN  

Image-to-Image Translation: 如pix2pix cycleGAN等

3. Star Generative Adversarial Networks

目标:G(x,c) -> y

标签c随机生成

3.1. Multi-Domain Image-to-Image Translation

先介绍用到的loss

对抗loss:

Domain Classification Loss(cls):

在D的top中加入辅助分类器,在G和D中都各加一个分类loss

D的:

G的:

通过最小化该loss可让图片归类到domain c

Reconstruction Loss

Rec_loss:

重构loss,c是目标域,c撇是原域,可以看出经过两次GAN回到了原始图像,是不是很像cycleGAN呢,嗯哼

完整的loss:

 

3.2. Training with Multiple Datasets

starGan适用于多数据集间的转换。这样就有一个问题,比如另一个数据集没有需要的标签,因为在重构loss里需要域双方都有同类标签,那么该怎么办呢?作者提出了解决办法。

Mask Vector:

其中ci代表图像在第i组数据集的属性经过编码后得到的结果,n为数据集数目(ci可以是one-hot也可以是2分类)。文章中仅涉及两个数据集,n=2。m为该图像所属数据集的编号经过One-hot编码后得到的结果。

(p.s.嗯哼,好像看不懂啊???后面有个实验可以弄清楚点)

Training Strategy

训练时,生成器中加入标签c,通过这样做,生成器学会忽略未指定的标签,这些标签是零向量,并集中在给定的不为0的标签上,通过在CelebA和RaFD之间交替,判别器学习两个数据集的所有鉴别特征,并且生成器学习控制两个数据集中的所有标签。

 

ok,来看看训练过程

starGAN 论文学习_第2张图片

对D训练

(a)D对真假图片进行判别,真图片判真,假图片判假,真图片被分类到相应域

对G训练

(b)真图片+目的标签c进入G生成假图片

(c)假图片+原始标签c撇进入G又回去生成重构图片(重构loss)

(d)D对假图片进行判别,判假图片为真

 

(P.s. 好了,感觉和以前差不多对不对?就加了个domain分类,和较复杂的标签c)

4. Implementation

Improved GAN Training:

为了获得更好的效果,作者把原始GAN的loss换为Wasserstein GAN 的

(我晕,有机会看看)

Network Architecture:

没什么好说的,用别人的就是了,哈哈

5. Experiments

5.1. Baseline Models

比较对象DIAT ?没看过  ,CycleGAN还有IcGAN

 

starGAN 论文学习_第3张图片

效果是挺不错的

5.2. Datasets

CelebA:

CelebFaces Attributes (CelebA) dataset,有202599张人脸,作者对图片进行了检测,

还使用以下属性构建了七个domian:头发的颜色(黑色,金色,棕色),性别(男/女)、年龄(年轻/老)。
RaFD:

The Radboud Faces Database (RaFD) 由67个参与者收集的4824幅图像组成,里面有各种表情

 

5.3. Training

参数就不说了~

数据增强方面作者用水平翻转

为了弥补数据的不足,当使用RaFD训练时,作者以0.0001的学习率训练所有模型100个周期,并在接下来的100个周期应用相同的衰减策略

 

5.4. 5.5 5.6 Experimental Results on CelebA,RaFD,CelebA+RaFD

我们就挑最后一个,CelebA+RaFD来看吧

 

starGAN 论文学习_第4张图片

这是作者一直强调的多训练集训练,效果好像是提升了,毕竟咱多数据集数据多嘛

 

Learned role of mask vector:

starGAN 论文学习_第5张图片

上图是正确掩码m为(0,1)

下图是错误掩码m位(1,0)

可以发现正确掩码让控制表情的RaFD数据集构建的网络发挥了作用,改变了表情;

错误掩码让可以控制年龄的celebA数据集构建的网络发挥了作用,改变了年龄~

 

6. Conclusion

嗯哼,新的东西就是标签c掩码向量的设计,有这个就可以实现多数据集(掩码m表示)多特征(多条件GAN)训练~

你可能感兴趣的:(paper)