openpose【超详细】从0开始,环境搭建及应用(GPU)windows10+(conda)python3.8+CUDA11.1+vs2019

目录

一、前期准备

0.运行前提

1.python

1.1 安装

1.2 验证安装

1.3 建立python环境

1.4 openCV安装

1.5 pycharm

2.Visual Studio 2019

3.CUDA与cuDNN

3.1 cuda安装

3.2 安装cuDNN

4.Cmake安装

5. OpenPose源码下载

二、OpenPose编译

三、运行Demo


一、前期准备

0.运行前提

请确认你的电脑有英伟达显卡,否则一切白瞎~

整体安装顺序为:python→VS→CUDA→cuDNN→CMake→Openpose编译→运行自己的Demo

tips(一些,血泪教训):

(1)openCV要在装完python 就安装,否则等后面东西都搞完了,才发现没装就晚啦~

(2)不管你看哪个教程,软件版本尽量选择和教程一致,避免出现不必要的幺蛾子

(3)文件名、路径名,最好不要有中文哦~

1.python

1.1 安装

使用Anaconda来管理python环境,可以避免很多问题,所以,我们先下载一个Anaconda

进入官网下载(https://www.anaconda.com/download)

安装完成后确认以下环境变量有没有添加,如果没有,手动添加以下。

1.2 验证安装

(1)按下win+R,输入cmd,回车 进入命令行

(2)输入where python

回车,有这个就可以了。

(3)直接输入python 就能看到python的版本

我们需要的环境是python3.8,所以要建立一个python3.8的环境

1.3 建立python环境

(1)还是上面的窗口,输入exit() 退出python,

(2)输入conda create -n py38 pytyon=3.8

(3)回车,等他跑一跑,他会问你Proceed ([y]/n)? 输入y 回车

等他跑完,就建立了一个名为py38,python版本为3.8的新环境

(4)输入 conda activate py38 激活环境

这样就是进入这个py38的环境里啦~

(5)在这个环境下,输入conda info 回车

可以看conda的各种信息,最重要的是这个环境地址,要记住,后面要用。

(一般来说,环境路径应该在anaconda3的env文件夹里,但我的比较怪,在这个地方。)

1.4 openCV安装

(1)输入 pip list 确认一下已经有pip和numpy两个包

pip版本不宜过旧,如果conda选择较新的版本,一般这里不会有问题。

(2)直接输入 

pip install opencv-python  -i https://pypi.tuna.tsinghua.edu.cn/simple 

这里用清华镜像速度会比较快。

(3)安装完成后,验证一下openCV有没有安装成功

输入python 回车

再输入 import cv2 回车

没有报错就是成功啦~

1.5 pycharm

可以再顺便安装一个pycharm,可以通过官方连接,或者从conda进入,都一样的。

PyCharm官方正版下载2024最新版官方下载 (belacad.cn)
可以进入Pychar再输入以下 import cv2 没有标红,opencv就没问题啦。

2.Visual Studio 2019

(下载之前请先看一下3.1(2))

可以进入官网Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com)下载,也可以借助一些 伙伴神 之类的公众号,里面有详细的安装步骤。

记得再选择要安装的工作负荷的时候,勾选 Python 开发(我不确定是否会用上,但是我勾了),和 C++开发相关组件就可以啦~

3.CUDA与cuDNN

3.1 cuda安装

(1)命令行输入 nvidia-smi ,查看显卡支持的最高CUDA版本

只要我们下载的版本不高于这个最高版本就可以啦,我们将选择11.1的版本进行安装。

(2)查看CUDA版本支持的VS版本

如果你的显卡不能支持11.1的CUDA,那只能选择更低的版本,那么需要确认一下CUDA支持的VS版本,先安装VS,再安装CUDA!

在官网查询

Installation Guide Windows :: CUDA Toolkit Documentation (nvidia.com)

(3)下载CUDA安装包,直接官网下载 CUDA Toolkit Archive | NVIDIA Developer

根据你的操作系统,选择安装包

一步一步按照系统点下来,下载安装包

(4)双击安装包,安装程序

这边选择自定义安装,

Other components和Driver components加号点开看一下,如果Other components和Driver components的新版本比当前版本低的话就不用勾选。

无脑下一步,

安装位置可以默认C盘,要记录一下,等下要用。

(5)检查一下是否安装成功

win+R打开cmd,命令行输入nvcc -V,出现版本信息,就是安装成功啦。

(6)检查环境变量

确认一下这几个有就可以啦,没有的话就手动添加一下

3.2 安装cuDNN

直接官网下载安装包,选择对应的cudnn版本,下载安装包

cuDNN Archive | NVIDIA Developer

解压后得到这些,

打开刚才CUDA安装的地方,将左边所有内容复制到右边文件夹

4.Cmake安装

直接官网下载,Download CMake

我这边用的是3.24.1的版本,更早版本的连接

Release v3.24.1 · Kitware/CMake · GitHub

点击下载,获得一个压缩包,解压这个压缩包,获得:

在bin文件夹中,找到cmake-gui.exe 文件就可以啦

5. OpenPose源码下载

这里提供一个完整的源码压缩包

通过百度网盘分享的文件:openpose_py3.8.zip
链接:https://pan.baidu.com/s/11qGZFZL_DXPIQb-N3POxNw?pwd=0707 
提取码:0707 
下载解压获得

到这里,准备工作就完成啦~

二、OpenPose编译

1.打开Cmake

双击cmake-gui.exe 运行

2.修改路径

3.添加Python接口

点击Add Entry,按照下图输入,这样就实现用想要的python版本来运行,这个很重要,用默认版本,可能会出问题哦~

4.点击OK后,再点击Configure

他问你没有这个文件夹,要不要给你创建一个,你说好。

5. 添加VS的版本

6.点击完成,然后等他跑完,得到下面

把BUILD_PYTHON、DOWNLOAD_BODY_COCO_MODEL 、DOWNLOAD_BODY_MPI_MODEL勾起来

7. 再一次点击Configure,

8.Configure运行完,没报错,再点击Generate

9.运行完,无报错,再点击open project

10. 它自动会打开VS,注意这里的Debug 模式

11. 右击这个OpenPoseDemo,点击重新生成

得到以下结果(如果有报错,可以尝试再点击一次重新生成。)

12.再右击OpenPoseDemo,,点击设置为启动项,

13.再右击OpenPoseDemo,,点击最下面的属性

在调试、命令参数中输入:(后面这个地址是源码地址)

--video C:\……\openpose_py3.8\examples\media\video.avi

14.点击确定后,直接运行。

就会有一个DEMO的运行结果。

15.找到pyopenpose,点击重新生成

运行成功得到:

到这里,就编译完成啦。

三、运行Demo

1. 建立自己的OpenposeDemo项目

在文件夹里建立bin 和 models 两个文件夹,bin文件夹用来放依赖的相关文件,models用来放模型文件。

2.找到刚刚cmake帮忙建立的GPU_build文件夹,按照下面这个路径,找到openpose.dll 复制到刚自己建立的项目文件夹的bin 目录下。

3.找到GPU_Build 文件夹下的bin文件夹,全选,复制到自己的bin里面。

4. 把C:\……\openpose_py3.8\GPU_build\python\openpose\Debug 下面pyopenpose.cp38-win_amd64.pyd文件夹分别复制到我们的bin目录和项目的根目录下

5. 把源码中的models文件夹里的所有模型,都复制到自己的项目的models文件夹里面。


6.打开PyCharm,一定要把python文件放在自己项目的bin目录下才可以

7.输入以下代码

import os
import sys
import cv2
from sys import platform
import argparse

dir_path = os.path.dirname(os.path.realpath(__file__))

os.environ['PATH'] = os.environ['PATH'] + ';' + dir_path + '/bin;'
import pyopenpose as op

print(op)
print("成功引入pyopenpose")

parser = argparse.ArgumentParser()
# 把default= 改为自己的图片路径输
parser.add_argument("--image_path",
                    default="C:\\...\\PhotoRecognitionDemo\\pythonProject1\\COCO_val2014_000000000536.jpg",
                    help="Process an image. Read all standard formats (jpg, png, bmp, etc.).")
args = parser.parse_known_args()

# Custom Params (refer to include/openpose/flags.hpp for more parameters)
params = dict()

#如果报错,下面这个模型路径给他写具体来
params["model_folder"] = "models/"

# Add others in path?
for i in range(0, len(args[1])):
    curr_item = args[1][i]
    if i != len(args[1])-1: next_item = args[1][i+1]
    else: next_item = "1"
    if "--" in curr_item and "--" in next_item:
        key = curr_item.replace('-','')
        if key not in params:  params[key] = "1"
    elif "--" in curr_item and "--" not in next_item:
        key = curr_item.replace('-','')
        if key not in params: params[key] = next_item

# Construct it from system arguments
# op.init_argv(args[1])
# oppython = op.OpenposePython()

# 修改参数
# 修改分辨率,可以降低对显存的占用 (16的倍数)
params["net_resolution"] = "368x256"

# Starting OpenPose
opWrapper = op.WrapperPython()
opWrapper.configure(params)
opWrapper.start()

# Process Image
datum = op.Datum()
imageToProcess = cv2.imread(args[0].image_path)
datum.cvInputData = imageToProcess
opWrapper.emplaceAndPop(op.VectorDatum([datum]))

# Display Image
print("Body keypoints: \n" + str(datum.poseKeypoints))
cv2.imshow("OpenPose 1.7.0 - Tutorial Python API", datum.cvOutputData)
cv2.waitKey(0)

点击运行,就可以获得 

8.如果报错,请检查代码中的几处路径是否正确,特别是模型路径,建议改为具体路径。

有可能pyopenpose是标红的,但没事的,能运行,

【资源说明】 基于Openpose的轻量化版本的骨骼点生成器python源码+项目使用说明+模型.zip (1) 环境配置 torch>=0.4.1 torchvision>=0.2.1 pycocotools==2.0.0 opencv-python>=3.4.0.14 numpy>=1.14.0 本项目采用了训练好的模型参数: 参数下载链接: https://download.01.org/opencv/openvino_training_extensions/models/human_pose_estimation/checkpoint_iter_370000.pth 若想要把.pth权重文件转化成onnx格式的权重文件,请在终端运行onnx.py文件 python onnx.py .pth权重文件地址 (2) 运行项目 把测试视频文件放入video文件夹中,终端运行命令: python main.py 即可 如若使用其他文件夹的视频文件,终端执行命令:python main.py --video 视频数据路径 若想使用默认摄像头进行实时动作捕捉,终端执行命令:python main.py --video=0 (3) 添加了计算“人体18个骨骼点”之间的向量角功能 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论 63
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值