【人脸属性迁移】StarGAN v2: Diverse Image Synthesis for Multiple Domains

StarGAN v2

文献全称:StarGAN v2: Diverse Image Synthesis for Multiple Domains
文献出处:[J]. arXiv: Computer Vision and Pattern Recognition, 2019
数据集:CelebA-HQ、AFHQ
评价标准:FID、LPIPS、AMT User Study

论文贡献(亮点)

  • 跳出了starGAN使用域标签向量的思维惯性,为每个域生成多个style code,通过AdaIN完成迁移,同时保证生成的多样性。
  • 介绍了自己搜集的数据集,动物脸部数据集(AFHQ)

实验效果图
(1)Latent -guided synthesis
【人脸属性迁移】StarGAN v2: Diverse Image Synthesis for Multiple Domains_第1张图片
(2)Reference-guided synthesis
【人脸属性迁移】StarGAN v2: Diverse Image Synthesis for Multiple Domains_第2张图片
模型框架图
【人脸属性迁移】StarGAN v2: Diverse Image Synthesis for Multiple Domains_第3张图片

概念解释

在文献的介绍中,作者做出了有别于StarGAN的概念解释,对域(domain)和风格(style)冠以比较广泛的定义。

  • :一个图像集合,其中的图片可以被分类为同一种具有视觉区分度的类型。
  • 风格:每个图像具有的独特外观。

举例来说,可以设置性别(男和女)作为两个域,而其中的风格则可以涵盖很多内容,比如妆容、胡子、发型等,可以说风格是单个图像内全局的效果,而不是单一的某个pattern。这里的定义与StarGAN和AttGAN的概念定义有所不同,比如发型、胡须等属性被归为style的范畴中了。

主要思想

在以前的方法中,传递迁移的条件信息是通过将属性向量输入到网络中来实现的,而本文介绍的方法没有采用这种方式,而是结合AdaIN来实现迁移的,即在feature map层面上将源图的数据分布匹配到style的分布上。
网络结构分为四个模块:生成器、多任务映射网络、多任务风格编码器和多任务判别器。
每个域的style code可由映射网络或风格编码器生成,两者的输出端都是多分支,每个分支的输出表示当前域的style code,而两者的区别为:

  • 映射网络:对随机高斯噪声进行编码,域y的style code可简单表示为 s = F y ( z ) . {\bf s}=F_y({\bf z}). s=Fy(z).
  • 风格编码器:对参考图片进行编码,域y的style code可简单表示为 s = E y ( x ) {\bf s}=E_y({\bf x}) s=Ey(x)

生成器
生成器部分有两个信息源:提供内容信息的源图片和来自某个域的style code。编码器部分提取源图片的深度特征,解码器部分负责将这些深度特征匹配到style code的数据分布上,也可以说是一种融合。

多任务判别器
这里的判别器设计考虑到了信息源的问题,在之前的方法中,例如StarGAN,只有一个判别器,训练判别器的数据源来自整个训练集,而不是某一个特定的域,而生成器收到的反馈信号都是来自判别器,这样就相当于胡子眉毛一把抓。
而多任务判别器的输出端是多分支的,每一个分支的输出表示当前样本是否属于当前这个域,这样就做到了术业有专攻,每个题型都做好专项训练。
(前段时间发现了这个问题,大概是这个问题很早就暴露出来了,现在已经被别人做出来了,多任务判别器不是这篇提出来的,这篇的判别器结构是从别人那里借鉴过来的。后续我会把这个点整理一下更新出来。)

损失函数

1.对抗目标 L a d v = E x , y [ l o g D y ( x ) ] + E x , y ~ , z [ l o g ( 1 − D y ~ ( G ( x , s ~ ) ) ) ] L_{adv}={\Bbb E}_{{\bf x},y}[logD_y({\bf x})]+{\Bbb E}_{{\bf x},{\tilde y},{\bf z}}[log(1-D_{\tilde y}(G({\bf x},{\bf \tilde s})))] Ladv=Ex,y[logDy(x)]+Ex,y~,z[log(1Dy~(G(x,s~)))] 其中 y y y表示源图 x \bf x x的原始域, y ~ \tilde y y~表示目标域。
这个损失函数可以体现出对每个域分支训练的细节,源图用以训练域 y y y的判别器分支,生成图 G ( x , s ~ ) G({\bf x},{\bf \tilde s}) G(x,s~)用以训练域 y ~ \tilde y y~的判别器分支。
2.风格重构 L s t y = E x , y ~ , z [ ∣ ∣ s ~ − E y ~ ( G ( x , s ~ ) ) ∣ ∣ 1 ] L_{sty}={\Bbb E}_{{\bf x},{\tilde y},{\bf z}}[||{\bf \tilde s}-E_{\tilde y}(G({\bf x},{\bf \tilde s}))||_{_1}] Lsty=Ex,y~,z[s~Ey~(G(x,s~))1] 为了使得生成器在生成图像时利用到style code,这里设置使生成图像的风格编码与输入风格保持一致的目标。
3.风格多样性 L d s = E x , y ~ , z 1 , z 2 [ ∣ ∣ G ( x , s ~ 1 ) − G ( x , s ~ 2 ) ∣ ∣ 1 ] L_{ds}={\Bbb E}_{{\bf x},{\tilde y},{\bf z_{_1}},{\bf z_{_2}}}[||G({\bf x},{\bf \tilde s_{_1}})-G({\bf x},{\bf \tilde s_{_2}})||_{_1}] Lds=Ex,y~,z1,z2[G(x,s~1)G(x,s~2)1] 其中 s ~ i = F y ~ ( z i ) {\bf \tilde s_{_i}}=F_{\tilde y}({\bf z_{_i}}) s~i=Fy~(zi), z ∈ { 1 , 2 } {\bf z}\in\{1,2\} z{1,2}.这个训练目标是最大化两个风格生成图像的距离,这样做是为了激励生成器去探索更多的多样性。
4.保留源图特性 L c y c = E x , y , y ~ , z [ ∣ ∣ x − G ( G ( x , s ~ ) , s ^ ) ∣ ∣ 1 ] L_{cyc}={\Bbb E}_{{\bf x},y,{\tilde y},{\bf z}}[||{\bf x}-G(G({\bf x},{\bf \tilde s}),{\bf \hat s})||_{_1}] Lcyc=Ex,y,y~,z[xG(G(x,s~),s^)1] 其中 s ^ \bf \hat s s^表示源图经过风格编码器所得。这个损失函数相当于循环重构。
总损失函数
L D = − L a d v L_D=-L_{adv} LD=Ladv L F , G , E = L a d v + λ s t y L s t y − λ d s L d s + λ c y c L c y c L_{F,G,E}=L_{adv}+\lambda_{sty}L_{sty}-\lambda_{ds}L_{ds}+\lambda_{cyc}L_{cyc} LF,G,E=Ladv+λstyLstyλdsLds+λcycLcyc 考虑到风格多样性的损失函数没有最优点,所以 λ d s \lambda_{ds} λds在训练过程中线性缩减到0.

实现细节

网络结构细节
(1)生成器结构
【人脸属性迁移】StarGAN v2: Diverse Image Synthesis for Multiple Domains_第4张图片
(2)样式编码器/判别器
【人脸属性迁移】StarGAN v2: Diverse Image Synthesis for Multiple Domains_第5张图片
其中 N N N表示实验涉及N个域, D D D表示输出结果的维度, c h ch ch表示通道数的因子:

  • 判别器: D = 1 D=1 D=1(Real/Fake), c h = 32 ch=32 ch=32
  • 样式编码器: D = 64 D=64 D=64 c h = 16 ch=16 ch=16

数据集使用情况
作者实验中将CelebA-HQ简单地分成了“男”和“女”两个域,据我分析,这样做的动机可能是因为这两个域的样本数据量较为均衡,当然也可能涉及风格涵盖的内容较多且模糊的原因。
对于作者自己搜集的AFHQ数据集,总共分为3个域:猫、狗和野生动物,每个域各5000张图片,体现每个域内多样性的是动物的品种,在每个域中有8种以上的品种。而作者采用这个数据集,也可能是考虑到常用的数据集样本分布不均衡的情况。

未完待续
由于源码暂时未提供,多域判别器的训练策略目前不得而知。

参考文献

  1. Choi Y, Uh Y, Yoo J, et al. StarGAN v2: Diverse Image Synthesis for Multiple Domains[J]. arXiv: Computer Vision and Pattern Recognition, 2019
  2. Choi Y, Choi M, Kim M, et al. StarGAN: Unified Generative Adversarial Networks for Multi-domain Image-to-Image Translation[C]. computer vision and pattern recognition, 2018: 8789-8797.

你可能感兴趣的:(研究生任务)