EVP[CV]:音视频转换

  • 1.资源链接
    • 1.1 论文
    • 1.2 代码
  • 2.论文解析
    • 2.0 摘要
    • 2.1 基本介绍
    • 2.2 相关工作
      • 2.2.1 音频驱动的会说话的人脸生成(Audio-Driven Talking Face Generation)
      • 2.2.2 条件情感生成(Conditional Emotion Generation)
    • 2.3 方法
    • 2.3.1 概述
      • 2.3.2 交叉重构的情感纠缠
        • 2.3.2.1 建立伪训练对
        • 2.3.2.2 交叉重构训练
      • 2.3.3 目标自适应人脸合成
        • 2.3.3.1 音频到目标点模块
        • 2.3.3.2 3D 感知关键点对齐
        • 2.3.3.3 从边缘到视频的翻译网络
    • 2.4 实验总结
  • 3.代码复现
    • 3.1 下载之初
    • 3.2 配置环境(linux下)
    • 3.3 训练模型
    • 3.4 测试模型

1.资源链接

1.1 论文

Audio-Driven Emotional Video Portraits

1.2 代码

github链接

2.论文解析

2.0 摘要

  • 在利用音频生成说话的人脸视频方面,大多数研究集中在语音内容与嘴形之间的相关性上,忽略了面部情感。
  • 本文提出了情感视频肖像 (EVP),这是一种用于合成具有由音频驱动的生动情感动态的高质量视频肖像的系统。 具体来说,我们提出了交叉重构情感解开技术,将语音分解为两个解耦空间,即与时长无关的情感空间和与时长相关的内容空间。 通过解开的特征,可以推断出动态的 2D 情感面部标志。
  • 然后提出了目标自适应人脸合成技术,通过弥合推导出的地标和目标视频的自然头部姿势之间的差距,生成最终的高质量视频肖像。 大量实验从定性和定量两个方面证明了我们方法的有效性。

图1

2.1 基本介绍

  • 生成音频驱动的逼真的人像视频是多媒体应用的迫切需求。以前的工作探索了生成说话的头部或人像,其嘴唇动作与输入的语音内容同步。通常这些技术可以分为两类:基于图像的方法,为一帧或几帧裁剪的人脸制作动画;基于视频的编辑方法直接编辑目标视频剪辑。
  • 尽管如此,之前的大多数研究都没有对情感进行建模,而情感是肖像自然主义的关键因素。只有少数基于图像的作品讨论了头部生成中的情感信息。由于缺乏适当的带有情感注释的视听数据集,Vougioukas 等人没有明确地模拟情绪。简单地将情感和音频内容信息编码为单个特征,它们会产生低质量的初步结果。最近,Wang等人收集MEAD数据集,其中包含带有情绪类别和强度注释的高质量谈话头部视频。然后他们将情绪设置为一个热点条件来控制生成的人脸。然而所有这些基于图像的方法仅渲染具有固定背景或什至没有背景的轻微头部运动,这使得它们在大多数现实世界场景中不切实际。更适用的基于视频的编辑方法没有考虑情绪控制。他们大多只对嘴巴进行剪辑,并保持视频人像*的上半部分不变,无法自由控制情绪。
  • 本文提出了EVP,旨在赋予基于视频的编辑说话人脸生成以从音频中控制情绪的能力。我们使用与语音语调更匹配的情感动态为完整肖像制作动画,从而产生更生动的效果。然而实现这一目标并非易事。存在几个复杂的挑战:
    • 从音频中提取情感相当困难,因为情感信息与语音内容等其他因素紧密纠缠在一起。
    • 在合成高保真结果的同时,编辑后的人脸和目标视频的融合很困难。音频不提供任何头部姿势和头部整体运动的线索,因此从音频推断出的编辑过的头部可能与目标视频有很大的头部姿势和运动差异。
  • 为了解决上述挑战,我们设法在所提出的情绪视频肖像系统中实现了基于音频的情绪控制,包括两个关键组件,即交叉重建情绪分离和目标自适应人脸合成。为了对生成的肖像进行情感控制,我们首先在音频上提出了交叉重建的情感解纠缠技术来提取两个独立的潜在空间:
    • 一个持续时间独立的空间,它是一种与内容无关的情感编码
    • 一个与持续时间相关的空间,它编码音频的语音内容
  • 一旦提取出来,从这些潜在空间中的特征被重新组合,以产生一个新的音频表示,允许交叉重建损失被计算和优化。然而,为了实现交叉重建训练,需要提供内容相同、情绪长度相同的配对句子。这在现实的场景中几乎是无法实现的。为此,我们采用时间序列分析的经典算法动态时间扭曲(DTW)算法,帮助形成对齐的不均匀长度的语音语料库的伪训练对。
  • 遵循先前的方法,然后引入具有分解特征的音频到地标动画模块,以推断情感 2D 地标动态。由于音频中没有提供姿势信息,因此在生成的地标与目标视频中头部姿势和运动的大变化之间存在差距。为此,我们提出了目标自适应人脸合成技术来弥合 3D 空间中推断的地标和目标视频肖像之间的姿势差距。 通过精心设计的 3D 感知关键点对齐算法,我们能够将 2D 地标投影到目标视频。最后,我们训练一个 Edge-to-Video 翻译网络来生成最终的高质量情感视频肖像。大量实验证明了我们方法的优越性能和几个关键组件的有效性。
    我们的贡献总结如下:
    • 我们提出了情感视频肖像(EVP)系统,这是在基于视频的编辑谈话人脸生成方法中实现情感控制的首次尝试。
    • 我们引入了交叉重构的情绪解开技术,以提取与内容无关的情绪特征以进行自由控制。
    • 我们引入了目标自适应人脸合成,通过使生成的人脸适应具有自然头部姿势和运动的目标视频来合成高质量的人像。

2.2 相关工作

2.2.1 音频驱动的会说话的人脸生成(Audio-Driven Talking Face Generation)

  • 音频驱动的谈话头生成的任务旨在合成由音频驱动的说话人的口型同步视频。它是娱乐领域需求量很大的话题,因此长期以来一直是计算机视觉和计算机图形领域的研究兴趣。
  • 我们可以根据其结果可视化的差异将这些方法分为两类。基于图像的方法。一种模型专注于使用一个或多个帧作为身份参考来驱动裁剪的面部区域。钟等人首次提出以图像到图像的翻译方式生成口型同步视频。然后周等人和宋等人使用解开的视听表示和循环神经网络改进他们的结果。此外,Chen 等人利用地标作为中间表示并将过程分为两个阶段。然而,这些方法只能保证生成的嘴巴和音频之间的同步。结果几乎没有任何表情或头部运动。周等人成功地生成了与身份相关的头部运动,但他们的模型也无法控制情绪。
  • 至于情绪化的谈话面孔,Vougioukas 等人采用三个分离的鉴别器来分别增强合成细节、同步和逼真的表达。然而,他们的实验是在有限的规模上进行的。最近,Wang 等人提出了 MEAD 数据集,并提出通过分别对面部上部和下部的操作进行拆分来生成情绪化的说话人脸。然而,他们的结果不太现实并且仅限于面部区域。
  • 基于视频的编辑方法。全画幅视频人像不仅包含面部区域,还包含人的颈部和肩部以及背景。毫无疑问,这个设定更真实,但更难重构。因此,大多数方法只编辑嘴巴区域。 Suwajanakorn 等人通过将音频训练为具有里程碑意义的 RNN,合成奥巴马的照片般逼真的谈话视频。为头部姿势提出了重新计时模块。宋等人和Thies等人所有回归 3DMM 模型的面部表情参数,并修复嘴巴区域。虽然可以使用目标对象的视频通过这些管道呈现高质量的结果,但他们的模型很难操纵上脸,更不用说情绪了。在这项工作中,我们建议生成情感可操纵的全帧说话头。

2.2.2 条件情感生成(Conditional Emotion Generation)

  • 受到无监督图像翻译巨大成功的启发,近年来提出了几种专注于情感条件生成的方法。 丁等人设计了一种新颖的编码器-解码器架构,通过学习富有表现力和紧凑的表达代码来连续控制表达强度。 普马罗拉等人引入了一个名为 GANimation 的无监督框架,它能够通过将动作单元 (AU) 激活到各种状态来生成指定情绪类别的连续面部表情。 然而,由于缺乏明确和准确的指导,不满意的工件一直是这些方法的一个具有挑战性的问题。 本文还选择面部标志作为更可靠的中介,以生成具有高保真情绪的谈话面部序列。

2.3 方法

2.3.1 概述

图2

如图 2 所示,我们的情感视频肖像 (EVP) 算法由两个关键组件组成。 第一个是交叉重建的情感解开,它从音频信号中学习解开后的内容和情感信息。 我们使用时间对齐算法,动态时间扭曲来生成伪训练对,然后设计交叉重构损失以学习解缠结(2.3.2节)。 我们算法的第二部分是目标自适应人脸合成,它将从音频表示中推断出的面部标志适应目标视频。 我们设计了一种 3D-Aware Keypoint Alignment 算法来旋转 3D 空间中的地标,因此地标可以适应目标视频中的各种姿势和运动。 然后,我们随后使用投影的 2D 地标作为指导,通过 Edge-to-Video 网络编辑目标视频(2.3.3节)。 在下面的部分中,我们详细描述了我们算法的每个模块。

2.3.2 交叉重构的情感纠缠

为了实现基于音频的情绪控制,用于语音人脸合成,需要从音频信号中独立提取内在纠缠的情感和内容成分。与以往方法不同,它从音频信号中学习单一表示,我们提出提取两个独立的潜在音频空间:i)持续时间无关的空间,它是情绪的内容不可知编码,ii)持续时间相关的空间,它编码音频的语音内容。虽然交叉重建技术在这一任务上似乎很有前途,但它只能通过具有相同内容但不同情绪的配对音频剪辑来实现。然而,这在现实世界中几乎无法实现。为此,我们首先建立对齐的伪训练对,然后采用交叉重构训练来进行音频中的情感解纠缠。

2.3.2.1 建立伪训练对

利用一个具有不同角色在不同情绪状态下说同一语料库的视听数据集训练这个解纠缠网络。对于相同内容但不同情绪的语音速率,我们采用时间对齐算法来对齐长度不均匀的语音。
具体来说,我们使用梅尔频率倒谱系数 (MFCC)作为音频表示,并使用动态定时扭曲 (DTW)算法通过沿时间维度拉伸或收缩来扭曲 MFCC 特征向量。 给定两个内容相同但长度不同的MFCC序列SaS_aSa​和SbS_bSb​,DTW通过动态规划计算一组索引坐标对{(i, j), …},强制Sa[i]S_a[i]Sa​[i]和Sb[j]S_b[j]Sb​[j] 相似。 给定序列之间的最佳匹配是通过最小化对齐的 MFCC 特征之间的距离成本之和来实现的:
min∑(i,j)∈Pd(Sa[i],Sb[j])min\sum_{(i,j)\in P}d(S_a[i],S_b[j])min(i,j)∈P∑​d(Sa​[i],Sb​[j])

其中d是距离成本,P是对齐路径。 路径约束是,在 (i, j) 处,有效步长为 (i +1, j)、(i, j + 1) 和 (i + 1, j + 1),确保每次至少对一个信号对齐总是向前移动。 然后可以将这些对齐的音频样本用作解纠缠网络的输入以进行交叉重建。

2.3.2.2 交叉重构训练

图3

交叉重建的训练过程如图3所示。为了独立提取音频信息xi,mx_{i,m}xi,m​(内容为i,情感为m)中的情绪和内容信息,分别利用两个编码器EcE_cEc​和EeE_eEe​分别嵌入这两个信息。直观地说,当两种表示完全解缠时,我们可以通过解码器D,使用内容嵌入Ec(xi,m)E_c(x_i,m)Ec​(xi​,m)和情感嵌入Ec(xj,n)E_c(x_j,n)Ec​(xj​,n)从音频剪辑xi,m,xj,nx_{i,m},x_{j,n}xi,m​,xj,n​重建剪辑xi,nx_{i,n}xi,n​。通过利用我们之前构建的伪训练对,我们引入了两个新的样本xi,n,xj,mx_{i,n},x_{j,m}xi,n​,xj,m​作为监督重建过程。由于每个样本只能提供一种有利于交叉重建的信息,因此最终可以实现解纠缠。
我们用损失函数来监督训练过程,包括四个部分:交叉重建损失、自我重建损失、分类损失和内容损失。给定四个音频样本xi,m,xj,n,xj,m,xi,nx_{i,m},x_{j,n},x_{j,m},x_{i,n}xi,m​,xj,n​,xj,m​,xi,n​,我们将交叉重建损失表示为:

此外,我们还可以使用编码器和解码器重构原始输入,即自重构损失定义为:

为了鼓励EeE_eEe​将具有相同情绪类型的样本映射到潜在空间中的集群组中,我们添加了一个用于情绪嵌入的分类器CeC_eCe​和一个额外的分类损失,定义为:

这里,N表示不同情感类型的数量,pk表示样本是否带有情感标签k,qk表示对应的网络预测概率。 此外,我们还限制具有相同话语的样本共享相似的内容嵌入:

将这四项相加,我们得到总损失函数:

其中λcla\lambda_{cla}λcla​和λcla\lambda_{cla}λcla​分别是分类和内容损失的权重。

2.3.3 目标自适应人脸合成

为了生成输入肖像的照片般逼真的面部动画,我们首先在已有方法之后引入了一个音频到地标网络,它从解开的音频嵌入中预测地标运动。之后基于视频的编辑方法通常对记录在目标人物上的目标视频剪辑进行面部编辑。然而这将在我们的设置中导致两个挑战,改变整个面部而不仅仅是嘴巴:1)头部姿势的错位。预测的地标的头部运动可能与目标视频严重不同,并且音频中几乎没有提供任何姿势信息。 2)在合成高保真结果的同时,编辑后的人脸和目标视频的融合很困难。

为了应对这些挑战,我们提出了 3D-Aware Keypoint Alignment 算法来将我们生成的目标点与 3D 空间中的引导目标点对齐。然后我们建议将我们生成的地标与目标图像的边缘图合并。它们两者一起可以作为指导来训练 Edge-to-Video 翻译网络以获得最终结果。

2.3.3.1 音频到目标点模块

我们的第一个目标是从情感音频剪辑中学习目标点位移,因此要求面部形状或来自对齐地标lal_ala​的身份信息保持不变。 因此,我们使用多层感知器 (MLP) 提取地标标识嵌入faf_afa​,如图 2 所示。然后将 fa 与两个解开的音频嵌入 Ec(x)E_c (x)Ec​(x)和Ee(x)E_e (x)Ee​(x) 一起发送到音频到地标模块中 。 音频到地标模块通过长短期记忆 (LSTM) 网络和两层 MLP 预测地标位移 ldl_dld​。 在损失函数方面,我们最小化参考界标 l 和预测界标l^\hat ll^ 之间的距离 定义如下:
La=∣∣l^−l∣∣2=∣∣la+ld−l∣∣2L_a = ||\hat l − l||_2 = ||l_a + l_d − l||_2La​=∣∣l^−l∣∣2​=∣∣la​+ld​−l∣∣2​

2.3.3.2 3D 感知关键点对齐

为了对齐头部姿势,我们首先使用现成的方法对目标视频进行地标检测。 然后我们在3D空间中操作,其中明确定义了姿势信息。通过解决非线性优化问题,利用参数3D面模型来恢复来自2D地标的3D参数。 利用3D几何和表达式参数,我们得到一组姿势不变的3D地标。 姿势参数P包含3×3旋转矩阵R,2 个平移系数 t 和 1 个缩放系数 s。 1个缩放系数s。 通过用目标视频中的检测到的地标替换预测地标的姿势参数,我们获得适应的3D关键点,然后将它们投影到具有比例划分投影的图像平面:
lp=st∗Pr∗Rt∗Lp3d+ttl_p = st_ ∗ P _r ∗ R_t ∗ L^{3d}_{p} + t_tlp​=st∗​Pr​∗Rt​∗Lp3d​+tt​
其中$ l_p$ 是投影的 2D 地标,PrP_rPr​ 是正交投影矩阵[[1,0,0],[0,1,0]][[1,0,0],[0,1,0]][[1,0,0],[0,1,0]],由于几何和表情参数保持不变,投影的地标 lpl_plp​ 自然地与预测的地标共享一致的身份和面部表情。 而头部姿势、比例和位置设置为与目标视频帧中的人脸相同。
注意,我们只使用三维模型来进行姿态对齐。另一种方法是直接预测面部重建的三维面部参数。然而,在我们的工作中,不准确的面部表情并不足以代表详细的情绪。

2.3.3.3 从边缘到视频的翻译网络

给定自适应的地标和目标框架,我们将地标和从该框架中提取的边缘地图合并为一个引导地图,用于肖像生成。特别地,我们使用边缘检测算法提取人脸区域外的边,并将原始地标替换为我们对齐的地标。然后,我们连接相邻的面部地标,创建一个人脸草图。
我们对边缘到视频的翻译网络采用了一个条件GAN体系结构。生成器部分G被设计为从粗到细的结构,而鉴别器部分被设计为保证生成帧的质量和连续性。

2.4 实验总结

3.代码复现

3.1 下载之初

前往1.2节下载github源码
前往test下载训练好的模型,解压(非常大)
前往train下载训练必需的文件,解压

源代码结构如上图所示

  • train是训练模型所需的文件夹
  • audio2lm是音频生成地标对应文件
  • lm2video是地标生成视频对应文件
  • demo是readme.md里面的图片存储位置

3.2 配置环境(linux下)

  • 需要提前安装cuda
  • 安装python包
pip install -r requirements.txt

3.3 训练模型

因代码本身问题无法运行

3.4 测试模型

下载ffmpeg
随即运行即可

项目-2.EVP论文与代码解析(Audio-Driven Emotional Video Portraits)相关推荐

  1. ECCV2020|图像重建(超分辨率,图像恢复,去雨,去雾等)相关论文汇总(附论文链接/代码/解析)

    转载自https://zhuanlan.zhihu.com/p/180551773 原帖地址: ECCV2020|图像重建/底层视觉(超分辨率,图像恢复,去雨,去雾,去模糊,去噪等)相关论文汇总(附论 ...

  2. Adaptive Personalized Federated Learning 论文解读+代码解析

    论文地址点这里 一. 介绍 联邦学习强调确保本地隐私情况下,对多个客户端进行训练,客户端之间不交换数据而交换参数来进行通信.目的是聚合成一个全局的模型,使得这个模型再各个客户端上读能取得较好的成果.联 ...

  3. Contextual Transformer Networks for Visual Recognition论文以及代码解析

    Contextual Transformer Networks for Visual Recognition 1. Abstract 2. Introduction 3. Approach 3.1. ...

  4. EfficientNet-V2 论文以及代码解析

    参看视频:论文解析 论文地址:论文地址 源码地址:tensorflow官方源码 pytorch代码地址:pytorch代码 这里的代码解析参考的是博主噼里啪啦的源码,下面对EfficientNetV2 ...

  5. Decoupled Knowledge Distillation论文阅读+代码解析

    本文来自2022年CVPR的文章,论文地址点这里 一. 介绍 知识蒸馏(KD)的通过最小化师生预测对数之间的KL-Divergence来传递知识(下图a).目前大部分的研究注意力都被吸引到从中间层的深 ...

  6. Gradient Episodic Memory for Continual Learning 论文阅读+代码解析

    一. 介绍 在开始进行监督学习的时候我们需要收集一个训练集 D t r = { ( x i , y i ) } i = 1 n D_{tr}=\{(x_i,y_i)\}^n_{i=1} Dtr​={( ...

  7. ONLINE CORESET SELECTION FOR REHEARSAL-BASED CONTINUAL LEARNING 论文阅读+代码解析

    本篇依旧是针对持续学习的工作,也是FedWEIT的团队进行的研究,论文地址点这里 一. 介绍(简单描述) 在持续学习中为了应对灾难性遗忘,常见的方法有基于正则化.基于记忆重塑以及基于动态架构.其中基于 ...

  8. Data-Free Knowledge Distillation for Heterogeneous Federated Learning论文阅读+代码解析

    论文地址点这里 一. 介绍 联邦学习具有广阔的应用前景,但面临着来自数据异构的挑战,因为在现实世界中用户数据均为Non-IID分布的.在这样的情况下,传统的联邦学习算法可能会导致无法收敛到各个客户端的 ...

  9. 3D目标检测 | PointPillars论文和代码解析

    作者丨周威@知乎 来源丨https://zhuanlan.zhihu.com/p/357626425 编辑丨3D视觉工坊 1 前言 本文要解析的模型叫做PointPillars,是2019年出自工业界 ...

  10. Personalized Federated Learning with Moreau Envelopes论文阅读+代码解析

    (好久没更新文章啦,现在开学继续肝) 论文地址点这里 一. 介绍 尽管FL具有数据隐私和减少通信的优势,但它面临着影响其性能和收敛速度的主要挑战:统计多样性,这意味着客户之间的数据分布是不同的(即非i ...

最新文章

  1. php tr 用法,Linux_Linux系统中tr命令删除和替换文本字符的基本用法,通过使用 tr,您可以非常容易 - phpStudy...
  2. Pandas matplotlib 无法显示中文 Ubuntu16.04
  3. 【人物】乔布斯:A级人才的自尊心不需要你呵护
  4. 陝西省2021年高考成绩查询,2021年高考陕西省各批次录取分数线预测,你会感到意外吗?...
  5. vue 中provide的用法_聊聊Vue中provide/inject的应用详解
  6. 运用扩展管理器完成flash图层的合并
  7. 逻辑表达式——黑纸白纸
  8. SAP WM The Link Between TR and TO Document
  9. 如何减少silverlight XAP包的尺寸
  10. pathseparator_Java文件分隔符,separatorChar,pathSeparator,pathSeparatorChar
  11. 解决电脑屏幕显示器亮度无法调节可能与远程工具向日葵有关
  12. jmeter json提取器和正则表达式提取器
  13. PLM系统的经济收益
  14. OOP思想--封装和继承
  15. [dataTables使用的坑]requested unknown parameter 'XXX' for row xx, column xx
  16. strut2框架搭建
  17. 夫妻给一周岁女儿喂农药后双双自杀
  18. Python 从函数 def 到类 Class
  19. Django项目骨架与常见配置修改
  20. 【原创】机器学习一般流程总结

热门文章

  1. 99%的人都能看懂的MQ补偿机制
  2. 如何看待「男人四不娶(护士,幼师,银行女)这种说法?
  3. 计算机电脑设置音量,电脑声卡设置步骤【图文教程】
  4. 毕业生签约时必须知道三件事:三方协议、干部身份、派遣证
  5. 毫米波雷达测距/测速原理介绍_小七自学笔记
  6. [渝粤教育] 西南石油大学 普通地质学 参考 资料
  7. GPS原始信号数据解析
  8. 重置Win10网络网卡命令
  9. 微信公众号涨粉攻略大全及实战
  10. medsem-中介效应:基于结构方程模型SEM的中介效应分析