记得上次配置openpose是一次难忘的记忆,但由于一直才试错所以没有记录,这一次在一台全新的电脑上配置openpose tensorflow的运行环境
Openpose在tf中的配置非常的麻烦,因为源码是c++写的,需要编译成python给tf进行调用,因此坑非常多,雪上加霜的是文档极其糟糕,因此这次记录一下踩下的每个坑的修复历程
首先下载https://github.com/ildoonet/tf-pose-estimation
然后安装依赖
1 |
pip3 install -r requirements.txt |
安装依赖的时候遇到第一个坑,有一个叫做pycoco之类的包是安不上的,但是不影响之后的操作,因此删除掉(这里安装不上的原因是安装这个包需要cython但在requirement.txt中没有,后面有解决这个问题)
接下来安装swig,这里遇到第二个坑,swig必须使用3.x版本的否则不知道exe文件在哪里,即使添加环境变量也找不到指令
https://sourceforge.net/projects/swig/
然后将解压后的文件夹放入环境变量的path中,然后重启cmd
然后是第三个坑,swig要编译python必须有c++的环境 也就是vs安装并且必须勾选C++,搞完之后使用swig进行编译
接下来下载模型D:\tfpose\models\graph\cmu 这个路径是从D:\tfpose\models\graph\cmu 获得的 下载好之后就放在这个文件夹中
接下来还要安装tensorflow和opencv,我安装的是1.8.0的tf可用
如果这个时候运行
1 |
python run.py --model=mobilenet_thin --resize=432x368 --image=./images/p1.jpg |
会出现第四个坑tensorflow.contrib.tensorrt找达不到
\tf-pose-estimation\tf_pose\estimator第14行import tensorflow.contrib.tensorrt as trt
注释掉。
接下来在运行会出现第五个坑pycocotools找不到
这个时候
1 2 |
pip install Cython pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI |
接下来运行就成功了但是会看不到图像 ,这是第六个坑
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure. plt.show()
解决:将run.py中第56行import matplotlib.pyplot as plt
改成
1 2 3 4 |
import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt |
接下来就正常了