栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

windows11下编译openpose并通过pyCharm调用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows11下编译openpose并通过pyCharm调用

目录

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

前言

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

环境
    windows 11 64bit;CUDA v11.6cuDNN 8.3.2.44Visual Studio 2022 CommunityPyCharm 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中(总之就是示例代码要什么就粘什么过来):

打开示例代码进行一些小修改,原来用来搜索路径的三行代码注释掉:

修改图片资源检索路径:

修改模型获取路径:

就能够成功运行了:

结语

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号