当前位置:网站首页>OpenPose的使用
OpenPose的使用
2022-07-02 13:57:00 【呼叫冰河谷】
介绍
the first real-time multi-person system to jointly detect human body, hand, facial, and foot keypoints (in total 135 keypoints) on single images.(在一张图片上对人体、手部、面部、足部关节点检测的首个实时多人系统)
下载代码
去Github去clone:https://github.com/CMU-Perceptual-Computing-Lab/openpose

安装CMake
下载好后默认安装即可,然后添加环境变量

下载pybind11(下载Zip包即可)
GitHub - pybind/pybind11 at 085a29436a8c472caaaf7157aa644b571079bcaa
下载完成后放入openpose的3rdparty\pybind11文件夹下

下载Caffe(下载Zip包即可)
下载完成后放入openpose的3rdparty\caffe文件夹下

安装Cuda
CUDA Toolkit 11.7 Downloads | NVIDIA Developer

默认安装即可
下载Cudnn
cuDNN Archive | NVIDIA Developer
先去到这个地址,然后复制下载链接到迅雷下载即可,因为直接点链接下载经常加载不进去页面(此外,还需要用邮箱注册一下)

解压后有三个文件夹bin、include和lib,依次将三个文件夹中的内容拷贝到cuda的安装目录(默认情况下是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2)下的bin、include和lib下,这个要一一对应,如下图所示。



找到Visual Studio Installer, 点击修改

选择单个组件,搜索Cmake,勾选并点击修改

搜索Windows 10 SDK勾选

编译openpose代码
在openpose文件夹下新建build文件夹

配置路径,第一个框是openpose源码的文件夹,第二个框里填的是生成路径

然后点击Configure,选择VS2022,然后Finish



然后打开Build Python,然后点击Configure

然后点击Generate

然后点击open Project,在VS中打开编译好的项目

然后鼠标右键 OpenposeDemo选择生成

生成完成

我们可以看到,最后生成的exe文件

右键OpenPoseDemo,选择设为启动项目
然后运行,点击本地Windwos调试器,这时就会调用摄像头实时地识别人体关节点了

如果想使用某个视频文件来运行OpenPoseDemo,可以在visual studio中增加命令行参数,方法是右键打开解决方案中的OpenPoseDemo,选择属性

选择调试,然后在命令参数输入:
--video C:\Users\hzkdediannao\Desktop\python\openpose\test.mp4 (这是视频保存的位置)

然后再次运行即可

运行时遇到的问题:
- Failed to parse NetParameter file: models\pose/body_25/pose_iter_584000.caffemodel
0x00007FF9F320286E (ucrtbase.dll) (OpenPoseDemo.exe 中)处有未经处理的异常: 请求了严重的程序退出。
编译遇到这个错误大概率是model没有下载全,去models目录下运行getModels.bat

然后我们尝试使用python调用
右键pyopenpose点击生成



然后将x64/Release下文件和python/openpose/Release下文件拷贝到bin目录下


然后把openpose下地models目录拷贝到bin目录下

然后在bin目录下新建一个data文件夹,来保存需要识别地图片或视频

然后我们先在cmd调用一下


然后我们在bin目录下打开Jupyter Notebook


然后新建一个ipynb文件,参考examples/tutorial_python/body_form_image.py下代码进行自定义编程

import pyopenpose as op
import matplotlib.pyplot as plt
import cv2
# Custom Params (refer to include/openpose/flags.hpp for more parameters)
params = dict()
params["model_folder"] = "./models/"
# Starting OpenPose
opWrapper = op.WrapperPython()
opWrapper.configure(params)
opWrapper.start()
# Process Image
datum = op.Datum()
imageToProcess = cv2.imread('data/test2.jpg')
imageToProcess = cv2.cvtColor(imageToProcess,cv2.COLOR_RGB2BGR)
plt.imshow(imageToProcess)
datum.cvInputData = imageToProcess
opWrapper.emplaceAndPop(op.VectorDatum([datum]))
# Display Image
print("Body keypoints: \n" + str(datum.poseKeypoints)) #X\Y\C(置信度)
plt.imshow(datum.cvOutputData)
可以看到有10个点

在图片中正好也有10个点

参考:
边栏推荐
- 历史上的今天:支付宝推出条码支付;分时系统之父诞生;世界上第一支电视广告...
- 台积电全球员工薪酬中位数约46万,CEO约899万;苹果上调日本的 iPhone 售价 ;Vim 9.0 发布|极客头条...
- SSM integration exception handler and project exception handling scheme
- Executive engine module of high performance data warehouse practice based on Impala
- [error record] the connection of the flutter device shows loading (disconnect | delete the shuttle/bin/cache/lockfile file)
- Digital IC hand tearing code -- voting device
- 学习周刊-总第60期-2022年第25周
- Global and Chinese markets for airport baggage claim conveyors 2022-2028: technology, participants, trends, market size and share Research Report
- LeetCode 2. Add two numbers
- 入行数字IC验证后会做些什么?
猜你喜欢

配置基于接口的ARP表项限制和端口安全(限制用户私自接入傻瓜交换机或非法主机接入)

unity Hub 登錄框變得很窄 無法登錄

机器学习-感知机模型

Take you ten days to easily complete the go micro service series (I)

Summary of monthly report | list of major events of moonbeam in June

sim2real环境配置教程

基于Impala的高性能数仓实践之执行引擎模块

linux下配置Mysql授权某个用户远程访问,不受ip限制

Privacy computing technology innovation and industry practice seminar: Learning

Multi task prompt learning: how to train a large language model?
随机推荐
Interview summary of large factories
john爆破出现Using default input encoding: UTF-8 Loaded 1 password hash (bcrypt [Blowfish 32/64 X3])
LeetCode 5. Longest Palindromic Substring
Executive engine module of high performance data warehouse practice based on Impala
Classic quotations
图书管理系统(山东农业大学课程设计)
VMware安装win10镜像
Penetration tool - intranet permission maintenance -cobalt strike
uboot的作用和功能
曆史上的今天:支付寶推出條碼支付;分時系統之父誕生;世界上第一支電視廣告...
基于Impala的高性能数仓实践之执行引擎模块
机器学习-感知机模型
易语言abcd排序
Which software is good for machine vision?
What is normal distribution? What is the 28 law?
Global and Chinese markets for carbon dioxide laser cutting heads 2022-2028: Research Report on technology, participants, trends, market size and share
False summer vacation
外企高管、连续创业者、瑜伽和滑雪高手,持续迭代重构的程序人生
Rock PI Development Notes (II): start with rock PI 4B plus (based on Ruixing micro rk3399) board and make system operation
Take you ten days to easily complete the go micro service series (I)