【AI数字人-论文】Geneface论文

文章目录

    • 前言
    • pipeline
      • audio-to-motion
      • Motion domain adaptation
        • 可视化
      • Motion-to-image
        • Head-NeRF
        • Torso-NeRF
    • 结果对比

前言

语音驱动的说话人视频合成旨在根据一段输入的语音,合成对应的目标人脸说话视频。高质量的说话人视频需要满足两个目标:
(1)合成的视频画面应具有较高的保真度;
(2)合成的人脸面部表情应与输入的驱动语音保证高度对齐。
基于NeRF的说话人视频合成算法,仅需要3-5分钟左右的目标人说话视频作为训练数据,即可合成该目标人说任意语音的视频,在实现第二个目标还面临许多挑战。

  • 对域外驱动音频的弱泛化能力:由于训练数据集仅包括数分钟的说话人语音-面部表情的成对数据,模型对不同说话人、不同语种、不同表现形式等域外音频难以生成准确的面部表情。
  • “平均脸”问题:由于相同的语音可能有多种合理的面部动作,使用确定性的回归模型来学习这样一个语音到动作的映射可能导致过于平滑的面部动作和较低的表情表现力。

pipeline

GeneFace 采用 3D 人脸关键点作为中间变量,提出了一个三阶段的框架:

  • Audio-to-motion:在大规模唇语识别数据集上学习语音到动作的映射高泛化能力。我们设计了一个变分动作生成器来学习这个语音到面部动作的映射。
  • Motion domain adaptation:提出了一种基于对抗训练的域适应方法,以训练一个人脸动作的后处理网,从而弥合大规模唇语识别数据集与目标人视频之间的域差距。
  • Motion-to-image:设计了一个基于 NeRF 的渲染器(3DMM NeRF Renderer),它以预测的 3D 人脸关键点为条件来渲染高保真的说话人视频。
    在这里插入图片描述

audio-to-motion

audio2motion在一个大的数据上进行训练,适用于所有的说话人视频,仅需要训练一次。
在这里插入图片描述
语义信息:利用 HuBERT 模型从原始音频中提取语音表征。
动作表示:为了能在欧几里得空间中表示详细的面部运动,从重建的3D头部网格中选择68个关键点,使用它们的位置作为动作表示。

编码器解码器流模型
在这里插入图片描述在这里插入图片描述在这里插入图片描述

原始变分自编码器的高斯先验从两个方面限制了3D标志序列生成过程的性能:

  1. 每个时间索引的数据点彼此独立,给序列生成任务引入了噪声,因为帧之间存在坚实的时序相关性。
  2. 优化VAE先验将后验分布推向均值,限制了多样性和破坏了生成能力
    为此,利用归一化流为VAE提供复杂且与时间相关的先验分布。流模型,一种比较独特的生成模型,通过一系列可逆变换建立较为简单的先验分布与较为复杂的实际数据分布之间的映射关系。

Motion domain adaptation

在给定的多说话人数据集上训练variational motion generator时,模型可以很好地处理各种音频输入。然而,由于目标人物视频的规模相对较小(大约4-5分钟),与多说话人唇读数据集(大约数百小时)相比,预测的3D landmark与目标人物领域之间存在领域偏差。因此需要将VAE预测的3D landmark 细化为Personalize domain。
在这里插入图片描述要求:

  1. 保证输入序列的时间一致性和嘴唇同步
  2. 将每一帧正确地映射到目标人领域

方案:为了满足第一点,使用1D卷积为后处理网络的结构,并采用同步专家来监督嘴唇同步。对于第二点,我们联合训练一个MLP结构的帧级鉴别器,该鉴别器测量每个关键点帧与目标人的身份相似性。

在这里插入图片描述
postnet模型仅适用于对应的说话人视频,所以对每个新的说话人视频都需要训练一个新的postnet。而且训练postnet时,既需要大的说话人数据集,也需要对应的说话人数据集。

可视化

在这里插入图片描述

  • 绿色点表示LRS3数据集的gt landmarks.
  • 蓝色点表示特定人视频的gt landmarks
  • 红色点表示无域自适应时的预测landmarks
  • 黄色点表示有域自适应时的预测landmarks

可以从上图中看出,post-net模型将预测的人脸landmarks从大数据集的空间域迁移到特定人的域中,这样更能保证嘴型的同步性。

Motion-to-image

NeRF将一个连续的场景表示为一个输入为5D向量的函数,它的输入由一个空间点的3D位置 x = ( x , y , z ) \mathbf{x} = \left( x, y, z \right) x=(x,y,z)和它的2D视角方向 d = ( θ , ϕ ) \mathbf{d} = \left( \theta, \phi \right) d=(θ,ϕ),输出为对应3D位置的颜色 c = ( r , g , b ) \mathbf{c} = \left(r,g,b \right) c=(r,g,b)和体素密度 σ \sigma σ。NeRF函数用公式表示就是:
F ( x , d ) → ( c , σ ) F \left( \mathbf{x}, \mathbf{d} \right) \rightarrow \left( c, \sigma \right) F(x,d)(c,σ)

以3DMM landmark作为条件变量,基于NeRF进行三维重建,需要先对头部进行重建,然后以头部为条件变量,重建躯干。
在这里插入图片描述

Head-NeRF

将landmark l l l作为NeRF的条件变量,用公式表示如下:
F θ ( x , d , l ) → ( c , σ ) F_{\theta} \left( \mathbf{x}, \mathbf{d}, l \right) \rightarrow \left( c, \sigma \right) Fθ(x,d,l)(c,σ)
颜色 C C C计算的公式如下所示:
在这里插入图片描述

Torso-NeRF

基于head-NeRF的输出颜色 C h e a d C_{head} Chead作为torso-NeRF像素级的条件,torso-NeRF的公式表示如下:
F t o r s o ( x , C h e a d , d 0 , Π , l ) → ( c , σ ) F_{torso} \left( x, C_{head},d_{0}, \Pi ,l \right) \rightarrow \left( c, \sigma \right) Ftorso(x,Chead,d0,Π,l)(c,σ)

结果对比

在这里插入图片描述

  • FID(Frechet Inception Distance score),是计算真实图像和生成图像的特征向量之间距离的一种度量。分数越低代表两组图像越相似。
  • LMD(Landmark Distance)是用于评估面部图像生成质量的指标,它用于度量生成的面部图像与真实面部图像之间的面部特征点的距离,以衡量生成的面部图像与真实面部图像之间的相似性。LMD得分越低,面部图像生成质量越高。

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

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

相关文章

算法基础,一维,二维前缀和差分详解

目录 1.前缀和 1.一维前缀和 例题:【模板】前缀和 2.二维前缀和 例题:【模板】二维前缀和 2.差分 1.一维差分 1.性质:d[i]的前缀和等于a[i] 2.性质:后缀区间修改 例题:【模板】差分 2.二维差分 例题&#x…

[.NET] 查询当前已安装所有 Win32 与 UWP 应用

为了获取当前设备用户已安装的所有应用程序, 一般来讲有两种方案. 一种是通过查询 “shell:AppsFolder” 目录下所有项, 一种是从开始菜单中获取所有快捷方式, 然后加上查询所有已安装的 UWP 应用, 最后得到总列表. 如需代码参考, 请看 github.com/SlimeNull/WindowsAppsQuery …

Opencv(C++)学习 之RV1126平台的OPENCV交叉编译

本文特点:网上已经有了很多opencv移植RV1106的文章,本文主要记录基于cmake-gui编译,碰到的报错,及解决报错问题的方法,同时简单总结一些配置项相关的知识。 一、环境: ubuntu18 x64 RV1126交叉编译工具链 …

用HTML5 + JavaScript实现下雪效果

用HTML5 JavaScript实现下雪效果 下面是用HTML5 JavaScript实现下雪效果示例&#xff0c;展示了如何使用 HTML5 的 <canvas> 元素以及 JavaScript 来创建下雪效果。效果如下&#xff1a; 源码如下&#xff1a; <!DOCTYPE html> <html lang"en">…

逸学区块链【solidity】真随机数

参考Get a Random Number | Chainlink Documentation 但是很贵&#xff0c;价格 Gas Price&#xff1a;当前gas价格&#xff0c;根据网络状况而波动。Callback gas &#xff1a;返回您所请求的随机值时&#xff0c;回调请求消耗的gas 量。验证gas &#xff1a;量gas 用于验证…

应用层协议 ——— HTTP协议

应用层协议 ——— HTTP协议 HTTP简介认识URL二、登录信息三、服务器地址四、服务器端口号五、带层次的文件路径六、查询字符串七、片段标识符urlencode和urldecodeHTTP协议格式HTTP请求协议格式HTTP的方法HTTP的状态码HTTP常见的HeaderHTTPS VS HTTP对称加密 VS 非对称加密 HT…

Unity | YooAssetV2.1.0 + HybridCLR热更新

目录 一、项目更改 二、使用YooAsset热更 1.资源配置 2.资源构建 3.将两个文件夹下的资源上传CDN服务器 4.修改代码 5.运行效果 本文记录利用YooAssetHybridCLR来进行资源和dll的更新。YooAsset使用的是新版V2.1.0。相比于旧版&#xff0c;dll(原生文件)和资源要建两个p…

zabbix添加主机

zabbix添加主机 查看ip地址 [rootershi ~]# yum -y install net-tools [rootershi ~]# ifconfig eth0 |grep netmask |cut -d " " -f 10 192.168.88.20被监控主机安装zabbix-agent [root20 ~]# mount /dev/cdrom /mnt [root20 ~]# yum -y install wget [root20 ~]…

conda虚拟环境基础

【一文搞定最新版Anaconda】Win11 安装 Anaconda&#xff08;2023.9&#xff09;详解&#xff08;不删除旧版情况下下载、安装、注册、登录、设置环境变量、迁移旧环境、配置修改换源等&#xff09;连接Pycharm_win11安装anaconda-CSDN博客 conda命令大全&#xff08;create/in…

消息总线在微服务中的应用

直连式配置中心 上一篇文章介绍了 Spring Cloud 中的分布式配置组件 Config&#xff0c;每个服务节点可以从Config Server 拉取外部配置信息。但是似乎还有一个悬而未决的问题&#xff0c;那就是当服务节点数量非常庞大的时候&#xff0c;我们不可能一台一台服务器挨个去手工触…

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(四)NodeJS入门——网络基础概念

041_网络基础概念_IP的介绍 hello&#xff0c;大家好&#xff0c;我们来一起认识一下IP。 在开始介绍 IP 之前&#xff0c;我们首先来介绍一个场景&#xff0c;方便大家去理解 IP 这个概念。比如这会儿强哥正在成都&#xff0c;然后还有另外一个小伙伴&#xff0c;谁呢&#x…

CodeFuse成功支持通义千问算法大赛,评测方案已开源

前段时间&#xff0c; 首届通义千问AI挑战赛成功举办&#xff0c;CodeFuse 为大赛提供技术支持&#xff0c;模型微调框架 MFTCoder 和 CodeFuseEval 评测框架为大赛保驾护航&#xff0c;助力大赛圆满完成。我们基于leetcode 阿里和蚂蚁最新面试题库建设了“模型赛马”在线打榜的…

25.云原生之ArgoCD-app of apps模式

文章目录 app of apps 模式介绍app如何管理apphelm方式管理kustomize方式管理 app of apps 模式介绍 通过一个app来管理其他app&#xff0c;当有多个项目要发布创建多个app比较麻烦&#xff0c;此时可以创建一个管理app&#xff0c;管理app创建后会创建其他app。比较适合项目环…

Ansible基础及常用模块

目录 1.前言 Ansible Ansible的特性 2.ansible环境安装部署 管理端安装ansible(192.168.88.22) ansible目录结构 配置主机清单 配置密钥对验证 3.ansible命令行模块 command 模块 shell 模块 ​编辑cron 模块 user 模块 group 模块 copy 模块 file 模块 hostn…

爱上算法:每日算法(24-2月2号)

&#x1f31f;坚持每日刷算法&#xff0c;将其变为习惯&#x1f91b; 题目链接&#xff1a;101. 对称二叉树 最开始肯定是比较简单的想法&#xff0c;就是遍历左右节点呀&#xff0c;不相等我就直接返回false。 但是这样错了&#xff0c;我们要的是以根节点为轴&#xff0c;而…

如何保证MySQL和Redis中的数据一致性?

文章目录 前言一、缓存案例1.1 缓存常见用法1.2 缓存不一致产生的原因 二、解决方案2.1 先删除缓存&#xff0c;再更新数据库2.2 先更新数据库&#xff0c;删除缓存2.3 只更新缓存&#xff0c;由缓存自己同步更新数据库2.4 只更新缓存&#xff0c;由缓存自己异步更新数据库2.5 …

Unity_使用Shader实现玻璃和镜面效果

效果图如下&#xff1a; 玻璃效果图 镜面效果图 Step1 搭建场景→镜子使用Quad代替&#xff0c;放置在需要反射的墙面→创建新的材质和Shader Step2 墙壁外创建Camera&#xff0c;用来渲染物体后方的视图→创建RenderTexture&#xff0c;赋于该相机 Step3 Shader的编写如下…

如何使用本地私有NuGet服务器

写在前面 上一篇介绍了如何在本地搭建一个NuGet服务器&#xff0c; 本文将介绍如何使用本地私有NuGet服务器。 操作步骤 1.新建一个.Net类库项目 2.打包类库 操作后会生成一个.nupkg文件&#xff0c;当然也可以用dotnet pack命令来执行打包。 3.推送至本地NuGet服务器 打开命…

来看看Tomcat和Web应用的目录结构

在前面两篇大致了解了Tomcat的架构和运行流程&#xff0c;以及Tomcat应用中的web.xml。 聊一聊Tomcat的架构和运行流程&#xff0c;尽量通俗易懂一点-CSDN博客 来吧&#xff0c;好好理解一下Tomcat下的web.xml-CSDN博客 那接下来&#xff0c;再看看Tomcat的目录&#xff0c;…

el-table点击某一行选中改变背景色且执行方法

elementUI table表格点击某一行选中并且改变背景色 使用:row-style"rowStyle"及row-click“selectRow”&#xff1a; 其中 selectRow 方法中&#xff1a; row 输出&#xff1a;当前行的内容 column 输出&#xff1a;当前列的信息 event 输出&#xff1a;当前事件 …
最新文章