商汤研究院最新发布了一个先进的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 面部动画以增强大头部姿势下的一致性也是一项值得追求的追求。