前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TPAMI 2024 | 记忆机制提升 TalkingFace 生成

TPAMI 2024 | 记忆机制提升 TalkingFace 生成

作者头像
用户1324186
发布2024-06-13 17:46:40
540
发布2024-06-13 17:46:40
举报
文章被收录于专栏:媒矿工厂媒矿工厂

来源:TPAMI 2024 题目:Memories are One-to-Many Mapping Alleviators in Talking Face Generation 论文作者:Anni Tang, Tianyu He, Xu Tan, Jun Ling, Runnan Li, Sheng Zhao, Jiang Bian, Li Song (SJTU Medialab) 论文链接:https://ieeexplore.ieee.org/abstract/document/10547422 内容整理:唐安妮 本文是上海交大媒体实验室与微软研究院深度和强化学习组的合作论文, 研究了记忆机制如何提升 TalkingFace 生成。说话脸生成旨在根据输入音频生成目标人物的逼真视频肖像。根据音频到嘴唇动作的映射特性,即使对于同一人在不同场合下,相同的言语内容可能具有不同的外观。这种一对多的映射问题在训练过程中会带来歧义,从而导致视觉效果较差。虽然这种一对多映射可以通过两阶段框架(即音频到表情模型,神经渲染模型)部分缓解,但仍然不足,因为预测是在没有足够信息(如情感、皱纹等)的情况下进行的。在本文中,我们提出了MemFace,分别遵循两个阶段的意义,通过隐式内存和显式内存来补充缺失的信息。具体而言,隐式内存在音频到表情模型中用于捕捉音频-表情共享空间中的高级语义,而显式内存在神经渲染模型中用于帮助合成像素级细节。我们的实验结果表明,我们提出的MemFace在多个场景中始终有着最先进的表现。

问题描述

说话脸生成技术可以根据输入的音频合成与目标人物相符的逼真视频肖像。它在虚拟化身、在线会议和动画电影等应用中展现了巨大的潜力,因为它不仅传达了感兴趣人物的音频内容,还提供了视觉内容。

解决音频驱动的说话脸生成问题的最流行方法采用了一个两阶段的框架,首先从输入音频中预测出中间表示(例如,2D人脸关键点,3D面部模型的blendshape系数等),然后使用渲染器根据预测的表示合成视频肖像。现有方法在学习时偏向于学习直接的映射关系,但值得注意的是,音频驱动的说话脸生成本质上是一个一对多的映射问题。这意味着,对于相同的音素,由于上下文和情感等的变化,目标人物可能有多种不同的可替代视觉外观(如图1所示)。这样,直接进行映射的学习会在训练过程中带来歧义,导致难以进行准确的预测,并且容易产生较不真实的视觉结果。

图1 一对多映射实例

在某种程度上,这种一对多映射可以通过两阶段框架部分缓解,因为它将整个一对多映射困难分解为两个子问题(即音频到表情问题和神经渲染问题)。然而,尽管其有效性,我们在实践中发现存在产生平均嘴形和模糊渲染质量的趋势(如图2中的NVP结果),表明两个阶段的预测准确性不足。一个可能的原因是,每个阶段仍然在试图预测输入中缺失的信息,而这实际上是很困难的。例如,音频到表情模型学习预测与输入音频语义匹配的表情,但缺少上下文、情感、个人说话风格等高级语义信息。而神经渲染模型根据表情合成视觉外观,但仍然缺少皱纹、牙齿等像素级细节。

图2 肖像视频帧实例

由于预测缺失信息很困难,为什么不构建memory来补充输入的信息(即检索而不是预测)?基于这个动机,在本文中,我们提出了MemFace,利用记忆存储来补充缺失的信息,缓解了一对多映射问题。进一步地,遵循两个阶段的意义分别设计了一个隐式记忆和一个显式记忆。具体而言,隐式记忆与音频到表情模型一起进行联合优化,以补充语义对齐的信息,而显式记忆以非参数化方式构建,并针对每个目标人物进行定制,以补充视觉细节。

方法概述

图3 整体框架图

如图3所示,给定目标人物的输入音频,我们的目标是合成与输入音频一致的逼真肖像视频。为了实现这个目标,我们的输入包括提取的音频特征和目标人物的模板视频。对于模板视频,我们遵循之前的工作,对整个面部区域进行mask处理。为了使预测集中在面部区域,模板视频的其余部分被用作输入,提供额外的信息。我们首先使用我们的音频到表情模型接收提取的音频特征,并预测与嘴部相关的表情系数。然后,将预测的表情系数与模板视频的原始形状、姿势和与嘴部无关的表情系数合并,得到对应于预测表情系数的图像,接下来由神经渲染模型输出最终结果。通过这种方式,音频到表情模型负责嘴唇同步质量,而神经渲染模型负责渲染质量。

然而,这种两阶段的框架仍然不足以解决一对多映射困难,因为每个阶段都被优化为预测输入中缺失的信息(例如情绪、皱纹等)。因此,我们提出使用记忆存储来补充缺失的信息。此外,考虑到音频到表情模型和神经渲染模型在生成说话脸方面发挥不同的作用,我们相应地设计了两种memory的变体。

Memory机制

Memory能够为神经网络提供一种便捷的读写可扩展存储的方式。在这项工作中,我们提出使用memory来补充缺失的信息,从而缓解一对多映射的挑战。具体而言,假设我们有一个键集合和一个值集合,它们将存储在记忆中,其中的每个项与中的一个值相关联。对于从输入中派生的查询,我们通过使用相似性函数计算与键集合之间的匹配分数,然后通过和之间的相似性关系来关联中的不同值:

其中,和表示与记忆机制相关的模型参数。匹配查询和键集合的一种简单方法是先进行内积运算,然后再应用函数:

其中,和表示模型参数,是隐藏状态的维度。

为了在不同场景下有效地补充缺失信息,我们设计了两种记忆变体,它们在键集合和值集合的形式上有所不同。

隐式记忆补充表情预测

为了解决音频序列到表情序列的预测问题,我们使用基于Transformer的架构来实现。如前所述,仅从输入的音频特征中直接预测表情是非常具有挑战性的,因为存在一对多映射的困难。因此,考虑到表情的预测与输入音频是语义对齐的,我们引入了隐式记忆以缓解这种一对多映射的问题。具体来说,利用提取的音频特征来查询隐式记忆,将查询结果作为语义对齐的信息与音频特征相结合,再由网络预测表情输出。通过端到端的训练,鼓励隐式记忆在音频-表情共享空间中关联高级语义,从而缩小输入音频与输出表情之间的语义差距。

图4 音频到表情预测模型

在隐式记忆的形式下,键集合和值集合在训练开始时被随机初始化,并根据训练过程中的误差信号的反向传播进行更新,使用特殊的训练策略。如图4所示,我们的音频到表情模型(即a2e模型)由一个编码器和一个解码器组成。隐式记忆被引入在编码器和解码器之间。具体而言,编码器提取的特征被用作查询,然后注意力结果作为补充信息,以逐元素的方式添加到查询中,形成解码器的输入。形式化表示为:

与直接使用注意力模块不同,隐式记忆应满足以下要求:

  • 具有足够的容量作为外部知识存储
  • 通过特殊的训练策略进行良好学习(即在训练的前半部分,我们交替冻结编码器和记忆参数)

我们采用三种损失函数来训练音频到表情模型:

  • 最小化预测的表情系数与真实表情系数之间的L2距离
  • 最小化预测的顶点与真实顶点之间的距离
  • 为了防止记忆中的每个项目彼此相似以增加记忆容量,我们还在训练过程中对键集合和值集合提供了一个正则化项

显式记忆补充纹理预测

给定预测的表情系数和模板视频,神经渲染模型负责合成逼真的照片效果。如前所述,神经渲染模型中也存在一对多映射的困难。例如,相同类别的表情可能由于不同的运动幅度而具有多种可选择的视觉外观,这会导致牙齿和皱纹纹理的不同。因此,为了补充目标人物的像素级细节,我们引入了显式记忆。

图5 神经渲染模型

与从训练数据中自动学习键集合和值集合的隐式记忆不同,显式记忆直接从数据中构建为顶点-图像对。

如图5所示,我们的神经渲染(即nr)模型采用了CNN编码器-解码器架构,其中显式记忆被引入在编码器和解码器之间。具体而言,我们采用嘴部顶点坐标作为键集合,并将其关联的图像补丁作为值集合。我们为每个目标人物构建了显式记忆,其中包含N个键-值对。

对于每个预测的表情系数,其对应的顶点被用作查询来检索显式记忆中的相似键,并将关联的图像补丁作为像素级细节返回给神经渲染模型。直观地说,通过引入显式记忆,使模型能够关联表情所需的细节,而无需由模型自身预测,从而简化了生成过程:

显式记忆的构建

为了使记忆中的每个项目不相似,从而增加记忆的容量,我们通过计算嘴部相关顶点之间的均方根距离来确定N个最不相似的嘴形。然后,我们使用这N个顶点-图像对来构建显式记忆。显然,由于计算量巨大,探索所有可能的情况几乎是不可行的。

我们采用了一个手动设计的算法来构建显式记忆,核心思想:

  • 随机初始化显式记忆,并记录两个最接近的嘴形和以及它们的相似性
  • 对于数据集中的每个嘴形,尝试用分别替换和。如果这个替换导致增加,那么就进行替换
  • 这个过程一直持续到整个数据集被遍历完

执行时间:对于N = 300,使用NVIDIA GeForce RTX 3090,显式记忆的构建时间为:<1分钟(对于15秒的视频),3分钟(对于60秒的视频)。

我们设置N = 10,通过上述算法找到最不相似的嘴形,可视化结果展示在图6中。

图6 N=10时的可视化结果

由于显式记忆存储了特定人的视觉外貌,当遇到一个新的说话者时,显式记忆会从新说话者的说话视频中重新构建。通过这种方式,我们的神经渲染模型可以灵活地适应新的说话者。

我们采用两种类型的损失函数来优化神经渲染模型:

  • 使用重构损失和VGG感知损失来惩罚合成图像与真实图像之间的误差
  • 为了生成更逼真的结果,我们使用判别器来验证输入是自然图像还是由神经渲染模型生成的伪造图像

一些讨论

MemFace的目的是基于特定输入(即特定的说话风格和包含特定情感的特定输入音频)实现准确的说话脸生成预测。我们强调一对多映射问题的存在,只是为了突出实现这种准确预测的困难,而不是暗示我们的模型对于每个输入应该有多个预测结果。因此,引入记忆模块仅仅是为了更好地补充输入中缺失的信息,从而降低预测难度并提高预测准确性。

说话脸生成中的“一对多映射”有哪几层含义?

在说话脸生成中,“一对多映射”问题至少有两层含义。首先,对于同一个人来说,同一个音素在不同的上下文和情感下可能对应多种不同的嘴部形状。其次,即使是相同的音频输入,不同的人也会因为不同的说话风格而呈现出不同的嘴部形状。

如何通过实验证明“记忆缓解了一对多映射的问题”?

事实上,实现更准确的嘴唇运动预测(即更接近于真实情况)是缓解一对多映射问题的体现。因此,从实验部分呈现的消融实验结果可以看出,记忆机制的引入有效地缓解了前述两种类型的一对多映射问题。

什么是所谓的“缺失信息”?

对于音频到表情预测模型,缺失信息是指影响嘴部运动的音频相关特征,如上下文、情绪、说话风格等等,这些都是从训练中自动习得的数据。对于神经渲染模型,缺失信息是指对应于输入表情的像素级细节,如皱纹、牙齿等。这种“缺失信息”很难预测,所以我们用memory来补充它,以简化预测和提高准确性。

为什么用memory来解决一对多映射问题?

我们注意到一对多映射问题存在于广泛的领域,如文本到语音,机器翻译,图像翻译等。其中,生成模型(如生成对抗网络,归一化流,变分自编码器)在一对多映射的挑战中展示了巨大的潜力,直观地学习分布而不是确定性结果。在我们的工作中,我们进一步将memory机制作为一种正交方法来缓解一对多映射问题,蕴含了这种思想:既然预测缺失的信息是困难的,为什么不构建memory来补充输入的信息(即检索而不是预测)?我们在本文中回答了这个问题。

为什么两阶段采用不同的memory变体?

音频到表情模型负责从输入音频中生成语义对齐的表情参数,而神经渲染模型根据估计的表情合成像素级视觉外观。因此,我们遵循两阶段的意义分别设计了一个隐式记忆和显式记忆,后续的消融实验证明了每种选择的有效性。

实验探究

我们将MemFace与最先进的方法进行比较,并提供消融研究。因为我们缓解了一对多映射问题使预测更容易,我们可以使用很少的个性化数据(例如目标人物15秒的视频)来微调我们的模型使其适应新的说话人物,而大多数现有方法则需要至少2-3分钟的个性化数据。

对比实验

图7 定性比较实验结果

在图7中,我们给出了不同方法对GT视频的重建结果。它表明,与最先进的方法相比,我们在倒数第二列的合成结果显示出更准确的对口型和更令人满意的渲染质量。

表1 定量比较实验结果

定量结果如表1所示,我们的方法在主观和客观评价方面总体上优于其他身份依赖的方法。值得注意的是,通用方法(GC-AVT,AV-CAT,StyleSync)倾向于在重建性能较差的情况下实现良好的口型。

个性化微调实验

为了验证memory使预测更容易,我们用很少的个性化数据(即来自HDTF数据集的15秒和30秒训练视频)进行了在新目标人物上的微调实验。

图8 微调实验的定性比较结果

表2 微调实验的定量比较结果

如表2所示,我们的方法在对口型和渲染质量的主客观评价上都有较大的优势。如前所述,memory的引入使网络能够直接检索缺失信息,而不是预测缺失信息,使得从语音合成说话脸的过程更加容易,这是我们可以用更少的个性化数据实现高质量的说话脸合成的重要原因。而对比方法由于过拟合问题导致较差的测试结果,倾向于生成不准确的口型和模糊的渲染效果。

消融实验

为了验证哪种memory更适合音频到表情预测模型,我们去掉了隐式记忆或将其替换为显式记忆。在表3中可以观察到与两种对比设置相比,我们的隐式内存方案在主观和客观评估中都达到了更好的效果。结果还表明,用显式记忆代替隐式记忆比去除隐式记忆的效果更差。这可能是因为表情的预测在语义上与输入音频一致并和音频上下文相关,因此从显式记忆中直接检索会引入更多的噪声,从而损害性能。

表3 隐式记忆的消融实验结果

为了验证哪种memory更适合神经渲染模型,我们去掉了显式式记忆或将其替换为隐式记忆。在表4中可以观察到与两种对比设置相比,我们的显式内存方案在主观和客观评估中都达到了更好的效果。

表4 显式记忆的消融实验结果

在理论层面上,memory机制的有效性可能归因于其改变信息获取方式的能力(即检索而不是预测)。这证明,当预测具有挑战性时,检索可能是一种更直接有效的信息获取方式。这也符合我们最初的动机。

一对多映射的直观结果

从上文的分析可知,一对多映射至少存在两层含义:1)由于音素语境和情绪的不同,一个音素对应的口型有多种选择。2)对于相同的音频,不同的人倾向于展示不同的说话风格导致不同的嘴型。

图9 一对多映射的第一层含义

从图9中可以直观地看到,对于一个音素,GT表现出不同的嘴型。没有引入memory机制的基线模型预测的结果往往比较统一,而我们的MemFace预测的结果更加多样化,对口型精度也更好(更接近于GT),从而缓解了针对特定人的一对多映射问题。

图10 一对多映射的第二层含义

每个人都有他/她自己的说话风格和习惯,这意味着即使他们说同样的一句话,不同的人会有不同的嘴唇动作。因此,当遇到新的说话者时,有必要对音频到表情模型和神经渲染模型进行微调,以适应新的说话风格和外观。当个性化数据很少(例如只有15秒的人像视频)时,这种微调变得很有挑战性。在图10中,我们给出了基于少量训练数据的微调结果。

从后续会上传的demo视频可以观察到,没有引入记忆机制的基线方法在适应新的说话方式时,口型质量的准确性明显下降,这可能是由于对有限数据的过拟合。相比之下,Memface在适应新的说话方式时保持了更高水平的口型准确性,可能是因为隐式记忆可以补充包括说话风格在内的缺失信息,使其更容易适应新说话者。同样,由于显式内存,Memface还可以生成具有更好渲染质量的合成结果。总的来说,memory的引入提高了个性化说话者的微调质量,从而缓解了不同人之间的一对多映射问题。

局限性分析

一个可能的局限性是分布之外的情况。例如,如果模板视频的多样性不足以覆盖所有表情,则模型将需要合成模板视频中不存在的表情,从而可能产生次优结果。其实,这种限制不是由memory带来的,而是说话脸生成方法的通病。极端情况下,one-shot说话脸生成方法(即基于单张图像合成说话视频),完全依靠模型从大数据集中学习到的先验来合成不同表情的纹理,因此保真度较差。对于基于模板视频的说话人脸生成方法,合成质量与模板视频的数据质量有关。如果数据不够多样化,那么对于分布之外的场景,它往往表现出较差的合成质量和保真度。在实际应用中,临时解决方案可能是为演员提供一个标准的剧本,涵盖所有可能的嘴型供参考。更根本的是,需要改进算法来增强模型的泛化性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 方法概述
    • Memory机制
      • 隐式记忆补充表情预测
        • 显式记忆补充纹理预测
        • 一些讨论
          • 说话脸生成中的“一对多映射”有哪几层含义?
            • 如何通过实验证明“记忆缓解了一对多映射的问题”?
              • 什么是所谓的“缺失信息”?
                • 为什么用memory来解决一对多映射问题?
                  • 为什么两阶段采用不同的memory变体?
                  • 实验探究
                    • 对比实验
                      • 消融实验
                        • 一对多映射的直观结果
                        • 局限性分析
                        相关产品与服务
                        语音合成
                        语音合成(Text To Speech,TTS)满足将文本转化成拟人化语音的需求,打通人机交互闭环。提供多场景、多语言的音色选择,支持 SSML 标记语言,支持自定义音量、语速等参数,让发音更专业、更符合场景需求。语音合成广泛适用于智能客服、有声阅读、新闻播报、人机交互等业务场景。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档