只是在个人笔记本上跑通预训练好的模型,没有自己训练。
每个步骤先贴作者的过程,再讲自己是怎么做的。
github链接:
https://github.com/chungyiweng/humannerf
1.Configure environment
安装Miniconda(推荐)或Anaconda。
创建并激活虚拟环境。
conda create --name humannerf python=3.7
conda activate humannerf
安装所需的软件包。
pip install -r requirements.txt
使用anaconda创建并激活虚拟环境,安装所需的软件包。这一步不存在什么问题。
2.Download SMPL model
下载SMPL 模型 here, 并解压 mpips_smplify_public_v2.zip.
复制 smpl 模型。
SMPL_DIR=/path/to/smpl
MODEL_DIR=$SMPL_DIR/smplify_public/code/models
cp $MODEL_DIR/basicModel_neutral_lbs_10_207_0_v1.0.0.pkl third_parties/smpl/models
按照这里 从 SMPL 模型中删除 Chumpy 对象.
1.注册账号下载SMPLIFY_CODE_V2.ZIP,并解压找到需要的 smplify_public\code\models\basicModel_neutral_lbs_10_207_0_v1.0.0.pkl
2.直接在humannerf环境下载chumpy
conda install chumpy
创建一个python项目,使用humannerf环境将上面链接给的代码复制粘贴过去执行。
python 对应路径/clean_ch.py --input-models 对应路径/basicModel_neutral_lbs_10_207_0_v1.0.0.pkl --output-folder output-folder
因为使用的是python3,会报2个错误
UnicodeDecodeError: 'ascii' codec can't decode byte 0x81 in position 1224: ordinal not in range(128)
AttributeError: 'dict' object has no attribute 'iteritems'
在clean_ch.py中改正:
body_data = pickle.load(body_file, encoding='iso-8859-1') # 34行
for key, data in body_data.items(): # 37行
将output-folder文件夹中新生成的basicModel_neutral_lbs_10_207_0_v1.0.0.pkl复制到humannerf的third_parties\smpl\models当中
3.Run on ZJU-Mocap Dataset
下面我们以主题 387 作为运行示例。
3.1Prepare a dataset
here下载浙大动作捕捉数据集。
修改humannerf代码中的 yaml 文件 tools/prepare_zju_mocap/387.yaml. 特别是, zju_mocap_path 应该是ZJU-Mocap数据集的目录路径.
dataset:
zju_mocap_path: /path/to/zju_mocap
subject: '387'
sex: 'neutral'
...
运行数据预处理脚本。
cd tools/prepare_zju_mocap
python prepare_dataset.py --cfg 387.yaml
cd ../../
3.2Train/Download models
您可以通过运行脚本来下载预训练的模型。
./scripts/download_model.sh 387
3.1 找浙大申请使用他们的数据集,下载387。
修改tools/prepare_zju_mocap/387.yaml的文件,将zju_mocap_path改为自己的路径(使用绝对路径感觉方便点、、)
运行数据预处理脚本,只要zju_mocap_path路径对了没什么问题。
3.2 sh文件windows不能直接使用,但是使用git的话gdown又会失败,看了下sh文件,作用应该只是下载对应的训练模型。387对应的下载链接在:
https://drive.google.com/uc?id=1LS_Ocw8LjHAlBalHNtJJSS0aHJqc3TKR
直接网页上下载好自己新建文件夹放到experiments/human_nerf/zju_mocap/p387/adventure
4.遇到报错
AttributeError:primary_gpus
第一步使用 requirements.txt 自动下载出错,下载成cpu版本的torch,导致无法找到GPU,卸载torch重新下载。
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
5.其他
个人cuda版本使用的11.8,未安装cudnn。运行预训练好的模型没有问题。