EMO论文解读 阿里最新头像视频生成

在这里插入图片描述

在弱条件下使用音视频扩散模型生成富有表现力的肖像视频(音频+图像=动态视频)

论文重点效果

  1. 通过关注音频Prompt和面部动作之间的动态和微妙关系来解决增强头部说话视频生成问题
  2. 解决了传统技术的局限性:无法捕捉人类表情的全部范围和个人面部风格的独特性
  3. 结果:
    (1) 能够制作的口语视频,制作各种风格的歌唱视频,在表现力和真实感方面明显优于现有的方法
    (2) 能够捕捉广泛的真实面部表情,包括微表情等,并促进自然的头部运动,使得生成的视频有较强的表现力
    (3) 可确保整个视频中的无缝帧过渡和一致的身份保留,从而产生高度表现力和逼真的动画

传统技术的问题

  • 传统方法通常会对最终视频输出施加限制,如,使用3D模型来限制面部关键点,或者则从基础视频中提取头部运动序列来指导整体运动。
    虽然这些限制降低了视频生成的复杂性,但它们也往往限制了最终面部表情的丰富性和自然度
    音频和面部表情之间的映射所固有的,该问题会导致模型生成的视频不稳定,表现为面部扭曲或视频帧之间抖动,严重时甚至可能导致视频完全崩溃
    音频驱动的头部说话生成音频驱动的头部头部生成可以大致分为两种方法:基于视频的方法和单图像。
    (1) 基于视频的头部特写生成允许对输入视频片段进行直接编辑。 例如,Wav2Lip使用音频-唇形同步鉴别器,根据音频重新生成视频中的唇部运动。它的局限性在于依赖于基础视频,导致头部运动固定并且仅产生嘴巴运动,这会限制真实感。
    (2) 对于单图像头部特写生成,参考照片用于生成反映照片外观的视频。另外,通过学习混合形状和头部姿势来独立生成头部运动和面部表情,然后使用它们创建 3D 面部网格,作为指导最终视频帧生成的中间表示。类似方法还包括采用 3D Morphable Model (3DMM) 作为生成头部说话视频的中间表示。
    (3) 这些方法的一个常见问题是 3D 网格的表示能力有限,这限制了生成视频的整体表现力和真实感。此外,这两种方法都基于非扩散模型,这进一步限制了生成结果的性能。

技术方案

在这里插入图片描述

算法框架主要由两个阶段组成。

  • 在称为帧编码的初始阶段,ReferenceNet 用于从参考图像和运动帧中提取特征。
  • 随后,在扩散过程阶段,预训练的音频编码器处理音频嵌入。
  • 面部区域掩模与多帧噪声集成以控制面部图像的生成。
  • 接下来是使用主干网络来促进去噪操作。在主干网络中,应用了两种形式的注意力机制:参考注意力和音频注意力。这些机制分别对于保留角色的身份和调节角色的动作至关重要。
  • 此外,时间模块用于操纵时间维度,并调整运动速度。

最终目标:给定人物肖像的单个参考图像,可以生成与输入语音音频片段同步的视频,保留自然的头部运动和生动的表达,与所提供的声音音频的音调变化相协调。另外,在技术实现上通过创建一系列无缝的级联视频,有助于生成具有一致身份和连贯运动的长时间说话的肖像视频。
网络的流程(如上图),骨干网络获取多帧噪声的潜在输入,并尝试在每个时间步将它们去噪到连续的视频帧,骨干网络具有与原始的类似的UNet结构配置(StableDiffusion1.5)。总结为4点:

  • 与之前的工作类似,为了确保生成的帧之间的连续性,骨干网络嵌入了时间模块。
  • 为了保持生成帧中肖像的ID一致性,部署了一个与Backbone并行的称为ReferenceNet的UNet结构,它输入参考图像以获得参考特征。
  • 为了驱动角色说话动作,利用音频层对语音特征进行编码。
  • 为了使说话角色的运动可控且稳定,使用面部定位器和速度层来提供弱条件。

骨干网络

对于主干网络中与SD1.5的区别,首先没有使用Prompt嵌入特征;因此,将SD1.5 UNet 结构中的交叉注意力层调整为参考注意力层。这些修改后的层现在采用 ReferenceNet 中的参考特征作为输入,而不是文本嵌入。

音频编码层

语音中的发音和语气是生成人物运动的主要驱动标志。通过预训练 wav2vec 的各个块从输入音频序列中提取的特征被连接起来,生成第 f 帧的音频表示嵌入 A(f) 。 然而,动作可能会受到未来/过去音频片段的影响,例如说话前张嘴和吸气。为了解决这个问题,通过连接附近帧的特征来定义每个生成帧的语音特征:
在这里插入图片描述

m是一侧附加特征的数量。为了将语音特征注入到生成过程中,添加了音频注意层,在每个参考注意层之后在潜在code和 Agen之间执行交叉注意机制。

参考网络

ReferenceNet 具有与 Backbone Network 相同的结构,用于从输入图像中提取详细特征。 鉴于 ReferenceNet 和 Backbone Network 都源自相同的原始 SD 1.5 UNet 架构,这两种结构在某些层生成的特征图可能会表现出相似性 因此,这有助于主干网络集成 ReferenceNet 提取的特征。先前的研究强调了利用类似结构在保持目标对象身份一致性方面的深远影响。所以在本文中,ReferenceNet 和 Backbone Network 都继承了原始 SD UNet 的权重。目标人物的图像被输入到ReferenceNet中,以从自注意力层中提取参考特征图输出。在主干去噪过程中,相应层的特征使用提取的特征图进行参考注意层。 由于ReferenceNet主要设计用于处理单个图像,因此它缺少 Backbone中的时间层。

时间模块

大多数工作尝试将时间混合层插入到预训练的文本到图像架构中,以促进连续视频帧之间时间关系的理解和编码。 通过这样做,增强的模型能够保持帧之间的连续性和一致性,从而生成平滑且连贯的视频流。 根据 AnimateDiff 的架构概念,文章将自注意力时间层应用于帧内的特征。
具体来说,将输入特征图 x ∈ R b×c×f×h×w 重新配置为形状 (b × h × w) × f × c。 这里,b代表批量大小,h和w表示特征图的空间维度,f是生成帧的数量,c是特征维度。 值得注意的是,将自注意力引导到时间维度 f 上,以有效捕获视频的动态内容。 时间层被插入到骨干网络的每个分辨率层中。 当前大多数基于扩散的视频生成模型本质上受到其设计的限制,无法产生预定数量的帧,从而限制了扩展视频序列的创建。 这种限制在头部说话视频的应用中尤其有影响,其中足够的持续时间对于清晰表达有意义的讲话至关重要。 一些方法采用前一剪辑末尾的帧作为后续生成的初始帧,旨在保持串联片段之间的无缝过渡。 受此启发,作者合并了最后 n 帧,称为先前生成的剪辑中的“运动帧”,以增强跨剪辑的一致性。 具体来说,这 n 个运动帧被输入到 ReferenceNet 中以预先提取多分辨率运动特征图。 在主干网络内的去噪过程中,将时间层输入与沿帧维度匹配分辨率的预先提取的运动特征合并。 这种简单的方法有效地保证了各个剪辑之间的连贯性。 为了生成第一个视频剪辑,将运动帧初始化为零图。
应该注意的是,虽然骨干网络可能会迭代多次以对噪声帧进行去噪,但目标图像和运动帧仅连接一次并输入到 ReferenceNet 中。 因此,提取的特征在整个过程中被重复使用,确保推理期间的计算时间不会大幅增加。

脸部定位和Speed层

时间模块可以保证生成帧的连续性和视频剪辑之间的无缝过渡,但是由于独立的生成过程,它们不足以确保生成的角色在剪辑中运动的一致性和稳定性。传统的做法是使用一些信号来控制角色运动,然而,由于它们的自由度有限,使用这些控制信号可能不能很好地创建生动的面部表情和动作,并且在训练阶段标记不充分。 捕捉全方位的面部动态。此外,相同的控制信号可能会导致不同人物之间的差异,无法考虑个体的细微差别。生成控制信号可能是一种可行的方法,但产生逼真的运动仍然是一个挑战。因此,作者选择“弱”控制信号方法。 具体来说,如图 2 所示,使用掩模 M 作为面部区域,其中包含视频剪辑的面部边界框区域。使用面部定位器,它由轻量级卷积层组成,旨在对边界框掩模进行编码。然后将生成的编码掩码添加到噪声潜在表示中,然后再馈送到骨干网中。这样就可以通过mask来控制角色脸部应该在哪里生成的。 然而,由于在单独的生成过程中头部运动频率存在变化,因此在剪辑之间创建一致且平滑的运动具有挑战性。为了解决这个问题,将目标头部运动速度纳入到生成中。 更准确地说,考虑帧 f 中的头部旋转速度 wf 并将速度范围划分为 d 个离散速度buckets,每个速度buckets代表不同的速度级别。与音频层中使用的方法类似,每帧的头部旋转速度嵌入由下式给出:
在这里插入图片描述

并且 Sf ∈Rb×f×c 速度随后由 MLP 处理以提取速度特征。在时间层内,将 S f 重复为形状 (b × h × w) × f × c 速度,并实现一种交叉注意力机制,该机制在时间维度 f 上的速度特征和 eshape 特征图之间运行。通过这样做并指定目标速度,可以在不同的剪辑中同步生成的角色头部的旋转速度和频率。结合面部定位器提供的面部位置控制,最终的输出既稳定又可控。 还应该注意的是,指定的面部区域和指定的速度并不构成强控制条件。 在人脸定位中,由于M是整个视频片段的联合区域,表示允许面部运动的相当大的区域,从而保证头部不限于静态姿势。 对于速度层,准确估计人体头部旋转速度以进行数据集标记的困难意味着预测的速度序列本质上是有噪声的。 因此,生成的头部运动只能近似指定的速度水平。 这种限制激发了设计速度桶框架。

训练策略

训练过程分为三个阶段。

  • 第一阶段是图像预训练,其中 Backbone Network、ReferenceNet 和 Face Locator被标记到训练中,在此阶段,Backbone 将单个帧作为输入,而 ReferenceNet 处理来自同一帧的不同的、随机选择的帧。Backbone 和 ReferenceNet 都从原始 SD 初始化权重。
  • 在第二阶段,引入视频训练,其中结合了时间模块和音频层,从视频剪辑中采样n+f个连续帧,开始的n帧是运动帧。 时间模块从AnimateDiff 初始化权重。
  • 在最后一个阶段,速度层被集成,在这个阶段只训练时间模块和速度层。 这一战略决策故意从训练过程中省略音频层。 因为说话角色的表情、嘴部动作和头部运动的频率主要受音频影响。因此,这些元素之间似乎存在相关性,可能会提示模型根据速度信号而不是音频来驱动角色的运动。实验结果表明,速度层和音频层的同时训练会破坏音频对角色运动的驱动能力。

实验设置

数据集

  • 互联网上收集了大约250小时的头部说话视频,并用 HDTF和 VFHQ 数据集进行补充来训练模型。由于 VFHQ 数据集缺乏音频,因此仅在第一个训练阶段使用。
  • 应用 MediaPipe 人脸检测框架来获取面部边界框区域。 通过使用面部标志提取每帧的 6-DoF 头部姿势来标记头部旋转速度,然后计算连续帧之间的旋转度。
  • 视频剪辑被调整大小并裁剪为 512 × 512。
  • 在第一个训练阶段,分别从视频剪辑中采样参考图像和目标帧,训练 Backbone Network 和 ReferneceNet,批量大小为 48
  • 在第二和第三阶段,设置f = 12作为生成的视频长度,运动帧数设置为n = 4,采用bath size 4进行训练。
  • 遵循 Diffused Heads ,附加特征数 m 设置为 2。 所有阶段的学习率均设置为1e-5。
  • 在推理过程中,使用DDIM的采样算法来生成40步的视频剪辑,为每一帧生成分配一个恒定的速度值。 本方法的耗时约为 15 秒(f = 12 帧)。

评估指标

  • 利用 Fréchet Inception Distance (FID) 来评估生成帧的质量。
  • 为了衡量结果中身份的保留,通过提取和比较生成的帧和参考图像之间的面部特征来计算面部相似度(FSIM) 值得注意的是,使用单个不变的参考图像可能会产生看似完美的 F-SIM 分数。 某些方法 可能只生成嘴部区域,而使帧的其余部分与参考图像相同,这可能会扭曲结果。 因此,文章将 F-SIM 视为群体参考指数,更接近相应的地面实况 (GT) 值,表明性能更好。
  • 采用 Fréchet Video Distance (FVD) 进行视频级评估。
  • SyncNet 分数用于评估唇形同步质量,这是头部说话应用的一个关键方面。
  • 为了评估生成视频中面部表情的表现力,引入了 Expression-FID (E-FID) 指标的使用。这涉及通过面部重建技术提取表情参数。 随后,计算这些表情参数的 FID,以定量测量合成视频中的表情与真实视频中的表情之间的差异。

结论

  • 图3:当提供单个参考图像作为输入时,Wav2Lip 通常会合成模糊的嘴部区域并生成以静态头部姿势和最小眼球运动为特征的视频。 就 DreamTalk 而言,作者提供的风格剪辑可能会扭曲原始面孔,也会限制面部表情和头部运动的活力。 与 SadTalker 和 DreamTalk 相比,文章技术能够生成更大范围的头部运动和更动态的面部表情。
    在这里插入图片描述

  • 图4:各种肖像风格的头像视频的生成。来自 Civitai 的参考图像由不同的文本到图像 (T2I) 模型合成,包含不同风格的角色,即现实、动漫和 3D。 这些角色使用相同的声音音频输入进行动画处理,从而在不同风格之间产生大致一致的唇形同步。尽管作者模型仅在真实视频上进行训练,但它展示了为各种肖像类型制作头部说话视频的熟练程度。
    在这里插入图片描述

  • 图5:在处理具有明显音调特征的音频时能够生成更丰富的面部表情和动作。 例如,第三行的例子表明,高音调会引发角色更强烈、更生动的表情。 此外,利用运动帧可以扩展生成的视频,可以根据输入音频的长度生成持续时间较长的视频。
    在这里插入图片描述

  • 图 5 图 6 :即使在大幅运动中也能在扩展序列中保留角色的身份。
    在这里插入图片描述

  • 表 1 :结果表明在视频质量评估方面具有显着优势,较低的 FVD 分数就证明了这一点。 此外,在单个帧质量方面优于其他方法,如改进的 FID 分数所示。 尽管在 SyncNet 指标上没有获得最高分,但在生成生动的面部表情方面表现出色,如 E-FID 所示。
    在这里插入图片描述

参考

Paper:https://arxiv.org/pdf/2402.17485.pdf
Github:https://github.com/HumanAIGC/EMO
Demo:https://humanaigc.github.io/emote-portrait-alive/

记得点赞关注,更多技术跟进中~
知乎:二度

  • 34
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值