博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决
阅读量:2054 次
发布时间:2019-04-28

本文共 3512 字,大约阅读时间需要 11 分钟。

首先介绍一下安装的环境:

Win 10

Python 3.6
CUDA 10.0
cuDNN 7.6.0

安装参考

  1. 用git将clone下来。也可以直接在网页上点clone or download,然后Download ZIP。在这里插入图片描述
  2. conda create -n tfpose python=3.6创建一个新的conda环境,后用activate tfpose激活环境。
  3. 用pip安装requirements.txt里面的内容。
    从这里开始要注意了,后面会有很多很多很多很多很多很多很多很多坑,大家一定要够耐心!!!!!
    安装代码:pip install -r requirements.txt
    为了让速度快些,我加了清华镜像。
    (1)如果遇到"module ‘pip’ had no attribute ‘main’(这个问题好像经常遇到)在这里插入图片描述在这里我使用的方式是:在pip前加上python -m
    在这里插入图片描述
    (2)解决完上一个问题,我重新输入pip install -r requirements.txt,又出现报错。
    在这里插入图片描述
    先解决Cython的问题,我们都知道,遇到“No module named xxx”的问题,直接pip install就行。
    (3)后续如果还有报红,例如:在这里插入图片描述
    直接继续pip install 就行了,于是后续又安装了Matplotlib和Pillow。
    (4)重新执行pip install -r requirements.txt,这时出现了大片的报红。主要问题是Pycocotools安装出现问题,安装不成功是因为不支持windows系统,在网上查找了一些方法,找到了支持windows的文件:
    具体的安装办法:
    在cmd中cd到cocoapi-master\PythonAPI文件夹中,然后执行python setup.py build_ext install在这里插入图片描述
    (5)上述操作又报错:
    在这里插入图片描述没有rc.exe这个文件,所以:
    先在C:\Program Files (x86)\Windows Kits\8.1\bin\x86中寻找到
    rc.exe
    rcdll.dll
    再复制到C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin下,执行代码,解决了。
    最后再重新执行一次pip install -r requirements.txt 即可。
  4. 安装opencv,具体网址:
    (1)找到适合的,cp36也就是适合Python 3.6的,win_amd64就是适合windows 64 位的。黄色标注是我选择下载的whl文件。
    在这里插入图片描述
    (2)跳转到下载的whl文件所在的文件夹,执行:
pip install opencv_python‑4.1.2‑cp36‑cp36m‑win_amd64.whl
  1. 安装tensorflow,出现报错:

    在这里插入图片描述
    pip install grpcio==1.24.3就行。

  2. 运行python run_webcam.py --model=mobilenet_thin_432*368 --camera=0,报错:

    在这里插入图片描述
    难道是tensorflow的版本有问题吗?我降低了tensorflow的版本至1.14.0,出现问题:
    No module named ‘tensorflow.contrib.tensorrt’
    这个问题是真的烦人,我直觉认为要下载tensorrt,弄了很久也没弄好,最后决定去\tf-pose-estimation\tf_pose\estimator把这行删掉/注释掉:
    在这里插入图片描述
    结果你们猜怎么?解决了!

  3. 再次执行:python run_webcam.py --model=mobilenet_thin_432*368 --camera=0

    又报错——ImportError: No module named ‘_pafprocess’。
    不要着急,离胜利越来越近了,hold on!
    (1)还要用swig进行再次编译。下载地址:
    注意! 选择swigwin,因为是windows系统下安装,不要下错了。
    在这里插入图片描述
    (2)下载后,解压zip,将swigwin所在的文件夹路径添加到环境变量path中。
    具体过程:右键“此电脑”-属性-高级系统设置-环境变量-系统变量-path,例如我是F:\swigwin-4.0.1,添加进path即可。
    (3)在cmd的(base)环境中(退出之间那个虚拟环境,可以另开一个cmd),
    执行swig --help
    如果没有error就是安装成功了。
    (4)确保在虚拟环境tfpose下,cd到D:\tf-pose-estimation\tf_pose\pafprocess
    (根据自己的情况cd)
    执行:swig -python -c++ pafprocess.i && python setup.py build_ext --inplace
    不报错即可。如果报错,估计错误是:
    Unable to find vcvarsall.bat
    参考文章。

  4. 很好,已经排除这么多问题了,我们继续。

    回到D:\tf-pose-estimation
    重新执行python run_webcam.py --model=mobilenet_thin_432*368 --camera=0
    出现报错:No module named ‘matplotlib’
    pip install即可。

  5. 再次重新运行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

恭喜你,现在已经跑起来了!!能从摄像头看到自己吗?

  1. 接着要识别已经保存好的图片,执行:
python run.py --model=mobilenet_thin --resize=432x368 --image=./images/p1.jpg

出现报错:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

解决方法:打开tf-pose-estimation中的run.py文件,将第56行import matplotlib.pyplot as plt 改为:
import matplotlib

matplotlib.use(‘TkAgg’)

import matplotlib.pyplot as plt
再次运行就成功了,能够看到
在这里插入图片描述

  1. 现在要识别保存的视频,执行:
python run_video.py --model=mobilenet_thin --resolution=432x368 --video=./etcs/dance.mp4

执行发现,舞者跳舞的时候,没有骨骼识别的痕迹。打开tf-pose-estimation中的run_video.py文件

解决办法:
(1)添加一段代码

parser.add_argument('--resize-out-ratio', type=float, default=4.0, help='if provided, resize heatmaps before they are post-processed. default=1.0')

具体添加位置下图第一块黄色区域。

(2)下方的while cap.isOpened()中humans = e.inference(image)改为
humans = e.inference(image, resize_to_default=(w > 0 and h > 0), upsample_size=args.resize_out_ratio)
如下图第二块黄色区域
在这里插入图片描述

到此所有问题都解决了,基于tensorflow的openpose也跑起来了,是不是很开心呢?恭喜你!

参考:

  1. https://blog.csdn.net/weixin_43249762/article/details/90229224
  2. https://blog.csdn.net/lovely_yoshino/article/details/95105398
你可能感兴趣的文章
Leetcode C++ 《第203场周赛》
查看>>
云原生 第十三章 Kubernetes网络概念及策略控制
查看>>
《redis设计与实现》 第一部分:数据结构与对象 || 读书笔记
查看>>
《redis设计与实现》 第二部分(第9-11章):单机数据库的实现
查看>>
算法工程师 面经2019年5月
查看>>
搜索架构师 一面面经2019年6月
查看>>
稻草人手记
查看>>
第一次kaggle比赛 回顾篇
查看>>
leetcode 50. Pow(x, n)
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【F12】谷歌浏览器--前台效果可以在不访问服务器的前提下直接改样式看效果是否是预期值。...
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>