【数字人】8、EAT | 为数字人引入情感表情(ICCV2023)

news2024/11/18 23:29:29

在这里插入图片描述

论文:Efficient Emotional Adaptation for Audio-Driven Talking-Head Generation

代码:https://yuangan.github.io/eat/

出处:ICCV2023

特点:能引入表情,但无法眨眼,需要 音频 + pose + 图片 同时作为输入来合成数字人

文章目录

    • 一、背景
    • 二、方法
      • 2.1 第一阶段:与表情无关的预训练
      • 2.2 第二阶段:高效的表情调节
      • 2.3 目标函数
    • 三、效果
      • 3.1 实验设置
      • 3.2 效果对比

一、背景

Audio-driven talking head 生成任务中,如果可以引入表情,则会提升数字人的保真性和多样性,但这样就会需要考虑很多方便,如头部、表情、声音、动作等,加大生成任务的难度

GC-AVT 和 EAMM 算法使用 driven emotional video 和 pose-guiding video 来同时驱动视频的生成

但现有的方普遍有以下两个问题:

  • 网络结构的高效问题:当有多个子任务时,训练或者微调一个 talking head 生成网络的代价就比较大。而且与表情无关的训练数据更多,所以如何高效的重利用这些数据就很重要
  • 提示的多样性:之前的方法一般都是使用一个表情驱动视频,而不是直接将表情特征学习到网络中,所以在实际使用时,需要考虑驱动视频的分辨率、遮挡率、长度等,但没有考虑嘴唇的形状,所以表情并不是很真实

为了解决上面这些问题,就需要能够方便且高效的将预训练好的无表情 talking head 模型迁移到 emotional talking head 模型,且值需要很轻量的 emotional guidance,如图 1 所示。

在这里插入图片描述

因此,本文提出了一个高效的两阶段网络:

  • 第一阶段:使用无监督的 3d 隐空间关键点特征来捕捉表情,然后使用 audio-to-expression transformation(A2ET),也就是学习将 audio 和 3D 隐空间的关键点的关系,这里使用的是大量的无表情标注的数据
  • 第二阶段:使用使用可学习的指导和可适应的模块,来实现表情的生成。这包括用于参数高效情感适应的 Deep Emotional Prompts、一个轻量级的 Emotional Deformation Network (EDN) 用于学习面部潜在表征的情感变形,以及一个即插即用的情感适应模块(y Emotional Adaptation Module,EAM)用于提升视觉质量。此方法使得传统的 talking head 模型能够快速转移到情感生成任务上,并且能产生高质量的结果,同时支持使用 image-text 模型进行零样本表情编辑[45]。

二、方法

在这里插入图片描述

2.1 第一阶段:与表情无关的预训练

1、隐空间关键点

给定一个 talking head 图像帧 i i i,作者会使用无监督的方法学习 3D 隐形关键点 K i K_i Ki,具体包括以下四个部分:

  • identity-specific canonical keypoints K c K_c Kc
  • rotation matrix R i R_i Ri
  • translation T i T_i Ti
  • expression deformation E i E_i Ei

这四部分组合方式如下:

在这里插入图片描述

一般来说,基于这些 3D 隐空间关键点,RePosition Network (RePos-Net) [56] 可以将一个人的面部表情迁移到另一个人的面部,如图 3 所示,但是对眉毛、嘴角等没法很好的迁移,所示,作者做了三点改进:

  • 移除了 deformation prior loss in OSFV [56]:这个 loss 会限制关键点形变的模值,移除了后会让隐空间的关键点捕捉到很多微小的表情
  • 使用 MEAD 数据集:来获得有表情标注、成对儿的人脸数据,能让网络学习更多的表情变化
  • 只计算人脸区域的 loss:这样能够避免背景等带来的影响,所以只计算了人脸区域的 loss

2、Audio-to-Expression Transformer

由于 3D 隐空间关键点是和 source identity 关联的,且比 2D 的隐空间关键点更复杂,直接预测 3D 关键点序列很难。作者观察到,面部表情主要是由 expression deformation E i E_i Ei 来表示的,所以,提出了 A2ET 来学习 audio-visual 来合成 expression deformation

Audio-visual Feature Extraction:

作者使用 Vox2 数据集训练这个 Transformer 网络,并且为了避免音频噪声,使用了 deepspeech 提取特征,同时使用了语音特征 S 1 : n S_{1:n} S1:n 和 声学特征 A 1 : n A_{1:n} A1:n

如图 2a 所示,给点一帧 i,会从 2w+1 个 audio frame 中来抽取语音上下文特征,然后 speech features S i − w : i + w S_{i-w:i+w} Siw:i+w 和 pose features P i − w : i + w P_{i-w:i+w} Piw:i+w 被转换成 speech tokens,当前帧的 6DoF 被编码成 pose token p p p

A2ET encoder 的输入就是 speech tokens 和 pose token

为了捕捉嘴唇的变化,将声学特征 A i − w : i + w A_{i-w:i+w} Aiw:i+w 和 image represent 使用 audio encoder 和 keypoint detector D k D_k Dk进行编码

接着,作者将这两种表征(声学特征和图像关键点)结合起来,生成了一系列的声学标记( acoustic tokens 或称为“声学令牌”)。这些标记包含了嘴部动作的信息,输入到 A2ET 的解码器中。这个解码器的作用是根据这些声学标记来重建或输出特定数量的特征,也就是输出长度为2w + 1个标记的特征序列。

Expression Deformation Prediction:

表情形变 E i E_i Ei 是由 k 个 3D 偏移组成的,可以从当前帧 i 的特征中得到,直接优化这个 3D 运动会难以收敛。

作者发现通过 self-supervision 学习到的三维关键点之间存在着内在的相互依赖性,实际上只有少数关键点对面部表情有影响。因此作者采用了主成分分析(PCA)来处理 E i E_i Ei,这有助于减少数据的维度并去除那些不必要的信息。这样一来,就可以根据音频特征来预测面部的三维表情变形了。

2.2 第二阶段:高效的表情调节

在这里插入图片描述

  • Deep Emotional Prompts
  • Emotional Deformation Network (EDN)
  • Emotional Adaptation Module (EAM)

Emotional Guidance:

一个直接的想法是利用可学习的引导条件来生成带有情感的 talking head。作者认为每种情绪类型都属于潜在空间中的一个独特子域。正如图2(b)所示,使用了一个映射网络 M 来提取带有 latent code z ∈ U 16 z ∈ U^{16} zU16 的 emotion-conditional guidance。这个 latent code 是从高斯分布中采样的,这是生成模型中常用的方法[29, 9]。这种情绪引导被用来指导情绪表情的生成。

Deep Emotional Prompt:

为了更高效的进行不同表情的调节,作者将这种 guidance 作为 A2ET 的一个输入,如图 2a

作者为 A2ET 分别引入了深层和浅层的 emotional prompts,浅层的 prompt 是加到第一层上,深层的 prompt 是加到后面的其他层上

Emotional Deformation Network:

作者观察到,公式 1 中解耦的三维隐式表示表现出线性可加性。此外,情感话语头部展示了传统话语头部所没有的情感形变。为了补充 Ei,一种直观的方法是包含一个情感表达形变项:

在这里插入图片描述

其中, E ′ i E′i Ei 代表情感表达形变, E i E_i Ei代表由 A2ET 预测的与语音相关的表达形变, Δ E i ΔE_i ΔEi 代表与情感相关的表达形变。为了预测 Δ E i ΔE_i ΔEi,我们设计了一个名为情感形变网络(EDN)的子网络,如图2(b)所示。EDN 利用 A2ET 编码器架构,在情感指导和源潜在表示令牌的帮助下预测 Δ E i ΔE_i ΔEi。为了加速适应性,我们用预训练的A2ET编码器初始化了EDN。为了用 E ′ i E′_i Ei更新 KaTeX parse error: Expected group after '_' at position 3: Ei_̲,我们可以使用公式1得到情感3D潜在关键点。

Emotional Adaptation Module:

为了进一步提升视觉效果,作者设计了一个即插即用的调节模块 Emotional Adaptation Module (EAM),能够生成 emotion-conditioned features。如图 3 所示,这个模块的输入是 guidance embedding e e e,然后使用两个 FC 层来获得一系列的 channel weights γ \gamma γ 和 偏置 β \beta β,然后使用激活然后将其限制到 [-1,1]

在这里插入图片描述

一旦获得了 γ \gamma γ β \beta β,就可以输入特征 x x x 来得到 emotional feature 了:

在这里插入图片描述

  • F s F_s Fs 是通道上的乘

如图 2 所示,EAM 可以被插入 RePosNet、audio 特征提取器、image 特征提取器

Zero-shot Expression Editing:

由于 EAT 能够很快的调节,所以可以实现 zero-shot text-guided 表情编辑,方法是从 CLIP 上蒸馏

为了利用 CLIP loss 来学习表情指导,作者使用 head pose、source audio、first frame from target video 作为输入,

为了利用 CLIP 损失(CLIP loss)来学习与文本描述的表情相关的情感引导。作者提取目标视频的头部姿势、原始音频以及第一帧作为输入。

此外,还采用了目标表情描述来进行微调。使用经过改进的EAT模型和我们的训练损失,增加了一个额外的CLIP损失来微调映射网络和EAM模块。

具体就是:使用 CLIP 的图像编码器从预测的说话面部提取图像嵌入,使用其文本编码器从描述中提取文本嵌入。然后,迭代优化图像和文本嵌入之间的距离,以使生成的说话面部与输入文本对齐。

2.3 目标函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、效果

3.1 实验设置

作者的 video 帧率都为 25FPS,audio 采样率都为 16kHz,视频大小为 256x256,mel-spectrogram window length 和 hop length 为 640

EAT 中 keypoints 的个数是 15

  • enhance 3D latent keypoints:48 小时(4个3090)
  • pretrain the A2ET with enhanced latent keypoints:48 小时(4个3090)
  • finetune the EAT architecture :6 小时(4个3090)

数据集:

  • VoxCeleb2:
  • MEAD:有 8 种情感表情,使用人物来划分训练和测试,和 EAMM 的划分一样

3.2 效果对比

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Java文件自动生成文档

说明 此文章根据Gemini Pro 生成资料整理。 生成文档 javadoc -d mydoc -author -version HelloWorld.java javadoc -d mydoc -author -version HelloWorld.java 命令用于生成 Java 源文件的javadoc文档,并将javadoc文档输出到 mydoc 目录中。 javadoc&#xf…

Linux学习之网络编程2(socket,简单C/S模型)

写在前面 Linux网络编程我是看视频学的,Linux网络编程,看完这个视频大概网络编程的基础差不多就掌握了。这个系列是我看这个Linux网络编程视频写的笔记总结。 网络字节序 小端法:pc本地存储,高位存高地址,低位存低地…

AI技术已经发现了一种新材料,可以在电池制造中减少对锂的需求

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Docker 安装:在linux系统CentOS7 版本 安装Docker

目录 一,Docker介绍: 1.1Docker是什么? 1.2Docker组成 二,Docker安装: 三,Docker基本使用 3.1服务 3.2镜像 3.3容器 🎉🎉欢迎来到我的CSDN主页!🎉&am…

UniApp调试支付宝沙箱(安卓)

先看下这里完整的交互的图:小程序文档 - 支付宝文档中心 一、打包 不管怎样,先打个包先。可以直接使用云端证书、云端打包,只需要指定包名即可。 二、在支付宝开放平台创建应用 这个参考官方的过程就可以了,只要有刚才打的包&…

【REST2SQL】08 日志重构增加输出到文件log.txt

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 原来…

解决:ModuleNotFoundError: No module named ‘pymysql’

解决:ModuleNotFoundError: No module named ‘pymysql’ 文章目录 解决:ModuleNotFoundError: No module named pymysql背景报错问题报错翻译报错位置代码报错原因解决方法方法一,直接安装方法二,手动下载安装方法三,…

php多小区智慧物业管理系统源码带文字安装教程

多小区智慧物业管理系统源码带文字安装教程 运行环境 服务器宝塔面板 PHP 7.0 Mysql 5.5及以上版本 Linux Centos7以上 统计分析以小区为单位,统计如下数据:小区总栋数、小区总户数、小区总人数、 小区租户数量、小区每月收费金额统计、小区车位统计、小…

C#,入门教程(14)——字符串与其他数据类型的转换

上一篇: C#,入门教程(13)——字符(char)及字符串(string)的基础知识https://blog.csdn.net/beijinghorn/article/details/123928151 数据只有可视化才能更好地体现其价值,因而 string 与 image…

【软件测试】学习笔记-微服务模式下API测试

这篇文章探讨当下最热门的技术领域的API测试,即微服务模式下的API测试。微服务架构下,API测试的最大挑战来自于庞大的测试用例数量,以及微服务之间的相互耦合。这篇文章探讨这两个问题的本质,以及如何基于消费者契约的方法来应对这…

SQL-数据类型

目录 DDL-表操作-数据类型 数值类型 字符串类型 举例: 案例: 日期时间类型 案例 表操作-案例 🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 &a…

【常用的简单功能及算法】拦截器 加盐算法 深克隆 时间日期格式化 加盐算法 sql分页算法 验证码

1.实现拦截器 Interceptor (以登录拦截器为例) 1.1 写一个登录拦截器普通类 实现HandlerInterceptor接口重写preHandle方法 //检验登录状态拦截器 //实现接口HandlerInterceptor 重写方法preHandle public class LoginInterceptor implements HandlerInterceptor {/** 该方…

网络安全保险发展起始阶段的挑战及应对措施

文章目录 前言一、网络安全保险的有序发展二、当前我国网络安全保险发展的初期态势(一)网络安全风险类型(二)网络安全保险的作用(三)与外国网络安全保费的规模对比 三、我国网络安全保险发展初期面临的挑战…

一天一个设计模式---适配器模式

概念 适配器模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。它允许不兼容的接口之间进行协同工作,使得原本由于接口不匹配而无法合作的类能够一起工作。 具体内容 适配器模式主要包括以下几个要素: 目标接…

yolov8 瑞芯微 RKNN 的 C++部署,部署工程难度小、模型推理速度快

之前写过两次yolov8目标检测部署,后续继续思考,针对部署还有优化空间,本示例的部署方式优化了部署难度,加快了模型推理速度(略微增加了后处理的时耗)。 特别说明:如有侵权告知删除,…

半Happy的一天

终于差不多将SWMM模型与LisFlood模型耦合运转起来了 MDL的雏型也出来了,注册了模型方法和参数,差一个方法参数 晚上和师兄聊了聊未来规划,回顾了这半年研究生生涯的“拍烂”生活(其实也没特别摆烂,还是学了不少东西&…

服务器数据传输安全如何保障?保障意义是什么?

数据安全,是指通过采取必要措施确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力。数据安全应保证数据生产、存储、传输、访问、使用、销毁、公开等全过程的安全,并保证数据处理过程的保密性、完整性、可用性。无论是互…

SpringBoot知识02

1、快速生成mapper和service &#xff08;自动生成简单的单表sql&#xff09; 2、springboot配置swagger&#xff08;路径不用加/api&#xff09; &#xff08;1&#xff09;主pom导包&#xff08;子pom要引用&#xff0c;可选依赖&#xff09; <!-- swagger3…

git提交记录全部删除

目录 问题描述 解决方案 结果 问题描述 新复制的项目具有特比多的提交记录我想给他清除&#xff0c;因为不清楚过多历史也就导致包特别大下载和提交等方面都不是很快 解决方案 查看代码clone网址&#xff1b; 打开远程仓库&#xff0c;选择要去除历史记代码分支&#xff08…

C2855 命令行选项“/Zc:referenceBinding“与预编译头不一致和C2855 命令行选项“/Zc:__cplusplus“与预编译头不一致

在VS2019和Qt5.12.12环境下&#xff0c;笔记本上编译这个工程没有问题&#xff0c;把工程拷贝到台式机上&#xff0c;一样的配置&#xff0c;但是报如下错误&#xff1a; 打开项目的命令行配置如下&#xff1a; 解决办法&#xff1a;在编译选项"/Zc:referenceBinding"…