论文阅读:Face Video Generation from a Single Image and Landmark

  • 2020 年 5 月 12 日
  • AI

没想到,五月的更新拖到了现在 可太懒了最近 想法总是多于行动 就好比理论多于实践 有知识不会应用还不是等于零。今天还是论文记录。

论文题目:《Face Video Generation from a Single Image and Landmark》
论文地址://arxiv.org/abs/1904.11521
论文阅读参考://blog.csdn.net/o0Helloworld0o/article/details/104193621

本篇文章只记录个人阅读论文的笔记,具体翻译等不展开,详细可见上述的连接。

Background

Task(what to do)
In this paper we are concerned with the challenging problem of producing a full image sequence of a deformable face given only an image and generic facial motions encoded by a set of sparse landmarks.
在本文中,我们关注的挑战性问题是,仅给出图像和一组稀疏地标编码的一般面部运动,就可以生成可变形脸部的完整图像序列。
也就是说,可以根据一幅给定的面部图像和一组稀疏的目标面部特征点去生成一段面部运动的视频,可以在这样的基础上在加入音频等,进行扩展。如下图所示:

即给定source image s及其landmark l,还有一段target landmark序列 l_1^T=\left [ l_1, l_2, \cdots, l_T \right ],生成的一段video \tilde{f}_1^T=\left [ \tilde{f}_1, \tilde{f}_2, \cdots, \tilde{f}_T \right ]
其中将2D landmark位置解释为heatmaps图像,其中每个通道代表每个landmark位置。在每个通道上,每个landmark的位置都由一个二维高斯分布描述,其平均峰值位于地面真实位置。

Related work
Generative Adversarial Networks (GANs)
Image-to-Image Translations
Video-to-Video Translations

Some method and Motivation
1.StarGAN可用于训练使用离散表达式。进行面部表情传递的模型。
2.遵循与StarGAN相同的研究思路,GANimation根据某些面部动作单位(AUs)的激活及其强度来转换面部图像。但在某些AU不受约束的条件下,检测精度还不够高。原因之一是由于必须由训练有素的专家来执行的高昂的注释费用,因此缺少注释数据。除此,AU不能描述讲话过程中产生的可能的嘴唇运动模式。因此,GANimation模型不能以直接的方式用于传输语音。
3.X2Face方法建议使用由嵌入网络产生的代码(例如,人脸识别,姿势等)来驱动人脸合成。然而,该方法假定某些变化完全被解开。此外,生成的图像缺少高频细节,这可能是由于缺乏对抗训练策略所致。
4.在本文中,我们受到面部标志物本地化和跟踪中最新方法所取得的显著成果的激励,并据我们所知提出了方法,即受面部标志驱动的面部图像和视频合成方法。与StarGAN和GANimation相反,我们的方法不需要任何人工注释,我们使用的是由最先进的面部界标定位算法提供的伪注释。

Work

Do?
1.We designed a generator that takes a facial image, its current landmarks, and target landmarks as inputs and generates a facial image with the same identity but with target landmarks.
2.We proposed an exhaustively designed adversarial training architecture for our generator that is not prone to drift owing to error accumulation. That is, we incorporated adversarial losses both for an image, as well
as a video generation. That way, our generator can be applied to generate images and videos.
3.For identity preservation and correct motion transfer we included both verification, as well as landmark localisation losses.
总的来说,分为三大部分
第一,我们设计了一种生成器,该生成器将面部图像,其当前landmarks和目标landmarks作为输入,并生成具有相同标识但具有目标landmarks的面部图像。
第二,为我们的生成器提出了一个详尽设计的对抗训练架构(MotionGAN),该架构不会因错误累积而漂移。也就是说,我们将图像和视频生成的对抗性损失都计入了成本。这样,我们的生成器可以应用于生成图像和视频。
第三,对于身份保护和正确的运动传递,我们既包括验证,也包括标志性的本地化损失。

Model

我们的模型框架是基于生成对抗网络,如上图所示该网络包含四个子网络:生成器G,图像帧判别器Df,视频判别器Dv和验证网络V.

1.生成器G:生成器包含Encoder、LSTM Block、Decoder
生成器的输入为source image、source landmark、target landmark的叠加(按通道的级联)\left [ s, l, l_t \right ]
生成器网络架构基于由两个卷积下采样层和六个残差模块层组成,最后以两个转置卷积上采样层结束。网络上半部分用于编码器,下半部分用于解码器。编码器的输出通过单层LSTM模块。之后将LSTM块的输出逐个元素地添加到编码器的输出中,并成为解码器的输入。
解码器的输出是面部图像\tilde{f}_t=G\left ( s, l, l_t \right )–(图像下面的公式是视频)。为了简洁起见,我们省略了LSTM内部使用的单元格和隐藏状态,并将T连续帧的视频生成定义为\tilde{f}_1^T=G\left ( s, l, l_1^T \right )
2.图像帧判别器Df:将真实图像f_t 或生成图像\tilde{f}_t ,拼接上source image、source landmark、target landmark,得到\left [ s, l, f_t, l_t \right ], \left [ s, l, \tilde{f}_t, l_t \right ],作为图像帧判别器Df的输入。
Df的架构也与生成器G相同,但没有LSTM单元。我们还遵循CycleGAN的输出层,该层使用补丁识别器执行局部区域的预测(PatchGan)。
输出是具有一个通道的图像,该通道代表鉴别器的预测。最终预测的是每个位置的预测平均值。由于我们以源图像s及其landmark为条件的输入,因此Df不仅可以区分真实帧还是生成的帧,而且还可以识别是否保留了生成帧\tilde{f}_t的标识和其他属性。
3.视频判别器Dv:输入为T个实际视频帧{f}^T_1或生成的视频帧\tilde{f}^T_1的堆栈。
其结构也类似于不带LSTM单元的发生器G的结构。但是,为了使视频判别器Dv封装视频的时间运动,我们将生成器G中使用的2d卷积层替换为3d卷积层,同时使其他层以及其他激活功能保持不变。
此外,网络Dv在上采样层有两个分支:一个用于预测给定视频序列是真实的还是伪造的,另一个用于输出相应的landmark,具体取决给定的视频输入。主要是鼓励生成器G生产其landmark类似于目标landmark现实视频。
4.验证网络V:验证网络V是经过预训练的网络,网络在整个训练过程中保持固定,仅用于确保生成的帧保留源图像的身份。
为了利用所有可用的身份信息,我们使用V计算两对脸部特征:在生成的帧和源图像之间(V(\tilde{f}_{t}),V(s)),以及在生成的帧和目标帧之间(V(f_{t}),V(f_{t})),这边涉及到损失L_{id}

Loss functions
1. Image Reconstruction Loss
对于生成器G,采用pixel-wise l1 norm 作为reconstruction loss
L_{img}^{G}= \frac{1}{T} \sum _{t=1}^{T}||G(s,l,l_{t})-f_{t}|
其中ft是ground truth image,lt是ground truth landmark
2.Frame Adversarial Loss:Df用于确保每个生成的帧看起来真实,并保留源图像s的信息。对于给定的生成视频f和目标视频的每一帧,我们将对抗损失分配给Df定义为:L_{adv}^{D}= \frac{1}{T} \sum _{t=1}^{T}E_{f_t} \left[ \log (D_{f}(s,l,f_{t},l_{t})) \right] +E_{l_t}(1-Df(s,l,G(s,l,lt),lt)]
3.Video Adversarial Loss:视频级别的对抗损失函数,作用于一个T帧序列:L_{adv}^{Dv}=E_{f^T_1} \left[ \log (D_{v}(f_{1}^{T})) \right] +E_{l^T_1} \left[ \log (1-D_{v}(G(s,l,l_{1}^{T}))) \right]
4.Pairwise Feature Matching Loss:我们采用特征匹配损失进行调整,该损失可提供更稳定的训练并产生逼真的结果:L_{adv}^{G}= \frac{1}{T} \sum _{t=1}^{T}||I_{D_{f}}(G(s,l,l_{t}))-I_{D_{f}}(f_{t})||^{2}_{2}+∥I_{D}(G_{1}^{T})||_{2}^{2}
5. Landmarks Reconstruction Loss:Dv同时也对图像的landmark进行预测,使用L2损失
L_{lms}^{D_{v}}=||D_{v}^{l}(f_{1}^{T})-l_{1}^{T}||_{2}^{2}
G也要使得生成图像的landmark具有最小的loss
L_{lms}^{G}=||D_{v}^{l}(G(s,l,l_{1}^{T}))-l_{1}^{T}||_{2}^{2}

Experiments

Implementation Details
G的目标函数:\lambda _{1}L_{img}^{G}+ \lambda _{2}L_{adv}^{G}+ \lambda _{3}L_{lms}^{G}+ \lambda _{4}L_{i}^{G}
Df的目标函数:L_{adv}I^{D_{f}}
Dv的目标函数:\lambda _{5}L_{adv}^{D_{v}}+ \lambda _{6}L_{lms}^{D_{v}}
超参数设置:λ1=1,λ2=0.01,λ3=10,λ4=0.1,λ5=1,λ6=100
受限于memory size,设置T=4

Experiments 1:Video Generation from Target Landmarks
Dataset:300VW的面部视频数据库训练和评估模型,该数据库包含114个视频和大约218k帧。
Baselines:Cyclegan Startgan
Metrics:Peak Signal-to-Noise Ratios (PSNR) ,Structural Similarity index (SSIM) ,RMS,CED,AUC,FR
PSNR根据均方误差(MSE)和最大像素值来测量产生的结果与地面真实帧之间的差异。 SSIM是一种量化两个图像之间感知质量的方法。
Ablation Studies:我们以不同的损失组合重复训练:L^G_{img},没有V,没有Df,没有Df以及最终的损失
Result:

Experiment 2: Video Synthesis based on Audio Inputs
Dataset:GRID数据集有33个发言者,每个发言者发音1000个简短短语,每个短语包含有限词典中的6个单词。
Baseline:Speech2Vid,SdfaGAN
Metric:除了PSNR,SSIM和FMS指标外,对于此任务,我们还使用由预先训练的唇读网络估计的词错误率(WER)来测量口头消息的准确性。
Result:

Experiment 3:Changing Images Expressions
我们通过根据landmark更改图像的情感来展示我们方法的另一种应用
Dataset:Radboud人脸数据库(RaFD)包含来自73位参与者的8,040张图像,每个图像执行从五个不同角度同时捕获的八种面部表情
Result:

总的来说,作者提出了一种非常灵活的方法,用于根据由一组面部标志定义的目标运动来编辑面部图像。该方法既可以用于面部表情/运动传递,也可以用于给定单个面部图像和landmark序列的图像序列生成。
着重解决人脸视频的生成问题,指定一个face image,再指定一系列landmark,就可以生成一段新的视频,技术上没有新的idea,都是一些已有技术的组合,生成效果上由于没有看到作者提供的视频,仅从文章中的每一帧图像来看,效果尚可


Ending~
小李累了~