来源:ICCV 2023 论文题目:Imitator: Personalized Speech-driven 3D Facial Animation 论文链接:https://arxiv.org/abs/2301.00023 论文作者:Balamurugan Thambiraja 等人 内容整理: 林宗灏 本文提出了一种用于个性化语音驱动 3D 人脸动画的方法 Imitator,该方法可以从简短的输入视频中学习特定身份的细节,并生成与目标人物的说话风格和面部特质相匹配的人脸表情,并为双唇辅音('m','b','p')提供准确的唇闭合。大量实验表明 Imitator 从输入音频中生成了富有表情的人脸动画,明显提高了口型同步性能,并保留了人物的说话风格。
图 1:Imitator 是一种用于个性化语音驱动 3D 人脸动画的新方法。给定音频序列和个性化风格嵌入作为输入,我们生成特定人物的运动序列,并为双唇辅音('m','b','p')提供准确的唇闭合。主体的风格嵌入可以从一个简短参考视频(5 秒)中计算得到。
语音驱动的 3D 人脸动画已经得到了广泛的探索。目前最先进的方法对目标人物的面部拓扑进行形变以同步输入音频,但没有考虑特定身份的说话风格和面部特质,从而导致了不真实、不准确的嘴唇运动。为了解决这一问题,我们提出了一种语音驱动的人脸表情合成方法 Imitator,该方法可以从简短的输入视频中学习特定身份的细节,并生成与目标人物的说话风格和面部特质相匹配的人脸表情。具体而言,我们在一个大型人脸表情数据集上训练了一个风格无关的 Transformer,作为音频驱动的人脸表情先验,进而根据简短的参考视频,利用先验来优化特定身份的说话风格。为了训练先验,我们引入了一种基于检测的双唇辅音损失函数,以确保合理的唇闭合,从而提高生成表情的真实性。通过充分的实验和用户研究,我们展示了 Imitator 将口型同步提高了 49%,并从输入音频中生成了富有表情的人脸动画,同时保留了人物的说话风格。本文的主要贡献总结如下:
图 2:我们的架构以音频作为输入并由 Wav2Vec 2.0 编码。音频嵌入送入一个自回归视素解码器生成运动特征。风格适应运动解码器将这些运动特征映射到特定身份的人脸表情,即相对模板网格的顶点位移。
音频编码器
我们使用通用语音模型来对输入音频进行编码。具体而言,我们采用 Wav2Vec 2.0。最初的 Wav2Vec 基于 CNN 架构,旨在生成有意义的人类语音潜在表示。它以自监督和半监督的方式进行训练,通过对比损失来预测当前输入语音之后的值,从而使模型能够从大量未标记的数据中进行学习。Wav2Vec 2.0 通过量化潜在表示和集成基于 Transformer 架构来拓展了这一想法。我们通过线性插值对 Wav2Vec 2.0 输出进行重采样,以匹配运动的采样频率,从而得到
帧的上下文表示
。
自回归视素解码器
视素解码器
以音频序列的上下文表示作为输入,以自回归的方式生成风格无关的视素特征
。这些视素特征描述了在给定上下文音频和先前的视素特征下的唇部形变。我们使用经典 Transformer 架构作为视素解码器,它学习从音频特征
到身份无关的视素特征
的映射。自回归视素编码器定义为:
其中,
是可学习的参数。我们使用起始 token 来指示序列的开头,由于序列长度
是由输入音频长度给定的,故不使用终止 token。我们通过在视素特征中加入正弦编码时间
来将时间信息注入序列中:
给定位置编码输入序列
,我们使用多头自注意力根据输入的相关性加权生成上下文表示。这些上下文表示和音频特征
作为跨模态多头注意力块的输入。最后一个前馈层将音频-运动注意力层的输出映射到视素嵌入
。
运动解码器
我们的目标是从风格无关的视素特征
和特定身份的风格嵌入
生成特定身份的 3D 人脸动画
。我们的运动解码器包含两个部分,一个风格嵌入层和一个运动合成块。我们为训练集设置了身份的独热编码。风格嵌入层将身份信息作为输入生成编码了特定身份运动的风格嵌入
。该风格嵌入被添加到视素特征
中并送入运动合成块。运动合成块由非线性层组成,将风格感知的视素特征映射到由线性形变基定义的运动空间中。在训练过程中,形变基从数据集中的所有身份学习得到,并可通过微调适用于训练身份外的风格。最终网格输出
由估计的顶点相对位移与主体的模板网格相加得到。
我们使用自回归训练方案在 VOCAset 数据集上训练我们的模型,定义如下损失:
其中,
定义顶点的重建损失,
定义速度损失,
衡量唇部接触。权重分别为
,
,
。
重建损失
重建损失
为:
其中,
为时间
序列索引
的真值网格,
为预测值。
速度损失
我们的运动解码器将独立的视素特征作为输入来生成人脸表情。为了提高预测中的时间一致性,我们引入了速度损失
:
唇部接触损失
使用
进行训练会引导模型学习平均的人脸表情,从而导致不准确的嘴唇闭合。为此,我们引入了一种新的双唇辅音('m','b','p')唇部接触损失。具体而言,我们自动标注了 VOCAset 中这些辅音的出现次数,定义了以下唇部损失:
其中,
根据双唇辅音的标注,对预测进行高斯加权。具体而言,对于具有此类辅音的帧,
在
中取值,否则为
。
图 3:在 VOCAset 序列中自动标注双唇辅音('m','b','p')及其相应的唇部闭合。我们使用 Torch Audio 来对齐文本和音频。为了检测实际的唇部闭合,我们在检测到的辅音之前的窗口中搜索唇部距离曲线(红色)上的局部最小值。唇部损失权重设置为高斯函数的固定值。
给定一个新主体的短视频,我们使用 MICA 追踪人脸
。基于该参考数据,我们首先优化说话者的风格嵌入
,然后利用
和
损失联合改进线性形变基。在我们的实验中,我们发现这种两阶段适应对于泛化到新的音频输入至关重要,因为它重用了运动解码器的预训练信息。作为风格嵌入的初始化,我们使用训练集中的一种说话风格。我们预计算了一次所有视素特征
,并优化说话风格以再现被追踪的人脸
。然后,我们改进解码器的线性运动基,以匹配特定身份的形变(例如,不对称的嘴唇运动)。
表 1:VOCAset 上的定量结果。我们的方法明显优于基线方法,尤其是 Lip-Sync 提高了 49%,Lip-max 提高了 36%。
图 4:与 VOCA、Faceformer 和 MeshTalk 的定性比较。
图 5:在 VOCAset 测试集上的平均 L2 顶点距离误差的比较。
表 2:在 VOCAset 测试集上进行的感知 A/B 用户研究。与 VOCA 和 Faceformer 相比,我们的方法更受欢迎。
表 3:在真实人物视频上进行的 A/B 用户研究,以评估与目标人物的说话风格相似性和忠实度。
表 4:关于我们的方法及其部件在 VOCAset 上的消融实验。Sty 和 LipCt 表示使用风格适应和唇部接触损失。
图 6:定性消融比较。我们展示了带有风格和唇部损失的完整方法,该方法能够生成个性化的人脸动画。使用训练集中的随机风格替换优化后的特定身份风格,将生成平均化的人脸动画。洋红色表示生成的表情和目标人物并不相似,特别是人脸形变缺少特定身份的细节。从训练目标中去除唇部损失将导致不准确的唇部闭合,降低真实感。
图 7:音频噪声敏感度研究。通过在 VOCAset 测试主体上添加白噪声来评估。
表 5:关于风格嵌入初始化及训练数据的消融研究。