Realtime Multi-Person Pose Estimation (OpenPose) 训练步骤
GitHub 链接:Realtime_Multi-Person_Pose_Estimation

文章目录
-
-
-
- getData
-
- MatLab
- genCOCOMask
- genJSON
- Caffe_train
- genLMDB
- setLayers
- Train
-
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。

