前言
做毕设的时候要用到Openpose提取人体骨骼关键点,且需要在python中调用编程。过程花了几天,踩了不少坑,做个详细的笔记在这里。
环境
- windows 11 64bit;
- CUDA v11.6
- cuDNN 8.3.2.44
- Visual Studio 2022 Community
- PyCharm 2021.3 Community
准备工作
- 安装CUDA和cuDNN(网上教程很多)
- 下载Openpose(目前最新的是1.7.0,链接是github 的下载链接)
Openpose 1.7.0 zip压缩包 - 下载依赖caffe和pybind11
caffe
pybind11 2.9.1
编译Openpose并运行Demo
解压下载下来的Openpose 1.7.0压缩包,如图所示
点击进入3rdparty文件夹,此时caffe和pybind11两个文件夹应该是空白的。
将提前下载好的caffe和pybind11解压后放入这两个空文件夹:
依赖放入对应文件夹之后打开CMake_gui进行编译。上面一栏选择openpose解压的位置,然后再该目录下新建一个build文件夹,填入下面一栏。
点击configure,会提示进行VS版本的选择,装了哪个就选哪个就行。
然后就自动开始下载资源并配置了,这个过程要一段时间的,取决于网速(和运气)。
Configuring done之后出现如下界面,这边勾选BUILD_PYTHON之后点击Generate开始生成(勾选是为了在python中调用,只要运行Demo的话可以不勾)。这个过程比较快。
生成完毕后红色会消失,如果这里报错可能是缺少依赖的原因,检查下之前说的依赖有没有放进去。没问题就点击Open Project打开VS进行编译了。
点击后自动启动VS打开Openpose的解决方案,在Example中找到OpenposeDemo并右击生成:
接下来将Demo设置成启动项目。
点击windows本地调试器即可运行Demo:
这边默认是会调用摄像头进行姿态识别的(人丑不放)。如果要对特定图片或视频进行识别的话,可以添加运行参数。点击调试——Openpose 调试属性。
在调试——命令参数中按如下格式输入要检测的图片或视频路径:
应用并点击运行:
就可以成功在指定图片或视频上运行Demo了。
在Python中调用
首先我们要打开Openpose解决方案,切换模式为release:
然后右击pyopenpose进行生成:
生成成功的标志是在build——python——openpose——Release文件夹下有如下三个文件:
接下来才是坑最多的地方…按照其他的教程,我们可以在build——examples——tutorial_api_python中找到示例python代码并修改路径后运行,但我在实际操作中发现总是出现如下错误:即找不到pyopenpose。
因此我们找到import pyopenpose需要的几个必要的文件:
将以上五个文件copy到bin文件夹中:
其实就是把所有需要的库文件放到同一个文件夹中,这样就不会找不到pyopenpose了。然后我们把示例代码、待测图片和模型也copy过来:
model文件夹在openpose文件夹中:
也copy到bin中(总之就是示例代码要什么就粘什么过来):
打开示例代码进行一些小修改,原来用来搜索路径的三行代码注释掉:
修改图片资源检索路径:
修改模型获取路径:
就能够成功运行了:
文章来源:https://www.toymoban.com/news/detail-445383.html
结语
总之真的是一个非常闹心的过程…尤其是路径搜索那段,无论如何也找不到pyopenpose模块,所以只能全放在一个文件夹里,反正能跑起来就行。继续去看代码了…毕设要做不出来了QAQ。文章来源地址https://www.toymoban.com/news/detail-445383.html
到了这里,关于windows11下编译openpose并通过pyCharm调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!