定义domain和style
Here, domain implies a set of images that can be grouped as a visually distinctive category, and each image has a unique appearance, which
we call style.
For example, we can set image domains based on the gender of a person, in which case the style include makeup, beard, and hairstyle.
输入图像 x ∈ X \mathbf{x}\in\mathcal{X} x∈X,arbitrary domain y ∈ Y y\in\mathcal{Y} y∈Y, y y y相当于domain的id
Generator(Figure 2a)
生成器 G G G将一幅输入图像 x \mathbf{x} x按照指定的style code s \mathbf{s} s,生成图像 G ( x , s ) G(\mathbf{x}, \mathbf{s}) G(x,s)
按照之前的做法,应该将target domain y y y送入 G G G中,此处将style code s \mathbf{s} s送入 G G G中,要求 s \mathbf{s} s是target domain y y y的一种style
Mapping network(Figure 2b)
给定latent code z \mathbf{z} z(下文提到了 z \mathbf{z} z是随机采样Gaussian Distribution得到的),Mapping Network F F F将 z \mathbf{z} z转换为指定domain y y y中的一个style code s \mathbf{s} s,即 s = F y ( z ) \mathbf{s}=F_y(\mathbf{z}) s=Fy(z),下标 y y y表示 F F F中的一个branch,因为 F F F是多个branch的,所以说 F F F是multi-task architecture
注:multi-branch architecture F y F_y Fy其实可以用condition architecture F ( z , y ) F(\mathbf{z}, y) F(z,y)来代替,这样处理更加灵活
Style encoder(Figure 2c)
给定输入图像 x \mathbf{x} x以及对应的domain y y y,encoder网络 E E E负责解析出图像所包含的style code s = E y ( x ) \mathbf{s}=E_y(\mathbf{x}) s=Ey(x)
Question:因为 E E E也是multi-branch architecture,那么假设 x \mathbf{x} x对应了domain 1,那么 F y = 1 ( x ) F_{y=1}(\mathbf{x}) Fy=1(x)是对 x \mathbf{x} x提取得到的style code,但是其它branch F y ≠ 1 ( x ) F_{y\neq1}(\mathbf{x}) Fy=1(x)的输出,其实是没有意义的
Discriminator(Figure 2d)
判别器 D D D包含多个分支,每个分支 D y D_y Dy负责判别在domain y y y中图像的真假
Q:原版StarGAN的判别器只接收一个输入,如果额外接收一个label作为输入会怎样?
A:判别器只接收图像作为输入,输出real/fake和domain_id,等价于判别器接收图像和label作为输入,输出real/fake
Adversarial objective
在训练过程中,随机采样latent code z ∈ Z \mathbf{z}\in\mathcal{Z} z∈Z以及target domain y ~ ∈ Y \tilde{y}\in\mathcal{Y} y~∈Y,然后生成target style code s ~ = F y ~ ( z ) \tilde{\mathbf{s}}=F_{\tilde{y}}(\mathbf{z}) s~=Fy~(z),接着使用 G G G生成图像 G ( x , s ~ ) G(\mathbf{x}, \tilde{\mathbf{s}}) G(x,s~),于是adversarial loss定义如下
L a d v = E x , y [ log D y ( x ) ] + E x , y ~ , z [ log ( 1 − D y ~ ( G ( x , s ~ ) ) ) ] ( 1 ) \begin{aligned} \mathcal{L}_{adv}=&\mathbb{E}_{\mathbf{x},y}\left [ \log D_y(\mathbf{x}) \right ]+\\ &\mathbb{E}_{\mathbf{x},\tilde{y},\mathbf{z}}\left [ \log\left ( 1-D_{\tilde{y}}\left ( G\left ( \mathbf{x},\tilde{\mathbf{s}} \right ) \right ) \right ) \right ] \qquad(1) \end{aligned} Ladv=Ex,y[logDy(x)]+Ex,y~,z[log(1−Dy~(G(x,s~)))](1)
Style reconstruction
为了保证 G G G生成的图像包含了style code s ~ \tilde{\mathbf{s}} s~,定义style reconstruction loss如下
L s t y = E x , y ~ , z ∥ s ~ − E y ~ ( G ( x , s ~ ) ) ∥ 1 ( 2 ) \mathcal{L}_{sty}=\mathbb{E}_{\mathbf{x},\tilde{y},\mathbf{z}}\left \| \tilde{\mathbf{s}}-E_{\tilde{y}}(G(\mathbf{x},\tilde{\mathbf{s}})) \right \|_1 \qquad(2) Lsty=Ex,y~,z∥s~−Ey~(G(x,s~))∥1(2)
意思是将 E E E用来计算loss,如果生成的图像 G ( x , s ~ ) G(\mathbf{x},\tilde{\mathbf{s}}) G(x,s~)被 E E E解码出来的style code与 s ~ \tilde{\mathbf{s}} s~差异很大的话,说明 G G G没有按照 s ~ \tilde{\mathbf{s}} s~去生成图像
style reconstruction loss可以看作是一种约束“相貌”的损失函数
Style diversification
为了保证 G G G生成图像的多样性,定义diversity sensitive loss如下
L d s = E x , y ~ , z 1 , z 2 ∥ G ( x , s ~ 1 ) − G ( x , s ~ 2 ) ∥ 1 ( 3 ) \mathcal{L}_{ds}=\mathbb{E}_{\mathbf{x},\tilde{y},\mathbf{z}_1,\mathbf{z}_2}\left \| G(\mathbf{x},\tilde{\mathbf{s}}_1)-G(\mathbf{x},\tilde{\mathbf{s}}_2) \right \|_1 \qquad(3) Lds=Ex,y~,z1,z2∥G(x,s~1)−G(x,s~2)∥1(3)
对于 G G G来说,需要最大化公式(3),如果对于同一幅图像 x \mathbf{x} x使用两个完全不同的style code z 1 , z 2 \mathbf{z}_1, \mathbf{z}_2 z1,z2生成出来的图像很相像的话,那么说明 G G G的多样性不足
Since the objective does not have an optimal point, we linearly decay the weight of the loss to zero during training.
Preserving source characteristics
我们要求 G G G只改变图像与domain有关的部分,对于domain-invariant characteristics(比如pose,表情等)要求不变,通过cycle consistency loss来保证
L c y c = E x , y , y ~ , z ∥ x − G ( G ( x , s ~ ) , s ^ ) ∥ 1 ( 4 ) \mathcal{L}_{cyc}=\mathbb{E}_{\mathbf{x},y,\tilde{y},\mathbf{z}}\left \| \mathbf{x}-G\left ( G\left ( \mathbf{x},\tilde{\mathbf{s}} \right ),\hat{\mathbf{s}} \right ) \right \|_1 \qquad(4) Lcyc=Ex,y,y~,z∥x−G(G(x,s~),s^)∥1(4)
其中 s ^ = E y ( x ) \hat{\mathbf{s}}=E_y(\mathbf{x}) s^=Ey(x)是图像 x \mathbf{x} x的estimated style code
Full objective
L D = − L a d v ( 5 ) \mathcal{L}_D=-\mathcal{L}_{adv} \qquad(5) LD=−Ladv(5)
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 ( 6 ) \begin{aligned} \mathcal{L}_{F,G,E}&=\mathcal{L}_{adv}+\lambda_{sty}\mathcal{L}_{sty}\\ &-\lambda_{ds}\mathcal{L}_{ds}+\lambda_{cyc}\mathcal{L}_{cyc} \qquad(6) \end{aligned} LF,G,E=Ladv+λstyLsty−λdsLds+λcycLcyc(6)
Evaluation metrics.
衡量生成图像的评价指标有Frechét inception distance (FID)和learned perceptual image patch similarity (LPIPS)
Baseline StarGAN的config包括:WGAN-GP、ACGAN discriminator、depth-wise concatenation
【总结】
StarGAN v2的优点是,训练数据只需要domain级别的标注,而不需要style级别的标注
缺点是对于只能处理一对domain
For multi-domain comparisons, we train these models multiple times for every pair of image domains.