当前位置:   article > 正文

RAD-NeRF部署教程_ad-nerf 部署

ad-nerf 部署

1.创建环境并下载到本地

运行环境 Ubuntu 20.04,Pytorch 1.12,CUDA 11.6.2。

  1. conda create -n radnerf python=3.10
  2. conda activate radnerf
  3. git clone https://github.com/ashawkey/RAD-NeRF.git
  4. cd RAD-NeRF

2.安装依赖

打开requirement.txt,删除torch。

vim requirements.txt

进一步安装依赖

  1. # 对于Ubuntu,pyaudio需要portaudio的支持才能正常工作。
  2. sudo apt install portaudio19-dev
  3. pip install -r requirements.txt
  4. pip install scikit-learn
  5. pip install chardet
  6. pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116

3.构建扩展模块

  1. # 安装所有扩展模块
  2. bash scripts/install_ext.sh

4.安装pytorch3d

pytorch3d安装

5.下载模型

准备面部解析模型
wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_parsing/79999_iter.pth?raw=true -O data_utils/face_parsing/79999_iter.pth

下载失败的话,直接打开模型下载页面,下载AD-NeRF的整个项目到本地,再找到相对应的文件上传至项目文件的对应位置:data_utils/face_parsing/79999_iter.pth

准备basel面部模型
data_utils/face_tracking文件夹中新建文件夹3DMM

下载01_MorphableModel.mat

打开网址:https://faces.dmi.unibas.ch/bfm/main.php?nav=1-2&id=downloads

勾选选项并填写资料

提交之后一封会发一封邮件到邮箱,包含下载地址及账号密码,输入正确后即可下载到tar的压缩文件

找到压缩文件中的01_MorphableModel.mat并解压

01_MorphableModel.mat放入项目中的data_utils/face_tracking/3DMM文件夹中

其他文件

从AD-NeRF的data_util/face_tracking/3DMM文件夹中拷贝

exp_info.npy

keys_info.npy

sub_mesh.obj

topology_info.npy

到RAD-NeRF的data_util/face_tracking/3DMM文件夹中。

或者直接命令下载:

  1. wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_tracking/3DMM/exp_info.npy?raw=true -O data_utils/face_tracking/3DMM/exp_info.npy
  2. wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_tracking/3DMM/keys_info.npy?raw=true -O data_utils/face_tracking/3DMM/keys_info.npy
  3. wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_tracking/3DMM/sub_mesh.obj?raw=true -O data_utils/face_tracking/3DMM/sub_mesh.obj
  4. wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_tracking/3DMM/topology_info.npy?raw=true -O data_utils/face_tracking/3DMM/topology_info.npy
运行 convert_BFM.py
  1. cd data_utils/face_tracking
  2. python convert_BFM.py
  3. cd ../..

6.视频预处理

搜索data_utils/process.py中函数名为_2D的函数,将_2D更改为TWO_D,保存。

在项目中新建data文件夹,在文件夹里面新建对应的文件夹用于存储预处理文件,将视频放入其中。

python data_utils/process.py data/ba/ba.mp4

出现这个错误:未找到data/ba/track_params.pt,说明流程未运行成功,则查看是否成功安装了pytorch3d

  1. # 查看是否有pytorch3d
  2. conda list

无则重新安装

conda install pytorch3d -c pytorch3d

安装完之后再运行,会发现这个错误,查看安装包,发现torch非gpu版本,则重新安装。

 
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116

7.音频预处理

下载依赖

访问https://huggingface.co/cpierse/wav2vec2-large-xlsr-53-esperanto(需要魔法)

下载全部文件,在项目目录中新建文件夹cpierse/wav2vec2-large-xlsr-53-esperanto,将文件放入此文件夹中。

预处理一
python nerf/asr.py --wav data/ba/aud.wav --save_feats

生成aud_eo.npy文件于data/ba

预处理二

新建一个conda环境,pyhton3.7,tensorflow-gpu 1.15.0

conda create -n deepspeech python=3.7

下载deepspeech项目到新的文件夹中

git clone https://github.com/osmr/deepspeech_features

删掉requirement.txt的tensorflow-gpu>=1.15.2,避免不必要的错误

安装依赖

pip install -r requirements.txt

手动安装tensorflow

pip install tensorflow-gpu==1.15.0

安装protobuf

pip install protobuf==3.20.0

下载deepspeech-0_1_0-b90017e8.pb.zip,并将里面的deepspeech-0_1_0-b90017e8.pb解压出来,放入/root/.tensorflow/models


将音频文件放入deepspeech的文件夹中

进行处理

python extract_ds_features.py --input ba/aud.wav

在同目录下得出aud.ds.npy文件,修改名称为aud.npy,拷贝到RAD-NeRF文件目录的/data/ba中,完整的文件数量及名称:

这就是你定制数字人形象的数据,要基于这些数据去生成数字人。

音频预处理完毕。

8.训练

更新numpy

pip install numpy==1.22.4

执行命令

  1. # 训练(头部)
  2. # 默认情况下,我们会动态从磁盘加载数据。
  3. # 我们也可以将所有数据预加载到CPU/GPU以加快训练速度,但对于大型数据集来说,这会非常占用内存。
  4. # `--preload 0`:从磁盘加载(默认,较慢)。
  5. # `--preload 1`:加载到CPU,需要约70G CPU内存(稍慢)
  6. # `--preload 2`:加载到GPU,需要约24G GPU内存(快速)
  7. python main.py data/ba/ --workspace trial_ba/ -O --iters 200000 --preload 2
  8. # 训练(微调嘴唇,额外进行50000步,在上述命令之后运行!)
  9. python main.py data/ba/ --workspace trial_ba/ -O --iters 250000 --finetune_lips
  10. # 训练(躯干)
  11. # <head>.pth 是 trial_obama 中的最新检查点
  12. python main.py data/ba/ --workspace trial_ba_torso/ -O --torso --head_ckpt <head>.pth --iters 200000

9.推理

nerf/utils.py中495行的_2D函数更名为TWO_D,保存,替换。

将所需要音频进行处理,同上预处理一方法相同,假设想要数字人说话的音频为haha.wav

执行

python nerf/asr.py --wav data/ba/haha.wav --save_feats

生成haha_eo.npy文件于data/ba中,生成完毕后,即可进行推理:

  1. # 使用特定音频和姿势序列进行测试
  2. # --test_train:使用训练集进行测试
  3. # --data_range:使用此范围的姿势和眼睛序列(如果比音频短,会自动镜像和重复)
  4. python main.py data/ba/ --workspace trial_ba_torso/ -O --torso --test --test_train --data_range 0 100 --aud data/ba/haha_eo.npy

推理完毕的视频存于trial_ba_torso/results中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/118709
推荐阅读
相关标签
  

闽ICP备14008679号