Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决

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

Win 10
Python 3.6
CUDA 10.0
cuDNN 7.6.0

安装参考Mark的教程

  1. 用git将tf-pose-estimation clone下来。也可以直接在网页上点clone or download,然后Download ZIP。Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决_第1张图片
  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
    Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决_第2张图片
    (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的文件:
    Clone of COCO API
    具体的安装办法:
    在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,具体网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
    (1)找到适合的,cp36也就是适合Python 3.6的,win_amd64就是适合windows 64 位的。黄色标注是我选择下载的whl文件。
    Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决_第3张图片
    (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,报错:
    Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决_第4张图片
    难道是tensorflow的版本有问题吗?我降低了tensorflow的版本至1.14.0,出现问题:
    No module named ‘tensorflow.contrib.tensorrt’
    这个问题是真的烦人,我直觉认为要下载tensorrt,弄了很久也没弄好,最后决定去\tf-pose-estimation\tf_pose\estimator把这行删掉/注释掉:
    Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决_第5张图片
    结果你们猜怎么?解决了!

  3. 再次执行:python run_webcam.py --model=mobilenet_thin_432*368 --camera=0
    又报错——ImportError: No module named ‘_pafprocess’。
    不要着急,离胜利越来越近了,hold on!
    (1)还要用swig进行再次编译。下载地址:http://www.swig.org/download.html
    注意! 选择swigwin,因为是windows系统下安装,不要下错了。
    Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决_第6张图片
    (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
    参考Hermit_Rabbit文章。

  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
再次运行就成功了,能够看到
Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决_第7张图片

  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)
如下图第二块黄色区域
Win10+Tensorflow+OpenPose超超超详细安装及各种遇到的问题解决_第8张图片

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

参考:

  1. https://blog.csdn.net/weixin_43249762/article/details/90229224
  2. https://blog.csdn.net/lovely_yoshino/article/details/95105398

你可能感兴趣的:(行为检测学习记录,深度学习环境配置,计算机视觉)