项目简介
GeneFace可以通过音频来驱动3D的人脸合成唇语讲话视频,是一种通用且高保真度的基于 NeRF 的说话人脸生成方法,可以生成与各种领域外音频相对应的自然结果。具体来说,GeneFace在一个庞大的唇语语料库上学习了一个变分运动生成器,并引入了一个领域自适应后处理网络来校准结果。此外,还学习了一个基于 NeRF 的渲染器,其条件是预测的面部运动。提出了一种头部感知的躯干 NeRF 以消除头部和躯干之间的分离问题。大量实验证明,与先前的方法相比,GeneFace的方法实现了更加通用和高保真度的说话人脸生成。
推理流程
使用方法
在这个发布版本中提供了 GeneFace 的预训练模型和处理过的数据集,以便快速开始。接下来将展示如何在四个步骤中推理预训练模型。如果您想要对自己的目标人员视频训练 GeneFace,请参考以下章节(准备环境,准备数据集和训练模型)。
- 步骤1:按照 docs/prepare_env/install_guide.md 中的指南创建一个名为 geneface 的新 Python 环境。
- 步骤2:从发布版中下载 lrs3.zip 和 May.zip 并解压到 checkpoints 目录中。
- 步骤3:按照 docs/process_data/process_target_person_video.md 中的指南处理 May.mp4 的数据集。然后您会看到一个名为 data/binary/videos/May/trainval_dataset.npy 的输出文件。
完成以上步骤后,您的 checkpoints 和 data 目录的结构应该如下所示:
> checkpoints
> lrs3
> lm3d_vae_sync
> syncnet
> May
> lm3d_postnet_sync
> lm3d_radnerf
> lm3d_radnerf_torso
> data
> binary
> videos
> May
trainval_dataset.npy
- 步骤4. 运行以下脚本:
bash scripts/infer_postnet.sh
bash scripts/infer_lm3d_radnerf.sh
# bash scripts/infer_radnerf_gui.sh # you can also use GUI provided by RADNeRF
您可以在 infer_out/May/pred_video 目录中找到一个名为 zozo.mp4 的输出视频。
使用其他目标人物的视频训练 GeneFace
除了此存储库中提供的 May.mp4 之外,GeneFace还提供了在GeneFace实验中使用的其他 8 个目标人物视频。您可以在此链接下载这些视频。要在名为.mp4 的新视频上进行训练,您应将其放置在 data/raw/videos/ 目录下,然后在 egs/datasets/videos/创建一个新文件夹,并根据提供的示例文件夹 egs/datasets/videos/May 修改配置文件。
您还可以录制自己的视频,并为自己训练一个独特的 GeneFace 模型!