AI开发平台MODELARTS-Wav2Lip训练基于DevServer适配PyTorch NPU训练指导(6.3.907):Step5 训练Wav2Lip模型

时间:2024-12-09 20:36:35

Step5 训练Wav2Lip模型

  1. 准备预训练模型。下载需要使用的预训练模型。
    • 人脸检测预训练模型,下载链接
    • 专家唇形同步鉴别器,下载链接 ,此链接是官方提供的预训练模型。训练Wav2Lip模型时需要使用专家唇形同步鉴别器,用户可以用自己的数据训练,也可以直接使用官方提供的预训练模型。
  2. 处理初始视频数据集。
    1. 将下载好的人脸检测预训练模型修改名字为s3fd.pth,上传到/home/ma-user/Wav2Lip/face_detection/detection/sfd/s3fd.pth目录。
    2. 下载LRS2数据集。数据集文件夹结构如下:
      ├── LRS2_partly
      |     ├── main
      |     │   ├── five-digit numbered video IDs ending with (.mp4)
      |     │   ├── 00001.mp4
      |     │   ├── 00002.mp4
    3. 对数据集进行预处理。具体命令如下。
      python preprocess.py --data_root ./LRS2_partly --preprocessed_root lrs2_preprocessed/

      data_root参数为原始视频根目录,preprocessed_root参数为处理后生成的数据集目录。

      处理后数据目录如下所示。
      preprocessed_root (lrs2_preprocessed)
       ├── main
       |     ├── Folders with five-digit numbered video IDs(00001)
       |     │   ├── *.jpg
       |     │   ├── audio.wav
       |     ├── 00001
       |     │   ├── *.jpg
       |     │   ├── audio.wav
    4. 将LRS2文件列表中的.txt文件(train、val)放入该filelists文件夹中。
      图2 filelists文件夹

      train.txt和val.txt内容参考如下,为处理后视频数据的目录名字。

      图3 train.txt和val.txt内容
  3. 训练专家唇形同步鉴别器。
    如果使用LRS2数据集,可选择跳过此步骤。如果使用自己的数据集,训练命令参考如下。
    python color_syncnet_train.py --data_root ./lrs2_preprocessed/main/ --checkpoint_dir ./savedmodel/syncnet_model/ --checkpoint_path ./checkpoints/lipsync_expert.pth

    参数说明:

    • --data_root :处理后的视频数据目录,与train.txt内容拼接后得到单个数据目录,例如:lrs2_preprocessed/main/00001。
    • --checkpoint_dir :此目录用于保存模型。
    • -checkpoint_path :(可选)可基于此目录的lipsync_expert模型继续进行训练,如果重新训练则不需要此参数。

    默认每10000 step保存一次模型。

  4. 训练Wav2Lip模型。

    训练Wav2Lip模型时需要使用专家唇形同步鉴别器。可以使用上一步3中的训练结果,也可以直接下载官方提供的预训练权重来使用。

    具体训练命令如下。
    python wav2lip_train.py --data_root  ./lrs2_preprocessed/main/ --checkpoint_dir ./savedmodel --syncnet_checkpoint_path ./checkpoints/lipsync_expert.pth --checkpoint_path ./checkpoints/wav2lip.pth

    首次训练会进行模型评估,默认为700 step,请耐心等待,结束之后会进行正式训练。

    参数说明:

    • --data_root :处理后的视频数据目录,与train.txt内容拼接后得到单个数据目录,例如:lrs2_preprocessed/main/00001。
    • --checkpoint_dir :此目录用于保存模型。
    • --syncnet_checkpoint_path :专家鉴别器的目录。
    • --checkpoint_path :(可选)可基于此目录的Wav2Lip模型继续进行训练,如果重新训练则不需要此参数。

    默认每3000 step保存一次模型。

    • 专家鉴别器的评估损失应降至约 0.25,Wav2Lip评估同步损失应降至约 0.2,以获得良好的结果。
    • 可以在文件设置其他不太常用的超参数hparams.py,常用超参如下:
      nepochs  训练总步数
      checkpoint_interval  Wav2Lip模型保存间隔步数
      eval_interval        Wav2Lip模型评估间隔步数
      syncnet_eval_interval           专家鉴别器模型评估间隔步数
      syncnet_checkpoint_interval     专家鉴别器模型保存间隔步数

support.huaweicloud.com/bestpractice-modelarts/modelarts_wav2lip_0002.html