我们提出了第一个从语音输入中自动联合合成虚拟人物的同步三维对话身体和手势,以及三维面部和头部动画的方法。我们的算法采用了一个CNN架构,该架构克服了(leverages)面部表情和手势之间的内在关联性。对话性身体手势的合成是一个多模式的问题,因为许多类似的手势可以合理地(plausibly)伴随着相同的输入语音。为了在这种情况下合成合理的身体手势,我们训练了一个基于生成对抗网络(GAN)的模型,该模型在与输入的音频特征配对时测量生成的三维身体运动序列的合理性。我们将以新的方式创建一个巨大的语料库,其中包括超过33小时的来自说话人的在逃视频的身体、手和脸部的注释。为此,我们将最先进的单眼(monocular)方法用于三维身体和手的姿势估计,以及密集的三维脸部表现捕捉到的视频语料库。通过这种方式,我们可以比以前的算法在数量级上训练更多的数据,这些算法诉诸于复杂的演播室运动捕捉解决方案,从而训练出更有表现力的合成算法。我们的实验和用户研究表明,我们的语音合成的全三维角色动画具有最先进的质量
Fig. 1
虚拟人物是许多计算机图形应用中的一个重要组成部分,如游戏或共享虚拟环境。传统上,他们的生成需要结合复杂的动作捕捉记录和动画专家的繁琐工作来生成合理的外观和动作。特别的挑战包括会说话的化身的对话身体姿态的动画。
以及伴随着音频传达说话人的情感和举止(mannerisms)的面部表情。传统上,这两种动画都是通过手动指定的关键帧动画来实现的。直接从语音中制作面部表情和身体姿态动画的自动化工具将大大减轻所需的努力,并由非专业人士来创作更高质量的人物动画。进一步说,这种工具将使用户能够驱动实时体现自己的对话式虚拟化身,在共享的虚拟空间里,用与语音相协调的面部表情和身体姿态为他们制作动画。在心理语言学的研究中,已经表明用户界面上的化身具有可信的面部表情、身体姿态和语言,被认为是更可信和值得信赖的[55]。也有研究表明,非语言行为对于传递信息非常重要[17],它能让人看到说话者的内部状态,而且语言和身体姿态都是紧密相关的,是由同一个内部过程产生的[35, 23] 。
之前关于语音驱动的虚拟人物的工作仅限于通过基于启发式规则[33]或基于学习[12, 29, 28]的方法来生成共同语言的身体姿态,或者生成与语音相协调的面部表情[22]和头部动作[45]。许多基于学习的方法使用在研究中捕获的运动和手势训练数据,使用复杂的运动捕捉系统[27,29,28,51,12,13,2]。这样一来,就很难记录大量的数据,这些数据反映了不同受试者的手势变化,或者只有在长期观察中才能发现的受试者特有的特异性。
我们提出了第一个联合生成手臂、躯干和手的同步三维姿态的方法,以及一个简单但富有表现力的三维脸部和头部动作的方法,用于从语言中生成一个动画人物。它基于以下的贡献:
之前的工作主要是研究从音频输入中合成身体手势和面部动画的问题。问题设置不同,因为对话手势合成是一个多模式的设置,而不是语音驱动的脸部动画,后者的视元到音元的映射更为独特。在这篇论文中,我们研究了它们的组合。
语音驱动的身体手势和头部动作 现有技术可分为基于规则和数据驱动的方法。Cassell等人[6]和Cassell[5]的开创性工作表明,通过使用一套手动定义的规则,虚拟人物的自动身体手势和面部表情的生成可以与音频同步。其他工作将语言学分析[7]纳入一个可扩展的基于规则的框架。Marsella等人[33]开发了一个基于规则的系统,通过分析文本输入和音频的内容来生成身体姿态(和面部表情)。然而,这类方法严重依赖对语言特定规则的研究,不能轻易处理非音素的声音
为了克服这些问题,不依赖语言领域的专家知识的数据驱动方法已经引起了越来越多的关注。Neff等人[37]提出了一种方法,利用人工注释的视频语料,在给出口语文本和表演者的手势特征的情况下,创建一个针对个人的手势脚本。然后,该手势脚本被用来为一个虚拟头像制作动画。Levine等人[29]使用复杂的动作捕捉设置来捕捉45分钟的训练数据,并训练了一个隐马尔可夫模型来根据实时的语音语调选择最有可能的身体姿态片段。后来, Levine等人[28]认为语气词(prosody)并没有携带足够的信息来确定确切的手势形式。相反,语音通常是对肢体手势特征的编码,如速度和空间范围。基于这一假设,他们首先使用隐性条件随机场(CRF)的变体将听觉信号映射到潜在的运动学特征空间。然后,通过强化学习的方法,用学到的模型来选择一个手势序列。同样,Mariooryad和Busso[32]使用动态贝叶斯网络(DBN)的组合来合成语音中的头部姿势和眉毛运动。Sadoughi等人[44]通过将话语功能建模为DBN的额外约束来扩展这种方法。Sadoughi和Busso[43]也使用贝叶斯网络,通过结合语音信号、语义话语功能和原型动作来生成身体姿态。Bozkurt等人[3]使用了隐性半马可夫模型(Hidden Semi-Markov Model),该模型可以同步地学习语音到手势的关系。Sadoughi等人[45]使用一种基于学习的方法,可以利用文本到语音(TOS)系统来合成头部运动,并提出了一种可以解决训练期间真实和合成语音不匹配的方法。Chiu和Marsella[9]训练一个条件限制波尔兹曼机(CRBM)来直接从语音中合成身体姿势的序列。Chiu和Marsella后来提出使用高斯过程潜变量模型(GPLVM)来学习低维嵌入,从给定的语音输入中选择最可能的身体姿态[10]。
近年来,深度学习在从大数据中自动学习鉴别性特征方面显示了其优越性。双向LSTM被Takeuchi等人[50]、Hasegawa等人[21]以及Ferstl和McDonnell[12]用来从语音中合成身体姿态。同样地,Haag和Shimodaira[19]使用LSTM从语音中合成头部运动。Sadoughi和Busso[42]提出了一种基于GAN的方法来合成说话代理人的头部运动。Kucherenko等人[24]提出了一个去噪自动编码器来学习身体运动的低维表示,然后将其与音频编码器相结合,在测试时进行音频到手势的合成。Lee等人[27]提供了一个同步身体-手指运动和音频的大规模运动捕捉数据集,并提出了一种基于音频和手臂位置作为输入来预测手指运动的方法。Ferstl等人[13]使用了一个多目标对抗模型,并使用了一个分类器,该分类器被训练为预测运动中的姿态阶段,以提高手势合成的质量。
最近的工作也试图纳入基于文本的语义信息,以提高来自语音的身体姿态的生成质量[25, 56]。Alexanderson等人[2]提出了一个基于规范化流的生成模型,可以从语音输入中合成三维身体姿态。他们的系统可以从相同的音频中生成多个合理的手势,并允许对其合成进行一定程度的控制,例如手势的速度和对称性。Ahuja等人[1]表明,一个基于学习的混合模型可以被训练成在多个说话者之间进行手势风格转移。相比之下,我们的重点是找到使用单一框架从音频中预测所有相关身体模式的最佳解决方案,即使以特定人的方式训练,这也是一个具有挑战性的问题。
深度学习方法通常需要大规模的音频和三维运动对的训练库,而这些训练库通常是由复杂而昂贵的演播室运动捕捉系统捕获的。为了解决这个问题,Ginosar等人[16]提出了基于学习的语音驱动的二维上半身和手势模型的生成,该模型来自大规模的野外视频集。通过这个解决方案,他们能够从社区视频中建立一个数量级的大型语料库。同样,Yoon等人[57]的方法也是通过OpenPose[4]从TED演讲视频中提取的地面真实二维姿势进行训练。他们的模型采用了一个双向LSTM将音频输入转化为二维人体姿势的序列。此外,他们使用了一种提升的方法来推导出合成角色的三维运动约束。在我们的工作中,我们为Ginosar等人[16]的数据集提供了额外的三维脸部、手部和身体注释。此外,与现有的方法相比,我们不仅能识别三维上身和手势,还能识别说话人的头部旋转和面部表情。
语音驱动的面部表情 目前的技术可以分为。1)基于脸部模型的技术[31, 39, 8, 52, 53, 11]和2)非模型的技术。基于模型的方法将表情的参数化,并从音频输入中估计这些参数。然而,非基于模型的方法直接将音频映射到脸部网格的三维顶点[22]或嘴部的二维点位置[49]。在Karras等人[22]中,一个LSTM被用来学习这种映射,而在Suwajanakorn等人[49]中,最终的照相学(photorelistic)结果被生成。Cudeiro等人[11]使用DeepSpeech语音识别[20]来产生音频信号的中间表示。然后将其回归到FLAME表面模型的参数中[30]。Taylor等人[52]使用一种现成的语音识别方法将音频映射成音素转录。训练一个网络来把音素翻译成参考脸部模型的参数。Tzikrakis等人[53]使用深度典范注意扭曲(DCAW)将音频翻译成表情混合型。Pham等人[39]直接将音频映射到混合型参数,尽管他们的结果存在强烈的抖动。虽然目前的音频驱动的面部表情技术产生了有趣的结果,但它们中的大多数都是在背景噪音最小的受控演播室中记录的语音数据的结果[31, 39, 22, 8, 52, 11]。Cudeiro等人[11]在处理不同的噪音水平时显示了有趣的结果。然而,目前还没有一种音频驱动的技术可以在野外估计高质量的面部表情,以及估计头部动作和身体对话姿态。我们的方法使用面部模型作为第一类。与其他方法相比,我们采用了简单有效的方法,通过直接回归从社区视频的大型语料库中捕获的面部参数,共同学习三维头部和面部动画与身体姿态。
以前的语音驱动动画合成工作的一个主要瓶颈是产生足够多的训练数据。许多方法都是通过多机位运动捕捉系统对面部和全身运动进行复杂的室内捕捉。因此,我们提出了第一个方法,从带有音频的大型社区视频中提取三维面部动画参数、三维头部姿势、三维手部和三维上身手势的自动注释。通过这种方法,可以更容易地制作出跨越长时间窗口和不同对象的大型训练语料。
特别是,我们使用了Ginosar等人[16]的数据集,该数据集的特点是有10个被试者(如脱口秀主持人)以站姿和坐姿对着镜头说话的144小时的野外视频。从这些视频中,Ginosar等人提取了手臂和手的二维键点,以及二维稀疏面部地标。他们使用这些注释的一个子集来训练一个网络,该网络只从语音中合成二维手臂和手指的运动。虽然显示了语音驱动动画的潜力,但他们的方法没有合成三维身体运动;没有合成躯干的三维运动,如倾斜,这是个人演讲风格的一个要素;也没有预测三维头部姿势和详细的面部动画参数。为了训练一种与输入语音共同合成更完整的三维动画参数的方法,我们用最先进的三维性能捕捉和单眼三维身体和手部姿势估计算法对数据集进行了分析,见Fig. 2。
Fig. 2
对于单眼密集三维人脸性能的捕捉,我们使用基于优化的追踪器[15],预测参数化人脸模型的参数,特别是。64个表达式混合系数,80个身份几何学系数,80个脸部反照率的PCA系数,27个入射光照参数,以及6个三维头部旋转和位置的系数。脸部追踪器希望将经过严格裁剪的脸部边界框作为输入。我们使用Saragih等人[47]的人脸追踪器来提取边界框,并对边界框的位置进行时间上的筛选;我们在实验中发现,这比使用Ginosar数据集中默认的二维人脸地标进行边界框追踪更稳定。为了训练我们的算法,我们只使用面部表情系数θFace∈R64和头部旋转系数R∈SO(3)(我们使用身体姿势追踪器发现的三维头部位置)。
对于三维身体捕捉,我们需要一种对身体自我遮挡、其他人的遮挡、桌子对身体的遮挡(脱口秀主持人的坐姿)或摄像机画面不显示身体的遮挡,甚至站立姿势的遮挡,都有很强的鲁棒性。因此,我们使用XNect[36]单眼三维姿态估计方法来处理这些情况。具体来说,在每个视频片段中,我们从XNect的第二阶段提取13个上身关节的三维身体关键点预测(头部2个,每个手臂3个,颈部1个,脊柱1个,髋部/骨盆3个)。这导致了身体姿势的39维表示K∈R39。我们将脸部跟踪器预测的头部旋转R与身体关键点K一起归入一个42维的矢量θBody∈R42。
在进行手部追踪时,我们采用了Zhou等人[58]的最先进的单眼3D手部姿势估计方法。为了确保良好的预测结果,我们首先使用Ginosar等人[16]提供的二维手部关键点注释对手部图像进行了严格的裁剪,然后将其送入三维手部姿势预测器。由于手部可能被遮挡或超出视线,我们还采用了一种现成的立方插值方法来填补可能遗漏的三维手部姿势信息,只要它们在两个相隔最多8帧的注释画面之间。这导致每只手有21个关节预测,这些关节组合成一个126维的向量θHand∈R126。
为了提高我们的数据因潜在的单眼跟踪问题(如闭塞(occlusions))而具有的稳健性,如果在一定数量的帧内脸部地标或手部关键点的预测可信度低于一个给定的阈值,我们就将数据排除。这是通过重新解释跟踪器产生的身体部位的二维联合热图预测的最大值来获得的,是一种确信度的衡量标准。我们还删除了Ginosar等人[16]提供的10个对象中的4个,因为视频的分辨率低,导致3D密集脸部重建结果质量差。我们最终的3D数据集由6名受试者超过33小时的视频组成。
与Suwajanakorn等人[49]类似,我们在使用FFMPEG[14,40]对音频进行归一化处理后,用一个重叠的时间滑动窗口计算每个输入视频帧的MFC系数。我们利用CMUSphinx[26]来计算系数,并使用13个MFC系数和一个额外的特征来计算输入的平均能量。这些,加上时间上的前导数,产生一个28维的矢量 F M F C F_{MFC} FMFC∈R28,代表每个时间步骤的语音输入。MFCC编码了人类语音感知的特征,这使得它在语音识别等广泛的应用中非常有用。编码语音感知的特点使MFC系数成为预测面部表情的良好代表,因为面部形状的调制是语音产生过程的一部分。对于预测身体手势,MFCC特征在序列中的变化带有产生节拍手势所需的节奏信息。
我们的方法是在给定语音信号的情况下,产生三维面部表情参数、头部方向、三维身体和三维手部姿势的关键点的时间序列。上述这些参数的时间变化包含了姿态信息。如第3.2节所述,对语音输入进行预处理,产生基于MFC的特征帧FMFC[t]∈R28,用于每个离散时间步长t。我们将每个时间步长的面部表情参数表示为θFace[t]∈R64,双手的三维关键点表示为θHand[t]∈R126,头部方向和三维身体关键点共同表示为θBody[t]∈R42。时间序列的采样频率是15Hz。
与其他基于对抗性学习的方法类似,我们的模型由两个主要的神经网络组成,我们称之为生成器网络G和判别器网络D。
我们采用一维卷积编码器-解码器结构的生成器网络G,将输入的音频特征序列FMFC[0 : T]映射到三维人脸表情参数序列θFace[0 : T],三维身体参数序列θBody[0 : T],以及三维手部参数序列θHand[0 : T],这也是以监督的方式进行训练。
我们对生成器G的一维卷积架构是根据UNet[41]架构的参考实现[54]改编的,该架构最初是为二维图像分割提出的。我们的架构利用一个单一的编码器,由8个内核大小为3的一维[Conv-BN-ReLU]块组成,除了最后一个块之外,每隔一个块都与MaxPool交织。最后一个块之后是一个上采样层(最近邻)。每个脸部、身体和手部的序列都使用一个单独的解码器。解码器与编码器对称,由7个一维[Conv-BN-ReLU]块和一个最后的一维卷积层组成,每隔一个块就与上采样层交错排列。解码器与编码器是对称的,利用编码器中相应层的跳过连接。
鉴别网络被设计为预测其输入的音频和姿势特征是否真实。该网络由6个一维[Conv-BN-ReLU]块组成,内核大小为3,每隔一个块就与MaxPool交错。之后,它又有一个线性和sigmoid激活层。
关于架构的确切细节,请参考补充文件。 Figure 3中显示了一个模式。
Figure 3
对于每个采样的语音特征序列FMFC[0 … T - 1],以及注释的三维面部表情参数序列θFace[0 … T - 1],三维身体姿势参数序列θBody[0 … T - 1],和三维手部姿势参数序列θHand[0 … T - 1],我们以滑动窗口的方式提取64帧(≈4秒)的子序列。我们以滑动窗口的方式提取64帧(≈4秒)的子序列,连续的子序列之间有1-5帧的重叠,这取决于被摄体的数据点数量。每个用于训练的mini-batch包括从所有训练序列中提取的这种64帧的子序列的随机抽样。我们使用Adam进行训练,学习率为5e-4,mini-batch尺寸为25,每个主体训练到30万次迭代。由于生成器网络是完全卷积的,在部署时我们的网络可以处理任意长度的输入语音特征。
训练目标。我们监督我们的生成器网络G,其损失项如下:
L Reg = w 1 ∗ L Face + w 2 ∗ L Body + w 3 ∗ L Hand \mathcal{L}_{\text {Reg }}=w_{1} * \mathcal{L}_{\text {Face }}+w_{2} * \mathcal{L}_{\text {Body }}+w_{3} * \mathcal{L}_{\text {Hand }} LReg =w1∗LFace +w2∗LBody +w3∗LHand
LFace是面部表情参数的L2误差:
L Face = ∑ t = 0 T − 1 ∥ θ Face [ t ] − θ ^ Face [ t ] ∥ 2 \mathcal{L}_{\text {Face }}=\sum_{t=0}^{T-1}\left\|\theta_{\text {Face }}[t]-\hat{\theta}_{\text {Face }}[t]\right\|_{2} LFace =t=0∑T−1∥∥∥θFace [t]−θ^Face [t]∥∥∥2
LBody是三维身体关键点位置和头部方向的L1误差,LHand是三维手部关键点位置的L1误差:
L Body = ∑ t = 0 T − 1 ∥ θ Body [ t ] − θ ^ Body [ t ] ∥ 1 L Hand = ∑ t = 0 T − 1 ∥ θ Hand [ t ] − θ ^ Hand [ t ] ∥ 1 \begin{aligned} \mathcal{L}_{\text {Body }} &=\sum_{t=0}^{T-1}\left\|\theta_{\text {Body }}[t]-\hat{\theta}_{\text {Body }}[t]\right\|_{1} \\ \mathcal{L}_{\text {Hand }} &=\sum_{t=0}^{T-1}\left\|\theta_{\text {Hand }}[t]-\hat{\theta}_{\text {Hand }}[t]\right\|_{1} \end{aligned} LBody LHand =t=0∑T−1∥∥∥θBody [t]−θ^Body [t]∥∥∥1=t=0∑T−1∥∥∥θHand [t]−θ^Hand [t]∥∥∥1
我们确定w1=0.37,w2=600,w3=840,以确保每个术语在训练中的权重相等
在实践中,我们注意到只对身体关键点采用L1或L2错误的结果是没有表现力的手势,这一点在Ginosar等人[16]关于二维身体手势合成的前期工作中也被指出。受Ginosaretal[16]的对抗性训练方法的启发,我们展示了将对抗性损失与判别器网络D结合起来,该网络被训练来判断输入的姿势是真实的还是由生成器G假造的,可以产生更有表现力的姿态,而且与语音输入保持同步。在最大的游戏场景中与生成器网络一起训练时,它将推动生成器产生更高质量的三维身体和手部姿势合成,以骗过判别器。我们采用了与Ferstletal[13]的工作类似的方法,不仅使用姿势,还将音频特征作为输入给鉴别器。这样一来,鉴别器的任务就不仅仅是测量输入的手势是否真实,它还需要确定手势是否与输入的音频特征同步。由于身体手势的多模态性主要发生在身体和手部,我们将面部表情参数排除在对抗性损失表述之外:
L A d v ( G , D ) = E F M F C [ log ( 1 − D ( F M F C , G ∗ ( F M F C ) ) ) ] + E F M F C , θ B o d y , θ Hand [ log D ( F M F C , θ Body , θ Hand ) ] \begin{gathered} \mathcal{L}_{A d v}(G, D)=\mathbb{E}_{\mathcal{F}_{M F C}}\left[\log \left(1-D\left(\mathcal{F}_{M F C}, G^{*}\left(\mathcal{F}_{M F C}\right)\right)\right)\right] \\ +\mathbb{E}_{\mathcal{F}_{M F C}, \theta_{B o d y}, \theta_{\text {Hand }}}\left[\log D\left(\mathcal{F}_{M F C}, \theta_{\text {Body }}, \theta_{\text {Hand }}\right)\right] \end{gathered} LAdv(G,D)=EFMFC[log(1−D(FMFC,G∗(FMFC)))]+EFMFC,θBody,θHand [logD(FMFC,θBody ,θHand )]
其中G∗表示我们只使用原始生成器网络G的预测的θBody和θHand输出
加上直接监督的损失,我们的总体损失是:
L = L R e g + w ⋅ min D max G L A d v ( G , D ) \mathcal{L}=\mathcal{L}_{R e g}+w \cdot \min _{D} \max _{G} \mathcal{L}_{A d v}(G, D) L=LReg+w⋅DminGmaxLAdv(G,D)
其中w被设定为5
请注意,我们的网络是在主体特定的训练集上训练的,以捕捉主体的特定手势特征
我们提出的方法解决了为虚拟人制作动画的基本问题:合成面部表情、身体和手势,与语言相协调。为了使我们的结果可视化,以及对用户的研究,让观察者专注于面部和身体的运动,我们渲染了一个抽象的三维角色,展示了所有重要的骨骼和面部元素,而没有陷入恐怖谷的风险(uncanny valley),这与先前工作中的类似方法[29,16]。由于我们的方法只预测了上半身的运动,我们将其与预先录制的下半身的基本运动融合在一起,包括坐着和站着的情况。
评估生成质量:由于对话手势的合成是一个多模态的问题,直接与跟踪的注释进行比较对于合成的结果没有意义,特别是对于评估合成的手势的质量。我们通过广泛的用户研究来评估我们的方法,以判断我们结果的质量和可信度,并将其与各种基线进行比较。此外,我们通过比较从预测的密集三维人脸模型的选定顶点中提取的三维嘴唇关键点与我们从源图像中获得的自动生成的ground truth嘴唇关键点来衡量对面部表情的预测。请看随附的视频,了解大量的视听结果。
我们对我们的方法与那些使用音频特征作为输入的身体姿态预测的方法进行了评估。其他基线方法是使用3.2中描述的相同的MFCC特征进行训练。我们的第一条基线是我们提出的网络结构的直接回归一维CNN模型,没有使用对抗性损失。接下来,我们将我们的方法与Shlizermanetal的基于循环神经网络(RNN)的长短期记忆(LSTM)架构进行比较[48],该架构最初被设计为在时间上预测2D手和手指的姿势。由于原来的方法不是为处理多模式数据而设计的,我们决定在我们的三维数据上分别训练面部、身体和手势的三个LSTM模型。
我们使用我们提出的模型对Ginosar等人[16]进行了适应性训练,并对对抗性损失进行了训练,以区分速度空间中手势的真假合成,这与他们提出的方法相似,并使用这个版本作为我们的基线比较。我们还将我们的方法与Alexandersonetal.[2]的工作进行了比较,在我们的野外3D数据上训练了该方法。他们的模型最初是在没有脸部或手部注释的干净的三维身体姿势的mocap数据上训练的。我们发现他们的模型对使用的参数不敏感。正因为如此,我们决定将其训练在身体和手部数据上,以简化问题。根据作者的建议,我们手工寻找了一个最佳的参数集,它能在自然度和同步性方面产生最好的结果。按照他们的建议,我们进行了多次实验,在512、700和800之间改变单元数H,在8到16之间改变流速步骤数K。我们发现,当使用单元数H=800和步骤数K=10时,基于MoGlow的模型产生最佳效果。
请参考我们的补充视频,了解基线方法的定性结果。
我们进行了两项独立的用户研究,对我们提出的方法进行定性评估。
在第一个用户研究中,我们比较了从音频合成三维脸部、身体和手势的方法。在这项研究中,我们向参与者展示了6个视频序列中的3个(12秒/序列),这些视频是由我们提出的方法、基线和 ground truth(跟踪)注释合成的。这项研究涉及67名参与者。每个用户被要求对音频和生成的3D脸部和身体手势之间的自然性和同步性进行判断,评分标准为1到5,5为最可信,1为最不可信。
如Table1所示,与其他合成图像视频相比,地面真相序列被认为是最自然和最符合输入语音的,其评分分别为4.29±0.86和4.39±0.77。与其他基线方法相比,参与者认为我们的结果看起来更自然,与语音音频更合拍,自然度得分4.05±0.85,与语音同步度得分4.00±0.91。
Table1
我们还进行了第二项用户研究,只评估三维身体和手势的合成,并与Alexandersonetal.[2]的基于MoGlow的模型进行比较。在这项研究中,我们特别要求参与者忽略视频中面部表情的质量。为了确保公平的比较,本研究中呈现的所有视频都是通过使用我们的方法预测的三维面部表情来合成的。与第一次研究类似,45名参与者中的每一位都被要求对每种方法的6个可能视频中的3个视频的质量进行评分,评分标准在1到5之间。如Table 2所示,我们的方法被评为更自然和与音频同步。
Table 2
Figure4
在Table 3中,我们比较了各种方法预测的面部表情所对应的生成的面部顶点的三维唇部关键点与基于图像的面部追踪器在中性头部姿势下的三维唇部关键点。比较是在整个测试集上进行的,该测试集包括578个序列(12秒/序列),涉及所有对象。作为一个理智的检查基线,我们还计算了一个序列的基于优化的跟踪注解与随机选择的不同序列的基于优化的注解之间的差异。评估结果显示,我们提出的方法与其他提议的基线相比,取得了相似或略微更好的性能。
Table 3
这一结果表明,我们的全身架构适合于同时进行质量尚可的人脸表情合成,而且比用其他身体手势合成架构同时进行人脸合成要好。请注意,我们并不是说我们的设计推动了纯脸部表情合成的最先进水平。这不在我们的工作范围之内,而是留待今后的工作。
虽然嘴部表达与语音有很强的相关性,但其余的预期生成目标,如身体手势,并没有一对一的映射。再加上我们实验中观察到的单眼数据的噪音性质,问题的这种多模式性质使得我们设计和分析可表达的模型具有挑战性。我们还观察到,在验证集上较低的L1或L2损失值并不总是能保证产生一个平等的、更好的姿态合成,这进一步显示了对抗性损失的重要性。超参数的选择,如编码器和解码器架构的设计,以及运算量的加权,也会导致不同的手势合成特征。例如,生成器和判别器之间的不对称更新以及不同的迭代次数可以导致不同但同样合理的手势合成。
在所提出的对抗性损失的成功之后,我们进一步论证,鉴别器网络也可以独立地作为可信度指标来评价来自语音的手势合成的质量,类似于inception score的使用方式[46]。这样的方法可以进行训练,目的是对具有各种身体手势噪声和可信度特征的同步和非同步音频手势对进行分类。如果我们能建立这样的数据集,这个模型就可以在将来用来定量评估其他提议的音频到手势合成模型。
我们提出了第一个从语音中预测全三维脸部、身体和手势的方法,以自动驱动虚拟人物或具身的对话代理。我们利用单眼密集人脸重建和身体姿势重建的方法,在谈话对象的野外录像中为我们基于学习的方法获取训练数据,为≈33小时的录像生成三维人脸、身体和手的姿势注释。我们的主要观点是,不仅在三维姿势上加入对抗性惩罚,而且将其与音频输入相结合,使我们能够成功地生成与语音同步的具有表现力的身体手势。
Figure S1显示了从野外录像中提取的三维面部、身体和手的姿势注释的例子。
Figure S1
我们通过使用三维单眼跟踪方法对野外视频进行注释来创建我们的训练数据。当然,与使用标准的多视角运动捕捉或表演捕捉系统相比,我们的伪基础事实(pseudo ground truth)的质量就不那么准确了。与Ginosar等人[16]评估他们的自动二维标签与人类注释不同,我们不可能定量地衡量我们的三维注释的质量。然而,由于录音的控制设置,大部分跟踪的视频都是我们所采用的单眼跟踪方法的训练集中经常出现的普通观察目的。通过对跟踪结果的人工检查,我们发现预测对我们的任务来说是相当可靠的。
正如我们在主文件中所提到的,我们使用2D关键点预测的平均可信度来剔除基于某个阈值的低质量数据。然而,我们注意到,手经常不在视线范围内,特别是在受试者站立的视频中,如Ellen和Conan。为了防止丢失大量的数据,我们设计的确认阈值允许一些手部遮挡的情况被纳入数据集,只要它们在一个较短的时间窗口内出现。其中一些手部遮挡的例子见Figure S2。
Figure S2
请参考三维身体追踪器XNect[36]、手部追踪器[58]和面部追踪器[15]的原始论文,了解它们各自的方法在几个基准数据集上的详细量化性能。
为了提高输出的视觉质量,我们用标准偏差为σ=1.5的高斯滤波器对我们的三维身体和手掌预测以及头部旋转结果进行了时间平滑。我们还对视频的地面真实序列进行了同样的滤波。
Ginosar等人的录像是用二维身体关键点的位置进行注释的。实现三维注释的一种方法是在提供的二维关键点上运行最先进的二维到三维提升方法,如Martinez等人[34]和Pavllo等人[38]。然而,数据集中的多个受试者要么坐在桌子后面,要么上半身的一部分在图像框架之外。遮挡的骨盆(办公桌)导致已经模糊的二维到三维移动的方法没有信息来正确预测躯干的倾斜,而这对于传达对话手势是至关重要的。像XNect[36]这样的方法被设计为对部分闭塞具有鲁棒性,并利用图像线索来预测可能丢失的躯干。
网络结构的细节在主要文件Sec4.1中描述。Figure S3显示了网络结构的示意图。
Figure S3
正如我们在主文件中所讨论的,我们提出的判别器有可能被扩展为一个独立的模型,对语音-手势模型的合成质量进行评分。验证这个想法的一个方法是训练模型来分类它的音频-手势对输入是同步的还是不同步的。 ground truth 音频-手势对可以直接用作同步训练的例子,而非同步训练的例子可以通过将音频序列与其他随机手势序列配对来准备。如Table S1所示,当我们在这种设置下训练我们的判别器网络时,它可以可靠地对未见过的测试对进行高准确率的分类。然后,人们可以认为,有可能将这个模型扩展为手势合成方法的定量指标。遗憾的是,由于分类器只在 ground truth 运动序列上进行训练,因此目前还无法做到这一点。当我们在基线模型上测试这个分类器时,它产生了不一致的结果。例如,它认为我们提出的模型比ground truth序列更有说服力。此外,它还给出了仅有CNN基线的最高分数。这一评估结果显然与用户研究的结果相矛盾。如果我们想把这个分类器扩展为一个更普遍的手势可信度指标,我们需要创建一个新的同步/不同步数据集,其中包含不同的手势噪声特征。
Table S1
这个分类实验表明,鉴别器可以通过测量音频和手势之间的同步质量,在训练期间向发生器提供有用的反馈信号。仅有的手势鉴别器是无法提供这种反馈的。此外,这个实验还提供了一个关于最佳语境窗口大小的见解,表明使用较长的训练序列会使模型的性能更好。