论文:Efficient Emotional Adaptation for Audio-Driven Talking-Head Generation
代码:https://yuangan.github.io/eat/
出处:ICCV2023
特点:能引入表情,但无法眨眼,需要 音频 + pose + 图片 同时作为输入来合成数字人
Audio-driven talking head 生成任务中,如果可以引入表情,则会提升数字人的保真性和多样性,但这样就会需要考虑很多方便,如头部、表情、声音、动作等,加大生成任务的难度
GC-AVT 和 EAMM 算法使用 driven emotional video 和 pose-guiding video 来同时驱动视频的生成
但现有的方普遍有以下两个问题:
为了解决上面这些问题,就需要能够方便且高效的将预训练好的无表情 talking head 模型迁移到 emotional talking head 模型,且值需要很轻量的 emotional guidance,如图 1 所示。
因此,本文提出了一个高效的两阶段网络:
1、隐空间关键点
给定一个 talking head 图像帧 i i i,作者会使用无监督的方法学习 3D 隐形关键点 K i K_i Ki?,具体包括以下四个部分:
这四部分组合方式如下:
一般来说,基于这些 3D 隐空间关键点,RePosition Network (RePos-Net) [56] 可以将一个人的面部表情迁移到另一个人的面部,如图 3 所示,但是对眉毛、嘴角等没法很好的迁移,所示,作者做了三点改进:
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} Si?w:i+w? 和 pose features P i ? w : i + w P_{i-w:i+w} Pi?w: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} Ai?w: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?,这有助于减少数据的维度并去除那些不必要的信息。这样一来,就可以根据音频特征来预测面部的三维表情变形了。
Emotional Guidance:
一个直接的想法是利用可学习的引导条件来生成带有情感的 talking head。作者认为每种情绪类型都属于潜在空间中的一个独特子域。正如图2(b)所示,使用了一个映射网络 M 来提取带有 latent code z ∈ U 16 z ∈ U^{16} z∈U16 的 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 E′i 代表情感表达形变, 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 E′i?更新 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 了:
如图 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 的图像编码器从预测的说话面部提取图像嵌入,使用其文本编码器从描述中提取文本嵌入。然后,迭代优化图像和文本嵌入之间的距离,以使生成的说话面部与输入文本对齐。
作者的 video 帧率都为 25FPS,audio 采样率都为 16kHz,视频大小为 256x256,mel-spectrogram window length 和 hop length 为 640
EAT 中 keypoints 的个数是 15
数据集: