实现细节
我们从互联网收集了约 250 小时的说话人头像视频,结合 HDTF 和 VFHQ 数据集进行模型训练。由于 VFHQ 数据集中缺乏音频,仅在第一阶段使用。我们使用 MediaPipe 获取脸部边界框(bbox)。通过 face landmark 提取每帧的 6 *度头部姿态并计算帧间的旋转角度,标记头部旋转速度。
视频剪辑被调整为 512×512 的分辨率并裁剪。在第一阶段,分别从视频片段中采样参考图像和目标帧,训练骨干网络和 ReferenceNet,批量大小为 48。在第二和第三阶段,生成视频的长度 f f f 设为 12 帧,运动帧数量 n n n 设为 4,批量大小为 4。额外特征数量 m m m 设为 2。所有阶段的学习率均为 1e-5。
在推理过程中,我们使用 DDIM 的采样算法,生成视频片段需要 40 步,并为每帧分配一个恒定的速度值。方法的计算时间约为 15 秒 处理一批( f = 12 f = 12 f=12 帧)。
数据预处理流程
- 标注包括以下步骤:
- 基于扩展的脸部边界框对视频进行裁剪,并将每个视频片段转换为 30 FPS。
- 使用 MediaPipe 确定所有帧中的脸部边界框,从而划定面部区域。
- 使用预训练的 Wav2Vec 模型提取音频嵌入。
- 确定角色的 6 *度(6-DoF)头部姿态,以计算逐帧的旋转速度。
实验设置
为进行方法比较,我们将 HDTF 数据集划分为 90% 的训练集和 10% 的测试集,确保两者之间没有角色 ID 的重叠。此外,为了在更多变的场景中评估方法,我们从收集的互联网视频数据集中提取了 1000 个视频片段,每段约 4 秒长。这些片段主要展示了丰富的表情视频,其中包括大量唱歌场景。与 HDTF 数据集相比,这些视频在面部表情和头部动作范围上具有更广泛的多样性。
我们将方法与以下一些工作进行了比较:Wav2Lip、SadTalker、DreamTalk 和 MakeItTalk。此外,使用 Diffused Heads 的公开代码生成了结果,但由于其模型在仅包含绿色背景的 CREMA 数据集上训练,生成结果表现不佳,并且生成帧中存在累积误差。因此,我们仅与 Diffused Heads 方法进行定性比较。对于 DreamTalk,我们使用原作者规定的说话风格参数。
为了证明我们方法的优越性,我们使用以下评估指标:
- Fréchet Inception Distance (FID):用于评估生成帧的质量。
- 面部相似度 (F-SIM):通过提取和比较生成帧与参考图像的面部特征,评估结果的身份保留情况。注意,单一参考图像可能导致 F-SIM 得分过高(例如某些方法仅生成嘴部区域,其他部分与参考图像相同)。因此,我们将 F-SIM 视为基于总体的参考指标,更接近相应的真实值(GT)表示性能更好。
- Fréchet Video Distance (FVD):用于视频级别的评估。
- SyncNet 得分:评估唇部同步质量,这是说话人头像应用中的关键方面。
- Expression-FID (E-FID):用于评估生成视频中面部表情的表现力。具体而言,使用面部重建技术提取表情参数,计算这些表情参数的 FID,量化生成视频与真实数据集之间的表情差异。
定性评估
- 与早期方法对比
- Wav2Lip 在仅使用单一参考图像作为输入时,通常会生成模糊的嘴部区域,并且视频表现为静态头部姿态和极少的眼睛运动。
- DreamTalk 使用的样式剪辑可能会扭曲原始面孔,同时限制面部表情和头部动作的动态性
- 与 SadTalker 和 DreamTalk 相比,本文方法能够生成更大范围的头部运动和更动态的面部表情
- 跨风格头像生成
- 参考图像来自 Civitai,由不同的文本到图像(T2I)模型生成,包括真实风格、动漫风格和 3D 风格。相同的语音音频输入被用于为这些角色生成动画,在不同风格中达到了大致一致的唇部同步效果。
- 参考图像来自 Civitai,由不同的文本到图像(T2I)模型生成,包括真实风格、动漫风格和 3D 风格。相同的语音音频输入被用于为这些角色生成动画,在不同风格中达到了大致一致的唇部同步效果。
- 丰富的面部表情与动作
- 具有显著音调特征的音频时能够生成更丰富的面部表情和动作。例如,第三行的例子表明,高音调的语音会引发角色更为强烈和生动的表情。此外,利用运动帧可以扩展生成视频的时长,我们能够根据输入音频的长度生成更长的视频。如图 5 和图 6 所示,我们的方法在大幅运动的情况下仍能保持角色身份的一致性。
- 具有显著音调特征的音频时能够生成更丰富的面部表情和动作。例如,第三行的例子表明,高音调的语音会引发角色更为强烈和生动的表情。此外,利用运动帧可以扩展生成视频的时长,我们能够根据输入音频的长度生成更长的视频。如图 5 和图 6 所示,我们的方法在大幅运动的情况下仍能保持角色身份的一致性。
定量评估
- 图 3 展示了互联网数据集中包含更广泛的面部表情和更大的头部运动范围,同时伴随参考角色的多样姿态。这种多样性可能对性能指标产生负面影响,如表 1 所示。但本文结果在视频质量评估中具有显著优势,表现为较低的 FVD 得分。此外,本文方法在单帧质量上也优于其他方法,表现在改进的 FID 得分上。尽管 Wav2Lip 由于使用 SyncNet 作为判别器在 SyncNet 信心分数上表现最佳,但本文方法在生成生动面部表情方面表现卓越,体现于 E-FID 分数上。进一步分析显示,即使在不使用 250 小时数据集的情况下,本文的模型在 FVD 和 E-FID 等指标上仍表现出色。额外数据有助于增强视频内容的动态性和生成更丰富的表情。
消融实验
速度层的影响
速度层旨在确保连续生成的视频片段之间头部运动频率的一致性。在推理过程中,为每帧分配一个恒定的速度值。实验表明,速度层显著提高了头部运动的稳定性,与未使用速度层的基线相比,“速度方差”和“平均速度方差”均显著降低。语音驱动的场景速度分配为 0.1-1.0,而唱歌场景速度更高(1.0-1.3),以适应更快的头部动作。超过 1.5 的速度可能导致动作过快和抖动。
- “无速度”(No Speed)表示未使用速度层的模型结果。
- “速度方差”(Velocity Variance)反映了单个视频序列内旋转速度的一致性。
- “平均速度方差”(VMV)测量不同片段之间头部旋转速度均值的变化。
面部定位器的控制效果
面部定位器将脸部区域作为输入,并定义面部动作的许可范围,从而影响头部运动的范围。图 7 显示(白色是指定的人脸框,紫色是生成视频中检测的人脸框),当输入适当大小的脸部区域时,角色仅表现出最小的头部运动;而输入更广的区域时,允许角色在说话过程中有更大范围的头部摆动,输入增加高度的区域则促进点头动作。
此外,输入均匀的白色掩膜未提供具体指导,允许在任意位置生成面部。紫色边框可能超出预定的白色面部区域,表明面部定位器仅对头部动作施加弱约束,允许超越其边界的运动。