解读GaussianTalker:利用音频驱动的基于3D高斯点染技术的实时高保真讲话头像合成

在这里插入图片描述
单位:首尔大学
项目地址:https://ku-cvlab.github.io/GaussianTalker/
github:https://github.com/KU-CVLAB/gaussiantalker
本文是对GaussianTalker的解读,欢迎大家阅读指正!


目录

  • 前言
  • 摘要
  • 一、背景介绍
  • 二 相关工作
  • 三 3DGS
  • 四 方法
    • 4.1 问题阐述和概述
    • 4.3 学习音频驱动的3D高斯变形
      • 4.3.1 空间-音频交叉注意力
      • 4.3.2 与语音相关运动的解耦
  • 五 实验
  • 总结


前言

讲话人脸生成系统(Talking face generation, TFG),最近受到广泛欢迎。它的火爆程度随着近期一些新技术如扩散模型、3DGS和NeRF等出现,而受到进一步关注。但是遇到的痛点也不少,比如之前很火的Hallo等,使用的体验是不错,但是生成视频的速度比较慢。那么,如何快速生成高保真的视频效果呢?本篇文章带你探索这个良心工作。


效果展示

Live Video: Self-Driven2.mp4
在这里插入图片描述
在这里插入图片描述

摘要

该文提出了GaussianTalker,一个新颖的框架,用于实时生成可控制姿态的会说话头像。
它利用了3D高斯散射(3DGS)的快速渲染能力,同时应对了直接用语音音频控制3DGS的挑战。
GaussianTalker构建了一个标准的3DGS头部表示,并与音频同步进行变形。一个关键的见解是将3D高斯属性编码到共享的隐式特征表示中,在这里它与音频特征合并,以操纵每个高斯属性。这种设计利用了空间感知特征,并强化了邻近点之间的交互。然后,特征嵌入被送入一个空间-音频注意力模块,该模块预测每个高斯属性的逐帧偏移。与以往的连接或乘法方法相比,这种方法在操纵众多高斯及其复杂参数方面更为稳定。实验结果展示了GaussianTalker在面部保真度、唇部同步精度和渲染速度方面相比以前的方法的优越性。具体来说,GaussianTalker达到了高达120 FPS的卓越渲染速度,超越了以前的基准。代码已在 https://ku-cvlab.github.io/GaussianTalker/ 上公开。

特点:3DGS,音频特征同步,高保真,实时渲染

一、背景介绍

生成由任意语音音频驱动的TFG是一个广泛受欢迎的任务,它在数字人类、虚拟化身、电影制作和远程会议等多个领域都有多种用途[6, 21, 33, 36, 38, 40, 43, 54]。

痛点一:姿态不可控
虽然已有多种工作[6, 21, 33, 43]成功尝试使用生成模型来解决这项任务,但它们没有专注于控制头部姿态,这限制了它们的现实感和适用性。
痛点二:渲染速度过慢
最近,许多研究[17, 24, 27, 39, 48, 49]应用了神经辐射场(NeRF)[31]来创建可以控制姿态的会说话的肖像。通过在NeRF的多层感知器(MLP)中直接对音频特征进行条件化,这些方法可以合成与输入音频同步的视图一致的3D头部结构。尽管这些基于NeRF的技术实现了高质量和一致的视觉输出,但它们的慢推理速度限制了它们的实用性。尽管最近的进步[24, 39]在512×512分辨率下实现了每秒高达30帧的渲染速度,但必须克服计算瓶颈才能应用于现实世界场景。

ffff
图片说明:
现有3DTFG[17, 24, 39]与该方法之间的保真度、唇部同步和推理时间的比较。GaussianTalker,在更高的帧率(FPS)下实现了更优越的性能。GaussianTalker*,这是一个更高效、更快的变体。每个气泡的大小代表了每种方法每帧的推理时间。

思路启发:NeRF的一个可行替代方案
为了解决这个限制,一个直观的解决方案是利用3D高斯散射(3DGS)[22]的快速渲染能力。最近被认为是NeRF的一个可行替代方案,3DGS在显著提高推理速度的同时提供了可比的渲染质量。尽管3DGS最初是为重建静态3D场景而提出的,但随后的工作已经将其扩展到动态场景[30, 44–46]。然而,很少有研究利用3DGS创建具有可控输入的动态3D场景,其中大部分集中在使用中间网格表示来驱动3D高斯[7, 19, 26, 28, 34]。然而,依赖于中间3D网格表示,如FLAME[25],进行变形通常在头发和面部皱纹的细节上有所欠缺。

挑战:
作者确定了将语音音频直接映射到3D高斯变形的两个主要挑战。

  1. 3DGS表示缺乏相邻点之间的共享空间信息,这使得其操作变得复杂。3DGS的优化过程没有考虑相邻高斯之间的关系,这对于在变形期间保持面部区域的凝聚力至关重要。
  2. 广泛的参数空间和大量的高斯点构成了操作的挑战。与位置和采样点数量固定的可控NeRF表示不同,每帧需要变形的大量高斯点的位置、形状和外观属性,同时还要保留复杂的面部细节。

作者的做法
作者介绍了GaussianTalker,这是一个新颖的实时姿态可控的会说话头像合成框架。
这是首次利用3D高斯表示来利用其快速的场景建模能力,用于音频驱动的动态面部动画。
它构建了一个标准头部形状的静态3DGS表示,并与音频同步进行变形。

具体来说,作者采用多分辨率的三平面来提取每个3D高斯位置的特征嵌入,直接估计每个高斯属性。这种设计确保了三平面学习3D头部的空间和语义信息,而2D特征网格的插值机制有效地强化了相邻点之间的交互。随后,特征嵌入被输入到作者提出的空间-音频注意力模块中,在那里它们与音频特征合并,预测每个高斯属性的逐帧偏移。该模块成功地模拟了音频特征和每个高斯原素的运动之间的相关性。与先前工作中的串联[17, 39]或乘法[24]相比,交叉注意力提供了一种更稳定的操纵大量高斯及其复杂参数空间的方法。定性和定量实验表明,与先前方法相比,GaussianTalker在面部保真度、唇部同步精度和渲染速度方面具有优越性。此外,进行了消融研究,以验证模型中各个设计选择的有效性。

贡献总结
主要贡献总结如下:

  • 首次提出一种新颖的音频条件3D高斯散射框架,用于实时3D感知的会说话头像合成。
  • 重新设计了3D高斯表示,采用特征体积表示,以加强相邻高斯之间的空间一致性。
  • 在音频和空间特征之间集成了交叉注意力机制,以提高稳定性,并确保在大量高斯上进行区域特定的变形。

二 相关工作

2.1 TFG:音频驱动的会说话肖像合成
音频驱动的会说话肖像合成旨在基于音频输入创建逼真的面部动画和准确的唇部运动。

早期基于2D GAN的方法[33, 37, 51, 52, 58]实现了照片级真实感,但由于缺乏3D几何信息,无法控制头部姿态。

基于模型的方法为了控制头部姿态,一些工作[29, 40, 42, 54]采用了基于模型的方法,其中面部标志点和3D可变形模型加强了唇部同步模型,并具有调整头部方向的能力。然而,这些方法导致了新问题,例如中间表示的额外误差,以及身份保持和现实感的不准确性。

最近神经辐射场(NeRF)[31]因其能够捕捉复杂场景而被探索用于会说话的肖像。AD-NeRF[17]开创性地使用NeRF的隐式表示进行条件音频输入,但头部和躯干的独立网络限制了其灵活性。随后基于NeRF的方法[27, 35, 47]实现了高质量,但渲染速度慢。虽然RAD-NeRF[39]和ER-NeRF[24]通过基于网格的NeRF[32]提高了效率和质量,但实时渲染姿态可控的3D会说话头像仍然是一个挑战。

2.2 3D高斯散射
3DGS[22]是点云渲染的开创性技术,它使用大量的椭圆形、各向异性球体来精确表示场景。每个点都包含一个3D高斯分布,其均值、协方差、不透明度和球谐参数被优化以准确捕捉场景的形状和外观。这种方法有效地解决了点渲染中的常见问题,例如输出间隙。此外,结合基于瓦片的光栅化算法,它促进了加速训练和实时渲染能力。最近,3DGS在3D视觉任务中得到了广泛应用,如3D环境中的对象操作[11, 14]、重建[12, 22]和感知[4, 30]。

2.3 使用3DGS进行面部动画
以前的面部重建和动画方法主要依赖于3D可变形模型(3DMM)[16, 23]或使用神经隐式表示[1, 15, 56]。

最近的方法[7, 9, 34, 41]转向采用3DGS表示,旨在利用快速训练和渲染的优势,同时仍实现竞争性的照片级真实感。GaussianAvatars[34]通过在FLAME[25]网格上装配3D高斯来重建头部头像。MonoGaussianAvatar[7]通过使用线性混合蒙皮(LBS)将3D高斯的均值位置从标准空间移动到变形空间,并同时通过变形场调整其他高斯参数,学习显式的头部头像。GaussianHead[41]采用了运动变形场来适应面部运动,同时保持头部几何形状,并单独使用三平面来保留个别3D高斯的外观信息。

然而,上述方法倾向于依赖参数模型进行面部动画。与以前的工作相比,我们的音频驱动方法不仅不需要超出语音序列的数据来进行面部重演,而且也很容易适用于新的音频。

三 3DGS

此处建议对3DGS的知识点充下电

四 方法

4.1 问题阐述和概述

在这一部分,描述了GaussianTalker的主要组成部分,该模型旨在实时合成由音频输入驱动的高保真度、姿态可控的会说话头像图像。作者的模型训练于一系列会说话的肖像视频 ,包含某个身份的个图像帧。目标是重建一组代表会说话头像平均形状的标准3D高斯,并学习一个变形模块,根据相应的输入音频来变形3D高斯。在推理过程中,对于输入音频,变形模块预测每个高斯属性的偏移量,并将变形后的高斯在观察点进行光栅化,以输出新的图像 。

我们提出的方法是在图2中描述的概述。首先在4.2节中介绍了多分辨率三平面,该三平面编码3D高斯的低维特征,以表示标准头部的静态平均形状。在4.3节中,介绍了语音运动交叉注意力模块,该模块融合3D高斯特征和音频特征,准确模拟由输入音频驱动的面部运动。最后,4.4节描述了阶段性训练策略和所使用的损失函数。
在这里插入图片描述
图2说明:GaussianTalker框架概述。GaussianTalker利用多分辨率的三平面来利用不同尺度的特征描述标准3D头部。这些特征与音频特征一起输入到空间-音频注意力模块中,以预测每帧的变形,从而实现快速且可靠的会说话头像合成。

4.2 学习具有三平面表示的标准3D高斯
在这里插入图片描述
图3三平面特征网格的可视化序列首先展示一张渲染图像,然后是其正交投影嵌入:正面(xy)、顶视图(yz)和侧视图(zx)。通过使用PCA将其维度降低到3,来对嵌入进行可视化。

挑战与方案
在这一部分,作者介绍了使用3D高斯表示学习会说话头像的标准形状的细节。原始的3DGS [22] 实现本身并不捕捉相邻和远距离3D高斯之间的空间关系。然而,动态3D头部的理想特征表示应对接近的面部区域相似,对分离的区域不同,因为接近的面部原语可能会朝同一方向移动。

为了实现这一点,通过学习低维特征表示来修改3D高斯表示,这些特征表示可以稍后与音频特征合并,用于每个高斯的变形。制定了嵌入空间以编码3D高斯的属性信息,以便在预测其变形偏移时考虑每个高斯的形状和外观。更具体地说,采用了一种混合3D表示,它利用3DGS的显式3D表示,同时也利用隐式神经辐射场[31]编码的空间信息。对于每个标准3D位置,从多分辨率三平面表示[3, 5, 13]中提取特征嵌入。这些特征嵌入被用来计算每个点的尺度、旋转、球谐和不透明度。这些计算出的属性构成了会说话头像的标准3D高斯。

4.3 学习音频驱动的3D高斯变形

在这里插入图片描述
图4展示了两个个体不同模态的注意力得分分布。从左到右分别是:原始渲染图像,负责音频线索的注意力得分,眨眼动态,头部方向(面部视点)和时间一致性(空)的注意力得分。

**不足之处:**先前的工作 [17, 24, 27, 39] 采用条件NeRF表示,其中每个光线上的采样点的3D坐标保持固定,只有颜色和密度受输入音频的条件。

然而,为了充分利用3DGS的显式表示,我们选择变形3D高斯,我们不仅操纵外观信息,还有每个高斯原素的空间位置和形状。虽然这可以更准确地捕捉不断变化的会说话头部的3D形状,但与控制NeRF表示相比,3D高斯的变形是一个更加复杂的任务。高斯原素的复杂性,加上它们的数量,由于3D高斯的广泛参数空间,为变形提出了重大挑战。此外,输入音频不会均匀地影响整个面部图像,这使得变形模块对于理解不同面部区域如何响应音频条件以实现真实的面部动画至关重要。

4.3.1 空间-音频交叉注意力

先前实现区域感知音频的方法,如 ER-NeRF [24],通过逐元素乘法简单地调整每个3D点的音频特征的权重。然而,它遇到了一个挑战,在动态场景中,不管多样的音频输入如何,一个特定的静态3D点始终维持相同的音频权重。这未能认识到一个固定的3D坐标可能不会始终对应相同的面部区域,随着场景的进展。
为了解决这个问题并增强空间-音频特征的提取,引入了空间-音频注意力模块,这是一个交叉注意力机制,将空间特征嵌入的标准3D高斯与随后的音频特征合并,捕捉输入语音如何影响3D高斯的运动。空间-音频注意力模块包括组交叉注意力层和前馈层,每个层都与跳跃连接相互连接。

4.3.2 与语音相关运动的解耦

挑战: 在合成会说话的头像时,相应的语音音频并不能解释所有复杂多样的面部运动。像眨眼和面部皱纹这样的微妙表情,以及头发运动和照明变化等外部因素,并不与输入的语音音频直接相关。因此,在将语音音频映射到3D高斯变形时,将非言语运动和场景变化分离是至关重要的。在这一部分,通过引入额外的输入条件来解决这一挑战,这些条件可以捕捉非言语运动,允许我们将与语音相关的运动从单目视频中解耦。

方案: 在遵循先前的工作[24, 39],作者首先使用眼部特征明确控制眨眼。具体来说,采用面部动作编码系统[10]中的 AU45 来描述眨眼的程度,并使用正弦位置编码以匹配输入的维度。此外,还将相机视点作为辅助输入,以解耦非言语场景变化。虽然我们将帧的相机表述为面部视点,但典型的视频是在相机静止时录制的,而头部则持续运动。因此,肖像图像中的变化,如头发位移和照明变化,是独立于语音音频的。因此,我们采用了面部视点嵌入作为额外的输入条件,以解耦这些非听觉场景波动。是通过将外部相机姿态映射到一个小的MLP上获得的嵌入向量,与其他输入具有相同的维度。最后,我们发现对所有帧使用一个空向量作为全局特征可以促进一致性。我们将这个空向量作为我们交叉注意力网络的额外输入。

五 实验

在这里插入图片描述
图5:不同音视频模型唇部同步的比较可视化 该序列展示了唇形如何符合所说单词‘country’(国家)、‘of’(的)、‘crime’(犯罪)、‘we’(我们)、‘up’(向上)、‘especially’(特别是)、‘like’(喜欢)中特定的音素,最后一帧显示闭嘴状态(‘静音’)。


总结

在这项工作中,作者提出了GaussianTalker,这是一个新颖的框架,用于实时姿态可控的3D会说话头像合成,利用3D高斯进行头部表示。

该方法通过对从多分辨率三平面提取的特征进行条件化,实现了对高斯原素的精确控制。此外,空间-音频注意力模块的整合便于动态变形面部区域,允许根据音频线索进行微妙的调整,并增强了口头运动的解耦。该方法以其优越的推理速度和对领域外音频轨迹的高保真度结果,与以前的基于NeRF的方法有所区别。其有效性通过定量和定性分析得到了验证。我们期待在视频游戏开发等领域提供丰富的用户体验,其中GaussianTalker的实时渲染能力有望增强交互式数字环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415225.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos 7部署nacos 2.4.1版本单点方式

文章目录 Nacos:微服务架构中的服务发现与配置管理利器官方网址引言Nacos简介Nacos的核心功能1. 服务发现和服务健康监测2. 动态配置服务3. 服务及其元数据管理 Nacos的工作原理Nacos的集群部署与高可用性Nacos的使用场景如何使用Nacos1. 安装Nacos2. 服务注册与发现…

设计模式 -- 访问者模式(Visitor Pattern)

1 问题引出 1.1 测评系统的需求 将观众分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(评价 有不同的种类,比如 成功、失败 等) 1.2 传统方式解决 如果系统比较小,还是 ok 的&#…

安装 rocky9.4

涉及软件:virtualbox、rocky linux 9.4、mobaxterm virtualbox新建虚拟机,设置虚拟机配置 启动虚拟机,第一次会提示挂载虚拟光盘,选择下载的rocky linux 9.4。 选择第一项,安装rocky linux 9.4 进入安装设置&#…

VUE2.0 elementUI el-input-number 数据更新,视图不更新——基础积累

今天遇到一个问题,是关于el-input-number组件的,发现数据明明已经更改了,但是页面上组件输入框中还是之前的值。 比如上方输入框中,我输入120.5,就会出现下面的诡异现象 回显此值是120.779,但是页面上输入…

GNU的编译工具链

文章目录 GNU的编译工具链 GNU的编译工具链 预编译器cpp 编译器 cc1 汇编器 as 链接器 ld 其中cpp和cc1属于gcc的一部分,as和ld属于binutils的一部分。

STM32嵌入式面试知识点总结

一、STM32F1和F4的区别? 解答: 参看:STM32开发 – STM32初识内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核;主频不同:F1主频72MHz,F4主频168MHz;浮点运算:…

【补-网络安全】日常运维(二)终端端口占用排查

文章目录 一、利用ipconfig、netstat 命令行统计二 、策略封禁IP 引言:检查频繁,第一步我们梳理完资产,第二步应该对资产终端进行一个排查,诊断把脉,了解清楚系统的端口占用及开放情况 一、利用ipconfig、netstat 命令行统计 1.先用ipconfig定位该终端的IP地址 2.明确IP地址后…

轴承知识大全,详细介绍(附3D图纸免费下载)

轴承一般由内圈、外圈、滚动体和保持架组成。对于密封轴承,再加上润滑剂和密封圈(或防尘盖)。这就是轴承的全部组成。 根据轴承使用的工作状况来选用不同类型的轴承,才能更好的发挥轴承的功能,并延长轴承的使用寿命。我…

逻辑学(Logic)

GPT-4o (OpenAI) 逻辑学是研究论证的原则和标准的学科,主要关注如何正确地推理和论证。从抓取股票日线数据到形成有效的分析,我们可以应用逻辑推理。 逻辑推理步骤: 1. 明确目标:我们要抓取股票的日线数据。 2. 分析需求&#x…

网络原理 - 初识

文章目录 局域网(LAN)广域网(WAN)网络设备IP地址格式 端口号格式 认识网络协议协议分层 OSI七层模型(只是理论,没有实际运用)TCP/IP五层(或四层)模型网络设备所在分层 封装和分用 计算机之间通过网络来传输数据,也称为网络通信。 根据网络互连…

18、Gemini-Pentest-v2

难度 中 目标 root权限 一个flag 靶机启动环境为VMware kali 192.168.152.56 靶机 192.168.152.63 信息收集 web测试 访问80端口 上面介绍了一下这个系统是一个内部系统,让员工查看他们的个人资料还可以导出为PDF 页面还有一个链接是UserList可以访问但是页面什…

前端【CSDN创作优化3】CSDN自定义模块:解决保存CSDN自定义模块时显示fail

【CSDN创作优化3】CSDN自定义模块:解决保存CSDN自定义模块时显示fail 写在最前面遇到的问题:保存CSDN自定义模块时显示fail1.符号问题:删除所有符号2.超出字符长度限制:压缩保存3.li模块不见了:小窗口正常显示元素 &am…

补题篇--codeforces

传送门:Problem - G - Codeforces 题意: 思路: 注意: n 的范围很小,大概率考察状态压缩 因此这个题可以考虑用 状压dp f[i][j] 表示状态为 i 的选法,以第 j 首歌为结尾的播放列表中的歌曲总数 f[ i | …

codeforces Round 970 (Div. 3)(A-F)

文章目录 [Codeforces Round 970 (Div. 3)](https://codeforces.com/contest/2008)A-[Sakurakos Exam](https://codeforces.com/contest/2008/problem/A)B-[Square or Not](https://codeforces.com/contest/2008/problem/B)C-[Longest Good Array](https://codeforces.com/cont…

Linux_kernel汇编04

一、温故知新 1、Uboot的操作 1)Uboot的简介 需要确定一点,系统上电后,Uboot是第一个执行的系统软件。 类似PC机上的BIOS(Basic Input Output System) Uboot的核心功能: 【1】负责初始化硬件 【2】负责加载…

C++入门基础知识47——【关于C++函数】之函数参数及参数默认值

成长路上不孤单😊【14后,C爱好者,持续分享所学,如有需要欢迎收藏转发😊😊😊😊😊😊😊!!!!&#xff…

MQ专题:消息积压相关问题和解决思路

一、如何发现消息出现了堆积 二、常见的原因及解决方案 三、消息出现了大量堆积,如何解决 四、建议

Android Studio gradle下载太慢了!怎么办?(已解决)

Android Studio!你到底干了什么?! 不能高速下载gradle,我等如何进行app编程?! 很简单,我修改gradle地址不就是了。 找到gradle-wrapper.properties文件 修改其中distributionUrl的地址。 将 ht…

Axure健康助理小程序原型图70+页,医疗类高保真高交互模板

作品概况 页面数量:共 70 页 源文件格式:限 Axure RP 9/10,非app软件无源码 适用领域:医疗健康、健康助理 作品特色 本作品为健康助理小程序的Axure原型设计图,属于医疗健康项目,设计规范内容清晰&#…

SVN介绍和使用

一、SVN(Subversion) SVN 是一种版本控制系统,可以用于管理和控制文件的变更。以下是SVN的基本使用步骤: 安装SVN:首先,您需要在计算机上安装SVN客户端。您可以从Subversion官方网站下载安装程序&#xff…