【数字人】7、GeneFace++ | 使用声音和面部运动系数的关系作为 condition 来指导 NeRF 重建说话头

在这里插入图片描述

文章目录

    • 一、背景
    • 二、相关工作
      • 2.1 唇形同步的 audio-to-motion
      • 2.2 真实人像渲染
    • 三、方法
      • 3.1 对 GeneFace 的继承
      • 3.2 GeneFace++ 的结构
      • 3.2.1 Pitch-Aware Audio-to-Motion Transform
      • 3.2.2 Landmark Locally Linear Embedding
      • 3.2.3 Instant Motion-to-Video Rendering
    • 四、效果

论文:GeneFace++: Generalized and Stable Real-Time Audio-Driven 3D Talking Face Generation

代码:https://genefaceplusplus.github.io/ [未开源]

出处:浙大 | 字节

时间:2023.10

论文:GENEFACE: GENERALIZED AND HIGH-FIDELITY AUDIO-DRIVEN 3D TALKING FACE SYNTHESIS

代码:https://github.com/yerfor/GeneFace

出处:ICLR2023 | 浙大、字节

时间:2023.01

一、背景

talking face 生成任务期望能够实现对于任意的输入音频生成高质量高保真的说话视频

最近,NeRF 在这个领域受到了很大的关注,其只需要几分钟的训练视频,就可以渲染出高保真的 3D 说话视频

但是,基于 NeRF 的方法有以下几个挑战:

  • 在唇形同步方面,很难生成具有高时间一致性和音频-唇形准确度的长时间面部运动序列。
  • 在视频质量方面,由于用于训练渲染器的数据有限,它容易受到域外输入条件的影响,并偶尔产生不良的渲染结果
  • 在系统效率方面,原始NeRF(神经辐射场)的慢速训练和推理速度严重阻碍了其在实际应用中的使用。

所以,GeneFace++ 做出了如下改进:

  • 利用音调轮廓作为辅助特征,并在面部运动预测过程中引入时间损失
  • 提出了一种 landmark locally linear embedding 方法,用于调节预测运动序列中的异常值
  • 设计了一种基于NeRF(神经辐射场)的高效运动到视频渲染器,实现快速训练和实时推理。

有了这些改进,GeneFace++ 成为首个实现稳定且实时的具有泛化音频-唇形同步功能的说话脸部生成的基于 NeRF 的方法

二、相关工作

2.1 唇形同步的 audio-to-motion

在唇部同步运动预测中,主要有两个挑战:

  • 第一个挑战是所谓的一对多映射问题,这意味着同样的输入音频可能有几个合理的对应面部运动。早期的工作 [49, 47, 6] 直接使用回归损失(例如,L2)学习确定性模型,并因此导致过度平滑的唇部结果。Wav2Lip [30] 第一次利用判别同步专家实现更为清晰和准确的唇部运动,后续工作[48, 45, 22, 19, 34]也采用了这种方法。MemFace[36]引入音频到运动中的记忆检索以缓解一对多问题。

  • 第二个挑战是在给定长时间输入音频时生成时间一致且稳定的运动序列。[24]采用自回归结构来模拟时间序列,但受限于慢速推理和误差累积。其他工作[41,12]使用并行结构(如1D卷积)与滑动窗口,这在一定程度上解决了自回归方法的不足。Transformer-s2a [7] 和 GeneFace [42] 使用前馈结构(自我注意力和卷积)来并行处理整个音频序列。这种框架具有高效率和建模长期信息能力,但在保持生成运动序列中时间连贯性和稳定性方面不太好。

2.2 真实人像渲染

动态人像合成的技术可以分为三类:

  • 基于2D的方法:[39, 35, 30, 49, 46, 48],他们采用GANs [10]或图像到图像转换[17]作为图像渲染器。虽然这些方法达到了良好的图像质量,但由于缺乏3D几何建模,它们无法生成可控制姿态的视频。
  • 基于3D Morphable Model [29] (3DMM)的方法:基于3DMM的方法[41,38,44]通过使用3DMM系数作为辅助条件注入了对三维先验知识,但使用3DMM作为中间处理已知会导致信息丢失,并降低性能。
  • 神经渲染法:神经渲染法[3、9、31、15、50] 采用 NeRF [25] 或其变种来对人像进行三维建模。AD-NeRF 是第一个基于NeRF进行面部语音合成的方法,它提出了一种端到端音频至视频 NeRF 渲染器来生成依赖于音频特征的人像,GeneFace[42] 引入 audio-to-motion 模块来改善NeRF基础上渲染器同步效果,AD-NeRF 采用离散可学习网格在 AD-NeRF 中进行训练和推理加速。

因此,GeneFace++ 使用了三部分来实现:

  • audio-to-motion 阶段:引入了 pitch information 和时间平滑损失来实现合成的说话头的长时间一致性
  • motion 系数鲁棒:引入了一个 projection-based 后处理来提高系统的鲁棒性
  • motion-to-video 阶段:使用 grid encoder 和 deformable slicing surfaces 来实现高效和高质量的人像渲染

三、方法

3.1 对 GeneFace 的继承

GeneFace++ 延续了 GeneFace 两阶段的形式,所以,直接引用了 GeneFace 的 audio-to-motion 和 motio-to-video 阶段

1、Audio-to-Motion

在该阶段,首先使用大量的 lip-reading 数据来学习一个条件 VAE 模型,以实现根据给定的语音来生成准确且具有泛化能力的 facial landmark

VAE 的 loss 如下:

在这里插入图片描述

为了弥补 lip-reading dataset 和 target person video 之间的 domain gap,还使用了 domain adaptative(DA) Postnet ,主要是为了将预测的 facial motion 映射到 target person domain

DA Postnet 的 loss 如下:

在这里插入图片描述

这两步结束后,就可以得到 input audio 的 嘴唇同步且 personalized 的 facial landmark 了

在这里插入图片描述

2、Motion-to-Video

在该阶段,使用 landmark-conditioned dynamic NeRF network 来渲染出人像

在这里插入图片描述

3.2 GeneFace++ 的结构

GeneFace++ 其实主要是为了提升 GeneFace 的效果,达到更自然的音唇同步,更鲁棒的高质量,更快的训练速度

如图 1a,GeneFace++ 有三个阶段:

  • pitch-aware audio-to-motion module:将 audio feature 转换成 facial motion
  • landmark locally linear embedding method:对预测的 motion 进行后处理
  • instant motion-to-video module:将预测的 motion 系数渲染成真实人像

在这里插入图片描述

3.2.1 Pitch-Aware Audio-to-Motion Transform

在这里插入图片描述

在这里插入图片描述

3.2.2 Landmark Locally Linear Embedding

在这里插入图片描述

在这里插入图片描述

3.2.3 Instant Motion-to-Video Rendering

在这里插入图片描述

四、效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学人工智能等于失业?

随着科技的快速发展,人工智能已经渗透到我们生活的方方面面,从手机、智能家居到自动驾驶汽车,都离不开人工智能技术的支持。 因此,学习人工智能已经成为越来越多人追求高薪职业的选择。在这篇文章中,我们将探讨学习人…

Linux基本指令及周边(第一弹)

文章目录 前言mkdir指令(重要):tree指令rmdir指令 && rm 指令(重要):touch指令ls指令pwd指令cd 指令用户家目录man指令(重要):mv指令(重要)cat指令绝…

Linux 系统误将 chmod 权限改成 了 000,如何恢复?

Linux 系统误将 chmod 权限改成 了 000,如何恢复? busybox 是 Linux 标配,含有大多数主流 Linux 命令,你可以把它的存在当作救急备份。简单功能都可以调用 busybox 完成。这也就意味着很多原始命令出故障的情况下都可以用 busybox 暂时替代。…

调用本地大模型实现聊天机器人ChatBot

AWS Instance本地部署大模型 AWS上申请带GPU的instance,例如g4dn系列,申请instance后安装CUDA的driver,driver安装完成后,就可以在带gpu的instance上部署开源的大模型了。如果想了解在aws上部署本地模型细节,可以阅读…

upload-labs关卡11(双写后缀名绕过)通关思路

文章目录 前言一、回顾前几关知识点二、靶场第十一关通关思路1、看源代码2、bp抓包双写后缀名绕过3、检查文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的…

主键问题以及分布式 id

分布式 id 需要处理的问题主要是同一时间在多台机器中保证生成的 id 唯一,为了这么做我们可以这么做: 分布式 id 生成策略 先说几个已经被淘汰的策略引出分布式 id 的问题 1,UUID:UUID 随机并且唯一,在单一的数据库…

JS进阶——构造函数数据常用函数

1、深入对象 1.1 创建对象三种方式 1.1.1 利用对象字面量创建对象 1.1.2 利用new Object创建对象 1.1.3 利用构造函数创建对象 1.2 构造函数 构造函数:是一种特殊的函数,主要用来初始化对象 使用场景:常规的{...}语法允许创建一个对象。…

【数据结构】手撕双向链表

目录 前言 1. 双向链表 带头双向循环链表的结构 2. 链表的实现 2.1 初始化 2.2 尾插 2.3 尾删 2.4 头插 2.5 头删 2.6 在pos位置之前插入 2.7 删除pos位置 3.双向链表完整源码 List.h List.c 前言 在上一期中我们介绍了单链表,也做了一些练习题&…

IC设计企业,如何安全、可控、高效的传输设计文档和研发数据?

近年来,半导体的应用领域不断拓展,在全球经济和社会发展中的重要性与日俱增,半导体芯片是数字经济的核心,承载着现代产业发展,具有举足轻重的价值。从半导体行业的角度,IC设计是关键的一环,我国…

中科创达:坚定看好未来十五年的大模型机遇

中科创达是一家成立于2008年的智能操作系统产品和技术提供商,15年前公司成立的时候正赶上了安卓操作系统将功能手机推向了智能手机,截至目前,已赋能超过近9亿台手机走向市场。2014年中科创达开始拓展智能汽车方向,2015年拓展物联网…

CSGO的那些事儿:CS2这么差,为什么不改回CS1?

揭秘csgo饰品涨价背后的残酷真相 1、V社现在更新内容集中在游戏性的修复方面。 所以原来期望的新地图新大行动等,要等到游戏本体趋于稳定后才更新。但是,因为距离下一个大型活动,也就是丹麦major还有5个月时间,那这之间必然要有一…

kubernetes 高可用集群

目录 一、haproxy负载均衡 二、pacemaker高可用 三、部署control-plane 四、部署worker node 实验环境 主机名 IP 角色 docker 192.168.67.10 harbor k8s1 192.168.67.11 control-plane k8s2 192.168.67.12 control-plane k8s3 192.168.67.13 control-plane k8s…

opencv(5): 滤波器

滤波的作用:一幅图像通过滤波器得到另一幅图像;其中滤波器又称为卷积核,滤波的过程称为卷积。 锐化:边缘变清晰 低通滤波(Low-pass Filtering): 目标:去除图像中的高频成分&#…

【打卡】牛客网:BM55 没有重复项数字的全排列

自己写的&#xff1a; 虽然题目要求了排序&#xff0c;但是我没排序也可以通过。 class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param num int整型vector * return int整型vector<vec…

23届计科,想找Java开发之类,真的是很难吗?

23届计科&#xff0c;想找Java开发之类&#xff0c;真的是很难吗&#xff1f; 你的投递信息(投递多少家&#xff0c;如何跟hr打招呼&#xff0c;已读不回如何应对等)都亮- -下才能知道问题出在 哪。最近很多小伙伴找我&#xff0c;说想要一些Java的资料&#xff0c;然后我根据…

Ubuntu 下C++数字雨

以前写过一个Window下的数字雨&#xff0c;像黑客帝国里那样的01数字&#xff0c;现在补充一版Linux下的。使用了curses库&#xff0c;安装方法与使用方法参照 Linux下curses函数库的详细介绍_libcurses库-CSDN博客 5-linux学习笔记之-----curses-CSDN博客 效果如下&#xf…

21. 深度学习 - 拓朴排序的原理和实现

文章目录 Hi,你好。我是茶桁。 上节课&#xff0c;我们讲了多层神经网络的原理&#xff0c;并且明白了&#xff0c;数据量是层级无法超过3层的主要原因。 然后我们用一张图来解释了整个链式求导的过程&#xff1a; 那么&#xff0c;我们如何将这张图里的节点关系来获得它的求…

抖音自动评论脚本,可按关键词,实现批量点赞,按键精灵开源版!

这个脚本是我之前给一个客户开发的&#xff0c;现在用着也没啥意义&#xff0c;开发了很多&#xff0c;我索性就把代码直接分享出来&#xff0c;给一些新手做学习研究用&#xff0c;里面很多结构都是自己花费了很大的心思和心血才弄出来的&#xff0c;所以价值很高。 UI界面&a…

OpenAI GPT5计划泄露

OpenAI的首席执行官萨姆奥特曼在最近接受《金融时报》的专访时&#xff0c;分享了OpenAI未来发展的一些新动向。此外&#xff0c;他还透露了关于即将到来的GPT-5模型以及公司对AGI的长期目标的一些细节。 奥特曼指出&#xff1a; 1.OpenAI正在开发GPT-5&#xff0c;一种更先进的…

QT绘图设备

pixmap绘图设备在磁盘上进行绘图 通过pix.save将图片保存到E盘下 不是主要的绘画设备&#xff0c;可以将绘图指令保存 然后在下边可以调用重现绘图指令
最新文章