文章链接:https://arxiv.org/pdf/2403.17694
github链接:https://github.com/Zejun-Yang/AniPortrait
本文提出了AniPortrait,一个新颖的框架,用于生成由音频和参考肖像驱动的高质量动画。方法分为两个阶段。首先,从音频中提取3D中间表示,并将它们投影到一系列2D面部关键点上。随后,采用了一个强大的扩散模型,结合一个运动模块,将关键点序列转换为逼真且时间上连贯的肖像动画。
实验结果表明,在面部自然性、姿势多样性和视觉质量方面,AniPortrait具有优越性,从而提供了增强的感知体验。此外,我们的方法在灵活性和可控性方面表现出了相当大的潜力,可以有效应用于面部运动编辑或面部再现等领域。
介绍
从音频和静态图像中创建逼真而富有表现力的肖像动画具有各种应用,从虚拟现实和游戏到数字媒体都有涉及。然而,制作视觉上引人入胜且保持时间一致性的高质量动画是一个重大挑战。这种复杂性源于需要精细协调嘴唇运动、面部表情和头部位置,以营造出视觉上引人入胜的效果。
现有方法通常未能克服这一挑战,主要是因为它们依赖于用于视觉内容创建的容量有限的生成器,如GANs、NeRF或基于运动的解码器。这些网络展现出有限的泛化能力,并且在生成高质量内容方面经常缺乏稳定性。最近,扩散模型的出现促进了高质量图像的生成。一些研究在此基础上进行了进一步探索,通过引入时间模块,使扩散模型在创建引人入胜的视频方面表现出色。
在扩散模型的进展基础上,介绍AniPortrait,这是一个新颖的框架,旨在生成由音频和参考图像驱动的高质量动画肖像。AniPortrait分为两个明确的阶段。
第一个阶段,采用基于transformer的模型从音频输入中提取一系列3D面部网格和头部姿势,随后将它们投影到一系列2D面部关键点上。这一阶段能够从音频中捕捉微妙的表情和嘴唇运动,以及与音频节奏同步的头部运动。
第二个阶段,利用了一个强大的扩散模型,结合了一个运动模块,将面部关键点序列转换为时间一致且逼真的动态肖像。具体地,借鉴了AnimateAnyone的网络架构,该架构利用了强大的扩散模型 Stable Diffusion 1.5,根据身体运动序列和参考图像生成流畅而逼真的视频。特别值得注意的是我们对该网络内姿势引导模块的重新设计。这种修改不仅保持了轻量级设计,而且在生成嘴唇运动方面表现出了更高的精度。
实验结果显示了AniPortrait在创建具有出色面部自然性、多样化姿势和优秀视觉质量的动画方面的优越性。通过使用3D面部表示作为中间特征,我们获得了根据需要修改这些表示的灵活性。这种适应性极大地增强了本文的框架在面部运动编辑和面部再现等领域的适用性。
方法
所提出的框架包括两个模块,Audio2Lmk 和 Lmk2Video。前者旨在从音频输入中提取一系列能够捕捉复杂面部表情和嘴唇运动的关键点序列。后者利用这些关键点序列生成具有时间稳定性的高质量肖像视频。下图1中概述了该框架,并在下文提供了更多细节。
Audio2Lmk
设 表示一系列语音片段,目标是预测相应的 3D 面部网格序列 ,其中每个 ,并且姿势序列 ,其中每个 是一个表示旋转和平移的 6 维向量。
采用预训练的 wav2vec 来提取音频特征。该模型具有很高的泛化能力,并且能够准确识别音频中的发音和语调,这在生成逼真的面部动画中起着关键作用。通过利用获得的稳健语音特征,可以有效地使用由两个全连接层组成的简单架构将这些特征转换为 3D 面部网格。观察到,这种简单的设计不仅确保了准确性,还提高了推理过程的效率。
在将音频转换为姿势的任务中,我用相同的 wav2vec 网络作为骨干。然而,不与音频到网格模块共享权重。这是因为姿势与音频中存在的节奏和语调更为密切相关,这与音频到网格任务有不同的重点。为了考虑前面状态的影响,使用 transformer 解码器来解码姿势序列。在此过程中,使用交叉注意力机制将音频特征集成到解码器中。对于上述两个模块,使用简单的 L1 损失进行训练。
在获得网格和姿势序列后,使用透视投影将它们转换为一系列 2D 面部关键点。这些关键点随后被用作下一阶段的输入信号。
Lmk2Video
给定一个参考肖像图像,表示为 ,并且一个表示为 的面部关键点序列,其中每个 ,本文提出的 Lmk2Video 模块创建一个时间上连贯的肖像动画。这个动画将运动与关键点序列对齐,并保持与参考图像一致的外观。将肖像动画表示为一个肖像帧序列,表示为 。
Lmk2Video 的网络结构设计受到 AnimateAnyone 的启发。本文利用 SD-1.5 作为骨干,集成了一个时间运动模块,将多帧噪声输入有效地转换为一系列视频帧。同时,使用一个 ReferenceNet,镜像了 SD-1.5 的结构,用于从参考图像中提取外观信息并将其整合到骨干中。这种战略性的设计确保了输出视频中的人脸ID保持一致。与 AnimateAnyone 不同的是,我们增强了 PoseGuider 的设计复杂性。原始版本仅包括几个卷积层,之后关键点特征与骨干输入层的潜变量合并。这种基本设计无法捕捉到嘴唇的复杂运动。因此,本文采用了 ControlNet 的多尺度策略,将相应尺度的关键点特征合并到骨干的不同模块中。尽管进行了这些增强,也成功地保持了参数数量相对较低。
本文还引入了一个额外的改进:将参考图像的关键点作为额外输入。PoseGuider 的交叉注意力模块促进了参考关键点和每帧目标关键点之间的交互。这个过程为网络提供了额外的线索,以理解面部关键点和外观之间的相关性,从而有助于生成具有更精确运动的肖像动画。
实验
实施细节
在 Audio2Lmk 阶段,采用 wav2vec2.0 作为我们的骨干网络。利用 MediaPipe 提取 3D 网格和 6D 姿势进行标注。Audio2Mesh 的训练数据来自内部数据集,该数据集包含来自单个发言者的近一小时高质量语音数据。为了确保 MediaPipe 提取的 3D 网格稳定,我们指示演员在整个录制过程中保持稳定的头部位置,面向摄像机。使用 HDTF 训练 Audio2Pose。所有训练操作都在一台 A100 上执行,利用 Adam 优化器,学习率为 。
在 Lmk2Video 过程中,实施了两步训练方法。在初始步骤中,专注于训练骨干网络、ReferenceNet 和 PoseGuider 的 2D 组件,略过运动模块。在随后的步骤中,冻结所有其他组件,并集中精力训练运动模块。利用两个大规模、高质量的面部视频数据集 VFHQ 和 CelebV-HQ 训练模型。所有数据经过 MediaPipe 处理,以提取 2D 面部关键点。为了增强网络对嘴唇运动的敏感性,在从 2D 关键点渲染姿势图像时使用不同的颜色区分上下嘴唇。所有图像都被调整为 512x512 分辨率。利用 4 个 A100 GPU 进行模型训练,每个步骤耗时两天。采用 AdamW 优化器,保持学习率为 。
结果
如下图2所示,我们的方法生成了一系列在质量和真实感上引人注目的动画。利用中间的3D表示,可以对其进行编辑以操控最终输出。例如,可以从源中提取关键点并改变其ID,从而使我们能够创建面部重现效果。
结论和未来工作
本研究提出了基于扩散模型的肖像动画框架。通过简单地输入音频片段和参考图像,该框架能够生成具有流畅嘴唇运动和自然头部运动的肖像视频。利用扩散模型强大的泛化能力,该框架创建的动画展现出令人印象深刻的逼真图像质量和令人信服的运动。然而,这种方法需要使用中间的3D表示,获取大规模、高质量的3D数据的成本相当高。因此,生成的肖像视频中的面部表情和头部姿势无法摆脱“诡异谷”效应。在未来,我们计划采用EMO的方法,直接从音频预测肖像视频,以实现更令人惊叹的生成结果。
参考文献
[1] AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation
更多精彩内容,请关注公众号:AI生成未来
欢迎加群交流AIGC技术,添加小助手