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

  • Post author:
  • Post category:其他


大家好,这里是厂妹。最近要做人体检测项目,也用过很多模型,这次换了电脑刚好重装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    656×368    320×176    320×176    256×176

face_net_resolution    368×368    368×368    320×320    256×256

hand_net_resolution    368×368    368×368    320×320    256×256

备注:全部网络的分辨率必须为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博客



版权声明:本文为dff123Sunny99原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。