1 简介
这是一个Convolutional Pose Machines(CPM)的tensorflow代码实现,由这个老哥实现。CPM是一个state of the art的2D人体(手势)姿态估计算法,最早由CMU的大佬们于2016年CVPR提出,效果很好,这里有一个demo,其也是目前另外一个开源算法——OpenPose的基础。
2 安装
(1)环境配置
Win10 + tensorflow1.4.0 + OpenCV 3.2及其以上。
其中tensorflow的安装建议使用anaconda的环境,如果你已经安装过tensorflow其他版本,直接用下面一句pip安装:
pip install --ignore-installed --upgrade tensorflow-gpu==1.4.0
或者可以用conda去安装,这个教程也很多。
opencv的话直接从官网download编译好的版本也可以,也可以用pip直接安装:
pip install opencv-python
基本就这么多,后面代码如果提示少哪个包就pip install哪个包就好。
(2)模型下载
作者给了训练好了的模型,包括body以及hand的模型,不过是上传在Google Drive上面的,如果有梯子可以直接下载:
Body Pose Model
Hand Pose Model (.pkl)
Hand Pose Model (tf)
我下载好了,也给一个百度云的链接:
链接:https://pan.baidu.com/s/1q-5Xn_encUiwZaJGy8pnoA 密码:5b4n
(3)可以run了
将作者源代码下载下来:https://github.com/timctho/convolutional-pose-machines-tensorflow
可能作者哪天改代码了,我也fork了一个:https://github.com/zhangboshen/convolutional-pose-machines-tensorflow
然后把上述几个模型文件放入代码的convolutional-pose-machines-tensorflow-master\models\weights\
路径下面,同样在这个路径下面打开cmd,或者powershell,或者spyder,whatever,然后run下面的3个py文件:
demo_cpm_body.py
是人体姿态估计的代码,改一下图片或者视频路径,可以得到类似下面这种结果:
demo_cpm_hand.py
是手势姿态估计的代码,改一下图片或者视频路径,也可以得到类似下面这样的结果:
run_demo_hand_with_tracker.py
则是给出了一个手势关节点tracking的代码:
注意如果输入的图片或者视频最好是人或者手在图片中间,因为这个没有object detection的前处理。
代码给了许多可视化的参数,可以显示检测过程中各个stage的热图,以及最后的骨架图,有兴趣的可以探索一下。