Realtime Multi-Person Pose Estimation (OpenPose) 训练步骤

GitHub:Realtime_Multi-Person_Pose_Estimation

Realtime Multi-Person Pose Estimation (OpenPose) 训练步骤

getData

百度云:南国那片枫叶,提取码:2pyr。

MatLab

MatLab R2014a

genCOCOMask

报错:Undefined function 'maskApiMex' for input arguments of type 'struct'

解决:

MatLab 工作目录进入 MaskApi.m 文件所在目录,打开 MaskApi.m,注释中找到Realtime Multi-Person Pose Estimation (OpenPose) 训练步骤

编译 mexRealtime Multi-Person Pose Estimation (OpenPose) 训练步骤

genJSON

在 matlab 终端输入 genJSON('COCO')

Caffe_train

先参考 Ubuntu16.04 安装 pycaffe

然后对照已有 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