Towards Open-Set Identity Preserving Face Synthesis(CVPR18)

3. Identity Preserving GANs

输入两幅图像 ( x s , x a ) (x^s, x^a) (xs,xa) x s x^s xs指定identity信息, x a x^a xa指定attribute信息(包括pose, emotion, illumination, and even background)
作者描述得比较保守,并没有保证保留background信息

生成一幅图像 x ′ x' x,拥有 x s x^s xs的identity和 x a x^a xa的attribute
注:从Figure2中看到从 x a x^a xa x ′ x' x,background变了,这会影响实际应用

在这里插入图片描述
图中共有5个网络

  • the identity encoder network I I I,对 x s x^s xs提取identity vector f I ( x s ) f_I(x^s) fI(xs)
  • the attributes encoder network A A A,对 x a x^a xa提取attribute vector f A ( x a ) f_A(x^a) fA(xa)
  • the generative network G G G,拼接identity和attribute vector作为输入,生成图像 x ′ x' x
  • the classification network C C C,计算 P ( c ∣ x s ) P(c|x^s) P(cxs),即 x s x^s xs属于每一个identity的概率
  • the discriminative network D D D,判别真假图像

在整个framework中,使用网络 A A A去学习 x a x^a xa中包含的attribute信息,并不要求提供attribute annotation

3.1. Disentanglement of Identity and Attributes

给定一个含有identity annotation的数据库 { x i s , c i } \left \{ x_i^s, c_i \right \} {xis,ci},以softmax loss训练分类网络 I I I(还可以使用更加高级的人脸识别loss),具体如下
L I = − E x ∼ P r [ log ⁡ P ( c ∣ x s ) ] ( 1 ) \mathcal{L}_I=-\mathbb{E}_{x\sim P_r}\left [ \log P\left ( c|x^s \right ) \right ] \qquad (1) LI=ExPr[logP(cxs)](1)

最终,使用最后一层pooling layer的输出作为identity vector

( x s , x a ) (x^s, x^a) (xs,xa)是成对输入的,共有2种情况
情况1: x s = x a x^s=x^a xs=xa,此时要求生成的 x ′ x' x x a x^a xa一模一样(惩罚程度大)
情况2: x s ≠ x a x^s\neq x^a xs=xa,此时要求生成的 x ′ x' x x a x^a xa大体相似(惩罚程度小)

于是可得Reconstruction loss,如下
L G R = { 1 2 ∥ x a − x ′ ∥ 2 2 if  x s = x a λ 2 ∥ x a − x ′ ∥ 2 2 otherwise ( 2 ) \mathcal{L}_{GR}=\left\{\begin{matrix} \frac{1}{2}\left \| x^a-x' \right \|_2^2 & \text{if $x^s=x^a$}\\ \frac{\lambda}{2}\left \| x^a-x' \right \|_2^2 & \text{otherwise} \end{matrix}\right. \qquad (2) LGR={21xax222λxax22if xs=xaotherwise(2)
其中设置 λ = 0.1 \lambda=0.1 λ=0.1

x ′ x' x与网络 A A A有关,所以最小化 L G R \mathcal{L}_{GR} LGR可以训练网络 A A A生成更好的attribute vector
个人认为在 x s ≠ x a x^s\neq x^a xs=xa时,使用MSE是没有道理的

使用KL divergence loss来约束attribute vector到一个先验分布 P ( z ) ∼ N ( 0 , 1 ) P(z)\sim N(0, 1) P(z)N(0,1)
对于每一个 x a x^a xa,网络 A A A输出隐向量 z z z的均值 μ \mu μ和方差 ϵ \epsilon ϵ,然后使用KL divergence loss来衡量学习到的分布与先验分布 P ( z ) P(z) P(z)之间的差异,如下
L K L = 1 2 ( μ T μ + ∑ j − 1 J ( exp ⁡ ( ϵ ) − ϵ − 1 ) ) ( 3 ) \mathcal{L}_{KL}=\frac{1}{2}\left ( \mu^T\mu+\sum_{j-1}^{J}(\exp(\epsilon)-\epsilon-1) \right ) \qquad (3) LKL=21(μTμ+j1J(exp(ϵ)ϵ1))(3)
其中 μ , ϵ ∈ R J \mu,\epsilon\in \mathbb{R}^J μ,ϵRJ

对于图像 x a x^a xa的attribute vector z z z,实际上是通过采样得到的
z = μ + r ⊙ exp ⁡ ( ϵ ) z = \mu+r\odot \exp(\epsilon) z=μ+rexp(ϵ)
其中 r r r是服从 N ( 0 , I ) N(0,I) N(0,I)的随机向量

3.2. Asymmetric Training for Networks G G G, C C C, and D D D

引入判别器 D D D,最小化如下loss
L D = − E x ∼ P r [ log ⁡ D ( x a ) ] − E z ∼ P z [ log ⁡ ( D ( G ( z ) ) ) ] ( 4 ) \mathcal{L}_D=-\mathbb{E}_{x\sim P_r}\left [ \log D\left ( x^a \right ) \right ] - \mathbb{E}_{z\sim P_z}\left [ \log (D\left ( G(z) \right )) \right ] \qquad (4) LD=ExPr[logD(xa)]EzPz[log(D(G(z)))](4)

为了解决传统GAN中梯度消失的问题,借鉴了CVAE-GAN的思路
对于样本 ( x s , x a ) (x^s, x^a) (xs,xa),生成 x ′ x' x,定义 f D f_D fD为网络 D D D的最后一层FC layer,于是提出一项pairwise feature matching loss为 f D ( x ′ ) f_D(x') fD(x) f D ( x a ) f_D(x^a) fD(xa)之间的欧式距离,具体如下
L G D = 1 2 ∥ f D ( x ′ ) − f D ( x a ) ∥ 2 2 ( 5 ) \mathcal{L}_{GD}=\frac{1}{2}\left \| f_D(x')-f_D(x^a) \right \|_2^2 \qquad (5) LGD=21fD(x)fD(xa)22(5)

网络 C C C的任务是识别identity,loss定义如下
L C = − E x ∼ P r [ log ⁡ P ( c ∣ x s ) ] ( 6 ) \mathcal{L}_{C}=-\mathbb{E}_{x\sim P_r}\left [ \log P\left ( c|x^s \right ) \right ] \qquad (6) LC=ExPr[logP(cxs)](6)
注:公式(6)与公式(1)一模一样

同样地,对于分类网络 C C C,定义 f C f_C fC为网络 C C C的最后一层FC layer,然后计算 f C ( x ′ ) f_C(x') fC(x) f D ( x s ) f_D(x^s) fD(xs)之间的欧式距离作为loss,可以更好地使 x ′ x' x拥有 x s x^s xs的identity信息
L G C = 1 2 ∥ f C ( x ′ ) − f C ( x s ) ∥ 2 2 ( 7 ) \mathcal{L}_{GC}=\frac{1}{2}\left \| f_C(x')-f_C(x^s) \right \|_2^2 \qquad (7) LGC=21fC(x)fC(xs)22(7)

实际上可以对网络的多个layer添加欧式距离约束,但提升只有一点点

3.1节中提到网络 I I I是通过人脸识别(分类任务)训练出来的,而网络 C C C同样也是做人脸识别的任务,所以可以用同一个预训练网络来初始化

3.3. Unsupervised Training

理论上,整个框架在训练集上训练之后,应该具备了区别不同人的能力,但训练集的大小是有限的,倘若给定一个训练集以外的人脸,网络不一定能够识别这张人脸的identity

作者从互联网上收集了100万各式各样的无标签人脸图像,希望进一步增强网络的泛化能力

3.4. Overall Objective Function

总共有7项loss,每一项负责优化不同的网络,如下表所示
在这里插入图片描述
每一个iteration有2种情况:分别是 x s = x a x^s=x^a xs=xa x s ≠ x a x^s\neq x^a xs=xa,见Algorithm 1
在这里插入图片描述

4. Experiments

4.3. Face Attributes Transformation

Figure 5展示的换脸结果, x s x^s xs图像是在训练集中的
整体来看,肤色与 x a x^a xa保持一致
在这里插入图片描述
Figure 6展示的换脸结果, x s x^s xs图像在训练集之外(新的identity)
在这里插入图片描述
如果 x s x^s xs的pose不是正脸,那么配合一张正脸 x a x^a xa,可以生成 x s x^s xs对应的正脸图像(作者说可以保持肤色,个人不认同),效果如Figure 7所示
在这里插入图片描述

4.4. Face Attributes Morphing

对于一幅 x s x^s xs图像,选取2幅 x a x^a xa图像,记为 x 1 , x 2 x_1, x_2 x1,x2,使用网络 A A A计算attribute vector z 1 , z 2 z_1, z_2 z1,z2,然后使用线性差值生成中间的过渡attribute vector z = α z 1 + ( 1 − α ) z 2 , α ∈ [ 0 , 1 ] z = \alpha z_1+(1-\alpha)z_2, \alpha\in[0, 1] z=αz1+(1α)z2,α[0,1],然后生成 x ′ x' x,称为人脸属性的渐变,效果如Figure 8所示在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值