windows11下编译openpose并通过pyCharm调用

目录

  • 前言
  • 环境
  • 准备工作
  • 编译Openpose并运行Demo
  • 在Python中调用
  • 结语

前言

做毕设的时候要用到Openpose提取人体骨骼关键点,且需要在python中调用编程。过程花了几天,踩了不少坑,做个详细的笔记在这里。

环境

  1. windows 11 64bit;
  2. CUDA v11.6
  3. cuDNN 8.3.2.44
  4. Visual Studio 2022 Community
  5. PyCharm 2021.3 Community

准备工作

  1. 安装CUDA和cuDNN(网上教程很多)
  2. 下载Openpose(目前最新的是1.7.0,链接是github 的下载链接)
    Openpose 1.7.0 zip压缩包
  3. 下载依赖caffe和pybind11
    caffe
    pybind11 2.9.1

编译Openpose并运行Demo

解压下载下来的Openpose 1.7.0压缩包,如图所示
windows11下编译openpose并通过pyCharm调用_第1张图片
点击进入3rdparty文件夹,此时caffe和pybind11两个文件夹应该是空白的。
windows11下编译openpose并通过pyCharm调用_第2张图片
将提前下载好的caffe和pybind11解压后放入这两个空文件夹:
windows11下编译openpose并通过pyCharm调用_第3张图片
windows11下编译openpose并通过pyCharm调用_第4张图片
依赖放入对应文件夹之后打开CMake_gui进行编译。上面一栏选择openpose解压的位置,然后再该目录下新建一个build文件夹,填入下面一栏。
windows11下编译openpose并通过pyCharm调用_第5张图片
点击configure,会提示进行VS版本的选择,装了哪个就选哪个就行。
windows11下编译openpose并通过pyCharm调用_第6张图片
然后就自动开始下载资源并配置了,这个过程要一段时间的,取决于网速(和运气)。
windows11下编译openpose并通过pyCharm调用_第7张图片
Configuring done之后出现如下界面,这边勾选BUILD_PYTHON之后点击Generate开始生成(勾选是为了在python中调用,只要运行Demo的话可以不勾)。这个过程比较快。
windows11下编译openpose并通过pyCharm调用_第8张图片
生成完毕后红色会消失,如果这里报错可能是缺少依赖的原因,检查下之前说的依赖有没有放进去。没问题就点击Open Project打开VS进行编译了。
windows11下编译openpose并通过pyCharm调用_第9张图片
点击后自动启动VS打开Openpose的解决方案,在Example中找到OpenposeDemo并右击生成:
windows11下编译openpose并通过pyCharm调用_第10张图片
windows11下编译openpose并通过pyCharm调用_第11张图片
接下来将Demo设置成启动项目。
windows11下编译openpose并通过pyCharm调用_第12张图片
点击windows本地调试器即可运行Demo:
在这里插入图片描述
这边默认是会调用摄像头进行姿态识别的(人丑不放)。如果要对特定图片或视频进行识别的话,可以添加运行参数。点击调试——Openpose 调试属性。
windows11下编译openpose并通过pyCharm调用_第13张图片
在调试——命令参数中按如下格式输入要检测的图片或视频路径:
windows11下编译openpose并通过pyCharm调用_第14张图片
应用并点击运行:
windows11下编译openpose并通过pyCharm调用_第15张图片
就可以成功在指定图片或视频上运行Demo了。

在Python中调用

首先我们要打开Openpose解决方案,切换模式为release:
在这里插入图片描述
然后右击pyopenpose进行生成:
windows11下编译openpose并通过pyCharm调用_第16张图片
生成成功的标志是在build——python——openpose——Release文件夹下有如下三个文件:
windows11下编译openpose并通过pyCharm调用_第17张图片
接下来才是坑最多的地方…按照其他的教程,我们可以在build——examples——tutorial_api_python中找到示例python代码并修改路径后运行,但我在实际操作中发现总是出现如下错误:即找不到pyopenpose。
在这里插入图片描述
因此我们找到import pyopenpose需要的几个必要的文件:
windows11下编译openpose并通过pyCharm调用_第18张图片
windows11下编译openpose并通过pyCharm调用_第19张图片
将以上五个文件copy到bin文件夹中:
windows11下编译openpose并通过pyCharm调用_第20张图片
其实就是把所有需要的库文件放到同一个文件夹中,这样就不会找不到pyopenpose了。然后我们把示例代码、待测图片和模型也copy过来:
windows11下编译openpose并通过pyCharm调用_第21张图片
在这里插入图片描述
model文件夹在openpose文件夹中:
windows11下编译openpose并通过pyCharm调用_第22张图片
也copy到bin中(总之就是示例代码要什么就粘什么过来):
windows11下编译openpose并通过pyCharm调用_第23张图片

打开示例代码进行一些小修改,原来用来搜索路径的三行代码注释掉:
windows11下编译openpose并通过pyCharm调用_第24张图片
修改图片资源检索路径:
在这里插入图片描述
修改模型获取路径:
在这里插入图片描述
就能够成功运行了:
windows11下编译openpose并通过pyCharm调用_第25张图片

结语

总之真的是一个非常闹心的过程…尤其是路径搜索那段,无论如何也找不到pyopenpose模块,所以只能全放在一个文件夹里,反正能跑起来就行。继续去看代码了…毕设要做不出来了QAQ。

你可能感兴趣的:(python,经验分享,计算机视觉,opencv,视觉检测)