openpose环境搭建(详细教程CPU/GPU)windows 10+python 3.7+CUDA 11.6+VS2022
玩转OpenPose
- 【玩转OpenPose】编译篇
- 一、开发环境
- 二、下载与安装
- 2.1 CUDA(用于高性能计算)与 CUDNN(用于深度神经网络计算的支持)
- 2.2 下载Cmake
- 2.3 下载0penPose源码
- 2.4 下载caffe-openpose源码
- 2.5 下载pybind11源码
- 三、编译OpenPose(以上步骤完成-开始编译)
- 3.1 编译GPU
- 3.2 编译CPU
- 3.3 demo测试(GPU版和CPU版都相同)
- 四、建立OpenPoseDemo项目
- 4.1 先创建项目,建立bin目录和models目录,bin目录放依赖的相关文件,models放模型文件。
- 4.2 将build_GPU(build_CPU)/x64/Release目录下的openpose.dll复制到项目的bin目录下
- 4.3 将build_GPU(build_CPU)/bin目录下的全部文件复制到项目的bin目录下
- 4.4 将build_GPU(build_CPU)/python/openpose/Release目录下的pyopenpose.cp37-win_amd64.pyd文件复制到项目的根目录下
- 4.5 将openpose/models目录下的所有文件复制到项目的/models目录下
- 4.6 主要文件已经准备就绪,使用python测试是否可用
- 五、常见问题
- 5.1 Check failed: error == cudaSuccess (2 vs. 0) out of memory
- 5.2 在cmake过程中可能出现提示
- 5.3 官方常见问题解决方法
- 六、补充
【玩转OpenPose】编译篇
OpenPose人体姿态识别是由美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以Caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用。
编译好的OpenPose项目: 已上传供大家使用(包括CPU版和GPU版) (C++接口和Python接口)
一、开发环境
1、系统环境
操作系统 | CPU | GPU |
---|---|---|
windows 10 | Intel® Core™ i5-8300H | GeForce GTX 1050 Ti |
2、软件环境
python | CUDA | CUDNN | Visual Studio | Cmake |
---|---|---|---|---|
3.7 | v11.6 | 8.4 | 2022 community | 3.24 |
二、下载与安装
2.1 CUDA(用于高性能计算)与 CUDNN(用于深度神经网络计算的支持)
① 官方教程:
CUDA:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
CUDNN:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows
② CUDA安装
CUDA toolkit Download:https://developer.nvidia.com/cuda-toolkit-archive
桌面右键打开NVIDIA控制面板,点击帮助-系统信息-组件,查看自己显卡支持的CUDA版本:
在CUDA网站下载对应的版本:
下载安装包:
**安装CUDA:**保持路径默认即可
在CUDA的安装路径这里,保持默认就好,默然安装在C盘(保证C盘有足够空间,防止后期编译找不到CUDA的路径)。
安装完成后:
查看环境变量是否存在:
如果系统变量没有自动配置的话,需要我们手动配置。路径是根据前面是否自己有没有修改来指定。
**最后:**配置好环境变量后,我们检查下CUDA是否安装成功。
- 打开cmd
- 输入
nvcc -V
或
nvcc --version
显示cuda_11.6成功下载完成!
③ CUDNN安装
官网下载:https://developer.nvidia.com/rdp/cudnn-archive
CUDNN需要对应安装的CUDA版本
下载完成后解压全部的文件后:
CUDA和CUDNN安装成功!!!
2.2 下载Cmake
下载对于的版本:
链接:https://cmake.org/download/
后解压!看到Cmake-gui即可。
2.3 下载0penPose源码
方法一: 浏览器打开点击下载
openpose官方链接:https://github.com/CMU-Perceptual-Computing-Lab/openpose(需要科学探索下载速度才快)
方法二: git命令下载
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
下载所需的模型:
1.运行 …/openpose-master/models/ 中的 getModels.bat
使用迅雷下载链接
face模型:http://posefs1.perception.cs.cmu.edu/OpenPose/models/face/pose_iter_116000.caffemodel
hand模型:http://posefs1.perception.cs.cmu.edu/OpenPose/models/hand/pose_iter_102000.caffemodel
pose/body_25模型:http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/body_25/pose_iter_584000.caffemodel
pose/coco模型:http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel
pose/mpi模型:http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/mpi/pose_iter_160000.caffemodel
2. 运行 …/openpose-master/3rdparty/windows 中的 ①getCaffe.bat | ②getCaffe3rdparty.bat | ③getFreeglut.bat | ④getOpenCV.bat | ⑤getSpinnaker.bat
(速度慢,百度网盘分享给大家-替换3rdparty/windows)
2.4 下载caffe-openpose源码
方法一: 链接下载
caffe链接: https://github.com/CMU-Perceptual-Computing-Lab/caffe
方法二: git命令下载
git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe.git
将该文件解压放在 …/openpose-master/3rdparty/ 内覆盖caffe
2.5 下载pybind11源码
方法一: 链接下载
caffe链接: https://github.com/pybind/pybind11
方法二: git命令下载
git clone https://github.com/pybind/pybind11.git
将该文件解压放在 …/openpose-master/3rdparty/ 内覆盖pybind11
三、编译OpenPose(以上步骤完成-开始编译)
1.在openpose-master目录下创建两个文件夹,分别为build_GPU、build_CPU。
2.在cmake-3.24.0-windows-x86_64/bin中打开cmake-gui
3.1 编译GPU
先修改路径,后添加Python接口,用于修改python程序。
然后,点击Configure
添加VS版本
后设置
由于使用GPU版 GPU_MODE = CUDA
接着点击Configure 后点击Generate
生成完成后,点击Open Project在VS2022中打开项目,在Release、x64模式下,生成解决方案,等待完成即可。
出现以下
OpenPose的python包就编译完成了,在build_GPU/python/openpose/Release目录下,pyd文件。
3.2 编译CPU
先修改路径,后添加Python接口,用于修改python程序。
然后,点击Configure
添加VS版本
后设置
由于使用CPU版
GPU_MODE = CPU_ONLY
取消 USE_CUDNN
接着点击Configure 后点击Generate
生成完成后,点击Open Project在VS2022中打开项目,在Release、x64模式下,生成解决方案,等待完成即可。
出现以下
到此,OpenPose的python包就编译完成了,在build_CPU/python/openpose/Release目录下,pyd文件。
3.3 demo测试(GPU版和CPU版都相同)
上面的步骤完了之后,C++的例子已经可以运行了,所有C++的例子都在这里,需要用哪个例子,就把它右键设置为启动项目,然后运行就可以了。
运行结果:
四、建立OpenPoseDemo项目
4.1 先创建项目,建立bin目录和models目录,bin目录放依赖的相关文件,models放模型文件。
4.2 将build_GPU(build_CPU)/x64/Release目录下的openpose.dll复制到项目的bin目录下
4.3 将build_GPU(build_CPU)/bin目录下的全部文件复制到项目的bin目录下
复制后:
4.4 将build_GPU(build_CPU)/python/openpose/Release目录下的pyopenpose.cp37-win_amd64.pyd文件复制到项目的根目录下
复制后:
4.5 将openpose/models目录下的所有文件复制到项目的/models目录下
复制后:
4.6 主要文件已经准备就绪,使用python测试是否可用
import os
import sys
import cv2
from sys import platform
import argparsedir_path = os.path.dirname(os.path.realpath(__file__))os.environ['PATH'] = os.environ['PATH'] + ';' + dir_path + '/bin;'
import pyopenpose as opprint(op)
print("成功引入pyopenpose")parser = argparse.ArgumentParser()
# 测试图片的路径要改一下,自己修改
parser.add_argument("--image_path",
default="examples/COCO_val2014_000000000623.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)
出现以下现象则成功运行:
五、常见问题
5.1 Check failed: error == cudaSuccess (2 vs. 0) out of memory
由于GPU显存不足导致的错误,修改 net_resolution 参数 368x368 (16的倍数)
或者 --number_people_max 减少追踪人数
C++接口,加上–net_resolution 160x160。比如:
OpenPoseDemo.exe --video video.avi --net_resolution 160x160
Python接口,也类似:
python demo.py --net_resolution 160x160
这个net_resolution具体参数值根据自己的需要修改,分辨率越小,画面每秒传输帧数(fps)越大,但准确率越小,相反,则越大。不过必须是16的倍数。不然会出现这个报错信息:Error: Net input resolution must be multiples of 16.
5.2 在cmake过程中可能出现提示
pybind11 does not contain a CMakeLists.txt file
openpose源码文件中缺少pybind11,pybind11是c++和python基本类型转换的工具。
重新下载pybind11,并把其放入将该文件解压放在 …/openpose-master/3rdparty/ 内覆盖pybind11 见上文。
5.3 官方常见问题解决方法
链接:https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/05_faq.md#difference-between-body_25-vs-coco-vs-mpi
六、补充
大家有问题在评论区交流,我很乐意为大家解答,码字不易,请大家多多支持;如有不对的地方请指正,谢谢!
openpose环境搭建(详细教程CPU/GPU)windows 10+python 3.7+CUDA 11.6+VS2022相关推荐
- Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)...
win7(win10也适用)系统安装GPU/CPU版tensorflow Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程) 目录 2.配置 ...
- Kubernetes集群环境搭建详细教程(一主两从)
Kubernetes集群环境搭建详细教程(一主两从) 1.1 安装要求 在开始之前,部署Kubernetes 集群机器需要满足以下几个条件: 一台或多台机器,操作系统CentOS7.x-86_x64 ...
- win0php环境搭建,win10php环境搭建详细教程
大家在将系统更新为Win10系统后,对php环境搭建方法并不是很清楚.那么win10php环境搭建要怎么操作呢?其实win10php环境搭建的方法跟Win7/Win8.1系统的php环境搭建是相同道理 ...
- Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)
目录 前言 第一步:安装Anaconda 1.下载和安装 2.配置Anaconda环境变量 第二步:安装TensorFlow-GPU 1.创建conda环境 2.激活环境 3.安装tensorflow ...
- PHP开发环境搭建详细教程
首先你需要安装Apache Server,这里以当前最新版Apache Server2.4为例进行说明,可惜官网并没有提供最新版的msi安装包,连编译后的binary二进制压缩包都没提供,不过我已经编 ...
- 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】
Go语言开发环境搭建[Win.Linux.Mac] 1 SDK下载 官网地址:golang.org,因为一些原因国内可能无法访问.可以使用下面第二个链接. 国内地址访问:https://golang. ...
- Rust语言开发环境搭建详细教程
目录 一.Rust简介 1.rust历史 2.rust吉祥物 二.Rust开发环境搭建 1.C++环境安装 2.Rust下载 3.rust安装 4.rust环境检测 查看rust版本 查看cargo版 ...
- 通用SSM项目环境搭建详细教程
一.新建一个Maven项目 1. 2.不使用骨架,直接next 3.(项目名称.工作空间.分组Id设置.按照个人喜好即可,不推荐使用中文) -> 直接Finish 4.看到如下图的pom.xml ...
- 微信小程序 - Vant weapp UI 框架环境搭建详细教程(Window)
前言 强烈推荐您打开 官方文档,对照着本教程一起对比搭建坏境. 自从 2022 年开始,小程序做了很多改变和升级, 导致网上很多搭建教程文章的教程失效了,本文来做最新的教程. 第一步 为了更贴合新手, ...
- 2、Ubuntu介绍加环境搭建详细教程
一.简介 1.1嵌入式: 嵌入式主要学习的就是一个系统,如何使用系统,如果把软件嵌入到硬件设备 物联网:万物互联,学习物联网就是学习如何将多个设备之间连接 蓝牙.wifi.NBIOT.ZIGBEE.5 ...
最新文章
- 问题.NET--win7 IIS唯一密钥属性“VALUE”设置为“DEFAULT.ASPX”时,无法添加类型为“add”的重复集合...
- php把proto解析为文档,Protobuf 文件生成工具 Prototool 命令详解
- 深度学习(二十五)基于Mutil-Scale CNN的图片语义分割、法向量估计-ICCV 2015
- 10通信端口感叹号_工程现场通信总线布线、压接规范
- 【OFDM系列3】AWGN下基于循环前缀(CP)OFDM调制解调原理、信噪比计算及仿真(H Harada经典OFDM书籍中代码详解及更正)
- jquery 树形框 横_利用jQuery设计横/纵向菜单
- TensorFlow之Vscode调试
- 有截图功能的android播放器,Android hls、rtsp录屏截屏直播播放器
- winform界面控件丢失的问题
- 【3389】俄远程桌面多端口爆破
- U8如何设置和调用凭证模板
- JAVA鲜花订购网微服务计算机毕业设计Mybatis+系统+数据库+调试部署
- mysql alter字段_mysql alter语句添加、修改、删除字段的例子
- PMP备考之路 - 汪博士第六章(项目进度管理)
- 惠天、言亮 的《世纪三部曲》 听后感
- 吴恩达 DeepLearning 神经网络基础 第一课第三周编程题目及作业
- 动态链接函数dlsym()的参数RTLD_NEXT使用注意事项
- 持续更新 BUUCTF——PWN(二)
- Linux命令行修改配置(待续)
- Git之checkout命令总结