win10环境下下载安装openpose(only cpu)并在pycharm中运行代码(超详细)

  • (一)前言
  • (二)准备工作
  • (三)友情提醒
  • (四)详细安装步骤
    • 1.新建文件夹
    • 2.下载OpenPose源代码
    • 3.配置文件(1)
    • 4.配置文件(2)
    • 5.models下载
    • 6.CMake
    • 7.在VS2019中生成pyopenpose
  • (五) 在PyCharm中使用OpenPose
    • 1.首先新建一个工程"opStudy"。
    • 2. 新建"imgs"
    • 3.复制build
    • 4.拷贝models
  • (六)避坑
  • (七)写在最后

(一)前言

由于大创项目的需求,需要用到一个叫OpenPose的开源项目,在该项目中采用的是python来开发,但是由于自己的轻薄本(win10)是集显(没有英伟达的gpu)/(ㄒoㄒ)/~~,而且网上有关openpose only cpu的资料实在有点稀缺,最后东拼西凑查遍了好多东西(甚至去Google里搜索),终于在Medium和B站找到相关资料并通过两者的结合成功安装了pyopenpose。以下介绍具体的安装步骤。

(二)准备工作

  • git安装(由于网上的教程较多,这里就不详细介绍)
  • cmake安装(这里本人采用的是3.22版本,其他版本应该也可以,同样不详细介绍安装方式)
  • vs2019(功能下载里需要选择"使用C++的桌面开发")
  • dev-sidecar(开发者边车工具,考虑到有些人可能无法登录github下载openpose项目源代码,这里推荐gitee上的一个工具,使用该工具可以加速进入github,亲测有用)
    dev-sidecar工具链接
  • 迅雷(可选)

(三)友情提醒

详细的安装步骤有些长,需要耐心一步步往下操作,注意不要看漏看错

此外文章中出现的目录路径都是我自己电脑里的路径,旨在帮助读者对照,避免出现找错文件夹的错误。当然了你也可以采用和我一样的路径

如果你在安装的过程中搞混了文件夹,可以注意观察本文章中的各个路径,以此理清自己的思路

(四)详细安装步骤

1.新建文件夹

选择合适位置新建一个文件夹,这里我直接命名为openpose_estimation,这个文件在我的目录位置是:
D:\openpose_estimation

2.下载OpenPose源代码

打开OpenPose的GitHub官网(或直接在GitHub上搜索openpose,star最多的那个就是了):
https://github.com/CMU-Perceptual-Computing-Lab/openpose

接下来回到我们刚刚创建的openpose_estimation文件夹下,在该文件夹下打开cmd命令行,输入以下指令:

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git

稍微等待一段时间,当然了你也可以选中"Download ZIP":

之后解压到指定的目录即可
再或者下载我这里提供的百度网盘???

链接:https://pan.baidu.com/s/1ZNZ8CSG9tehz-jJ6utnJmQ
提取码:rjhd
(这一份是我自己从GitHub上下载的ZIP版本,不知道有一天会不会失效?以后想要下载最新版本的还是得去官网下载)

解压完或者clone完打开下载好的openpose文件夹之后就是这样滴:
(D:\openpose_estimation\openpose)

3.配置文件(1)

接下来进入到"3rdparty"
(D:\openpose_estimation\openpose\3rdparty\windows)
下的"windows"文件夹:

可以看到这里有几个Windows批处理文件
点击它们就会下载我们需要的一些文件
这里我们需要运行的批处理文件分别是
①getCaffe.bat
②getCaffe3rdparty.bat
③getFreeglut.bat
④getOpenCV.bat

也就是除了最后一个不用运行,其它几个都要

下载过程可能比较漫长,如果嫌弃比较慢的话,这里提供另外一种方式:
在下载界面可以看到要下载的压缩包所在的网址:

所以我们可以将这个网址拷贝下来,然后扔到迅雷中去下载,这样就可以快很多了(此法可行 ,但是本人没有这样做… )
如果是直接用bat批处理文件下载的压缩包会自动解压,如果是用迅雷的话要手动解压下,最后的完成的目录如下:(请对照好自己的文件夹是否正确)

4.配置文件(2)

回到GitHub的openpose主页,进入到3rdparty

这里的"caffe"和"pybind11"两个文件夹我们也需要下载下来,并对应放到我们的"3rdparty"文件夹下的"caffe"和"pybind11"中:
(D:\openpose_estimation\openpose\3rdparty\caffe
D:\openpose_estimation\openpose\3rdparty\pybind11)

复制https地址:

同样的,接下来打开命令行cmd,cd到3rdparty下的caffe中并输入如下命令:

git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe.git

同样你可以采用下载解压ZIP的方法,最后解压到指定文件夹即可。
另外的pybind11文件夹也是一样的做法

这里同样给出我的百度网盘链接,方便某些不方便的同学,但是如果要使用最新的版本的话还是推荐到GitHub中下载

链接:https://pan.baidu.com/s/1cC2dayW2N8Yzem_GuM8Kxg
提取码:7s9u

最后就是这样的:

5.models下载

回到openpose文件夹中:
(D:\openpose_estimation\openpose)
打开该文件夹下的"models":
(D:\openpose_estimation\openpose\models)
该文件夹如下所示:

这里的models同样需要进行下载,
(1)可以直接运行图示中的windows批处理文件"getModels.bat",这样会直接进行下载并自动解压到对应的文件夹中去。

(2)如果你觉得这样的下载方式还是比较慢的话,让我们用记事本打开getModels.sh文件
在这里可以看到:

要下载的models所在网址,还有文件名称,你要做的就是将上图中两个红色框框起来字符串拼接起来然后扔进迅雷下载,(注意该文件下面还有其他几个models要下载)

6.CMake

在完成了上述那些配置之后,接下来就要用到CMake了。
首先让我们在openpose目录下新建一个build文件夹:
D:\openpose_estimation\openpose\build

点击左下角的“Configure”:弹出如下窗口:

需要注意的是,这里的"Specify the generator for this project"需选中"Visual Studio 2019"
“Optional platform for generator"要选中"x64” ,虽然有提示说"if empty, generator uses:x64"但是为了防止有些人默认是win32,所以最好是自己手动选一下,这一点千万不要搞错
之后点击"Finish"
勾选“BUILD_PYTHON”

“GPU_MODE”选中“CPU_ONLY”

然后再次点击左下角的“Configure”,这期间可能要花点时间,等全部完成之后,点击左下角的“Generate”

点击”Open Project“即可在VS2019中打开build好的C++工程。
如果这一步打不开工程的话,那就进入到build文件夹中:

在这里也可以打开工程

7.在VS2019中生成pyopenpose

可以看到该项目工程目录如下:

首先需要选中"Release":

接下来,右键"OpenPoseDemo",点击"生成"

然后右键"pyopenpose",点击"生成"

接下来等待生成完毕即可,如果跟着做到这一步没有任何问题的话,那基本就无误了,生成完成后,可以在build文件夹中看到如下

接下来进入该文件夹下的openpose/Release
(D:\openpose_estimation\openpose\build\python\openpose\Release)
可以看到这里就是我们的pyopenpose库了

(五) 在PyCharm中使用OpenPose

首先可以在build文件夹中看到examples文件夹:

打开该文件夹下的"tutorial_api_python"
(D:\openpose_estimation\openpose\build\examples\tutorial_api_python)
可以看到这里有很多示例文件:

你可以打开其中一个,比如"01_body_from_image.py"。(你可以尝试运行该文件如果运行出现错误,我在下面的"避坑"章节有说明)。这里让我们先来参考该示例代码并说明下怎么在PyCharm中运行OpenPose

1.首先新建一个工程"opStudy"。

可以看到我这里还有几个文件夹:“bin”,“models”,“Release”,“x64”。这几个文件夹先不要新建。

2. 新建"imgs"

"imgs"用来存放img图片
而begin.py是我们的程序主入口python文件

3.复制build

接着回到我们的build文件夹:
D:\openpose_estimation\openpose\build

拷贝build文件夹下的bin文件夹,并将之复制到我们的opStudy中,
拷贝build文件夹下的x64文件夹,并将之复制到我们的opStudy中,

进入build/python/openpose中
(D:\openpose_estimation\openpose\build\python\openpose)

复制Release并放入到我们的opStudy工程中

4.拷贝models

最后是回到我们的openpose文件夹下:
D:\openpose_estimation\openpose

拷贝"models"文件夹,同样复制到我们的opStudy工程中。

至此你可以看到你的工程目录应该和我现在的一样:
(以后要新建其他工程,就可以将这一份当作模板直接拷贝)

接下来,仿照"01_body_from_image.py"来导入pyopenpose::

# 导入库
import argparse
import sys
import cv2
import os
from sys import platform# import pyopenpose:
# platform这句也可以不写,因为自己的电脑已经确定是windows系统的了# 获取当前该文件所在文件夹的绝对路径
file_path = os.path.dirname(os.path.realpath(__file__))
if platform == 'win32':# 我已经将openpose相关的库和环境都放在该文件目录下的Release和bin/x64中了,接下来获取它们的路径:lib_dir = 'Release'bin_dir = 'bin'x64_dir = 'x64'lib_path = os.path.join(file_path, lib_dir)bin_path = os.path.join(file_path, bin_dir)x64_path = os.path.join(file_path, x64_dir)  # 注意这里需要加入环境变量的是x64文件下的Release文件夹# 测试区# print(file_path)# print(lib_path)# print(bin_path)# print(x64_path)# 将以上的路径添加到环境变量中:sys.path.append(lib_path)  # 系统变量# 环境变量:os.environ['PATH'] += ';' + bin_path + ';' + x64_path + '\Release;'# print(os.environ['PATH'])try:# 导入pyopenpose:import pyopenpose as opexcept ImportError as e:print("fail to import pyopenpose!")raise e
else:print(f"当前电脑环境:\n{platform}\n")sys.exit(-1)

运行以上,代码如果没有问题,就可以继续编写代码了,如果出现问题,那么需要检查下会不会是因为复制错误了?

自己写的完整示例代码:(记得在imgs文件中放张图片)

#导入库
import argparse
import sys
import cv2
import os
from sys import platform# import pyopenpose:
# platform这句也可以不写,因为自己的电脑已经确定是windows系统的了# 获取当前该文件所在文件夹的绝对路径
file_path = os.path.dirname(os.path.realpath(__file__))
if platform == 'win32':# 我已经将openpose相关的库和环境都放在该文件目录下的Release和bin/x64中了,接下来获取它们的路径:lib_dir = 'Release'bin_dir = 'bin'x64_dir = 'x64'lib_path = os.path.join(file_path, lib_dir)bin_path = os.path.join(file_path, bin_dir)x64_path = os.path.join(file_path, x64_dir)  # 注意这里需要加入环境变量的是x64文件下的Release文件夹# 测试区# print(file_path)# print(lib_path)# print(bin_path)# print(x64_path)# 将以上的路径添加到环境变量中:sys.path.append(lib_path)  # 系统变量# 环境变量:os.environ['PATH'] += ';' + bin_path + ';' + x64_path + '\Release;'print(os.environ['PATH'])try:# 导入pyopenpose:import pyopenpose as opexcept ImportError as e:print("fail to import pyopenpose!")raise e
else:print(f"当前电脑环境:\n{platform}\n")sys.exit(-1)# 获取图片路径和图片:
img_path = file_path + r'\imgs'
imgsList = os.listdir(img_path)
# print(imgsList)# 建议在这之前可以了解一下argparse这个库:
parser = argparse.ArgumentParser()
parser.add_argument("--image_path", default=imgsList[0],help="Process an image. Read all standard formats (jpg, png, bmp, etc.).")
args = parser.parse_known_args()
# print(args[0].image_path)# 模型导入
params = dict()
# 这里的models用的是我们当前工程下的models文件夹
params['model_folder'] = file_path + r'\models'
# print(os.listdir(models['models_dir']))# 启动pyopenpose:
opWrapper = op.WrapperPython()
opWrapper.configure(params)
opWrapper.start()# 传入一张图片
datum = op.Datum()
imageToProcess = cv2.imread(img_path + r'/' + args[0].image_path, cv2.IMREAD_ANYCOLOR)
# print(imageToProcess)
datum.cvInputData = imageToProcess
opWrapper.emplaceAndPop(op.VectorDatum([datum]))cv2.imshow("opStudy", datum.cvOutputData)
key = cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

(六)避坑

①如果你直接运行"01_body_from_image.py",那么你可能会出现这样的错误:
“Error: OpenPose library could not be found. Did you enable BUILD_PYTHON in CMake and have this Python script in the right folder?”
这是因为,在这份文件中,它导入pyopenpose的目录不对,
我们的x64,bin,Release这些文件夹都必须是要对应在build文件夹中的,如果一定要运行这个文件,那么我推荐你将该文件中的导入路径全部修改为绝对路径,并指向你的build文件夹中的对应文件

②我一开始采用的是Anaconda下的虚拟环境,但是采用虚拟环境运行openpose的时候我发现导入不进pyopenpose库,这折腾我快2个小时的时间,最后当我切换成系统python.exe(3.8版本)作为pycharm的编译器时,就莫名其妙的可以运行了,这里我也没有搞懂是为什么?难道说虚拟环境下不能添加环境变量?如果有大佬懂的话可以替我讲解下!
如果有出现类似问题的同学,可以尝试改一下python编译器

(七)写在最后

搞定这个OpenPose几乎花了我两三天的时间,因为网上大多数都是有英伟达显卡的教程,想要安装到自己的windows并且是仅cpu模式,还要在pycharm中运行真的捣鼓了挺久。所以这才打算花了些时间写下了这篇文章,希望可以对您有帮助

win10环境下下载安装openpose(only cpu)并在pycharm中运行代码(超详细)相关推荐

  1. OpenSSL在Win10环境下的安装

    Win10环境下OpenSSL的安装 1,前言 2,OpenSSL在Win10环境下的安装 2.1,了解安装OpenSSL所需步骤: 2.2,根据步骤完成前期准备 2.2.1,安装Perl 2.2.2 ...

  2. mac下查看redis安装路径_干货!win10环境下Redis安装、启动教程

    " 本文详细介绍win10环境下Redis的安装.启动方法." 01 - 下载 Redis项目不正式支持Windows.但是,Microsoft开放技术小组开发和维护一个Windo ...

  3. 【踩坑教程】win10环境下RTX3050Ti安装Tensorflow-gpu2.5+CUDA11.2.1+cudnn8.1.0

    友情提醒:所有蓝字均为超链接 目录 1 本机环境及碎碎念 2 排坑指南 2.1 TensorFlow及CUDA.cuDNN版本 2.2 CUDA版本选择 2.2 cuDNN版本选择 3 安装教程 3. ...

  4. VS code win10 环境,下载安装调试

    背景: 公司要用vs code 在win10下跑通代码单步调试.下面是具体的操作. 安装环境:win10,MinGW 下载地址 https://code.visualstudio.com/ 安装之后需 ...

  5. RabbitMQ 在 Win10 环境下的安装与配置

    文章目录 1. RabbitMQ 环境配置(ErLang 10.4 + MQ 3.7.17) 1.1 ErLang 下载安装 1.2 RabbitMQ 下载安装 1.3 环境变量配置 1.3.1 新建 ...

  6. win10环境下一键安装TensorFlow-gpu+cuda+cudnn

    这里主要介绍tensorflow-gpu版本的安装,如果需要安装Tensorflow CPU版本的,只需要将以下步骤中的tensorflow-gpu换成tensorflow就行了. 重点!!! 此方法 ...

  7. WIN10 系统下下载安装YOLOV4并使用GPU加速(保姆级)

    这次因为比赛需要测试一下yoloV4的速度,就安装了一下YOLOV4,差点哭出来 基本上把能踩的坑都踩了一遍(无奈).装完之后想写一片总结记一下,也帮大家伙避避雷. 一.下载yoloV4源码 建议使用 ...

  8. win10如何安装wxpython_python在win10环境下怎样安装wxpython?

    Python 与 wxPython 运行环境安装 分 别安装python-2.6.2.msi.wxPython2.8-win32-unicode-2.8.10.1-py26.exe wxPython2 ...

  9. win10环境下PCL安装和配置回顾(一)

    2020年博主有写过几篇关于PCL的博客,这边想先回顾下,再增加点新内容.之前写的博客专栏如下链接. https://blog.csdn.net/jiugeshao/category_11993239 ...

最新文章

  1. R语言CRAN软件包Meta分析
  2. winform父窗体实现多个子窗体只能显示一个
  3. 「树莓派+1万块乐高」打造乐高分类器,树莓派官方转发,网友:我想借来用两天...
  4. CSS的display:table-cell:多行文字的垂直居中水平居中
  5. 2003服务器系统密码忘记,服务器系统2003 设置密码
  6. Verifying Checksum ... Bad Data CRC ERROR: can#39;t get kernel image!
  7. Strom的trident单词计数代码
  8. Edittext不可编辑可点击,输入密码可见与不可见,验证码换格输入实现方法,车牌号自定义输入键盘
  9. 某公司R2631E以太口通过SDH接新桥的ATM交换机,出现丢包问题的解决方法
  10. Ubuntu: 搭建tftp,nfs服务器
  11. LeetCode:Generate Parentheses
  12. 啥时候js单元测试变的重要起来?
  13. TypeError: 'str' object is not callable (Python)
  14. AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK
  15. python selenuim使用代理的方式
  16. Cloud Native Infrastructures Meetup 精彩回顾(内含 PPT 下载)
  17. Golang的chan阻塞测试
  18. 国际标准战争的技术真相
  19. 李春葆《数据结构教程》课后习题和实验代码
  20. 抓阄 计算机代表什么东西,周岁抓阄准备哪些东西

热门文章

  1. Cisco PIX防火墙配置指南
  2. 计算机网络-7-路由器和路由
  3. 如果你提前知道了下期彩票中奖号码
  4. vue项目打包步骤及运行打包项目
  5. jupyter不小心点了logout怎么办
  6. UVAoJ --401
  7. RESTful API接口规范
  8. jenkins插件安装失败 解决方法
  9. 【Win11家庭版把用户修改成英文】
  10. 2018CCCC天梯赛L2-004秀恩爱分得快