3 Problem Formulation
定义输入图像 I y r ∈ R H × W × 3 \mathbf{I}_{\mathbf{y}_r}\in\mathbb{R}^{H\times W\times3} Iyr∈RH×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(Iyr∣yg),给定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} Iyo∈RH×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(Iyo∣yf)∈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(Iyo∣yf)∈{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=(1−A)⋅C+A⋅Iyo(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} I→YI∈RH/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 ]
EIyo∼Po[DI(G(Iyo∣yf))]−EIyo∼Po[DI(Iyo)]+λgpEI~∼PI~[(∥∥∥∇I~DI(I~)∥∥∥2−1)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)
λTVEIyo∼Po[i,j∑H,W[(Ai+1,j−Ai,j)2+(Ai,j+1−Ai,j)2]]+EIyo∼Po∥A∥2(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)
EIyo∼Po∥Dy(G(Iyo∣yf))−yf∥22+EIyo∼Po∥Dy(Iyo)−yo∥22(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(Iyo∣yf)∣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)=EIyo∼Po∥G(G(Iyo∣yf)∣yo)−Iyo∥1(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∗=argGminD∈DmaxL(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