Audio-Driven Facial Animation 论文解读

文章链接: Audio-Driven Facial Animation by Joint End-to-End Learning of Pose and Emotion

1.Introduction和论文解读

Audio-driven facial animation目的是输入语音数据,生成真实的3D脸部动画。为了让结果更自然,模型需要考虑复杂的脸部肌肉和皮肤组织之间的关系,考虑phoneme(音素)之间的相互依赖,作者采用data-driven的方法,端到端训练神经网络,学习训练数据中的复杂运动关系。虽然现在的神经网络在各种推理和分类任务中很有效,但在训练数据存在模糊和歧义时,倾向于回归均值。

作者的contribution可以整理为:

  • 提出一个有效的神经网络结构,专门处理人们说话,以及泛化至不同的说话人风格。
  • 一个新颖的方法用于发现训练数据中无法用语音来解释的变化规律,比如emotion state
  • 引入三个损失函数用于训练中约束时间稳定性,以及动画过程中保证响应速度。

本文不仅可以对单一人物进行建模,也可以从不同性别、口音、语种的人得到合理的驱动结果。

2.Related Work

Models based on linguistics:大量的工作分析和理解语言的结构,并迁移于面部表情中。比如音轨提供了关于音素内容的信息,动画则相应是基于视素的特征。目前存在大量的方法实现音素和视素的一一映射,比如近期的JALI工作。JALI将面部动画和下巴、嘴唇运动联系起来,能够不受实际音频内容的影响,可靠的复现一系列说话风格和情绪状态。这类方法核心优势是可以在全过程中可以明确控制嘴唇正确的张合。缺点则是在过程中复杂性会逐渐递增,需要特定的语言规则,需要非常完美的录音质量,对非音素声音的效果不够好,缺乏理论依据去处理非下巴和嘴唇以外的部位动画。

Models based on machine learning:早期有很多基于传统机器学习的方法。Voice puppetry完全使用音频,不进行语音结构的明确分析。在训练阶段,它根据视频中观察到的人脸动态估计一个隐马尔可夫模型(HMM)。在推理过程中,对HMM进行采样,并通过考虑全局语言的轨迹优化来合成最可能的序列。后续工作改进了轨迹采样(Anderson等),对HMM进行分段线性近似,比如使用Guassian latent、semi-Markov模型、RNN网络。

接下来机器学习被应用于学习协同发音,然后是合成动画的串联阶段,或用于在各个阶段之间进行映射,例如音素分类,将文本映射到音素,将音素映射到视素,或将输入音频特征映射到高斯混合模型的控制参数。

Extracting and controlling the emotional state:这部分主要集中于音频中分离具体的emotion states。Chuang引入线性模型从音素终分离显性的表情基。Elgammal and Lee在这个基础上引入了非线性表情基。Cao使用向量机提取表情,并且仿真生成3D动画。它们计算一组预定义情感状态之间的映射,并让用户指定用于动画合成的状态。Anderson等使用聚类自适应训练来推导情绪状态的基础,以便可以对其进行插值和外推。他们还提出了一项用户研究,对emotion仿真的结果进行评级。

本文主要是引入latent进行表征模型,本质上就是做成了embedding,进行网络训练和学习。

3.端到端网络结构

给定一个音频窗口数据,模型负责输出窗口中心时间点的脸部表情参数。作者用与一个固定拓扑的脸部mesh的逐顶点差分向量表示表情。实际inference时,沿着音频的时间滑窗,每一个step进行推理驱动mesh动画。每个窗口单独作为输入。每个step单独推理,虽然没有像RNN网络一样记忆前后帧的关系,但是滑窗窗口本身窗口让模型具备了前后帧稳定性。

Audio Process

使用520ms音频窗口作为输入,用于获取音素发音等相关信息。每一个输入audio再经过LPC算法生成32*64的特征。

Representation of emotion states

语音生成脸部动画本质是一个非常模棱两可不确定的问题,同样的音频可以产生不同的脸部表情。为了解决这种不确定性问题,作者将少量的latent data与训练样本关联(即作为模型的第二个输入),让模型有足够的确定信息去预测正确的输出pose。理想状态下,这个新加入latent data可以编码训练样本邻近帧动画相关的参数,这些参数往往并不能单通过语音本身预测出来,比如说话风格、脸部表情、发音pattern。而在推理阶段,该latent输入也允许混合多种不同的emotion states(可以理解为状态基),从而生成可控制的不同风格的动画。由于表情无法标注,没有绝对的对错,因此作者采用data-driven的方案让模型在训练的过程中自动训练得到latent。

作者采用E维的向量表示emotion states,其中E可调,实际应用中可设置为16-24维,并从高斯分布随机初始化该向量。每一个训练样本分配一个向量,存储这些向量的矩阵构成emotion database。Emotion state会append到articulation network的所有layers的激活层中,作为计算图的一部分,随着训练过程的反向传播一直更新。E的维度设置太小,无法消除歧义性。如果太大,则会影响过大导致音频的推理效果不好。

Emotion state存在的问题是,因为没有赋予实际的物理含义,有可能学到的东西和audio是一样的。音频输入是限制在520ms窗口内,因此防止重复学习的方法是禁止emotion state学到短期变化的东西。Emotion state聚焦于长期时序特征,因此即使给定固定的emotion state也可以使模型产生合理的动画。作者引入专门的loss function用来惩罚快速变化。

作者发现将emotional states加入网络后面的层在实际运行时对效果还是有很大提升的,可能是因为emotional states可以对不同的layer有不同的控制效应。越高度抽象的层(网络越后面越抽象)越难以收敛和学习层。这个状态基可以直接作用于模型输出的效果,提升后面layer的学习能力。而将emotional states引入连接到早期的层可以对细微的动画功能(如协同发音)进行细微的控制。

4. Loss Function

Position term 顶点数为V,预测值与真值的均方差,这是该算法的主要loss,loss直接影响整体输出效果,这里需要强调下,过度依赖直接的位置回归会引入极大的抖动造成不稳定现象,但是如果训练不到位则会导致嘴唇不准确:

Motion term 对minibatch的B样本,生成邻近帧组成的B/2样本对,样本对中计算移动差分,其中m(x)表示差分,2倍的原因是为了对齐position term的样本数(本质是引入速度项进行平滑,抑制Position term的抖动):

Regularization term 限制emotion state的值趋近于平均水平(E为维度),以保证short-term音频可以作用于最终的效果,提升动态响应能力。

5. 效果

实际复现和训练,该论文效果还是不错的,能实现基础的嘴唇驱动,算法实时性很好,网络模型小、速度极快,可以应用于行业解决方案。模型结构比较简单,自建数据集需要进行面捕采集。

但是emotion states表情基的选择工作量非常大,目前暂未进行试验,后续有新的实际体验会更新过来。

作者评价效果采用的是打分制,即让用户进行打分和投票,选择他们认为好的。

编辑于 2022-06-18 10:57

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值