ECCV2024|商汤发布3D面部动画系统UniTalker:通过统一模型扩展音频驱动的 3D 面部动画

news2024/9/20 15:40:38

商汤研究院最新发布了一个先进的3D面部动画系统UniTalker,可以从不同的音频领域生成逼真的面部动作,包括各种语言的清晰和嘈杂的声音、文本到语音生成的音频,甚至伴有背景音乐的嘈杂歌曲。

UniTalker 可以输出多个注释。对于具有新注释的数据集,可以简单地将新的头插入 UniTalker 并使用现有数据集或仅使用新数据集进行训练,从而避免重新拓扑。

效果

相关链接

代码链接:https://github.com/X-niper/UniTalker

论文链接:https://arxiv.org/pdf/2408.00762

项目地址:https://x-niper.github.io/projects/UniTalker/

论文阅读

UniTalker:通过统一模型扩展音频驱动的 3D 面部动画

摘要

音频驱动的 3D 面部动画旨在将输入音频映射到逼真的面部运动。尽管取得了重大进展,但由于 3D 注释不一致而产生了限制,将以前的模型限制在特定注释上进行训练,从而限制了训练规模。

在这项工作中,我们提出了 UniTalker,这是一个统一的模型,具有多头架构,旨在有效利用具有不同注释的数据集。为了增强训练稳定性并确保多头输出之间的一致性,我们采用了三种训练策略,即 PCA、模型预热和枢轴身份嵌入。为了扩大训练规模和多样性,我们组装了 A2F-Bench,包括五个公开可用的数据集和三个新整理的数据集。这些数据集包含广泛的音频领域,涵盖多语言语音和歌曲,从而将训练数据从常用的数据集(通常不到 1 小时)扩展到 18.5 小时。使用单个经过训练的 UniTalker 模型,我们实现了唇顶点误差的大幅降低,BIWI 数据集降低了 9.2%,Vocaset 降低了 13.7%。

此外,经过预训练的 UniTalker 有望成为音频驱动面部动画任务的基础模型。在可见数据集上对经过预训练的 UniTalker 进行微调可进一步提高每个数据集上的性能,A2F-Bench 上的平均误差减少了 6.3%。此外,在仅使用一半数据的未见数据集上对 UniTalker 进行微调,其性能超越了之前在完整数据集上训练的最先进的模型。

方法

左图:UniTalker 旨在以统一的方式从不同的数据集中学习。它以多语言、多种声音类型的音频作为输入,并同时输出各种 3D 面部注释 约定。

右图:在每个数据集上对 UniTalker 进行微调,始终显示比在数据集上训练模型更低的唇顶点误差 (LVE),导致平均 LVE 下降 6.3%。

UniTalker 架构

架构比较。 (a)Vanilla 多头音频到人脸模型。

(b)UniTalker 采用 PCA 来平衡数据集中的注释维度,使用解码器预热来稳定训练,并开发枢轴身份嵌入以减轻数据集偏差。

(c)UniTalker-[D0-D7] 解码器的放大视图。UniTalker-[D0-D7] 有 6 个解码器头。

实验

BIWI-Test-A 和 VOCA-Test 的定量结果。最佳值以粗体显示。

(a) 每个训练集内的面部运动标准偏差。D1(Vocaset)的上部面部几乎没有运动变化,接近静态。

(b) 相邻帧运动变化的时间统计(平均值和标准偏差)以及序列内每帧预测到 GT 欧几里得距离的平均值。

结论

我们提出了 UniTalker,它有效地利用了具有不一致注释格式的现有数据集。模型精度受益于 A2F-Bench 的规模和多样性的增加。实验表明,预训练的 UniTalker 有潜力作为更多音频到人脸任务的基础模型,尤其是在数据稀缺的情况下。

局限性和未来工作。UniTalker 在大多数数据集上比相应的单个模型显示出更好的精度。然而,要在每个数据集上实现一致的改进需要针对数据集进行微调。增强模型容量以缓解不同数据集之间的性能权衡的潜力仍然是一个悬而未决的问题。同时,预训练的 UniTalker 有望成为音频驱动面部动画任务的基础模型。尽管如此,UniTalker 使用的数据规模(即 18.53 小时)仍然比用于训练音频编码器的数据规模(即 56k 小时)小得多。探索利用数据质量欠佳的大规模数据集(如 BEAT 和 Talkshow)代表着一个有前途的未来方向。将 UniTalker 应用于 2D 面部动画以增强大头部姿势下的一致性也是一项值得追求的追求。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

理解线程id和简单封装原生线程库

一、理解线程id 首先我们要知道给用户提供的线程id不是内核里面LWP(轻量级进程id),而是pthread库自己维护的一个唯一值。 我们理解为什么线程id不是内核里面LWP,因为用户没有权限使用内核里面的字段,那是专门给OS管理…

DOM破坏案例

目录 DOM破坏 编码问题 简单闭合""号使用onclick onclick函数 焦点事件 标签使用 限制数字字母 js匿名函数绕过 覆盖 DOM破坏 编码问题 urlcode可以被识别 %16进制 <textarea> 可以解码不能执行 <script>&#59</script> 没有实体编码…

基于asp.net的在线考试系统、基于c#的在线考试管理系统

摘 要 伴随着社会以及科学技术的发展&#xff0c;互联网已经渗透在人们的身边&#xff0c;网络慢慢的变成了人们的生活必不可少的一部分&#xff0c;紧接着网络飞速的发展&#xff0c;管理系统这一名词已不陌生&#xff0c;越来越多的学校、公司等机构都会定制一款属于自己个…

SpingBoot自动装配原理

一&#xff0c;什么是SpringBoot自动装配 springboot自动装配&#xff1a;一个springboot项目通过扫描类路径下存在的类和各种配置信息自动装配&#xff0c;生成对应的B哦按对象&#xff0c;然后将他们交给spring容器管理。 二、SpringBoot自动装配原理 2.1启动类注解SpringB…

在MAVEN中版本依赖有冲突改怎么处理

1.为什么会出现版本依赖的冲突 如果存在版本冲突&#xff0c;通常可能会引发的报错是ClassNotFoundException、NoSuchMethodError等错误。Maven依赖版本冲突通常是由于间接依赖导致同一个jar包存在多个不同版本。例如&#xff0c;如果B依赖了A的1.0版本&#xff0c;而C依赖了A…

Nginx--防盗链问题

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、什么是盗链 盗链是一种网络行为&#xff0c;指的是一个网站未经授权&#xff0c;直接使用另一个网站资源&#xff08;如图片、视频、音乐、文件等…

人人可以做的RAG检索增强生成实战

AI大模型持续火爆&#xff0c;我作为IT人员从业者也想参与一下&#xff0c;但是奈何大模型的参数太大&#xff0c;动辄上亿的参数需要很大的算力&#xff0c;GPU卡必不可少&#xff0c;对于手头羞涩的小白&#xff0c;不想投几千大洋只为了满足自己的好奇心。这真是个难题。 现…

【车载开发系列】单片机烧写的文件

【车载开发系列】单片机烧写的文件 【车载开发系列】单片机烧写的文件 【车载开发系列】单片机烧写的文件一. 什么是bin二. 什么是Hex三. 什么是Motorola S-record&#xff08;S19&#xff09;四. ELF格式五. Bin与Hex文件的比对六. 单片机烧写文件的本质 一. 什么是bin bin是…

回顾 | 瑞云科技亮相ICIC2024,虚拟仿真实训云平台引关注

2024年8月7日&#xff0c;天津市虚拟仿真学会主办的第二十届智能计算国际会议&#xff08;ICIC2024&#xff09;——虚拟仿真技术交流平行会议暨天津市虚拟仿真学会2024年暑期技术交流会在天津盛大召开。本次大会汇聚来自全国的顶尖专家、学者和行业领袖&#xff0c;共同探讨虚…

Notepad--文本编辑工具 for Mac教程【苹果电脑-简单轻松上手-免费Mac软件推荐】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其拖入应用程序中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试解决“软件已损坏&#xff0c;无法打开”问题&#xff0c;若没有该问题&#xff0c;可…

TI DSP TMS320F280025 Note1:工程模板Template创建

TMS320F280025工程模板Template创建 文章目录 TMS320F280025工程模板Template创建新建一个ccs工程为需要添加的一些文件新建文件夹从c2000中拷贝官方基础文件到工程中cmd链接文件common头文件和源文件headers头文件和源文件库函数文件添加driverlib.lib文件 添加文件的路径文件…

【微信小程序】生命周期

1. 什么是生命周期 2. 生命周期的分类 3. 什么是生命周期函数 4. 生命周期函数的分类 5. 应用的生命周期函数 小程序的应用生命周期函数需要在app.js中进行声明&#xff0c;示例代码如下&#xff1a; 6. 页面的生命周期函数 小程序的页面生命周期函数需要在页面的 .js 文件…

将 hugo 博客搬迁到服务器

1. 说明 在 Ubuntu 22.04 上使用 root 账号&#xff0c;创建普通账号&#xff0c;并赋予 root 权限。 演示站点&#xff1a;https://woniu336.github.io/ 魔改hugo主题: https://github.com/woniu336/hugo-magic 2. 服务器配置 建立 git 用户 adduser git安装 git sudo apt …

蓝图中结构体改变后,要重新创建widget

发现了一个怪现象&#xff0c;在更改结构体后&#xff0c;界面上出不来相应的信息了&#xff0c;断掉传递到界面上的线后&#xff0c;再重新连接&#xff0c;发现错误“只有完全匹配的结构才是兼容的”&#xff0c;删除后&#xff0c;重新创建widget&#xff0c;正常。 如下图…

【STM32项目】在FreeRtos背景下的实战项目的实现过程(二)

个人主页~ 实战项目的实现过程&#xff08;一&#xff09;~ 实战项目的实现过程 二、初步了解各个外设硬件1、OLED模块2、GPS模块3、MPU6050模块4、超声测距模块5、温度测控模块6、语音模块7、SIM模块8、按键模块 三、查阅资料1、查看手册2、查找例程 四、研究硬件功能1、OLED…

OpenCv图像处理: 时域滤波与频域滤波

时域滤波&#xff1a; 空间域滤波的步骤一般如下&#xff1a; 1. 选择滤波器 选择一种低通滤波器&#xff0c;常见的包括&#xff1a; 均值滤波&#xff08;平均滤波器&#xff09;高斯滤波&#xff08;Gaussian filter&#xff09; 2. 定义滤波器核 根据选择的滤波器类型&…

【卡码网Python基础课 19.洗盘子】

目录 题目描述与分析一、栈二、栈的操作三、代码编写 题目描述与分析 题目描述&#xff1a; 在餐厅里&#xff0c;洗盘子的工作需要使用到栈这种数据结构。 假设你手里有一个盘子堆放区。现在需要模拟洗盘子的过程&#xff0c;每个盘子都有一个编号。 盘子堆放区操作说明&…

同一台电脑上安装不同版本的nodejs(搭配VSCode)

今天拉取了一个前后端分离的项目&#xff0c;运行前端的时候&#xff0c;出现node版本不匹配的情况。 本文章将从安装node.js开始到VSCode使用进行讲解 1、去官网下载node版本 以16版本为例&#xff0c;需要哪个版本&#xff0c;就在网址上把版本号替换即可 https://nodejs.o…

在ADS中使用传输端口参数构建理想元器件模型---以3dB电桥为例

在ADS中使用传输端口参数&#xff08;S、Z、Y、ABCD&#xff09;构建理想元器件模型—以3dB电桥为例 本文工程文件下载&#xff1a;在ADS中使用传输端口参数构建理想元器件模型-以3dB电桥为例-工程文件 目录 在ADS中使用传输端口参数&#xff08;S、Z、Y、ABCD&#xff09;构建…

8月18日笔记

目标不出网场景 在目标环境完全不出网的情况下&#xff0c;即所有的网络通信如SMB&#xff08;Server Message Block&#xff09;、DNS&#xff08;Domain Name System&#xff09;甚至包括TCP&#xff08;Transmission Control Protocol&#xff09;都不允许与外部网络进行交…