【AI数字人-论文】GeneFace++

文章目录

    • 前言
    • pipeline
      • Pitch-Aware Audio-to-Motion
      • Landmark LLE
        • LLE
        • Landmark LLE
      • Instant motion-to-video rendering
      • 结果对比

前言

  • 为了提高预测的面部关键点序列的长期时间一致性和自然度,我们提出了一个Pitch-Aware Audio-to-Motion音高感知的音频到动作模块。具体来说,我们将音高轮廓作为音频到动作映射的辅助特征。
  • 为了提高系统对多种面部运动的鲁棒性,我们提出了一种Landmark Locally Linear Embedding用于对预测的关键点进行后处理。
  • 为了提高渲染器的效率,我们提出了一个高效的动态NeRF,名为Instant Motion-to-Video模块。

pipeline

在这里插入图片描述
音高与面部表情高度相关。高且稳定的音高轮廓可能与大而稳定的嘴唇运动相关。引入pitch的两个优点:

  1. 大多基于NeRF的方法都是以语音后验图特征( phonetic posteriorgrams features)为语音特征用于训练,但是PPGs忽略了波形中的声学信息。因此音高轮廓之类的辅助声学特征有助于提高预测面部运动的表现力和时间一致性。
  2. GeneFace中DA Postnet性能不稳定,音高信息可以作为Postnet轻量级且有用的提示来处理面部关键点。

Pitch-Aware Audio-to-Motion

GeneFace++中的audio-to-motion模块包括Gene Face中的Audio2motion和DA Postnet两个模块。不同的是提取语音特征时,多了pitch encoder用于提取音高轮廓信息。
在这里插入图片描述
首先将连续的音高(基频)值以对数的形式离散化为几个离散标记,以确保音高的临时平滑性,并简化音高编码器的训练。随后,学习一组与离散音高标记相对应的音高嵌入,然后将该嵌入送入一个浅层的卷积网络中,以生成最终的音高编码。
在这里插入图片描述

Landmark LLE

基于NeRF的渲染器通常是从一个非常小的数据集(几分钟长的视频)中学习的,当面对OOD(out-of-distribution)标志时,渲染器可能会产生不准确的面部运动,甚至导致崩溃的渲染结果。GeneFace利用对抗性领域自适应来训练一个Postnet,将所有标志映射到NeRF的狭窄输入空间。然而,由于对抗性训练的不稳定性,理论上并不能保证每一帧都能正确投影到目标域,偶尔会出现不良情况,这对实际应用提出了稳健性的挑战。

受3DMM的启发,3DMM可以通过大约144个模板网格的线性组合来重建任意人脸。我们遵循经典LLE算法在面部表示流形上的主要思想:每个面部标志及其邻域在流形上是局部线性的,提出了一种基于流形投影的后处理方法,称为Landmark LLE(Landmark局部线性嵌入),该方法可确保每个预测的标志成功映射到(标志条件渲染器的输入空间的附近)。

LLE

流形学习(manifold learning)是一类借鉴了拓扑流形概念的降维方法。“流形”是指的是连在一起的区域,数学上,它指的是一组点,且每个点都有其邻域。给定任意一个点,其流形局部看起来像是欧几里得空间。换言之,它在局部空间有欧式空间的性质,能用欧式空间来进行距离计算。因此,很容易地在局部建立降维映射关系,然后再设法将局部关系推广到全局,进而进行可视化展示。
它的主要思想是将高维的数据映射到低维,使该低维的数据能够反映原高维数据的某些本质结构特征。

LLE(Locally Linear Embedding,局部线性嵌入)算法是一种非线性降维算法,它主要用于高维数据的维数约简。LLE的基本思想是假设数据在局部范围内是线性的,即每个数据点可以通过其近邻点的线性组合来重构。算法通过保持这种局部线性关系,将数据从高维空间映射到低维空间,同时尽量保持数据原有的拓扑结构不变。

LLE算法的主要步骤包括:

  1. 寻找每个样本点的近邻点,这些近邻点构成了该样本点的局部邻域。
  2. 根据局部邻域内的样本点,计算该样本点的局部重建权值矩阵,即每个近邻点对重构该样本点的贡献程度。
  3. 利用局部重建权值矩阵,将高维空间中的数据映射到低维空间,同时保持局部线性关系不变。
Landmark LLE

对于一个预测的3D面部标志(landmark) I ˉ ∈ R 68 × 3 \bar{I} \in \mathbf{R}^{68 \times 3} IˉR68×3,Landmark LLE的输出是 I ˉ ′ ∈ R 68 × 3 \bar{I}' \in \mathbf{R}^{68 \times 3} IˉR68×3 I ˉ ′ \bar{I}' Iˉ可以表示为 I ˉ ′ = ∑ k = 1 K ω k ∗ ⋅ I k \bar{I}'=\sum_{k=1}^{K}\omega_{k}^{*} \cdot I_{k} Iˉ=k=1KωkIk,其中 ω k \omega_{k} ωk是第 k k k个邻居的权重。

首先我们在GT landmark数据 D ∈ R N × 68 × 3 D \in \mathbf{R}^{N \times 68 \times 3} DRN×68×3中找到 I ˉ \bar{I} Iˉ的K个邻近landmark { I 1 , ⋯ , I K } ∈ D \{I_{1}, \cdots, I_{K}\} \in D {I1,,IK}D,然后通过最小化重建错误 ∥ I ˉ − I ˉ ′ ∥ \left \| \bar{I} - \bar{I}' \right \| IˉIˉ 寻找这些邻居的线性组合重建 I ˉ ′ \bar{I}' Iˉ。可表述为以下最小二乘法优化问题:
在这里插入图片描述
解上述公式可得到参数 w ∗ = { w 1 ∗ , ⋯ , w K ∗ } ∈ R K w*=\{w_{1}^{*},\cdots, w_{K}^{*}\} \in \mathbf{R}^{K} w={w1,,wK}RK
在这里插入图片描述在这里插入图片描述
在实际应用中,推理时,使用原预测landmark I ˉ \bar{I} Iˉ和重建的landmark I ˉ ′ \bar{I}' Iˉ的线性组合作为最后的动作表示,公式如下所示:
在这里插入图片描述
其中 α ∈ [ 0 , 1 ] \alpha \in [0,1] α[0,1]是平衡图像质量和脸部运动表示的权重。 α \alpha α越大,表示越接近GT数据分布,图像质量越好,越少的bad cases; α \alpha α越小,表示保留更多原预测landmark的信息,表示更多的多样性和脸部动作表示。
在这里插入图片描述
下图是可视化展示,可以看到,VAE预测得到的landmark不在特定人域中,VAE之后再经过postnet处理,预测的landmark大多数位于特定人域中,仍有一小部分bad cases,再经过LLE处理之后,预测的landmark全部位于特定人域中。
在这里插入图片描述

Instant motion-to-video rendering

  • 使用可学习的特征网格来编码3D空间信息。与通过密集的多层感知机(MLP)转发获取空间特征的普通NeRF相比,这种新范式可以通过在离散特征网格中进行线性插值,直接在连续的3D空间中查询特征,从而在训练和推理阶段都更加高效。因此我们利用可学习的3D网格来编码查询的位置。
  • 受Hyper-NeRF的启发,我们将输入的面部标志投影到基于网格的空间特征条件下的N维环境坐标中,这允许空间信息和标志条件的有效融合。一旦获得环境坐标,我们不是使用密集的多层感知机(MLP)查询标志特征,而是使用额外的N维可学习网格来提高效率。我们通过网格搜索经验性地将N设置为3,以平衡性能和效率。

最后,NeRF用公式表示:

F : ( f x , f l , d ) → c , σ F: \left( f_{x}, f_{l}, d \right) \rightarrow c, \sigma F:(fx,fl,d)c,σ
在这里插入图片描述

结果对比

在这里插入图片描述

  • 数字图像处理中,峰值信噪比(Peak Signal-to-Noise Ratio,简称 PSNR)是一个重要的评价参数,用于衡量图像的质量和噪声水平。一般来说,PSNR值越大,表示图像质量越好,噪声水平越低。
  • FID(Frechet Inception Distance score),是计算真实图像和生成图像的特征向量之间距离的一种度量。分数越低代表两组图像越相似。
  • LMD(Landmark Distance)是用于评估面部图像生成质量的指标,它用于度量生成的面部图像与真实面部图像之间的面部特征点的距离,以衡量生成的面部图像与真实面部图像之间的相似性。LMD得分越低,面部图像生成质量越高。

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

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

相关文章

Spring是怎么解决循环依赖的

首先先解释一下什么叫循环依赖 循环依赖:循环依赖其实就是循环引用,也就是两个或两个以上的bean互相持有对方,最终形成闭环.比如A依赖于B,B依赖于A 循环依赖在spring中是允许存在的,spring框架依据三级缓存已经解决了大部分的循环依赖 一级缓存:单例池,缓存已经经历了完整的…

时序预测 | MATLAB实现基于CNN-LSTM-AdaBoost卷积长短期记忆网络结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于CNN-LSTM-AdaBoost卷积长短期记忆网络结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于CNN-LSTM-AdaBoost卷积长短期记忆网络结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于CNN-LST…

vue3 之 商城项目—layout静态模版结构搭建

layout—模块静态模版搭建 一般情况下我们会有nav区域,header区域,二级路由出口区域以及footer区域,如图 我们在开发的时候先把大模块搭建起来,再一步一步填充小模块 在layout下建文件,目录如下 在index.vue中把上…

基于springboot+vue+mysql员工宿舍管理系统

技术栈 jdk8springboot vueelement-plusMySQL 包含功能点 管理员端 登录员工管理宿舍管理留言板管理物品报修管理公告管理 员工端 登录首页个人中心物品报修留言板 功能截图(部分) 管理员 管理员登录 员工管理 宿舍管理 物品报修管理 公告管理 留言管理 员工 员工登录…

数据库管理-第145期 最强Oracle监控EMCC深入使用-02(20240205)

数据库管理145期 2024-02-05 数据库管理-第145期 最强Oracle监控EMCC深入使用-02(20240205)1 监控方式2 度量配置3 阻塞4 DG监控总结 数据库管理-第145期 最强Oracle监控EMCC深入使用-02(20240205) 作者:胖头鱼的鱼缸&…

LeetCode、216. 组合总和 III【中等,组合型枚举】

文章目录 前言LeetCode、216. 组合总和 III【中等,组合型枚举】题目类型与分类思路 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖…

769933-15-5,Biotin aniline,用来标记和检测细胞膜上的特定蛋白质

您好,欢迎来到新研之家 文章关键词:769933-15-5,Biotin aniline,生物素苯胺 一、基本信息 产品简介:Biotin aniline, also known as Biotin aniline, is a molecular probe with strong reactivity. Its uniqueness…

Java设计模式-责任链模式

责任链模式 一、概述二、结构三、案例实现四、优缺点五、源码解析 一、概述 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门…

TreeSet 集合

TreeSet 集合 1. 概述2. 方法3. 遍历方式4. 两种排序方式4.1 默认排序规则/自然排序4.1.1 概述4.1.2 compareTo()方法4.1.3 代码示例14.1.4 代码示例2 4.2 比较器排序4.2.1 概述4.2.2 compare()方法4.2.3 代码示例14.2.4 代码示例2 4.3 排序方式的对比 5. 注意事项 文章中的部分…

自学Java的第二十天

一,每日收获 1.使用方式 1: 动态初始化 2.使用方式 2: 动态初始化 3.使用方式 3: 动态初始化-列数不确定 4.使用方式 4: 静态初始化 5.二维数组的应用案例 6.二维数组使用细节和注意事项 二,新名词与小技巧 三,今天学习中所遇到的困难…

代理与Reflect反射

属性描述符 Proprety Descriptor 属性描述符 用于描述一个属性的相关信息 1.Object.getOwnPropertyDescriptor(对象,属性名) 可以得到一个对象的 某个属性的属性描述符 Object.getOwnPropertyDescriptors(对象) 可以得到某个对象的所有属性描述符 如果需要为某个…

(已解决)vue+element-ui实现个人中心,仿照原神

差一个个人中心页面,看到了这个博主的个人中心,真的很不错 地址:vueelement仿原神实现好看的个人中心 最终效果:

【多模态MLLMs+图像编辑】MGIE:苹果开源基于指令和大语言模型的图片编辑神器(24.02.03开源)

项目主页:https://mllm-ie.github.io/ 论文 :基于指令和多模态大语言模型图片编辑 2309.Guiding Instruction-based Image Editing via Multimodal Large Language Models (加州大学圣巴拉分校苹果) 代码:https://github.com/appl…

【2024.2.5练习】砍竹子(25分)

题目描述 题目分析 考虑题目是否满足贪心。每次施展魔法会使一段连续的竹子高度变为一半左右的平方根。根据样例,似乎每次让最高的竹子变短就能得到最优解。 假设魔法一次只能对一根竹子使用,永远不出现连续相同高度的竹子,那么显然无论使用…

电商开放API商品采集接口、关键字搜索接口,获取商品ID、商品主图接口

API是application programming interface(应用程序接口)的简称,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。…

Oracle Vagrant Box 扩展根文件系统

需求 默认的Oracle Database 19c Vagrant Box的磁盘为34GB。 最近在做数据库升级实验,加之导入AWR dump数据,导致空间不够。 因此需要对磁盘进行扩容。 扩容方法1:预先扩容 此方法参考文档Vagrant, how to specify the disk size?。 指…

Linux Shell编程系列--变量的定义与使用

一、目的 上一篇我们简单介绍了shell脚本的组成以及如何运行一个shell脚本,本篇将详解讲解shell中的变量。在Shell脚本中,变量是用来存储和处理数据的基本结构。 二、介绍 1、定义变量 变量名与等号()后跟值来定义一个变量&#…

考研数据结构笔记(1)

数据结构(1) 数据结构在学什么?数据结构的基本概念基本概念三要素逻辑结构集合线性结构树形结构图结构 物理结构(存储结构)顺序存储链式存储索引存储散列存储重点 数据的运算 算法的基本概念什么是算法算法的五个特性有…

VXLAN:虚拟化网络的强大引擎

1.什么是VXLAN VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特…

【Spring】Spring事务和事务传播机制

文章目录 什么是事务事务的操作Spring 中事务的实现Spring编程式事务Spring 声明式事务 TransactionalTransactional作用Transactional 详解rollbackFor事务隔离级别Spring 事务隔离级别Spring 事务传播机制 什么是事务 事务(Transaction)是一个程序中一…