MakeItTalk: Speaker-Aware Talking-Head Animation——说话者感知的说话头动画
这篇文章的核心内容是介绍了一种名为 MakeItTalk 的深度学习方法,用于从单张面部图像和音频生成说话者感知的说话头动画。该方法能够生成自然人脸和非写实卡通角色的动画,并且可以处理在训练过程中未观察到的新面孔和新音频。以下是文章的主要研究内容和贡献:
1. 研究背景与动机
-
问题:生成逼真的面部动画是一个挑战,尤其是在需要与语音同步的情况下。以往的方法在唇部同步和面部表情的自然性方面存在不足,且难以泛化到未见过的面孔。
-
目标:开发一种方法,能够从单张面部图像和音频生成高质量的说话头动画,同时捕捉说话者的个性和风格。
2. 方法概述
-
输入:单张面部图像和音频信号。
-
输出:与音频同步的说话头动画,包括面部表情和头部运动。
-
核心思想:将音频信号中的内容和说话者身份信息进行解耦,分别用于控制唇部运动和整体面部表情及头部运动。
3. 技术细节
-
语音内容动画:使用语音转换网络(AutoVC)提取音频内容,通过 LSTM 和 MLP 预测与音频同步的唇部和面部标志。
-
说话者感知动画:通过说话者嵌入(Resemblyzer)捕捉说话者的个性,结合自注意力机制和 LSTM 模块,预测个性化的头部运动和面部表情。
-
标志到图像的合成:对于卡通图像,使用 Delaunay 三角剖分进行变形;对于自然人脸图像,使用基于 U-Net 的图像到图像翻译网络生成最终的动画帧。
4. 实验与评估
-
数据集:使用 VoxCeleb2 数据集进行训练和测试,包含多样化的说话者。
-
定量评估:通过唇部标志距离、头部运动差异等指标,证明了方法在唇部同步和头部运动预测上的准确性。
-
用户研究:通过亚马逊 Mechanical Turk 进行用户研究,验证了方法在感知上的优越性。
-
消融研究:通过对比不同变体(如无解耦、无说话者分支等),证明了解耦语音内容和说话者身份的重要性。
5. 关键结论
-
高质量动画:MakeItTalk 能够生成高质量的说话头动画,包括自然人脸和非写实卡通角色。
-
泛化能力:该方法对训练过程中未观察到的新面孔和新音频具有良好的泛化能力。
-
说话者感知:通过解耦语音内容和说话者身份,方法能够捕捉说话者的个性和风格,生成更具表现力的动画。
6. 应用与展望
-
应用:该方法可用于视频会议、动画制作、虚拟现实等领域,尤其是在带宽受限或需要个性化动画的场景中。
-
未来工作:进一步改进头部运动和面部表情的自然性,探索情感分析在动画中的应用,以及优化图像翻译模块以减少伪影。
7. 伦理考量
-
深度伪造:作者强调了生成逼真视频的潜在滥用风险,并在生成的视频中添加水印以表明其为合成内容。
总之,这篇文章提出了一种创新的深度学习方法,用于生成高质量的说话头动画,并在多个方面展示了其优越性和潜在应用。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:
图 1. 给定音频语音信号和单张肖像图像作为输入(左),我们的模型生成说话者感知的说话头动画(右)。语音信号和输入面部图像在模型训练过程中均未被观察到。我们的方法可以创建非写实的卡通动画(上)和自然人脸视频(下)。请参阅我们的补充视频。卡通角色 Wilk ©Dave Werner at Adobe Research。自然人脸 James Stewart 由工作室宣传照片提供(公有领域)。
我们提出了一种从单张面部图像和音频生成富有表现力的说话头视频的方法。与以往尝试直接从音频到像素的映射以创建说话脸的方法不同,我们的方法首先将输入音频信号中的内容和说话者信息进行解耦。音频内容稳健地控制嘴唇及附近面部区域的运动,而说话者信息决定了面部表情和说话头动态的细节。我们方法的另一个关键组成部分是预测反映说话者感知动态的面部标志。基于这种中间表示,我们的方法可以在一个统一的框架内处理许多肖像图像,包括艺术绘画、素描、2D 卡通角色、日本漫画和风格化的漫画。此外,我们的方法对训练过程中未观察到的面孔和角色具有良好的泛化能力。我们对方法进行了广泛的定量和定性评估,此外还包括用户研究,证明与以往的最先进方法相比,生成的说话头质量显著更高。
1 引言
为电影制作、虚拟形象、视频流、电脑游戏和混合现实制作富有表现力的说话头动画是至关重要的。尽管最近有所进展,但以极少或无需人工劳动的方式生成逼真的面部动画仍然是计算机图形学中的一个开放性挑战。以下几个关键因素促成了这一挑战。传统上,语音与面部运动之间的同步很难手动实现。面部动态位于高维流形上,使得从音频/语音到面部动画的映射并非易事 [Edwards et al. 2016]。其次,多种说话头的不同说话风格可以传达不同的人格特质,并带来更好的观看体验 [Walker et al. 1997]。最后但并非最不重要的,仅处理唇部同步和面部动画还不足以实现说话头的真实感。整个面部表情,包括所有面部元素之间的相关性以及头部姿势,也起着重要作用 [Faigin 2012;Greenwood et al. 2018]。然而,这些相关性受音频的约束较少,因此很难估计。在本文中,我们提出了一个基于深度神经架构的新方法,称为 MakeItTalk,以应对上述挑战。
我们的方法从单张面部图像和音频生成说话头,测试时能够为训练过程中未观察到的新面孔和声音生成合理的说话头动画。从音频映射到面部动画是一个挑战,因为这并非一一映射。不同的说话者在给定相同音频内容时可能会有较大的头部姿势和表情差异。我们方法的关键见解是将输入音频信号中的语音内容和说话者身份信息进行解耦。内容捕捉输入音频中的音素和韵律信息,用于唇部及附近面部区域的稳健同步。说话者信息捕捉其余的面部表情和头部运动动态,这些动态往往因说话者而异,对于生成富有表现力的说话头动画至关重要。我们证明,这种解耦可以显著提高头部动画的合理性和可信度。为了应对生成连贯头部运动的额外挑战,我们提出了 LSTM 和自注意力机制的组合,以捕捉头部姿势的短时和长时依赖关系。我们的方法的另一个关键组成部分是预测面部标志作为中间表示,以纳入说话者感知动态。这与以往直接从音频生成像素或 3D 可变形人脸模型的方法形成对比。以面部标志作为音频到视觉动画之间的中间表示有几个优点。首先,基于我们的解耦表示,我们的模型学会了生成捕捉微妙的、说话者依赖的动态的标志,从而避免了学习低级像素外观,而后者往往会遗漏这些细节。标志的自由度(DoFs)在数十的量级(我们的实现中有 68 个),而直接生成视频像素的方法则有数百万像素。因此,我们的学习模型也较为紧凑,可以从中等规模的数据集中进行训练。最后但并非最不重要的,标志可以轻松地用于驱动各种类型的动画内容,包括人脸图像和非写实的卡通图像,如素描、2D 卡通角色、日本漫画和风格化的漫画。相比之下,现有的视频合成方法和可变形模型仅限于人脸,无法轻松推广到非写实或非人脸的表情和角色。我们的实验表明,与以往工作相比,我们的方法在定性和定量方面都能生成更准确、更合理的说话头,尤其是在动画化训练过程中未观察到的静态人脸图像这一具有挑战性的设置中。此外,我们的消融研究证明了解耦语音内容和说话者身份对于说话者感知面部动画的优势。总之,给定音频信号和单张肖像图像作为输入(两者在训练过程中均未被观察到),我们的方法生成富有表现力的说话头动画。我们强调以下贡献:
-
我们引入了一种新的基于深度学习的架构,用于仅从语音信号预测面部标志,捕捉面部表情和整体头部姿势。
-
我们基于解耦的语音内容和说话者信息生成说话者感知的说话头动画,灵感来源于语音转换的进展。
-
我们提出了两种基于标志的图像合成方法,分别用于非写实卡通图像和人脸图像。这些方法可以处理训练过程中未观察到的新面孔和卡通角色。
-
我们提出了一套定量指标,并进行了用户研究,以评估说话头动画方法。
2 相关工作
在计算机图形学中,我们有着跨模态合成的悠久历史。二十多年前,Brand [1999] 开创了语音木偶戏,从音频轨道生成完整的面部动画。Shiratori et al. [2006] 从音乐驱动的舞蹈生成与输入旋律相匹配的节奏和强度,生成全身舞蹈动作。Gan et al. [2020a,b] 分离声音源,并从演奏乐器的视频中生成同步音乐。最近,Ginosar et al. [2019] 从语音信号预测对话手势和骨骼运动。我们专注于音频驱动的面部动画,它可以补充其他身体和手势预测方法。在接下来的段落中,我们将概述面部标志合成、面部动画和视频生成的相关工作。表 1 根据一组关键标准总结了与我们方法最相关的几种方法的差异。
音频驱动的面部标志合成。Eskimez et al. [2018, 2019] 使用深度神经网络生成与语音同步的面部标志,并具有强大的抗噪声能力。后来,Chen et al. [2019] 训练解耦模块,先生成标志,然后生成光栅化视频。注意力掩码用于关注面部变化最显著的部分,尤其是嘴唇。Greenwood et al. [2018] 从分叉的双向 LSTM 网络中联合学习面部表情和头部姿势的标志。以往的音频到面部动画工作主要关注匹配语音内容,而忽略了风格/身份信息,因为身份通常会在训练过程中因模式崩溃或平均化而被忽略。相比之下,我们的方法解耦音频内容和说话者信息,并驱动捕捉说话者依赖动态的标志。
唇部同步面部动画。随着 GPU 的计算能力不断增强,我们在从音频到视频帧的端到端学习方面取得了显著进展。[Chen et al. 2018] 为每帧合成了裁剪后的唇部运动。Chung et al. [2017];Song et al. [2019];Vougioukas et al. [2019] 使用 GAN 或编码器 - 解码器 CNN 生成完整的人脸图像。[Pham et al. 2018] 估计混合形状参数。Taylor et al. [2017];Zhou et al. [2018] 展示了音频驱动的说话肖像用于绑定人脸模型,然而,输入的卡通模型需要手动绑定和重定向,以及艺术家干预以动画化头部的其余部分。相比之下,我们的方法能够自动动画化输入肖像,无需此类手动输入。此外,上述方法并未捕捉说话者身份或风格。因此,如果同一句话由两个不同的声音说出,它们往往会生成相同的面部动画,缺乏使其更具表现力和逼真的动态。
“风格”感知面部头动画。Suwajanakorn et al. [2017] 使用动态规划重新定时方法重现说话者的运动动态。然而,该方法仅适用于单一主题(奥巴马),并不能推广到除奥巴马之外的其他面孔。在另一项早期工作中,Liu et al. [2015] 使用颜色、深度和音频重现使用 RGBD 传感器记录的说话者的面部动画。然而,它并不能推广到其他未见的说话者。Cudeiro et al. [2019] 尝试在潜在表示中建模说话者风格。Thies et al. [2020] 在静态混合形状基中编码个人风格。这两种方法都专注于低面部动画,尤其是嘴唇,并不预测头部姿势。与我们方法更相似的是,Zhou et al. [2019] 学习联合音频 - 视觉表示以从图像域中解耦身份和内容。然而,他们的身份信息主要关注静态面部外观,而不是说话者动态。正如我们在第 5.5 节中所展示的,说话者意识涵盖了除静态外观之外的许多方面。个体面部表情和头部运动都是说话者感知动画的重要因素。我们的方法通过联合学习静态外观和头部运动动态来解决说话者身份问题,以提供忠实的动画化说话头。
基于变形的角色动画。Fišer et al. [2017] 和 Averbuch - Elor et al. [2017] 展示了通过视频和提取的人类面部表演标志驱动的肖像动画。Weng et al. [2019] 提出了一种系统,通过拟合人体模板来动画化输入肖像的身体,然后使用动作捕捉数据进行动画化。在我们的情况下,我们旨在仅从音频合成面部表情和头部姿势。
评估指标。定量评估所学习的身份/风格对于验证至关重要;同时,设置适当的基准并不容易。许多先前的工作诉诸于主观用户研究 [Cudeiro et al. 2019;Karras et al. 2017]。对于现有的定量指标,它们主要关注像素级伪影,因为网络容量的大部分用于学习像素生成,而不是高级动态 [Chen et al. 2019]。动作单元已被提出作为基于 GAN 的方法中表情评估的替代衡量标准 [Pumarola et al. 2018]。我们提出了一组新的指标,用于评估对面部表情和头部运动真正重要的高级动态。
图像到图像的翻译。图像到图像的翻译是现代说话脸合成和编辑中非常常见的方法。Face2Face 和 VDub 是最早探索在两个说话头视频之间进行稳健外观转移的示例 [Garrido et al. 2015;Thies et al. 2016]。后来,采用对抗性训练改进了转移结果的质量。例如,Kim et al. [2019] 使用循环一致性损失进行风格转移,并在一对一转移中展示了有希望的结果。Zakharov et al. [2019] 开发了一种少样本学习方案,利用标志生成自然人脸动画。基于这些先前的工作,我们也采用了一个图像到图像的翻译网络来生成自然人脸说话头动画。与 Zakharov et al. [2019] 不同,我们的模型无需微调即可处理训练过程中未观察到的面孔的泛化。此外,我们能够通过图像变形模块生成非写实图像。
解耦学习。在语音转换社区中,音频内容和风格的解耦已经被广泛研究。在这里,我们不深入其悠久的历史(详见 [Stylianou 2009] 的详细调查),而只讨论适合我们深度学习流程的最近方法。Wan et al. [2018] 开发了 Resemblyzer 作为跨不同语言的说话者身份嵌入,用于验证目的。Qian et al. [2019] 提出了 AutoVC,这是一种少样本语音转换方法,用于将音频分解为语音内容和身份信息。作为基线,我们使用 AutoVC 提取语音内容,并使用 Resemblyzer 提取说话者身份特征嵌入。我们引入语音转换的思想用于音频驱动的动画,并展示了说话者感知说话头生成的优势。
3 方法
概述。如图 2 所示,给定一个音频剪辑和一张面部图像,我们的架构(称为“MakeItTalk”)生成与音频同步的说话者感知说话头动画。在训练阶段,我们使用现成的面部 3D 标志检测器对输入视频进行预处理,以提取标志 [Bulat and Tzimiropoulos 2017]。一个基线模型可以直接从输入音频和提取的标志中训练出动画语音内容。然而,为了实现高保真动态,我们发现标志应该从输入音频信号的解耦内容表示和说话者嵌入中进行预测。具体来说,我们使用语音转换神经网络来解耦语音内容和身份信息 [Qian et al. 2019]。内容是说话者无关的,捕捉嘴唇及附近区域的一般运动(图 2,语音内容动画,第 3.1 节)。说话者的身份决定了运动的细节以及说话头动态的其余部分(图 2,说话者感知动画,第 3.2 节)。例如,无论谁说“哈!”,嘴唇都应张开,这是说话者无关的,仅由内容决定。至于开口的确切形状和大小,以及鼻子、眼睛和头部的运动,则取决于说话者,即身份。在内容和说话者身份信息的条件下,我们的深度模型输出给定音频的预测标志序列。为了生成光栅化图像,我们讨论了两种标志到图像合成算法(第 3.3 节)。对于非写实图像,如绘画或矢量艺术(图 7),我们使用基于 Delaunay 三角剖分的简单图像变形方法,灵感来源于 [Averbuch - Elor et al. 2017](图 2,面部变形)。对于自然图像(图 8),我们设计了一个图像到图像的翻译网络,灵感来源于 pix2pix [Isola et al. 2017],以使用底层标志预测来动画化给定的人脸图像(图 2,图像到图像的翻译)。将所有图像帧和输入音频结合起来,就得到了最终的说话头动画。在接下来的章节中,我们将描述我们架构的每个模块。
3.1 语音内容动画
3.2 说话者感知动画
仅匹配唇部运动与音频内容是不够的。头部的运动或嘴与眉毛之间的微妙相关性也是生成合理说话头的关键线索。例如,图 3 显示了我们对两个不同说话者嵌入的说话者感知预测:一个来自头部运动倾向于更静态的说话者,另一个来自更活跃的说话者(请参阅我们的补充视频)。我们的方法成功地区分了这两个说话者的头部运动动态。为了实现这一点,我们使用说话者验证模型 [Wan et al. 2018] 提取说话者身份嵌入,该模型最大化同一说话者的不同话语之间的嵌入相似性,并最小化不同说话者之间的相似性。原始身份嵌入向量 s 的大小为 256。我们发现,通过单层 MLP 将其维度从 256 降低到 128 可以改善面部动画的泛化能力,尤其是对于训练过程中未观察到的说话者。给定提取的说话者嵌入 s,我们进一步调整每帧标志 pA,使它们反映说话者的身份。具体来说,标志被扰动以匹配训练过程中观察到的说话者的头部运动分布和面部表情动态。通过这种方式,我们的方法再现了说话者特定的合理头部运动分布,这些分布由调整后的标志反映。如图 2 的底部流所示,我们首先使用与语音内容动画模块中相同的网络架构和时间窗口长度的 LSTM 对内容表示进行编码。然而,我们发现为这个 LSTM 使用不同的学习参数更好,使得得到的表示 c~A 更适合于捕捉头部运动和面部表情动态:
3.3 单图像动画
我们模型的最后一步是创建输入肖像的最终动画。给定输入图像 Q 和每帧 A 的预测标志 {yA},我们生成一个图像序列 {FA},代表面部动画。输入肖像可能是一张卡通脸,或者是一张自然人脸图像。我们对这两种类型的肖像使用不同的实现。在接下来的段落中,我们将分别解释每种类型的实现。
卡通图像(非写实)。这些图像通常具有清晰的特征边缘,例如来自矢量艺术或平面着色绘图。为了保留这些清晰的特征,我们提出了一种基于变形的动画方法,避免像素级伪影。从输入图像中,我们使用 [Yaniv et al. 2019] 提取面部标志。然后,我们在这些标志上运行 Delaunay 三角剖分,以生成语义三角形。通过将初始像素作为纹理映射到三角形上,后续的动画过程变得简单直接。只要标志的拓扑结构保持不变,每个三角形上的纹理就可以自然地在各帧之间传递。图 4 展示了一个示例。与我们的方法类似的是顶点和片段着色器管线在渲染中的作用。纹理在一开始就绑定到每个片段(顶点),从那时起,只有顶点着色器会改变这些顶点(标志位置)的位置。在实践中,我们用基于 GLSL 的 C++ 代码实现了一个使用顶点/片段着色器并且可以实时运行的程序。
自然图像。目标是根据输入照片和我们模型预测的动画标志生成一系列帧。我们的图像合成方法受到 Zakharov et al. [2019] 中基于标志的面部动画的启发,该方法基于训练有素的网络将标志转换为自然图像。与使用单独的嵌入器和自适应实例归一化层来编码目标面部外观不同,我们的模块基于 UNet 架构设计,以处理偏移标志和肖像。具体来说,我们首先通过连接连续的面部标志并将其渲染为预定义颜色的线段来创建预测标志 yA 的图像表示 YA(图 2)。图像 YA 与输入肖像图像 Q 按通道连接,形成一个分辨率为 256×256 的 6 通道图像。该图像被送入一个编码器 - 解码器网络,以执行图像翻译,从而生成每帧的图像 FA。其架构遵循 Esser et al. [2018] 和 Han et al. [2019] 中提出的生成器。具体来说,编码器采用 6 层卷积层,每层包含一个步长为 2 的卷积,后接两个残差块,并产生一个瓶颈。然后通过对称上采样解码器对其进行解码。编码器和解码器之间使用跳跃连接,类似于 U - net 架构 [Ronneberger et al. 2015]。生成过程逐帧进行。由于标志随时间平滑变化,以这些标志为插值的输出图像表现出时间连贯性。图 8 展示了生成的图像序列示例。
4 训练
我们现在描述我们的训练过程,以学习我们架构中每个模块的参数。
语音转换训练。我们遵循 [Qian et al. 2019] 中描述的训练设置,说话者嵌入由 Wan et al. [2018] 提供的预训练模型初始化。每位说话者的训练源语音通过内容编码器处理。然后使用同一位源说话者的另一段语音来提取说话者嵌入,该嵌入与音频内容嵌入一起传递到解码器,以重建原始源语音语谱图 [Qian et al. 2019]。内容编码器、解码器和 MLP 用于最小化源语音语谱图的自重建误差。训练在 VCTK 语料库 [Veaux et al. 2016] 上进行,这是一个包含 109 位英语母语说话者(各种口音)话语的语音数据集。
4.1 语音内容动画训练
数据集。为了训练基于内容的动画模型,我们需要一个提供高质量面部标志和对应音频的音频 - 视频数据集。为此,我们使用了奥巴马每周讲话数据集 [Suwajanakorn et al. 2017],其中包含 6 小时的奥巴马各种演讲视频。由于其高分辨率和相对一致的正面相机角度,我们可以使用 [Bulat and Tzimiropoulos 2017] 获得准确的面部标志检测结果。我们还将面部标志注册到一个正面标准面部模板 [Beeler and Bradley 2014],使用最佳估计的仿射变换 [Segal et al. 2009]。这也有助于消除说话者依赖的头部姿势运动。我们强调,注册一个说话者就足以训练这个模块,因为我们的目标是学习基于音频的一般唇部运动。唇部同步将通过包含说话者感知分支并训练多个真人主体来专门化,正如我们将在第 4.2 节中解释的。
4.2 说话者感知动画训练
数据集。为了学习头部运动和面部表情的说话者感知动态,我们需要一个包含多样化说话者的音频 - 视频数据集。我们发现 VoxCeleb2 数据集非常适合我们的目的,因为它包含来自众多说话者的视频片段 [Chung et al. 2018]。VoxCeleb2 最初是为说话者验证设计的。由于我们的目标不同,即捕捉说话者动态以用于说话头合成,我们选择了 VoxCeleb2 中的一个子集,其中包含 67 位说话者的 1232 个视频剪辑。平均而言,每位说话者大约有 5 - 10 分钟的视频。选择标准是基于手动验证视频中标志检测的准确性。根据说话者表示空间的泊松圆盘采样选择说话者。我们将该数据集分为 60% / 20% / 20% 的训练、保留验证和测试。与内容动画步骤不同,我们不将标志注册到正面模板,因为我们在这里感兴趣的是学习整体头部运动。
对抗网络。除了捕捉标志位置外,我们还旨在在训练期间匹配说话者的头部运动和面部表情动态。为此,我们引入了一个 GAN 方法。具体来说,我们创建了一个判别器网络 D,其结构与第 4.2 节中的自注意力生成器网络类似。更多关于其架构的细节在附录中提供。判别器的目标是判断说话者面部标志的动态是否“逼真”或虚假。它以与生成器相同的窗口内的面部标志序列作为输入,连同音频内容和说话者的嵌入。它为每帧返回一个输出,表征“逼真度” DA:
4.3 图像到图像翻译训练
4.4 实现细节
我们数据集中的所有标志都被转换为每秒 62.5 帧,音频波形以 16 kHz 的频率进行采样。这两个速率均遵循 Qian et al. [2019],即 62.5 Hz 用于梅尔频谱图,16 kHz 用于语音波形。我们尝试了其他常见的帧率,并发现上述设置适用于整个流程。我们注意到,输入视频的原始帧率下提取面部标志,并在标志上进行插值,而不是在原始像素上。我们使用 PyTorch 和 Adam 优化器训练语音内容动画和说话者感知动画模块。学习率设置为 10−4,权重衰减为 10−6。语音内容动画模块包含 1.9M 参数,训练时间为 12 小时,使用 Nvidia 1080Ti GPU。说话者感知动画模块包含 3.8M 参数,训练时间为 30 小时,使用相同的 GPU。用于生成自然人脸的单面动画模块也使用 Adam 优化器进行训练,学习率为 10−4,批量大小为 16。该网络包含 30.7M 参数,训练时间为 20 小时,使用 8 个 Nvidia 1080Ti GPU。在测试阶段,我们的网络生成自然人脸视频的速度约为 22 FPS,生成非写实视频的速度约为 28 FPS。
5 结果
在所有组件就绪后,我们现在展示从单张输入图像和给定音频文件生成的说话头视频的结果。图 6 展示了卡通和自然人脸图像的生成动画画廊。我们注意到,生成的动画包括完整的面部表情和动态头部姿势。我们建议读者参阅我们的补充视频。
5.1 非写实图像动画
图 7 展示了我们的生成非写实动画的画廊。每个动画都是从输入音频和单张肖像图像生成的。肖像图像可以是艺术绘画、随机涂鸦、2D 卡通角色、日本漫画、风格化漫画和日常照片。尽管仅在人类面部标志上进行训练,但我们的方法可以成功推广到各种风格化的卡通面孔。这是因为我们的方法使用标志作为中间表示,并且学习相对标志位移而不是绝对位置。
5.2 人脸图像动画
图 8 展示了合成的说话头视频,展示了说话的人,并与最先进的视频生成方法 [Chen et al. 2019;Vougioukas et al. 2019] 进行了比较。为了突出唇部区域的差异,对真实值(GT)和我们的结果进行了裁剪(见第 2 行和第 5 行)。我们注意到,Chen et al. [2019] 和 Vougioukas et al. [2019] 的方法主要预测唇部区域,并且仅对裁剪后的面部进行预测,因此遗漏了头部姿势。Vougioukas et al. [2019] 在训练过程中未观察到的面孔上泛化效果不佳。Chen et al. [2019] 缺乏与输入音频的同步,尤其是对于侧面肖像(见红色框)。与这些方法相比,我们的方法更准确地预测面部表情,并且能够捕捉到一定程度的头部运动(见绿色框)。然而,公平地说,我们还注意到我们的方法并非没有伪影:头部运动往往会扭曲背景,这是因为我们的网络试图生成整个图像,而没有分离前景和背景。尽管仅在自然人脸图像上进行训练,但我们的图像翻译模块还可以生成不仅限于真实人脸的合理面部动画,还可以生成 2D 绘画、雕像头部图像或 3D 模型的渲染图像。请参阅我们的补充视频以查看更多结果。我们的补充视频还包括与 Thies et al. [2020] 的同时工作的比较。在测试阶段给定相同的音频和目标说话者图像时,我们发现我们的唇部同步似乎比他们的方法更准确。我们还强调,我们的方法学习生成头部姿势,而在他们的案例中,头部姿势没有明确处理,或者在后处理步骤中以启发式方式添加(其论文中未详细说明)。他们的合成视频帧看起来比我们的更清晰,这可能是由于他们 3D 人脸模型的神经渲染器。然而,他们的方法需要在目标特定的参考视频上进行额外的训练,长度约为 30 小时,而我们的网络可以立即动画化单张目标照片,无需任何重新训练。因此,我们的网络具有独特的优势,可以驱动各种单图像,这些图像没有长时间的训练视频可用。这些包括静态卡通角色、日常照片、绘画和涂鸦。
5.3 评估协议
我们通过定量和用户研究对 MakeItTalk 进行了评估,并与相关方法进行了比较。我们从 VoxCeleb2 子集中创建了一个测试集,包含 67 位说话者的 268 个视频片段。说话者身份在训练过程中被观察到,然而,他们的测试语音和视频与训练中的不同。
每个视频剪辑持续 5 到 30 秒。使用 [Bulat and Tzimiropoulos 2017] 从测试剪辑中提取标志,并对其质量进行了手动验证。我们称这些为“参考标志”,并在以下评估指标中使用它们。
评估指标。为了评估合成标志在多大程度上代表准确的唇部运动,我们使用以下指标:
-
唇部标志距离(D - LL):表示预测的下颌和唇部标志位置与参考标志之间的平均欧几里得距离。标志位置根据每个测试视频剪辑的参考唇部最大宽度进行归一化。
-
唇部标志速度差异(D - VL):表示参考标志速度与预测标志速度之间的平均欧几里得距离。速度计算为连续帧之间标志位置的差异。该指标捕获了下颌 - 唇部动态的一阶差异。
-
开口嘴面积差异(D - A):表示预测嘴部形状面积与参考嘴部形状面积之间的平均差异。以每个测试视频剪辑的参考嘴部最大面积的百分比表示。
为了评估我们的方法和他人生成的标志在多大程度上再现整体头部运动、面部表情及其动态,我们使用以下指标:
-
标志距离(D - L):表示所有预测标志位置与参考标志位置之间的平均欧几里得距离(根据面部宽度进行归一化)。
-
标志速度差异(D - V):表示参考标志速度与预测标志速度之间的平均欧几里得距离(同样根据面部宽度进行归一化)。速度计算为连续帧之间标志位置的差异。该指标作为标志运动动态的指示器。
-
头部旋转和位置差异(D - Rot / Pos):表示参考和预测的头部旋转角度(以度为单位)以及头部位置(再次根据面部宽度进行归一化)之间的平均差异。该指标表明头部姿势的差异,如点头和倾斜。
5.4 内容动画评估
我们首先通过与最先进的面部表情合成方法进行比较,开始我们的评估。具体来说,我们比较了 Eskimez et al. [2018]、Zhou et al. [2018] 和 Chen et al. [2019]。所有这些方法都尝试合成面部标志,但不能生成头部运动。头部运动要么是程序生成的,要么是从源视频中复制的。因此,为了进行公平的评估,我们从我们的方法中排除头部运动,并专注于仅在相同的“中性”头部姿势下比较所有方法预测的标志。为了评估唇部同步,我们关注唇部标志位置、速度和开口嘴面积的差异(D - LL、D - VL、D - A),并忽略头部姿势指标。表 2 报告了上述方法和我们的方法的这些指标。我们还包括了我们的完整方法,包括三个简化变体:(a)“我们的(无分离)”,其中我们消除了语音转换模块,并直接将原始音频特征作为输入传递给单独训练和测试的说话者感知动画分支;在这种情况下,音频内容和说话者身份之间没有分离(解耦),(b)“我们的(无说话者分支)”,其中我们保持语音转换模块进行解耦,但仅训练和测试语音内容分支,而不使用说话者感知分支,(c)“我们的(无内容分支)”,其中我们再次进行解耦,但仅训练和测试说话者感知分支,而不使用语音内容分支。我们在第 5.6 节中详细讨论了这三种变体。结果表明,我们的方法在所有指标上的误差最低。特别是,与 Eskimez et al. [2018] 相比,我们的方法在唇部标志位置上的 D - LL 误差减少了 2 倍,与 Chen et al. [2019] 相比减少了 2.5 倍。图 9 展示了上述方法和我们的方法从我们的测试集中输出的面部标志的示例。每行显示一个输出帧。Zhou et al. [2018] 仅能预测面部下半部分,无法准确重现闭嘴状态(见第二行)。Eskimez et al. [2018] 和 Chen et al. [2019] 倾向于保守的嘴部开口。特别是,Chen et al. [2019] 预测的上下唇有时会相互重叠(见第二行,红色框)。相比之下,我们的方法能够更好地匹配参考标志的面部表情。我们的方法还可以预测微妙的面部表情,例如唇角上扬(见第一行,红色框)。
5.5 说话者感知动画评估
头部姿势预测和说话者感知。现有的语音驱动面部动画方法不合成头部运动。相反,常见的策略是从另一个现有视频中复制头部姿势。基于这一观察,我们将我们的方法与两个基线进行评估:“检索 - 相同 ID”和“检索 - 随机 ID”。这些基线从我们的训练集中随机选择另一个视频剪辑,并从中检索头部姿势和位置序列。然后将面部标志平移和旋转,以重现复制的头部姿势和位置。第一个基线“检索 - 相同 ID”使用与测试视频中相同的说话者的训练视频。这一策略使得该基线更强,因为它重新使用了来自同一说话者的动态。第二个基线“检索 - 随机 ID”使用来自不同随机说话者的视频。这一基线有助于检查我们的方法和替代方法是否比随机生成更好的头部姿势和面部表情。
表 3 报告了 D - L、D - V 和 D - Rot / Pos 指标的结果。我们的完整方法与两个基线相比误差更小,表明我们的说话者感知预测比简单地复制另一个视频中的头部运动更逼真。特别是,我们观察到我们的方法在头部姿势(D - Rot)上的误差比使用随机说话者身份时少 2.7 倍(见“检索 - 随机 ID”)。这一结果还证实,随机说话者的头部运动动态与真实值差异很大。与使用相同说话者的更强基线(见“检索 - 相同 ID”)相比,我们观察到我们的方法在头部姿势(D - Rot)上的误差仍少 1.3 倍,在头部位置(D - Pos)上的误差少 1.5 倍。这一结果证实,即使从正确的说话者中复制头部运动,也会导致显著差异,因为复制的头部姿势和位置并不一定与音频同步得很好。我们的完整方法反而能够更一致地捕捉与输入音频和说话者身份相关的头部运动动态和面部表情。图 6 展示了我们在不同预测头部姿势下生成的卡通图像和自然人脸的画廊。每幅图像右下角还显示了对应的生成面部标志。展示的示例表明,我们的方法能够合成头部姿势,包括点头和摆动。图 10 展示了我们方法在捕捉个性化头部运动动态方面的另一种定性验证。该图基于 8 位代表性说话者的方差在动作单元(AUs)、头部姿势和位置上进行嵌入。AUs 是根据 [Ekman and Friesen 1978] 的定义从预测标志中计算得出的。通过 t - SNE [Maaten and Hinton 2008] 进行嵌入。这些 8 位代表性是通过最远点采样选择的,即它们在 AUs、头部姿势和位置上的差异最大。我们用不同颜色标记不同说话者,并用实心点表示基于参考视频的嵌入,用星号表示我们的方法的结果。该可视化表明,我们的方法生成的头部运动动态更接近参考值。
5.6 消融研究
单分支性能。我们通过训练和测试第 5.4 节中描述的三个简化网络变体进行了消融研究:“我们的(无分离)”(不解耦内容和说话者身份)、“我们的(无说话者分支)”和“我们的(无内容分支)”。后两个变体的目的是检查单个网络是否可以联合学习唇部同步和说话者感知头部运动。这些变体和我们完整方法的结果如表 2 和表 3 所示。我们还建议读者参阅补充视频以查看更多视觉比较。仅使用语音内容而不考虑说话者身份的“我们的(无说话者分支)”变体在捕捉唇部标志方面表现良好,因为这些标志与音频内容同步。该变体在唇部评估指标上略逊于我们的方法(见表 2)。然而,它在头部姿势和位置上的误差更大(分别比我们的方法高 1.6 倍和 1.3 倍,见表 3),因为头部运动是说话者身份和内容的函数。仅使用说话者感知分支的“我们的(无内容分支)”变体的结果则相反:它在捕捉头部姿势和位置方面表现良好(略逊于我们的方法,见表 3)。然而,它在下颌 - 唇部标志差异和开口嘴面积差异方面的误差更高(分别比我们的方法高 1.6 倍和 2.4 倍,见表 2),这表明面部下半部分的动态与音频内容同步效果不佳。图 11 展示了仅使用说话者感知动画分支(即“我们的(无内容)”变体)的结果,与我们的完整模型相比,其在下颌 - 唇部标志位移方面存在明显的伪影。使用我们的完整方法可以实现最佳性能,根据所有评估指标来看。使用“我们的(无分离)”变体的结果与“我们的(无内容分支)”变体相似:它在头部姿势性能上略逊于我们的完整方法(表 3),但在唇部运动准确性方面表现更差(表 2)。具体来说,它在下颌 - 唇部标志位置、速度和开口嘴面积差异方面的误差分别比我们的方法高 1.5 倍、2.4 倍和 4.1 倍。我们推测这是因为内容和说话者身份信息仍然纠缠在一起,因此网络难以区分音频和标志之间的一一映射。
随机说话者 ID 注入。我们测试了我们方法的另一个变体,称为“我们的(随机 ID)”。对于这个变体,我们使用我们的完整网络,但是,我们不是使用正确的说话者嵌入,而是注入另一个随机的说话者身份嵌入。这个变体的结果如表 3 所示。我们再次观察到,性能显著下降(头部姿势误差比我们的完整方法高 3.6 倍)。这表明我们的方法成功地分离了内容和说话者感知运动动态,并且能够捕捉正确的说话者头部运动动态(即,它不会重现随机的动态)。
5.7 用户研究
我们还通过亚马逊 Mechanical Turk 服务进行了感知用户研究。我们从 324 位不同的 MTurk 参与者那里获得了 6480 个查询响应,进行了两项不同的用户研究,如下所述。
说话者感知的用户研究。我们的第一个研究评估了我们的方法的不同变体在合成卡通动画时的说话者感知能力。具体来说,我们组装了一个包含 300 个查询的池,这些查询显示在不同的网页上。在网页的顶部,我们展示了一个真实人物说话的参考视频,而在底部,我们展示了两个卡通动画:一个使用我们的完整方法生成的卡通动画,另一个基于上述两种变体之一(“我们的(随机 ID)”和“我们的(无说话者 ID)”)生成的卡通动画。两个卡通视频在每个网页上随机放置在左/右位置。每个查询包括以下问题:“假设你想看到上面视频中的人作为底部显示的卡通角色。哪一个卡通动画最好地代表了顶部视频中人物的说话风格,就面部表情和头部运动而言?” MTurk 参与者被要求在以下选项中选择一个:“左边的动画”、“右边的动画”、“无法判断 - 两者都相当好地代表了这个人”或“无法判断 - 两者都不代表这个人”。每位 MTurk 参与者被要求完成一个包含 20 个随机从我们的池中选择的查询的问卷。查询以随机顺序显示。每个查询重复两次(即,我们为每个问卷有 10 个独特的查询),两个卡通视频在每次重复时随机翻转。我们通过过滤掉那些在问卷中对超过 5 个独特查询给出不一致答案的不可靠 MTurk 参与者,或者那些完成问卷时间少于一分钟的人,来确保参与者的可靠性。每位参与者最多只能回答一个问卷,以确保参与者多样性。我们有 90 位不同的、可靠的 MTurk 参与者参与了这项用户研究。对于我们的 300 个查询中的每一个,我们从 3 位不同的 MTurk 参与者那里获得了投票。由于每位 MTurk 参与者对 10 个独特查询进行了两次投票,我们从我们的 90 位 MTurk 参与者那里总共收集了 1800 个响应(300 个查询 × 3 票 × 2 次重复)。图 12(顶部)显示了研究结果。我们看到,大多数 MTurkers 更频繁地选择了我们的完整方法,而不是其他两种变体。
自然人脸视频的用户研究。为了验证我们基于标志的人脸动画方法,我们进行了另一项用户研究。每位 MTurk 参与者被展示了一个包含 20 个查询的问卷,这些查询是从我们生成的 780 个查询池中随机选择的。对于每个查询,我们在顶部展示了一个真实人物的头部单帧图像,而在底部展示了两个生成的视频(随机放置在左/右位置):一个使用我们的方法合成的视频,另一个来自 Chen et al. [2019] 或 Vougioukas et al. [2019]。参与者被要求判断哪个人的面部表情和头部运动看起来更逼真、更合理。我们还明确指示他们忽略特定的相机位置或缩放因子,专注于面部。参与者被要求在与之前研究相同的四个选项中进行选择。我们还采用了相同的随机和重复查询设计,并通过过滤掉不可靠的答案来检查 MTurk 参与者的可靠性和一致性。我们有 234 位不同的 MTurk 参与者参与了这项用户研究。与之前的研究一样,每个查询都从 3 位不同的、可靠的 MTurk 参与者那里获得了投票。因此,我们从我们的 234 位参与者那里总共收集了 4680 个响应(780 个查询 × 3 票 × 2 次重复)。图 12(底部)显示了研究结果。与 Chen et al. [2019] 或 Vougioukas et al. [2019] 相比,我们的方法被大多数参与者投票为最“逼真”和“合理”。
5.8 应用
合成逼真的说话头动画有广泛的应用 [Kim et al. 2019;Zhou et al. 2019]。一个常见的应用是配音,使用与原视频中人物不同的人的声音,甚至是不同语言的声音。在图 13(顶部),给定目标演员的单帧图像和另一个人的配音音频,我们可以生成目标演员根据该人的语音说话的视频。另一个应用是带宽受限的视频会议。在视觉帧无法以高保真度和帧率传输的情况下,我们可以利用仅音频信号来驱动说话头视频。与视觉信号相比,音频信号可以在更低的带宽下保存。然而,保留视觉面部表情,尤其是唇部运动,仍然很重要,因为它们在沟通中对理解贡献很大 [McGurk and MacDonald 1976]。图 13(中部)表明,我们可以仅使用音频和初始高质量用户肖像图像作为输入,合成具有面部表情和唇部运动的说话头。图 13(底部)展示了自然人脸和卡通说话头动画的例子,这些动画可以用于视频会议,用于娱乐目的,或由于与视频录制相关的隐私问题。我们还建议读者参阅补充视频。我们的补充视频还展示了从文本到视频的应用,我们通过语音合成器 [Notevibes 2020] 将文本转换为音频,从而合成自然人脸视频。最后,我们的视频展示了通过对我们网络预测的中间标志应用旋转,可以交互式地编辑合成说话头的姿势的可能性。
6 结论
我们介绍了一种基于深度学习的方法,用于从音频剪辑和单张图像生成说话者感知的说话头动画。我们的方法可以处理训练过程中未观察到的新音频剪辑和新肖像图像。我们方法的关键见解是预测从解耦的音频内容和说话者中得出的标志,以便更好地捕捉唇部同步、个性化的面部表情和头部运动动态。这使得我们的方法能够生成比现有技术水平更具表现力且质量更高的动画。
局限性与未来工作。尽管我们的方法捕捉到了说话者的某些风格(例如,预测反映活跃语音的头部摆动),但还有其他因素会影响头部运动动态。例如,说话者的情绪也会在很大程度上决定头部运动和面部表情。将情感分析进一步纳入动画管道是一个有希望的研究方向。我们的语音内容动画目前并不总是很好地捕捉双唇音和摩擦音(即 /b/m/p/f/v/)。我们相信这是由于我们使用的语音转换模块造成的,该模块在执行语音频谱重建时往往会遗漏这些短音素表示。尽管我们通过直接采用最先进的语音转换架构观察到了有希望的结果,但为音频驱动动画开发更特定于领域的适应性可能会解决语音转换和动画之间的这种差异。改进从标志到视频的图像翻译也可以进一步研究。当前的图像到图像翻译网络仅以 2D 面部标志作为输入。将更多与音素或视觉相关的特征作为输入可能会提高生成视频在发音方面的质量。此外,背景扭曲和伪影在当前解决方案中仍然很明显。我们的图像翻译模块同时对背景和前景头部进行变形,以产生动画,这给人一种相机运动与头部运动混合的印象。在训练和测试过程中采用前景/背景分离或肖像抠图的网络架构可能会产生更好的结果 [Sengupta et al. 2020]。捕获像素之间长期的时间和空间依赖关系可能会进一步减少低级伪影。另一个限制是,在头部运动较大时,会出现更多伪影:由于我们试图仅从单张输入图像创建动画,因此对于大旋转/平移,需要对头部未见部分(例如,颈部、肩膀、头发)进行足够的外推,这对我们当前的图像翻译网络来说更具挑战性,尤其是对于自然头部图像。我们的方法严重依赖中间稀疏标志表示来指导最终视频输出。该表示的优点是低维且能够处理各种面孔,而不仅仅是类似人类的面孔。另一方面,标志主要作为建模头部的粗略代理,因此在头部运动较大时,它们有时会导致自然头部图像的面部扭曲(请参阅我们的补充视频,最后一个剪辑)。在人脸动画的特定情况下,替代表示可能是更密集的标志或可变形模型的参数,这可能会产生更准确的面部重建。一个特别的挑战是,在零样本学习环境中训练此类模型,输入肖像在训练过程中未被观察到;目前的方法似乎需要在目标面孔上进行额外的微调 [Thies et al. 2020]。最后,我们的当前算法侧重于完全自动化的管道。将用户交互纳入以人为本的循环仍然是一个开放性挑战。一个重要问题是,动画师如何在某些帧中编辑标志,并将这些编辑传播到视频的其余部分。我们期待未来在具有直观控制的高质量表现力说话头动画方面的努力。
7 伦理考量
“深度伪造视频”在我们的日常生活中变得越来越普遍。公众可能仍然认为合成生成说话头视频很难或不可能。因此,说话头生成算法可能会被滥用以传播虚假信息或用于其他恶意行为。我们希望我们的代码能够帮助人们理解生成此类视频是完全可行的。我们的主要意图是提高意识并消除这种技术的神秘感。我们的代码包括一个水印,表明生成的视频是合成的。