GANimation: Anatomically-aware Facial Animation from a Single Image(ECCV18)

3 Problem Formulation

定义输入图像 I y r ∈ R H × W × 3 \mathbf{I}_{\mathbf{y}_r}\in\mathbb{R}^{H\times W\times3} IyrRH×W×3 y r = ( y 1 , ⋯   , y N ) T \mathbf{y}_r=\left ( y_1,\cdots,y_N \right )^T yr=(y1,,yN)T表示 N N N个Action Units,每一个AU y n y_n yn是归一化到 [ 0 , 1 ] [0, 1] [0,1]的AU intensity

我们的目标是学习一个mapping M \mathcal{M} M,给定target AU y g \mathbf{y}_g yg,将输入图像 I y r \mathbf{I}_{\mathbf{y}_r} Iyr变换为 I y g \mathbf{I}_{\mathbf{y}_g} Iyg,即 M : ( I y r , y g ) → I y g \mathcal{M}: \left ( \mathbf{I}_{\mathbf{y}_r},\mathbf{y}_g \right )\rightarrow\mathbf{I}_{\mathbf{y}_g} M:(Iyr,yg)Iyg

训练数据集包含 M M M个样本,每一个样本是一个triplet,记作 { I y r m , y r m , y g m } m = 1 M \left \{ \mathbf{I}_{\mathbf{y}_r}^m, \mathbf{y}_r^m, \mathbf{y}_g^m \right \}_{m=1}^M {Iyrm,yrm,ygm}m=1M,由于我们不知道 I y g m \mathbf{I}_{\mathbf{y}_g}^m Iygm,因此是无监督学习(其实需要AU annotation,作者在代码中说通过OpenFace进行标注)

4 Our Approach

在这里插入图片描述
如Figure 2所示,整个框架主要包含2个网络

  • generator G ( I y r ∣ y g ) G\left ( \mathbf{I}_{\mathbf{y}_r} | \mathbf{y}_g \right ) G(Iyryg),给定target AU y g \mathbf{y}_g yg,对输入图像 I y r \mathbf{I}_{\mathbf{y}_r} Iyr进行变换,注意Figure 2中 G G G被使用了2次,第1次是正向变换 ( I y r , y g ) → I y g \left ( \mathbf{I}_{\mathbf{y}_r},\mathbf{y}_g \right )\rightarrow\mathbf{I}_{\mathbf{y}_g} (Iyr,yg)Iyg,第2次是反向变换 ( I y g , y r ) → I ^ y r \left ( \mathbf{I}_{\mathbf{y}_g},\mathbf{y}_r \right )\rightarrow\mathbf{\hat{I}}_{\mathbf{y}_r} (Iyg,yr)I^yr
  • critic D ( I y g ) D\left ( \mathbf{I}_{\mathbf{y}_g} \right ) D(Iyg),评估生成图像 I y g \mathbf{I}_{\mathbf{y}_g} Iyg的质量以及 I y g \mathbf{I}_{\mathbf{y}_g} Iyg中包含的AU信息
4.1 Network Architecture

Generator

因为 G G G被使用了2次,使用原来的下标 g , r g, r g,r容易引起混淆,因此接下来统一使用下标 o o o f f f,分别表示 o r i g i n origin origin f i n a l final final

给定输入图像 I y o ∈ R H × W × 3 \mathbf{I}_{\mathbf{y}_o}\in\mathbb{R}^{H\times W\times3} IyoRH×W×3,以及 N N N维向量 y f \mathbf{y}_f yf,将 y f \mathbf{y}_f yf扩展为 H × W × N H\times W\times N H×W×N,与输入图像拼接为 ( I y o , y f ) ∈ R H × W × ( N + 3 ) \left ( \mathbf{I}_{\mathbf{y}_o}, \mathbf{y}_f \right )\in\mathbb{R}^{H\times W\times(N+3)} (Iyo,yf)RH×W×(N+3),然后送入 G G G G G G最终输出 I y f \mathbf{I}_{\mathbf{y}_f} Iyf

为了让生成的图像中,仅改变我们需要的region,剩下的region保持不变,所以引入attention mechanism,即使用mask
在这里插入图片描述
如Figure 3所示, G G G同时生成2个mask

  • color mask C = G C ( I y o ∣ y f ) ∈ R H × W × 3 C=G_C\left ( \mathbf{I}_{\mathbf{y}_o} | \mathbf{y}_f \right )\in\mathbb{R}^{H\times W\times3} C=GC(Iyoyf)RH×W×3(个人理解: C C C就是一幅候选生成图像,不要把它当作mask)
  • attention mask A = G A ( I y o ∣ y f ) ∈ { 0 , ⋯   , 1 } H × W × 3 A=G_A\left ( \mathbf{I}_{\mathbf{y}_o} | \mathbf{y}_f \right )\in\left \{ 0,\cdots,1 \right \}^{H\times W\times3} A=GA(Iyoyf){0,,1}H×W×3,使用 A A A来选择原图 I y o \mathbf{I}_{\mathbf{y}_o} Iyo和候选生成图像 C C C所占的比例,即
    I y f = ( 1 − A ) ⋅ C + A ⋅ I y o ( 1 ) \mathbf{I}_{\mathbf{y}_f}=(1-A)\cdot C+A\cdot\mathbf{I}_{\mathbf{y}_o} \qquad(1) Iyf=(1A)C+AIyo(1)

Conditional Critic(Q:为什么叫做Conditional?)

critic D ( I ) D(\mathbf{I}) D(I)的结构类似PatchGAN, I → Y I ∈ R H / 2 6 × W / 2 6 \mathbf{I}\rightarrow\mathbf{Y}_\mathbf{I}\in\mathbb{R}^{H/2^6\times W/2^6} IYIRH/26×W/26

此外,在critic D D D的顶部添加一个auxiliary regression head,用于预测图像 I \mathbf{I} I的AU y ^ = ( y ^ 1 , ⋯   , y ^ N ) T \hat{\mathbf{y}}=\left ( \hat{y}_1, \cdots, \hat{y}_N \right )^T y^=(y^1,,y^N)T

4.2 Learning the Model

Image Adversarial Loss

WGAN将原版GAN中的JS散度替换为Earth Mover Distance
为了maintain a Lipschitz constraint,WGAN-GP增加了一项gradient penalty,computed as the norm of the gradients with respect to the critic input

critic loss L I ( G , D I , I y o , y f ) \mathcal{L}_I\left ( G, D_I, \mathbf{I}_{\mathbf{y}_o}, \mathbf{y}_f \right ) LI(G,DI,Iyo,yf)定义如下
E I y o ∼ P o [ D I ( G ( I y o ∣ y f ) ) ] − E I y o ∼ P o [ D I ( I y o ) ] + λ gp E I ~ ∼ P I ~ [ ( ∥ ∇ I ~ D I ( I ~ ) ∥ 2 − 1 ) 2 ] \mathbb{E}_{\mathbf{I}_{\mathbf{y}_o}\sim\mathbb{P}_o}\left [ D_I\left ( G\left ( \mathbf{I}_{\mathbf{y}_o}|\mathbf{y}_f \right ) \right ) \right ] - \mathbb{E}_{\mathbf{I}_{\mathbf{y}_o}\sim\mathbb{P}_o}\left [ D_I\left ( \mathbf{I}_{\mathbf{y}_o} \right ) \right ] + \lambda_{\text{gp}}\mathbb{E}_{\tilde{I}\sim\mathbb{P}_{\tilde{I}}}\left [ \left ( \left \| \nabla_{\tilde{I}}D_I\left ( \tilde{I} \right ) \right \|_2 -1\right )^2 \right ] EIyoPo[DI(G(Iyoyf))]EIyoPo[DI(Iyo)]+λgpEI~PI~[(I~DI(I~)21)2]
其中 P o \mathbb{P}_o Po为输入图像 y o {\mathbf{y}_o} yo的分布, P I ~ \mathbb{P}_{\tilde{I}} PI~为the random interpolation distribution, λ gp \lambda_{\text{gp}} λgp为penalty coefficient

Attention Loss

在训练过程中,我们不知道attention mask A A A 和color mask C C C 的ground-truth

attention mask很容易saturate to 1,因此对mask A A A添加 L 2 L_2 L2正则化,同时为了保证 A A A的平滑性,对 A A A添加Total Variation Regularization

最终的Attention Loss包含2项,如下所示
λ TV E I y o ∼ P o [ ∑ i , j H , W [ ( A i + 1 , j − A i , j ) 2 + ( A i , j + 1 − A i , j ) 2 ] ] + E I y o ∼ P o ∥ A ∥ 2 ( 2 ) \lambda_\text{TV} \mathbb{E}_{\mathbf{I}_{\mathbf{y}_o}\sim\mathbb{P}_o}\left [ \sum_{i,j}^{H,W}\left [ \left ( A_{i+1,j} - A_{i,j} \right )^2 + \left ( A_{i,j+1} - A_{i,j} \right )^2 \right ] \right ] + \mathbb{E}_{\mathbf{I}_{\mathbf{y}_o}\sim\mathbb{P}_o}\left \| A \right \|_2 \qquad(2) λTVEIyoPo[i,jH,W[(Ai+1,jAi,j)2+(Ai,j+1Ai,j)2]]+EIyoPoA2(2)

Total Variation Regularization的直观解释是,对于元素 A i , j A_{i,j} Ai,j,限制下方元素 A i + 1 , j A_{i+1,j} Ai+1,j,以及右边元素 A i , j + 1 A_{i,j+1} Ai,j+1

Conditional Expression Loss

G G G生成的图像需要包含target AU信息,因此 D D D顶端的auxiliary regression head产生了一项AU regression loss

使用fake image的AU regression loss来优化 G G G(公式(3)第1项),使用real image的AU regression loss来优化 D D D(公式(3)第2项)

loss L y ( G , D y , I y o , y o , y f ) \mathcal{L}_\mathbf{y}\left ( G, D_\mathbf{y}, \mathbf{I}_{\mathbf{y}_o}, \mathbf{y}_o, \mathbf{y}_f \right ) Ly(G,Dy,Iyo,yo,yf)定义如下
E I y o ∼ P o ∥ D y ( G ( I y o ∣ y f ) ) − y f ∥ 2 2 + E I y o ∼ P o ∥ D y ( I y o ) − y o ∥ 2 2 ( 3 ) \mathbb{E}_{\mathbf{I}_{\mathbf{y}_o}\sim\mathbb{P}_o}\left \| D_\mathbf{y}\left ( G\left ( \mathbf{I}_{\mathbf{y}_o} | \mathbf{y}_f \right ) \right )-\mathbf{y}_f \right \|_2^2 + \mathbb{E}_{\mathbf{I}_{\mathbf{y}_o}\sim\mathbb{P}_o}\left \| D_\mathbf{y}\left ( \mathbf{I}_{\mathbf{y}_o} \right )-\mathbf{y}_o \right \|_2^2 \qquad(3) EIyoPoDy(G(Iyoyf))yf22+EIyoPoDy(Iyo)yo22(3)

Identity Loss

引入cycle consistency loss,用于保证输入图像 I y o \mathbf{I}_{\mathbf{y}_o} Iyo与重构图像 G ( G ( I y o ∣ y f ) ∣ y o ) G\left ( G\left ( \mathbf{I}_{\mathbf{y}_o} | \mathbf{y}_f \right )| \mathbf{y}_o \right ) G(G(Iyoyf)yo) maintain the same identity

使用 l 1 l_1 l1-norm的identity loss定义如下
L idt ( G , I y o , y o , y f ) = E I y o ∼ P o ∥ G ( G ( I y o ∣ y f ) ∣ y o ) − I y o ∥ 1 ( 4 ) \mathcal{L}_\text{idt}\left ( G, \mathbf{I}_{\mathbf{y}_o}, \mathbf{y}_o, \mathbf{y}_f \right )=\mathbb{E}_{\mathbf{I}_{\mathbf{y}_o}\sim\mathbb{P}_o}\left \| G\left ( G\left ( \mathbf{I}_{\mathbf{y}_o} | \mathbf{y}_f \right )| \mathbf{y}_o \right )- \mathbf{I}_{\mathbf{y}_o} \right \|_1 \qquad(4) Lidt(G,Iyo,yo,yf)=EIyoPoG(G(Iyoyf)yo)Iyo1(4)

也可以将 l 1 l_1 l1-norm替换为更加高级的Perceptual loss,但实验结果并没有提升

Full Loss

L = L I ( G , D I , I y r , y g ) + λ y L y ( G , D y , I y r , y r , y g ) + λ A ( L A ( G , I y g , y r ) + L A ( G , I y r , y g ) ) + λ idt L idt ( G , I y r , y r , y g ) ( 5 ) \begin{aligned} \mathcal{L}=&\mathcal{L}_\mathbf{I}\left ( G, D_\mathbf{I}, \mathbf{I}_{\mathbf{y}_r}, \mathbf{y}_g \right ) + \lambda_\mathbf{y}\mathcal{L}_\mathbf{y}\left ( G, D_\mathbf{y}, \mathbf{I}_{\mathbf{y}_r}, \mathbf{y}_r, \mathbf{y}_g \right ) \\&+ \lambda_A\left ( \mathcal{L}_A\left ( G, \mathbf{I}_{\mathbf{y}_g}, \mathbf{y}_r \right ) + \mathcal{L}_A\left ( G, \mathbf{I}_{\mathbf{y}_r}, \mathbf{y}_g \right ) \right ) + \lambda_\text{idt}\mathcal{L}_\text{idt}\left ( G, \mathbf{I}_{\mathbf{y}_r}, \mathbf{y}_r, \mathbf{y}_g \right ) \qquad(5) \end{aligned} L=LI(G,DI,Iyr,yg)+λyLy(G,Dy,Iyr,yr,yg)+λA(LA(G,Iyg,yr)+LA(G,Iyr,yg))+λidtLidt(G,Iyr,yr,yg)(5)

minmax problem
G ∗ = arg ⁡ min ⁡ G max ⁡ D ∈ D L ( 6 ) G^*=\arg\underset{G}{\min}\underset{D\in\mathcal{D}}{\max}\mathcal{L} \qquad (6) G=argGminDDmaxL(6)
where G ∗ G^* G draws samples from the data distribution. Additionally, we constrain our discriminator D D D to lie in D \mathcal{D} D, that represents the set of 1-Lipschitz functions.

5 Implementation Details

公式(5)的超参数设置: λ gp = 10 , λ A = 0.1 , λ TV = 0.0001 , λ y = 4000 , λ idt = 10 \lambda_\text{gp}=10,\lambda_A=0.1,\lambda_\text{TV}=0.0001,\lambda_\mathbf{y}=4000,\lambda_\text{idt}=10 λgp=10λA=0.1λTV=0.0001λy=4000λidt=10
注: λ y \lambda_\mathbf{y} λy设置得比较大,否则无法生成target AU

6 Experimental Evaluation

在这里插入图片描述
Figure 4给出了9个AU,4个intensity的示例

6.2 Simultaneous Edition of Multiple AUs

α y g + ( 1 − α ) y r \alpha\mathbf{y}_g + (1-\alpha)\mathbf{y}_r αyg+(1α)yr

6.3 Discrete Emotions Editing

与related work相比,GANimation主要有2点不同

  • 能够生成连续的表情
  • 使用attention mask
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值