Realtime Multi-Person Pose Estimation (OpenPose) 训练步骤
GitHub:Realtime_Multi-Person_Pose_Estimation
getData
百度云:南国那片枫叶,提取码:2pyr。
MatLab
genCOCOMask
报错:Undefined function 'maskApiMex' for input arguments of type 'struct'
解决:
MatLab 工作目录进入 MaskApi.m 文件所在目录,打开 MaskApi.m,注释中找到
genJSON
在 matlab 终端输入 genJSON('COCO')
Caffe_train
然后对照已有 caffe 的 makefile.config,修改 caffe_train 的 makefile.config,要修改的地方可能有 28 行 CUDA_DIR
,35 行 CUDA_ARCH
,注释掉 61 行 MATLAB
,76 行 PYTHON_LIB
,87 行 INCLUDE_DIRS
,88 行 LIBRARY_DIRS
,105 行 TEST_GPUID
。
编译时遇到大量 cudnn 相关错误,需要把已有 caffe include/caffe/
和 src/caffe/
目录下所有文件名含 cudnn 的 .hpp .cpp .cu 文件复制替换到 caffe_train 相应的目录下,再 make
,成功后 make pycaffe
。然后再修改环境变量中 PYTHONPATH 的路径。
genLMDB
编辑 genLMDB.py,修改第 8 行 pycaffe 路径,58 行图片位置(图片位置不正确会得到错误 AttributeError: 'NonType' object has no attribute 'shape'
),最后一行将要生成的 lmdb 文件的位置。如果空间不够,可以修改 49 行的 for 循环。
错误一:
ImportError: no module named lmdb
解决:sudo python -m pip install lmdb
错误二:
TypeError: 'NonType' object has no attribute '\_\_getitem\_\_'
解决:/dataset/COCO/images
目录下的 mask2014 文件夹是空的,而 /dataset/COCO
目录下的 mask2014 文件夹是有内容的,因此在 /dataset/COCO
这个位置打开终端,执行 sudo mv mask24 images
。
setLayers
修改第 12 行 pycaffe 路径,432 行 VGG 模型路径,以及 448 - 452 行的五条路径。
#examples directory = '/home/<username>/openpose_first_train/' serverFolder = directory+'server' base_folder = directory+'model' dataFolder = '/usr/COCO_kpt/lmdb' source = '/usr/COCO_kpt/lmdb'
根据显存大小,调整 454 行的 batch_size 为一个合适的值,以防训练时出现 Check failed: error == cudaSuccess (2 vs. 0) out of memory
。
Train
在上面的 directory 目录下,执行 sudo sh train_pose.sh 0
。