3. Identity Preserving GANs
输入两幅图像(xs,xa),xs指定identity信息,xa指定attribute信息(包括pose, emotion, illumination, and even background)
作者描述得比较保守,并没有保证保留background信息
生成一幅图像x′,拥有xs的identity和xa的attribute
注:从Figure2中看到从xa到x′,background变了,这会影响实际应用

图中共有5个网络
- the identity encoder network I,对xs提取identity vector fI(xs)
- the attributes encoder network A,对xa提取attribute vector fA(xa)
- the generative network G,拼接identity和attribute vector作为输入,生成图像x′
- the classification network C,计算P(c∣xs),即xs属于每一个identity的概率
- the discriminative network D,判别真假图像
在整个framework中,使用网络A去学习xa中包含的attribute信息,并不要求提供attribute annotation
3.1. Disentanglement of Identity and Attributes
给定一个含有identity annotation的数据库{xis,ci},以softmax loss训练分类网络I(还可以使用更加高级的人脸识别loss),具体如下
LI=−Ex∼Pr[logP(c∣xs)](1)
最终,使用最后一层pooling layer的输出作为identity vector
(xs,xa)是成对输入的,共有2种情况
情况1:xs=xa,此时要求生成的x′和xa一模一样(惩罚程度大)
情况2:xs=xa,此时要求生成的x′和xa大体相似(惩罚程度小)
于是可得Reconstruction loss,如下
LGR={21∥xa−x′∥222λ∥xa−x′∥22if xs=xaotherwise(2)
其中设置λ=0.1
x′与网络A有关,所以最小化LGR可以训练网络A生成更好的attribute vector
个人认为在xs=xa时,使用MSE是没有道理的
使用KL divergence loss来约束attribute vector到一个先验分布P(z)∼N(0,1)
对于每一个xa,网络A输出隐向量z的均值μ和方差ϵ,然后使用KL divergence loss来衡量学习到的分布与先验分布P(z)之间的差异,如下
LKL=21(μTμ+j−1∑J(exp(ϵ)−ϵ−1))(3)
其中μ,ϵ∈RJ
对于图像xa的attribute vector z,实际上是通过采样得到的
z=μ+r⊙exp(ϵ)
其中r是服从N(0,I)的随机向量
3.2. Asymmetric Training for Networks G, C, and D
引入判别器D,最小化如下loss
LD=−Ex∼Pr[logD(xa)]−Ez∼Pz[log(D(G(z)))](4)
为了解决传统GAN中梯度消失的问题,借鉴了CVAE-GAN的思路
对于样本(xs,xa),生成x′,定义fD为网络D的最后一层FC layer,于是提出一项pairwise feature matching loss为fD(x′)与fD(xa)之间的欧式距离,具体如下
LGD=21∥fD(x′)−fD(xa)∥22(5)
网络C的任务是识别identity,loss定义如下
LC=−Ex∼Pr[logP(c∣xs)](6)
注:公式(6)与公式(1)一模一样
同样地,对于分类网络C,定义fC为网络C的最后一层FC layer,然后计算fC(x′)与fD(xs)之间的欧式距离作为loss,可以更好地使x′拥有xs的identity信息
LGC=21∥fC(x′)−fC(xs)∥22(7)
实际上可以对网络的多个layer添加欧式距离约束,但提升只有一点点
3.1节中提到网络I是通过人脸识别(分类任务)训练出来的,而网络C同样也是做人脸识别的任务,所以可以用同一个预训练网络来初始化
3.3. Unsupervised Training
理论上,整个框架在训练集上训练之后,应该具备了区别不同人的能力,但训练集的大小是有限的,倘若给定一个训练集以外的人脸,网络不一定能够识别这张人脸的identity
作者从互联网上收集了100万各式各样的无标签人脸图像,希望进一步增强网络的泛化能力
3.4. Overall Objective Function
总共有7项loss,每一项负责优化不同的网络,如下表所示

每一个iteration有2种情况:分别是xs=xa、xs=xa,见Algorithm 1
33
4. Experiments
4.3. Face Attributes Transformation
Figure 5展示的换脸结果,xs图像是在训练集中的
整体来看,肤色与xa保持一致

Figure 6展示的换脸结果,xs图像在训练集之外(新的identity)

如果xs的pose不是正脸,那么配合一张正脸xa,可以生成xs对应的正脸图像(作者说可以保持肤色,个人不认同),效果如Figure 7所示

4.4. Face Attributes Morphing
对于一幅xs图像,选取2幅xa图像,记为x1,x2,使用网络A计算attribute vector z1,z2,然后使用线性差值生成中间的过渡attribute vector z=αz1+(1−α)z2,α∈[0,1],然后生成x′,称为人脸属性的渐变,效果如Figure 8所示