Openpose的GPU版本在win11环境下安装攻略和一些错误解答(使用最新的cuda库和驱动等

大家好,这里是厂妹。最近要做人体检测项目,也用过很多模型,这次换了电脑刚好重装openpose,发一个文章记录一下安装过程。

电脑配置:

AMD R7-5800

RTX3050

16GB

环境配置:

win11

NVIDIA驱动 516.01

CUDA 11.7

cuDNN 8.5

Openpose 1.7

Python 3.9

VS2022 社区版

1、安装GPU驱动、CUDA和cuDNN

因为偷懒,我用的都是最新版本,没有专门去下什么旧版本,最后也能跑成功。

首先这三者的版本得对应。

首先安装GPU驱动

根据NVIDIA CUDA版本对应文档来查看符合自己GPU驱动的CUDA版本

GPU驱动版本越高,CUDA版本可选的范围就越广泛

安装好驱动后下载CUDA

CUDA下载地址
选择适合的CUDA版本,然后根据自己使用的系统进行选择下载

最后是下cuDNN

cuDNN下载地址
cuDNN版本只需要根据CUDA版本进行选择即可,然后在根据使用的系统选择下载
另外,cuDNN下载需要注册账号,登录之后方可下载

在开发环境的配置过程中,安装顺序通常为 GPU驱动 -> CUDA -> cuDNN
在确定版本的时候,若没有特殊要求,则与安装顺序一致,若有特殊要求,如运行的代码要求必须使用某个CUDA版本,则先确定CUDA版本,再确定GPU驱动与cuDNN版本

2、Openpose下载和环境配置

github地址:https://github.com/CMU-Perceptual-Computing-Lab/openpose

github上下载openpose后,解压到自己的目录下,建议不要解压到含有中文路径的地方

首先下载所需文件

打开到openpose-master\3rdparty\windows 下,可以看到五个bat文件

双击后自动下载

 安装bybind11

GitHub - pybind/pybind11: Seamless operability between C++11 and Python

pybind11解压到以下目录\openpose-master\3rdparty

安装cmake

CMake GUI安装包(Download | CMake

安装cmake参考CMake的安装(超级详细)_墨脱若兮的博客-CSDN博客_cmake安装

快捷键 WIN+R 打开CMD的命令界面

输入cmd,点击确定

在进入发的界面中输入cmake   -version( cmake与-version空3个字符),成功后会出现如下界面,可以看CMake的版本号,则表示安装成功

3、⭐⭐cmake配置与openpose编译【重点】

 参考知乎openpose-GPU版本从安装到实战全攻略!(win10) - 知乎

1、打开CMAKE-gui(!!记得要管理员运行

选择自己的路径

2、如果后续想要使用python运行并修改程序

点击 Add Entry

选择到对应环境的python.exe下就ok了。

这边显示37是因为我用的别人图片 实际按照你自己的python版本来 我用的是39

3、然后进行configure一次

会出现一片红

选择BUILD_PYTHON (非必须,如果你要用python就选)

选择以下五个模型(必选)

GPU_MODE改为如图所示,使用CUDA

注意以下这里,虽然默认打勾,也要记得千万别取消这个钩。

4、然后再次点击configure,可能会出现缺少pybind11的,自行下载。

debug直到configure done

然后点击generate,出现generate done即可

 5

4、openpose在VS下生成release

很多人这一步安装完就以为openpose安装成功了,然后打开VS打开pycharm,然后发现经典报错

Error: OpenPose library could not be found. Did you enable BUILD_PYTHON in CMake and have this Python script in the right folder?
DLL load failed while importing pyopenpose: 找不到指定的模块。

是因为还缺了关键的编译调用库

进入../openpose-master/build/路径下,用VS打开OpenPose.sln即可。依次打开Examples/OpenPoseDemo/openpose.cpp文件,并且设置OpenPoseDemo为启动项目。

打开后,在vs界面上端切换为release模式,然后按顺序右键点击生成右侧四个项目

 右键openpose demo,设置为启动项。

选择Release 模式,点击生成,生成解决方案。

等待结果

但是在这步,我出现了两个头疼的bug

第一个是未加载ucrtbased.pdb

解决方法:C++报错未加载ucrtbased.pdb_柠檬树下你和我₰的博客-CSDN博客_未加载ucrtbased.pdb

1、选择调试栏下的选项
在这里插入图片描述
2、调试下选择常规,在启用源服务器支持前✔。
在这里插入图片描述
3、调试下选择符号,在Microsoft符号服务器前✔。
在这里插入图片描述
4、确定,完毕,成功运行。

第二个问题是报出如下问题 (ucrtbase.dll)

OpenPose里的Demo时候,报错了:error == cudaSuccess (2 vs. 0) out of memory

然后提示如下
这里写图片描述

本人电脑显卡就2个G,根据官方说明

默认的caffe需要12G的显存,但是如果我们使用cuDNN的话,对应不同的模式可以降低到大约2.2G或者1.5G,而不设置的时候默认模式是BODY_25模式,故至少是需要2.2GB的,加上显存不可能完完全全值用在OpenPose里面,所以,显存怎么也得大于2.2GB.
所以2GB显存的我的电脑,肯定是会溢出的。
解决方法:降低图像分辨率/更改模式

通过更改BODY_25、net_resolution、face_net_resolution和hand_net_resolution

至于选择更改哪些按自己的要求来

OpenPose的18和25COCO数据与关节点的对应顺序_IT.Husky的博客-CSDN博客_25点 openpose

BODY_25(25点)是模式类型,剩下的net_resolution是分辨率

这几个更改在

openpose-master\include\openpose\flag.hpp

按照FAQ所回复的内容,笔者调整了网络的分辨率,其调整如下:

参数    0默认    1次调整    2次调整    3次调整
net_resolution    656x368    320x176    320x176    256x176
face_net_resolution    368x368    368x368    320x320    256x256
hand_net_resolution    368x368    368x368    320x320    256x256
备注:全部网络的分辨率必须为16的倍数。
————————————————
版权声明:本文为CSDN博主「二十四桥下一句」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lgh0824/article/details/75808938

比如更改net_resolution 320x176
源代码就是添加FLAGS_net_resolution = "320x176";

5、打开验证

openpose-master\examples\openpose\openpose.cpp

重新debug一下

然后在ALL BUILD

正常是成功26失败0跳过1

然后随便选择一个方案设为启动项目,启动

这里写图片描述

成功 

参考资料

GPU驱动、CUDA和cuDNN之间的版本匹配与下载_略知二三的博客-CSDN博客_cuda cudnn 版本

openpose从安装到实战全攻略!(win10) - 知乎

OpenPose的安装配置与实现,以及遇到的问题与解决方法_咸愚翻生的博客-CSDN博客_python安装openpose

【OpenPose-Windows】中断问题及图像不同分辨率对帧率的影响_二十四桥下一句的博客-CSDN博客

关于openpose项目 运行openposeDemo时出现未加载ucrtbase.pdb问题,希望有大佬能帮助。-编程语言-CSDN问答

解决python openpose导入自己项目后,运行出现No module named pyopenpose的问题-pudn.com

已经解决:OpenPose报错:error == cudaSuccess (2 vs. 0) out of memory_ayouayouwei的博客-CSDN博客

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我在上海做厂妹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值