Win10+Tensorflow+OpenPose安装过程及问题解决

参考文章 主要参考安装教程
Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决
深度学习tf-pose-estimation人体姿态识别实现教程
人体姿态识别–Openpose+Tensorflow
tensorflow入门教程(四十三)人体姿态检测(一)
毕设中的问题二:tf-pose-estimation-master,最后出现ModuleNotFoundError: No module named ‘tensorflow.contrib’(已解决)

经过了四天的不断踩坑,终于把基于tensorflow的openpose跑起来啦~~记个笔记

一、安装环境

win10
python 3.6
tensorflow 2.0

二、步骤:

1、git下载openpose源码

(1)桌面建了个文件夹pose estimation,用于把源码存放到这个文件夹中;

(2)下载GIT ,选择windows,并添加环境变量;

具体的安装步骤忘记了,应该一路next就可以,否则在后面会出现 git不是内部或外部指令或批处理指令这样的错误。(如果已经装过的可以忽略这一步…
然后下载完成后需要[将git添加到环境变量],找到系统变量中的Path双击,然后新建添加如图所示(https://blog.csdn.net/oschina_41767564/article/details/104768735)
在这里插入图片描述
(3)用 git 将 tf-pose-estimation clone 下来;

1)定位到建立的文件夹
打开刚刚建立的文件夹,然后在路径栏输入cmd,enter以后可以看到下图,这样就可以输入命令了,还有一个办法是win+R后,输入cmd,然后用命令cd C:\Users\Administrator\Desktop\pose estimation定位到建立的文件夹:
在这里插入图片描述
2)接下来就可以下载源码,有三种方法,优先使用第三种

  • 方法1:
    直接输入命令git clone https://www.github.com/ildoonet/tf-pose-estimation下载tf-pose-estimation;
  • 方法2:
    进入 tf-pose-estimation下载地址,然后点code→download ZIP,下载压缩包后解压,放到建立的文件夹中;
  • 方法3:
    注册码云账号,登陆后点击右上角+号,新建仓库:
    在这里插入图片描述
    拉到最下面选择“导入已有仓库”:
    在这里插入图片描述
    然后将你需要下载的github网址复制到这里,进行仓库创建:
    在这里插入图片描述
    然后选择克隆/下载→复制,接着就可以用git clone 进行下载了~在上面打开的终端输入git clone https://gitee.com/wyffff0801/tf-pose-estimation.git
    在这里插入图片描述

这里是第一个坑,直接用方法1或2会特别慢,而且中间可能有错误,因此建议用方法3呀
参考博客:git clone 显著提速,解决Github代码拉取速度缓慢问题

2、创建新环境并激活

还是在上面打开的终端,输入conda create -n tfpose python=3.6,创建一个新的conda环境,然后用activate tfpose激活环境,激活后可以看到有前缀tfpose;
在这里插入图片描述

3、pip安装requirements.txt中的内容

首先需要用cd tf-pose-estimation定位到tf-pose-estimation文件夹;
然后安装同样有两种方法,推荐使用第二种:

(1)方法1

pip install -r requirements.txt

(2)方法2
直接用方法1这样的方法很慢,而且容易出错,因此我采用了逐个安装的方法,首先看下requirements.txt中都有什么:
在这里插入图片描述
1)除了最后两个,其他都可以用以下命令逐个安装

pip install argparse(这里自己替换成需要安装的名字就可)

如果觉得慢可以用下面加了镜像源的命令

pip install argparse -i https://mirrors.aliyun.com/pypi/simple/

参考博客
pip 安装库时速度很慢的解决方法
pip和conda添加国内清华镜像源(亲测有效)

2)然后再来说pycocotools,这是COCO数据集,因为数据集的作者并没有考虑Windows版本的,直接安装是不可行的,这里我采用了去链接复制相应的地址,然后用pip install +(链接地址)方式,注意选择和自己情况对应的版本就可
在这里插入图片描述
如这里下载pycocotools就是

pip install https://pypi.tuna.tsinghua.edu.cn/packages/4a/26/3d41709506b1a5f7af7b26d0beb35b259cf6d2cf716742cef91abf6b4665/pycocotools_windows-2.0-cp36-cp36m-win_amd64.whl#sha256=1e5f5f4490cf4eca98559b638234429f9793a8cdc6cc604241c1cf02b4e5e0b4

当然,还可以直接把.whl文件下载下来,然后将下载的文件放在D:\Anaconda3\envs\tfpose\Lib文件夹内,然后打开anaconda,进入tfpose环境安装(也就是需要在哪个环境使用,就要在哪个环境安装);

参考博客
windows10下pycocotools的安装
安装pycocotools的一些问题与解决办法

3)最后是tensorpack的安装,requirements中给出的是从git中clone,这是一种方法,但是由于实在很慢,所以我同样采用了在码云上新建仓库,克隆的方式,命令如下:

pip install git clone git+https://gitee.com/wyffff0801/tensorpack.git

至此,requirements中的所有内容都安装完成啦~

4、安装opencv

(1)方法1

pip install opencv-python

(2)方法2
下载 相应版本的.whl文件,然后cd到 .whl文件所在的文件夹,执行

pip install opencv_python‑4.1.2‑cp36‑cp36m‑win_amd64.whl

这里也可以不提前安装,在后面运行中,如果提示错误关于cv2的,再pip install

5、swig编译

又一个大坑来了!这里遇到了好多问题…
(1)下载swigwin,注意不要下错,这里我们选择window版本
在这里插入图片描述
(2)下载后,解压,将swigwin添加到环境变量(这里一直不太明白在path中添加和直接添加有什么区别,不过如果直接添加不行的话,就找到Path进行添加吧~
在这里插入图片描述
(3)在cmd的(base)环境中(另开一个cmd,不是之前的虚拟环境了),执行swig --help,没有错误就可以下一步了,否则检查下添加的环境变量是不是正确;
(4)在虚拟环境tfpose下,分别执行下面两条命令

cd C:\Users\Administrator\Desktop\pose estimation\tf-pose-estimation\tf_pose\pafprocess
swig -python -c++ pafprocess.i && python setup.py build_ext --inplace

至此这一部分就完成了,当然,可能会遇到很多错误,下面就汇总一下:

(1)Unable to find vcvarsall.bat

  • 找到vcvarsall.bat所在路径,一般在VS安装路径下,我的是 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build;
  • 找到_msvccompiler.py文件,我的路径是D:\Anaconda3\envs\tfpose\Lib\distutils_msvccompiler.py
  • 打开_msvccompiler.py,将下面这一部分进行替换
def _find_vcvarsall(plat_spec):
    try:
        key = winreg.OpenKeyEx(
            winreg.HKEY_LOCAL_MACHINE,
            r"Software\Microsoft\VisualStudio\SxS\VC7",
            access=winreg.KEY_READ | winreg.KEY_WOW64_32KEY
        )
    except OSError:
        log.debug("Visual C++ is not registered")
        return None, None
 
    with key:
        best_version = 0
        best_dir = None
        for i in count():
            try:
                v, vc_dir, vt = winreg.EnumValue(key, i)
            except OSError:
                break
            if v and vt == winreg.REG_SZ and os.path.isdir(vc_dir):
                try:
                    version = int(float(v))
                except (ValueError, TypeError):
                    continue
                if version >= 14 and version > best_version:
                    best_version, best_dir = version, vc_dir
        if not best_version:
            log.debug("No suitable Visual C++ version found")
            return None, None
 
        vcvarsall = os.path.join(best_dir, "vcvarsall.bat")
        if not os.path.isfile(vcvarsall):
            log.debug("%s cannot be found", vcvarsall)
            return None, None
 
        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
 
        return vcvarsall, vcruntime

替换成

def _find_vcvarsall(plat_spec):
        best_dir = r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build'
        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 r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat', vcruntime

保存以后,再次执行swig -python -c++ pafprocess.i && python setup.py build_ext --inplace,没有问题即可;

参考博客
简单解决python安装中的Unable to find vcvarsall.bat问题

(2)command ’ cl.exe’ failed: No such file or directory
这个问题可以这样解决:
1)方法1
直接基于自己已经下载好的VS,打开Visual Studio Installer,进行修改,一定要安装使用C++的桌面开发这一部分,其他的根据自己需要来就好啦~
在这里插入图片描述
2)方法2
卸载自己之前下载的VS,然后重新下载,这里注意一定要把之前的VS卸载干净!!!不然会出现很多问题,下载教程,我下载的是2017的,查资料python3的要求2015及以上版本
下载完成后,还需要将cl.exe设置环境变量
找到cl.exe,然后系统变量中找到Path,双击后,新建两个关于cl.exe的路径
在这里插入图片描述

参考博客
在Windows命令行中使用cl.exe——如何设置环境变量
VS2019设置cl.exe环境变量

(3)fatal error C1083: 无法打开包括文件:“iostream.h”: No such file or directory
像这种无法打开包括文件或者在运行中遇到了很多,对应的函数在"C:\Users\Administrator\Desktop\pose estimation\tf-pose-estimation\tf_pose\pafprocess\pafprocess.cpp" ;
一开始以为是自己库没装全,或者需要将那些头文件放到这个函数的路径下,结果试了试并没有什么用,最后发现是之前的VS2015没有卸载干净,在运行的时候,还是用的VS2015,这当然出错了…所以如果出错,可以去之前的VS安装路径看看,是否没有删除干净,包括如果在环境变量中有路径也要删除。
(4)cl.exe’ failed with exit status 2
这个问题和上面第三个的原因一样,也是VS没有卸载干净导致的。
(5)No module named ‘tensorflow.contrib.tensorrt’
找到 \tf-pose-estimation\tf_pose\estimator ,把tensorflow.contrib.tensorrt这行删掉/注释掉:
在这里插入图片描述

到这里基本上坑就填完了~下面的步骤相比而言很顺利

6、运行demo

(1)回到tf-pose-estimation

cd C:\Users\Administrator\Desktop\pose estimation\tf-pose-estimation

(2)运行demo

python run_webcam.py --model=mobilenet_thin_432*368 --camera=0

错误:mobilenet_thin_432x368,则命令改为:

python run_webcam.py --model=mobilenet_thin --resize=432x368 --camera=0

错误:numpy版本,则按照提示:

pip install numpy==要求版本

这样就可以从摄像头中看到自己啦哈哈~~

下面是补充命令:

(3)识别保存的图片

python run.py --model=mobilenet_thin --resize=432x368 --image=./images/p1.jpg

(4)识别保存好的视频

python run_video.py --model=mobilenet_thin --resolution=432x368 --video=./etcs/dance.mp4

只用上面的命令是看不到人体识别的痕迹的,所以要加上下面的步骤:
打开tf-pose-estimation中的run_video.py文件;
在下图位置,注释掉humans = e.inference(image),添加:

humans = e.inference(image, resize_to_default=(w > 0 and h > 0), upsample_size=args.resize_out_ratio)

在这里插入图片描述
到这里就全部配置完成啦,超级开心!配上一张图片的识别结果~
在这里插入图片描述

7、Pycharm中运行

(1)打开项目
File→open→C:\Users\Administrator\Desktop\pose estimation\tf-pose-estimation→OK
(2)Pycharm中配置
File→Settings→Project: tf-pose-estimation→Python Interpreter→设置→Add
在这里插入图片描述
在Virtualenv Environment中,选择Existing environment,然后选择之前在Anaconda3的路径下安装的envs\tfpose\python.exe;
在这里插入图片描述
Conda Environment下也是同样的设置
在这里插入图片描述
完成上述两个设置后,点击Apply即可。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值