让照片开口说话:AI驱动的人脸重演

发布时间:2022-09-19 07:00

摘要

 

人脸重演(face reenactment)是近期比较热门的技术,可以将静态的人像转换为动态人像,让照片“开口说话”,在Myheritage(修复老照片)、 Avatarify、抖音上“蚂蚁呀嘿”等应用中掀起了一股“魔法风”。本文总结了人脸重演技术,重点讨论了两种人脸同步实现方法:第一种是通过驱动视频(driving video)生成运动人脸的单模态方法,第二种是从输入音频生成说话面部的多模态方法。

 

背景介绍

 

电影《哈利·波特》系列描绘了一个瑰丽奇幻的魔法世界,展现了很多令人震撼的特效画面,其中最令我印象深刻的是那些能说话的人像壁画。我一直在想,我们什么时候能在现实中看到这样的魔法。随着深度学习的迅速发展,人脸重演(face reenactment)技术使得这一魔法成为可能!

 

要让人像开口说话,我们首先需要解决的问题是如何从静态图像生成运动图像。这是一项具有挑战性的任务,因为需要生成看起来自然的视频,帧之间的过渡必须是连续的。此外,由于存在遮挡(occlusion)问题,模型需要学习如何生成输入图像中不存在的部分人脸。在计算机视觉中,这项任务通常被称为人脸动画、人脸生成或人脸重演 (face reenactment)。在本文中,我们将重点讨论两种人脸动画模型,第一种是通过驱动视频(driving video)生成运动人脸的单模态模型,第二种是从输入音频生成说话面部的多模态模型。

 

图1人脸同步[9]

图片来源:https://arxiv.org/pdf/2003.00196.pdf

 

FOM: 人脸同步

 

我们介绍的第一个模型是FOM (First order motion model) [9]。FOM是NIPS2019的一篇关于图片动画化(image animation)的论文。FOM能通过使用一个驱动视频(driving video),让一个静态的图像动起来。算法演示结果如图1所示。论文结果如图2所示。

 

图2 FOM:使用驱动视频实现人脸同步[9]

图片来源:https://arxiv.org/pdf/2003.00196.pdf

 

FOM模型结构包含两个网络:一个运动预测网络和一个图像生成网络。模型工作流程如图3所示。运动预测网络的主要目的是生成静态图S和驱动帧D之间的光流图和遮挡图。首先,驱动视频(driving video)被转换成驱动帧(driving frames),第一帧为驱动帧D。然后静态图S和驱动帧D都输入到关键点检测器模型(key points detector)。关键点检测器模型是一个编码器,能够将运动信息压缩成关键点和仿射变换。如图4所示,对于人脸图像,关键点位于眼睛、鼻子和嘴巴周围。这样选取是有原因的,因为当我们与一个朋友交流时,这些区域是我们自然会关注的。

 

图3 FOM模型结构[9]

图片来源:https://arxiv.org/pdf/2003.00196.pdf

 

然后密集运动网络(dense motion)会组合不同的光流和关键点,以生成输入S和驱动帧D的光流图和遮挡图。关键点检测器和密集运动预测器的模型结构都是U-net结构。为了减少计算量,运动预测网络只处理64x64大小的特征(最后生成的图像是256x256)。这里需要注意的是,仿射变换(Affine Transformation)是源输入S和一个参考帧R之间的光流。参考帧R只是个概念上的东西, 实际上FOM不计算原输入和参考帧的光流。

 

图4 人脸图像的关键点预测[9]

图片来源:https://arxiv.org/pdf/2003.00196.pdf

 

图5 光流,反向变换(backward warping)

图片来源:https://link.springer.com/chapter/10.1007/978-0-387-09749-7_15

 

FOM的第二个步骤是生成新的图像。在生成阶段,需要对齐源图像的特征和驱动图像的特征。这个过程称为warping。这是视频处理任务(如视频超分辨率)中一种常见的技术,其核心思想是使用运动信息来计算新图像中像素的位置。然而,翘曲无法计算遮挡像素的像素值。为了解决这个问题,传统技术会通过插值来覆盖未知像素。而FOM不执行插值,它使用遮挡贴图来做一个mask。使用mask处理后的特征作为输入被送到生成网络中,生成被遮挡的像素。生成模型使用基于Johnson 超分模型[10] (用于图像超分辨率和迁移风格)的结构。处理完所有驱动帧后,我们就可以获得“哈利·波特“中的动态人像效果!(到这里我们的魔法还未完全结束,还可以继续加入声音,其原理请参考下一节)

 

为了评估结果,作者使用了以下指标:L1距离、AKD、MKR和AED。对于图像评估,L1距离不是测量比较2个图像的最佳距离。实际上,L1值较低时,模型结果带来的主观感受可能较差。使用GAN相关工作中的类似度量,如FID和LPIPS值,可以给出更接近主观感受的评价。AKD和MKR用于测量标注的关键点和生成的关键点之间的距离,详细信息请参阅[5][7]。AED计算过程类似于感知损失,但不是使用VGG提取特征,而是使用monkey net[12]。

 

表1 FOM客观结果(越小越好)

图片来源:https://arxiv.org/pdf/2003.00196.pdf

 

MakeItTalk: 多模态人脸同步

 

在上一节中,我们介绍了一种仅使用像素级信息的单模态人脸同步模型。我们将在本节中介绍MakeItTalk [1], 使用音频数据生成动态人脸的多模态模型。MakeITalk是Adobe Research的ACM 2020作品。他们的方法与FOM有很大不同:MakeItTalk不使用驱动视频,而是仅使用驱动音频,生成过程如图6所示。

      

图6 MakeItTalk多模态人脸同步使用驱动音频[1]

图片来源:https://arxiv.org/pdf/2004.12992.pdf

 

图7 MakeItTalk模型结构[1]

图片来源:https://arxiv.org/pdf/2004.12992.pdf

 

MakeItTalk架构如图7所示,它由以下6个模型组成:

  • 面部特征点模块

  • 语音特征提取模块

  • 语音内容动画化模块(speech content animation)

  • 说话人动画化模块 (speaker aware animation)

  • 面部交换模块 (卡通)

  • 图像转换模块(自然图像)

 

面部特征指眼睛、眉毛、鼻子、嘴巴等关键部位的位置和形状组成的点集,如图8所示。为了提取特征点,无论是卡通还是自然图像,MakeItTalk都使用同一个预训练面部特征点模型。这个模块不需要任何训练步骤。

 

MakeItTalk的一个重要贡献是它怎么处理音频输入。跟现有的方法不同,MakeItTalk对语音内容和说话人的特征进行拆分。如果你对图像迁移风格有所了解,那么这里的语音内容就相当于于风格迁移中的图像内容,这里对应人脸要做的动作。说话人的特征相当于图像的风格,这里对应人脸动作的细节。在图像风格迁移中,为了提取图像内容和图像风格,通常会使用VGG网络, 而MakeItTalk使用语音转换模块提取语音特征。如图9所示,为了生成丰富的表情和动作,说话人的信息很关键。为了更好地提取特征,MakeItTalk使用VCTK数据集重新训练语音转换模块[6]

 

接下来要使用当前面部特征点,语音内容和说话人的特征预测下一时刻特征点的位置。语音内容动画化模块(speech content animation module)用于生成面部特征点中的内容位移 (比如嘴巴,眼睛的运动)。说话人动画化模块(speaker aware animation module)用于在面部特征中生成动作细节。这两个模块结构都基于LSTM和MLP,说话人动画化模块增加了自注意力编码器。

 

图8 静态和动态特征点[1]

图片来源:https://arxiv.org/pdf/2004.12992.pdf

 

图9 说话人特征(identity embedding)的重要性[1]

图片来源:https://arxiv.org/pdf/2004.12992.pdf

 

最后一步是生成动态的面部图像。根据输入图像的类型,会使用几种不同的方法。当输入为卡通类型时,使用面部交换(face swap)。面部交换使用Delaunay三角化 (如图10所示)。Delaunay三角化适用于卡通人脸,因为卡通人脸的边缘简单而明显。对于自然图像,MakeItTalk使用pix2pix图像转换模型[8]。

 

图10 Delaunay三角化[1]

图片来源:https://arxiv.org/pdf/2004.12992.pdf

 

这里分享一个MakeItTalk的demo,点开视频感受魔法吧!

 

视频来源:https://github.com/adobe-research/MakeItTalk

 

总结与思考

 

在这篇文章中,我们介绍了两种人脸同步技术。 FOM使用驱动视频生成动态人脸,而MakeItTalk使用驱动音频生成动态人脸。这些技术有很多重要的落地场景:视频会议、虚拟人脸、摄影特效等等。Myheritage(修复老照片)、Avatarify、抖音上“蚂蚁呀嘿”等应用都是基于人脸同步技术。如果你想创建自己的动态人脸,可以使用FOM和MakeItTalk的开源代码[13,14]。需要注意的是,MakeItTalk的预训练模型对中文语音不友好,需要重新训练模型。

 

感谢阅读,相信人脸同步技术能帮助您创造更多精彩的视频!

 

参考文献

[1] Zhou, Y., Han, X., Shechtman, E., Echevarria, J., Kalogerakis, E., & Li, D. (2020). Makelttalk: speaker-aware talking-head animation. ACM Transactions on Graphics (TOG), 39(6), 1-15.

[2] Wu, H., Jia, J., Wang, H., Dou, Y., Duan, C., & Deng, Q. (2021, October). Imitating arbitrary talking style for realistic audio-driven talking face synthesis. In Proceedings of the 29th ACM International Conference on Multimedia (pp. 1478-1486).

[3] Yi, R., Ye, Z., Zhang, J., Bao, H., & Liu, Y. J. (2020). Audio-driven talking face video generation with learning-based personalized head pose. arXiv preprint arXiv:2002.10137.

[4] Zhou, H., Sun, Y., Wu, W., Loy, C. C., Wang, X., & Liu, Z. (2021). Pose-controllable talking face generation by implicitly modularized audio-visual representation. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition (pp. 4176-4186).n

[5] Adrian Bulat and Georgios Tzimiropoulos. How far are we from solving the 2d & 3d face

alignment problem? (and a dataset of 230,000 3d facial landmarks). In ICCV, 2017.

[6] Christophe Veaux, Junichi Yamagishi, Kirsten MacDonald, et al. 2016. Superseded-cstr

vctk corpus: English multi-speaker corpus for cstr voice cloning toolkit. (2016).

[7] Zhe Cao, Tomas Simon, Shih-En Wei, and Yaser Sheikh. Realtime multi-person 2d pose

estimation using part affinity fields. In CVPR, 2017.

[8] Isola, Phillip, et al. "Image-to-image translation with conditional adversarial networks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.

[9] Siarohin, Aliaksandr, et al. "First order motion model for image animation." Advances in Neural Information Processing Systems 32 (2019).

[10] Justin Johnson, Alexandre Alahi, and Li Fei-Fei. Perceptual losses for real-time style transfer and super-resolution. In ECCV, 2016.

[11] Patrick Esser, Ekaterina Sutter, and Björn Ommer. A variational u-net for conditional appearance and shape generation. In CVPR, 2018.

[12] Aliaksandr Siarohin, Stéphane Lathuilière, Sergey Tulyakov, Elisa Ricci, and Nicu Sebe.

Animating arbitrary objects via deep motion transfer. In CVPR, 2019.

[13] https://github.com/yzhou359/MakeItTalk

[14] https://github.com/AliaksandrSiarohin/first-order-model

 

 

 

 

 

上一个: 深度学习模型辅助高分辨率医学病理图像自动检测

下一个: 现代处理器分支预测介绍

近期文章

通用AI模型的未来:深度强化学习(deep reinforcement learning)

近年来,AI模型开始涌现出超越人类的潜力,在传统的围棋游戏以及拥有复杂规则和系统的电竞游戏(星际争霸2,Dota 2等)中都有体现。随着ChatGPT的出现,人们开始意识到语言模型成为通用人工智能的可能性,而这些模型的核心都是深度强化学习。

2023-05-08

“为了全人类更好地交流”:通用语音识别

人机交互的第一步往往由人发起,从你说出第一句话开始,计算机如何可以应答并能进而和你自然畅谈?在之前文章里我们分享了当前利用AI进行语音识别的关键步骤和做法,这次我们将随着技术的进化发展,领略当前通用语音模型的进化高度。

2023-04-24

查看更多