Openpose 的配置与应用(python-pytorch-Win10)
Openpose 可以检测出人体关键点
库的安装、编译报错、下载Swig编译
import _pafprocess ModuleNotFoundError: No module named _pafprocess
资料下载地址:
1.库的安装:
在这里由于需要,我是用的是python3.6,文件下载后可以在demo中运行程序,如果缺少库就会报错,用 pip install 库名 的方式安装。注意torch安装支持cuda的,安装过程参考
2.编译报错:
2.1出现报错1:import _pafprocess ModuleNotFoundError: No module named _pafprocess
这是由于Openpose的lib/pafprocess下的文件是C++编写的,我们需要经过编译才能运行
编译过程:
2.1.1 下载Swig,安装
下载地址:
文件下载后进行解压到自己的安装目录,我自己的路径是:D:swigwin-4.0.2
添加环境变量:
Swig安装成功。
2.1.2 用Swig进行编译
在pycharm的终端定位到 E:Pythonproject_firstlibpafprocess路径下
输入命令:swig -python -c++ pafprocess.i && python setup.py build_ext --inplace
如果出现这两个文件并且没有报错,则可以执行下一步。
编译报错2:Unable to find vcvarsall.bat
这时候,我们需要修改文件。
第一步:找到vcvarsall.bat所在路径。也就是这个文件是VS的文件
此文件一般位于vs安装路径下,我的路径:D:VSVCAuxiliaryBuild
第二步:_msvccompiler.py文件,该文件是python创建虚拟环境后的文件,
我的路径是 D:Anaconda3envspython3.6Libdistutils
修改文件中的_find_vcvarsall(plat_spec)函数:
def _find_vcvarsall(plat_spec): best_dir = rD:VSVCAuxiliaryBuild best_version = 17 vcruntime = None vcruntime_spec = _VCVARS_PLAT_TO_VCRUNTIME_REDIST.get(plat_spec) if vcruntime_spec: vcruntime = os.path.join(best_dir,vcruntime_spec.format(best_version)) if not os.path.isfile(vcruntime): log.debug("%s cannot be found", vcruntime) vcruntime = None print(vcruntime) return rD:VSVCAuxiliaryBuildvcvarsall.bat, vcruntime
回到终端 E:Pythonproject_firstlibpafprocess路径下
输入命令:swig -python -c++ pafprocess.i && python setup.py build_ext --inplace