StarGAN v2:多领域多样性图像合成.

本文设计了StarGAN v2,可以学习不同图像域之间的映射,并且每个图像域中生成的图像具有多样性。

作者假设图像可以被划分到不同的图像域(domain),不同域具有不同的视觉属性,比如人的性别。而每幅图像具有不同的风格(style),比如人脸图像的风格包括妆容、胡须和发型。

StarGAN v2由生成器、映射网络、风格编码器和判别器构成。

生成器$G$根据输入图像$x$和风格编码$s$生成图像$G(x,s)$。通过AdaIN方法把风格编码$s$融入输入图像$x$的特征中。

映射网络$F$把随机隐变量$z$映射为域$y$中的风格编码$s=F_y(z)$。在训练时随机采样域$y$和风格编码$s$,可以高效地学习所有域的风格表示。

风格编码器$E$把输入图像$x$编码为域$y$中的风格编码$s=E_y(x)$。判别器$D$判断图像$x$在域$y$中是否为真实图像。$E,D$采用相同的结构。

训练时,随机采样隐变量$z$和目标域$\tilde{y}$,通过映射网络$F$生成对应的风格编码$\tilde{s}=F_{\tilde{y}}(z)$;生成器接收输入图像$x$和风格编码$\tilde{s}$,生成对应风格的图像$G(x,\tilde{s})$,构造对抗损失:

\[\begin{aligned} \mathcal{L}_{\text{adv}}(F,G,D) &= \Bbb{E}_{x,y}[\log D_y(x)] + \Bbb{E}_{x,\tilde{y},z}[1-\log D_{\tilde{y}}(G(x,\tilde{s}))] \end{aligned}\]

将生成图像$G(x,\tilde{s})$通过风格编码器$E$构造域$\tilde{y}$中的风格编码$E_{\tilde{y}}(G(x,\tilde{s}))$,进而构造风格重构损失(style reconstruction loss):

\[\mathcal{L}_{\text{sty}}(F,E,G) = \Bbb{E}_{x,\tilde{y},z}[||\tilde{s}-E_{\tilde{y}}(G(x,\tilde{s}))||_1]\]

若希望在同一图像域中的生成图像具有风格的多样性,则随机采样隐变量$z_1,z_2$后,通过映射网络$F$生成风格编码$\tilde{s}_1,\tilde{s}_2$,通过最大化两个风格编码对应的生成图像的差异构造多样性敏感损失(diversity sensitive loss):

\[\mathcal{L}_{\text{ds}}(F,G) = \Bbb{E}_{x,\tilde{y},z_1,z_2}[||G(x,\tilde{s}_1)-G(x,\tilde{s}_2)||_1]\]

最后构造循环一致性损失(cycle consistency loss)。根据输入图像$x$及其对应的域$y$通过风格编码器$E$提取风格编码$\hat{s}=E_y(x)$,使用该风格编码将生成图像$G(x,\tilde{s})$重新映射到原图像域中的图像。

\[\mathcal{L}_{\text{cyc}}(F,E,G) = \Bbb{E}_{x,y,\tilde{y},z}[||x-G(G(x,\tilde{s}),\hat{s})||_1]\]

总损失函数如下:

\[\begin{aligned} \mathop{ \min}_{F,E,G} \mathop{\max}_{D} & \mathcal{L}_{\text{adv}}(F,G,D) + \lambda_{\text{sty}} \mathcal{L}_{\text{sty}}(F,E,G) \\ & -\lambda_{\text{ds}}\mathcal{L}_{\text{ds}}(F,G) + \lambda_{\text{cyc}}\mathcal{L}_{\text{cyc}}(F,E,G) \end{aligned}\]