OpenPose_program

Openpose本地部署(包含使用cmake编译)

需要的环境(推荐)

-windows 10 64bit【笔者使用的是win11】
-openpose 1.7.0
-cuda 11.1【笔者为cuda_12.3】
-cudnn 8.0.5.39
-visual studio 2019【笔者使用的是VS2022】
-cmake 3.20.2 【笔者使用的是3.29.0】

基础环境安装

由于需要使用’cmake-gui’,此还需要去下载安装cmake,地址: https://cmake.org/download/,
请将Cmake添加到环境变量

编译openpose

这里使用的源码是1.7.0版本,地址是:(此方法不推荐,下载很多依赖会失败,官方的库有时会丢失)
https://github.com/CMU-Perceptual-Computing-Lab/openpose/archive/refs/tags/v1.7.0.zip
下载后解压,在源码根目录新建个文件夹build,这个文件夹是用来存放编译生成的文件的。另外,openpose还依赖caffepybind11(这是为了能在python中去调用openposeapi)

下载整合包[推荐]缺失的依赖已经下载安装,还没有编译,也可以下载编译完成版本

地址为:
(整合包文件)https://github.com/carrollpolo/openpose/releases/download/v1.0.0/OpenPose_Revise.zip
(模型文件)https://github.com/carrollpolo/openpose/releases/download/v1.0.0/models.zip
(编译后文件)https://github.com/carrollpolo/openpose/releases/download/v1.0.0/build.zip
下载完成后全部解压缩,之后将modelsbuild放入OpenPose_Revise文件夹下

然后可以点击OpenPose_Revise\build\x64\Release路径下的exe文件运行,最好使用OpenPoseDemo.exe

具体成果为

以下是通过cmakeVS2022编译的方法

首先将OpenPose_Revisemodels解压缩,将模型文件放入OpenPose_Revise下,如下图所示

通过Powershell导入OpenPose_Revise文件夹目录,新建一个build文件,使用下面的命令

1
mkdir build
1
cd build 
1
cmake-gui ..

会得到下面的效果

点击configure会选择相应的选择相应的Visual Studio版本,选择自己的版本,其他默认

然后点击configure,会得到下面的效果

会出现红色警告,不用担心,这只是确认以下,再次点击configure会得到下面场景

在上面图片依次点击configureGenerate,然后你会发现Open Project图标可以点击了

点击进入Visual Studio,把Debug改为Release,点击本地Windows调试器

有时会出现乱码,不用担心,这是当中的中文

编译完成后会出错

这是因为

  1. models文件没有导入
  2. \OpenPose_Revise\build\bin下需要加载的动态链接库(DLLs)未加载

解决方法

  1. models文件复制一份到\OpenPose_Revise\build\x64\Release路径下(之前是没有的,需要生成一次)
  2. \OpenPose_Revise\build\bin下所有的dll文件复制到\OpenPose_Revise\build\x64\Release路径下

然后在Visual Studio下重新生成一次

再次编译后就不会报错了,如下图

然后在\OpenPose_Revise\build\x64\Release文件夹下会发现新编译出来.exe文件

然后就可以使用OpenPose_Revise了!祝玩得愉快!

Author

Shang Lee

Posted on

2024-03-17

Updated on

2024-03-18

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.