目录
前言
最近一段时间在基于openpose骨架提取工具做一些研究,但是openpose的配置调试就花费了不少精力,网上也就一些教程,写的各有重点,所以我想汇总写一个相对完善的配置调试过程,顺便记录一下自己在其中碰到的坑,本篇文章未能详尽的地方欢迎大神补充。
硬件支持参考
openpose官网建议的配置:
- Nvidia GPU version:
1.NVIDIA graphics card with at least 1.6 GB available
2.At least 2.5 GB of free RAM memory for BODY_25 model or 2 GB for COCO model (assuming cuDNN installed).
3.Highly recommended: cuDNN.
- AMD GPU version:
1.Vega series graphics card
2.At least 2 GB of free RAM memory.
- CPU version:
Around 8GB of free RAM memory.
首先只使用cpu进行处理图像的openpose速度极慢,运行起来fps小于1,建议使用显卡加速open pose。Nvidia的GPU由于可以方便的配置cuda和cudnn,所以可以加速基于深度学习的openpose。AMD的GPU经过配置也可以加速,但是由于AMD的GPU配置相对繁琐,使用AMD来做openpose的朋友很少。下面主要针对Nvidia的显卡进行配置。
目前在3台不同电脑上配置过,主机参数、运行openpose的版本及运行测试视频帧数如下(仅供参考,另opv1.7的在860M 2g和1660s 4g上运行不起来):
- 笔记本:win10,i5-4210H 2.9GHz,GTX860M 2g,RAM 8GB,opv1.6,运行帧数 2FPS;
- 台式机:win10,i5-11400F 2.6GHz,GTX1660S 4g,RAM 8GB,opv1.6,运行帧数 6FPS;
- 台式机:win10,i711700K 3.6GHz,RTX3060 12g,RAM 16GB,opv1.7,运行帧数 12FPS;
以上帧数均是在默认参数下运行结果,配置好后可以自行调参,提高帧数。
软件配置
我以目前使用的台式机:win10,i711700K 3.6GHz,RTX3060 12g,RAM 16GB为例。
需要配置的有Visual Studio 2017+cuda+cudnn+python+cmake。
安装VS2017
网址:https://my.visualstudio.com/Downloads?q=visual%20studio%202017
最好安装vs2015~vs2017的版本,vs版本过高很可能导致之后release报错。
安装过程中主要安装一下几个组件
cuda和cudnn安装
cuda官网:CUDA Toolkit Archive | NVIDIA Developer
在官网选择适合自己GPU的cuda版本。在显卡的控制面板中查看cuda支持型号,以我的主机为例,图中显示driver版本是11.4版本的cuda,则我的显卡可以安装11.4及以下版本的cuda。实但是测RTX3060不支持11.0一下版本的cuda。我选择的是11.1的版本。
cuda的安装路径建议一路选择默认的路径,不然很可能报错。
安装完成后可以在系统cmd中输入nvcc -V后敲回车,出现一下字段则表示安装成功:
cudnn官网:cuDNN Archive |英伟达开发者 (nvidia.com)
如图选择下载与cuda对应的版本。
下载到本地解压后,将cudnn中的文件夹,拷入cuda中对应的文件夹。如图,如果你的cuda是默认安装路径,应该可以按照途中路径找到相应文件夹。
安装完之后通过cmd验证一下是否安装成功:
在系统cmd中运行NVIDIA提供的 deviceQuery.exe
和 bandwidthTest.exe
两个exe文件,来查看GPU的状态,两者均在安装目录的 extras\demo_suite
文件夹中。
运行结果如下则表示安装配置成功。记得在cmd中运行,直接双击运行很可能会出现程序闪退。
首先运行 deviceQuery.exe
,可以看到如下结果:
运行 bandwidthTest.exe
看到如下结果:
至此cuda和cudnn安装配置成功。
安装CMake工具
在CMake官网:Download | CMake
下载相应安装包,安装。
OpenPose项目文件准备
在openpose的官网下载或git项目源码(下载压缩包和git clone的区别是git clone的项目包含历史版本信息,下载和git的项目都可以正常使用)。
GitHub官方网址:https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases
Gitee国内网址:Bigger/openpose (gitee.com) (官网上不去时可以使用此地址)
如图,以GitHub官网为例,下载压缩包到本地并解压。解压后的内容如下:
在项目下的models文件夹中运行如下两个文件,下载识别model(也可以等cmake时自动下载,但是cmake中下载一般很慢,所以提前下载):
下载项目下3rdparty文件夹中的3个文件夹中的相应文件:
首先是caffe文件夹,需要下载caffe压缩包解压后塞进去(所有网盘链接内的文件都对应的是opv1.7版本,是否使用与其他版本op,请自行尝试)。
网盘链接:https://pan.baidu.com/s/1xE3jQxDR86ZflYsU6cGJPw
提取码:c2sd
将压缩包内的内容全部拷入项目下caffe文件夹,完成后如图:
然后是pybind11文件夹,同样在网盘链接中下载压缩包,解压塞进pybing11文件夹,完成后如图:
接下来是windows文件夹,打开weindows文件夹,双击如下5个程序,下载相应的包:
到此openpose项目的相关文件准备就绪。
项目编译生成:
打开 cmake 里的cmake-gui.exe文件。
在项目中新建工程文件夹,命名为build
打开CMake,选择源码和自己新建的工程文件,然后点击configure。
在选项框中选择自己安装的vs版本,我这里选择的是2017版本的,如果是64位操作系统就在第二个下拉框中选择×64,如果是32位系统则不用管,默认就是32位的,然后点finish,等待configure完毕。如下图:
生成完毕如下图所示,选择需要的选项后,点击generate,等待:
显示如下消息则generate完毕。
openpose测试:
然后可以关闭CMake,在build文件夹测试项目。如下图所示,使用vs2017打开openpose.sln文件,
打开后,在vs界面上端切换为release模式,然后按顺序右键点击生成右侧四个项目
右键openpose demo,设置为启动项。
如果电脑连接有摄像头,点击运行,可以直接对摄像头画面中的人物进行骨架提取:
若没有摄像头,可以打开设置文档,对项目自带的视频进行提取。
右键打开openpose.cpp,
然后右键打开flags.hpp文件,
在“”内输入视频路径,examples/media/video.avi
然后点击运行,对视频进行提取,如下图所示:
到此,openpose测试成功。
结语
未能详尽的地方,希望大家补充。欢迎各位在评论区交流openpose和基于它的一些二次开发。