3. Proposed Framework
本文提出MotionGAN,给定source image s及其landmark l,还有一段target landmark序列 l1T=[l1,l2,⋯,lT],生成的一段video f~1T=[f~1,f~2,⋯,f~T]
将2D landmark转换为heatmap image,如Figure 1所示

3.1. Sub Networks

如Figure 2所示,整个framework包括4个子网络:生成器G、image
frame discriminator Df、video discriminator Dv、verification network V
-
Generator G:如Figure 2(a)所示,生成器包含Encoder、LSTM Block、Decoder,生成器的输入是source image、source landmark、target landmark的叠加[s,l,lt],注意图中LSTM的输入输出有一个skip connection,为了简化表达,我们忽略cell和hidden state,整个生成器负责生成T帧视频序列
f~1T=G(s,l,l1T)(1)
-
Frame Discriminator Df:将真实图像ft/生成图像f~t,拼接上source image、source landmark、target landmark,得到[s,l,ft,lt],[s,l,f~t,lt],作为Df的输入,Df的结构采用patch-GAN
-
Video Discriminator Dv:将real video f1T或generated video f~1T,Dv末端有2个分支,判别real/fake,同时预测每一帧的landmark
-
Verification Network V:是一个人脸识别的网络,涉及损失Lid
3.2. Loss functions
3.2.1 Image Reconstruction Loss
对于生成器G,采用pixel-wise ℓ1 norm 作为reconstruction loss
LimgG=T1t=1∑T∥G(s,l,lt)−ft∥(2)
其中ft是ground truth image,lt是ground truth landmark
3.2.2 Adversarial Loss
Frame Adversarial Loss:图像级别的对抗损失函数,作用在video的每一帧上
LadvDf=T1t=1∑TEft[log(Df(s,l,ft,lt))]+Eft[log(1−Df(s,l,G(s,l,lt),lt))](3)
Video Adversarial Loss:视频级别的对抗损失函数,作用于一个T帧序列
LadvDv=Ef1T[log(Dv(f1T))]+El1T[log(1−Dv(G(s,l,l1T)))](4)
Pairwise Feature Matching Loss:使用文献[4]中的feature matching loss增加训练的稳定性,以及增强生成图像的质量
LadvG=T1t=1∑T∥∥IDf(G(s,l,lt))−IDf(ft)∥∥22+∥∥IDv(G(s,l,l1T))−IDv(f1T)∥∥22(5)
其中IDf,IDv分别表示Df,Dv的中间层
3.2.3 Landmarks Reconstruction Loss
Dv同时也对图像的landmark进行预测,使用ℓ2损失
LlmsDv=∥∥Dvl(f1T)−l1T∥∥22(6)
G也要使得生成图像的landmark具有最小的loss
LlmsG=∥∥Dvl(G(s,l,l1T))−l1T∥∥22(7)
4. Experiments
4.1. Implementation Details
G的目标函数:λ1LimgG+λ2LadvG+λ3LlmsG+λ4LidG
Df的目标函数:LadvIDf
Dv的目标函数:λ5LadvDv+λ6LlmsDv
超参数设置:λ1=1,λ2=0.01,λ3=10,λ4=0.1,λ5=1,λ6=100
受限于memory size,设置T=4
【总结】
本文着重解决人脸视频的生成问题,指定一个face image,再指定一系列landmark,就可以生成一段新的视频,技术上没有新的idea,都是一些已有技术的组合,生成效果上由于没有看到作者提供的视频,仅从文章中的每一帧图像来看,效果尚可