本人也是初学者,这里只介绍步骤,不介绍原理,为同是人体姿态估计的同学少走点弯路,尽一份力吧,希望大家不要把宝贵的时间浪费在别人已经做过的事情上。要研究原理的同学还是看论文吧。
源代码网址:https://github.com/eldar/pose-tensorflow
运行环境:
OS:为Windows7 with SP1 64位
IDE:pycharm community
Other:python3.5+TensorFlow1.2GPU版
安装依赖项:
pip3 install scipy scikit-image matplotlib pyyaml easydict cython munkres
单人姿态估计
第一步,下载预训练模型。进入models/mpii目录下,双击download_models.sh脚本文件,下载完成后会有三个文件
第二步,打开cmd,输入set TF_CUDNN_AUTOTUNE=0。
第三步,改配置,双击左边同目录下的pose_cfg.yaml,将init_weights:后面的路径前面加上../。
第四步,改代码。用pycharm打开pose-tensorflow的根目录,展开demo,打开singleperson.py,去掉14行和20行字符串中的demo/删除。
第五步,运行单人检测。在代码区右键run。操作顺利的话会出现如下效果
然而单人一般都不会出什么问题。问题在多人。
多人姿态估计。
第一步,到项目根目录下,双击compile.sh文件。
第二步,到models/coco目录下,双击download_models.sh文件,执行完成后,当前目录下会有如下文件
第三步,在lib\nms_cython\include目录下,打开nms_scoremap.hxx文件,在开头加入#include “array”。
转到lib/nms_cython目录下。按住shift+鼠标右键,点击在此打开命令窗口输入:python setup.py build,在进入当前目录下的build/lib.win-amd64-3.5目录下,把里边的pyd文件拷到nms_cython目录下,并重命名,把中间一段.cp35-win_amd64删除。
第四步,在lib\multicut_cython,在solve_nl_lmp.hxx文件中加入#include “array”,然后在当前目录下按住shift+鼠标右键,点击在此打开命令窗口输入:python setup.py build,执行完后的cmd窗口
同样进入build\lib.win-amd64-3.5目录下,把multicut.cp35-win_amd64.pyd文件拷到lib\multicut_cython目录下,并重命名,把中间.cp35-win_amd64删除。
第五步。lib\coco\PythonAPI,修改该目录下,setup.py文件,删除第14行extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],。接着按照上面的步骤同样,到lib\coco\PythonAPI目录下,按住shift+鼠标右键,点击在此打开命令窗口输入:python setup.py build,再将build\lib.win-amd64-3.5目录下的pycocotools拷到lib\coco\PythonAPI目录下合并,复制和替换原文件,最后进入pycocotools,将文件_mask.cp35-win_amd64.pyd重命名为_mask.pyd。
第六步,改配置。将pose_cfg_multi.yaml文件中的所有路径前面加上../。
第七步,改代码(建议在pycharm下修改,方便,修改后可能这一行的某几个单词依旧会有红线,但是不影响)。1、修改dataset目录下mscoco.py文件,将第13行和14行的pycocotools前面加上lib.coco.PythonAPI.。2、修改multiperson目录detections.py文件,将第10行from后面的nms_grid前面加上lib.nms_cython.。这就是之前编译的文件的目录。3、修改同目录下predict.py文件,将12行的修改为 from lib.multicut_cython.multicut import solve_nl_lmp。4、修改lib\coco\PythonAPI\pycocotools目录下的mask.py文件,将第3行的改为import lib.coco.PythonAPI.pycocotools._mask as _mask。5修改demo目录下的demo_multiperson.py文件,23行和36行删除demo/。
第八步,运行demo_multiperson.py。就可以看到效果图