OpenPose 安装配置与测试

1.关于OpenPose 
介绍:OpenPose是一个由CMU开源的实时多人关键点检测库,它实现了一个人人体、手部和脸部关键点检测的实时系统(共130个关键点)。 
github地址:https://github.com/CMU-Perceptual-Computing-Lab/openpose

2.系统配置 
操作系统:Win7 x64 
IDE:Viusal studio 2015 
GPU:GT 720 
CUDA: 8.0

2.1安装CUDA,CuDNN,Visual Studio2015 
(1)CUDA安装:https://developer.nvidia.com/cuda-downloads 
按照提示直接安装即可。

(2)CuDNN安装:https://developer.nvidia.com/cudnn 
这一步需要注册一个账号,并填写一个问卷,完成后即可下载。CuDNN下载后解压,添加 [yourPath]\cuda 和[yourPath]\cuda\bin 到环境变量 并按照如下操作: 
[yourPath]\cuda\bin\cudnn64_5.dll —> (拷贝至) 
[yourPath]\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin 
[yourPath]\cuda\include\cudnn.h —> (拷贝至) 
[yourPath]\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include 
[yourPath]\cuda\lib\x64\cudnn.lib —>(拷贝至) 
[yourPath]\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64

(2)安装Visual Studio 2015 
尝试过使用Visual Studio 2013 进行编译,出现很多错误,改用VS2015后正常(可能跟工程配置或使用了C++14 的新特性有关)。

2.2下载相关依赖 
下载上述GitHub上的OpenPose,运行openpose-master/windows路径下的批处理文件”download_3rdparty_and_models.bat“,会自动下载工程需要的caffe,opencv以及相关model。 
 
下载完成后,下载的caffe,opencv及相关库文件在在openpose-master/3rdparty/windows下: 
 
下载的人体,手部以及脸部的caffemodel文件在openpose-master\models下的pose,hand和face各自文件夹中: 


(3)运行 
打开工程,切换到release模式,直接编译运行。 
可能会遇到的问题: 
A. GPU out of memory -> GUP内存不够,换用更高内存的GUP;或更改相关参数(见后文) 
B. GPU compute capacity mismatch -> GUP的compute capacity与CuDNN 不匹配。CuDNN要求GPU的compute capacity大于3.0. 之前使用Tesla c2050遇到了这样的情况。GPU的compute capacity详见https://developer.nvidia.com/cuda-gpus,这里有Nvida官方提供的各型号GPU的相关数据。

3.测试 
程序运行会自动检测可用的摄像头,也可以设置为使用本地图片或视频进行测试,使用本地图片测试需要修改openpose.cpp:
(1)读取测试图片文件夹(工程自带了一些测试图片,存放在openpose-master\examples\media): 
 
(2)保存测试结果文件夹(在openpose-master\examples\media 下新建一个resultImg文件夹): 
 
使用GT720显卡测试单张图片出现 GPU out of memory问题,因一时没有更大容量的GPU,修改了程序中一些参数得以正常运行。主要修改的参数netInputSize,faceNetInputSize,handNetInputSize。修改后的参数如下图,其中注释为程序中默认设置的参数。注意size的长宽需要为16的整数倍。 
关于netInputSize,代码中的注解: 
/** 
* CCN (Conv Net) input size. 
* The greater, the slower and more memory it will be needed, but it will potentially increase accuracy. 
* Both width and height must be divisible by 16. 
*/

修改后进行测试,本机上使用GT720的FPS为0.6(由于显卡容量限制,这里只检测人体关键点,未开启人脸和手部关键点检测),部分测试结果(图片来自网络): 

由于修改了netInputSize,会导致结果比默认参数情况下差。

使用K40c 显卡进行测试,使用工程默认netInputSize,只进行人体关键点检测,FPS在4.0左右。同时进行人体,手部和脸部的关键点检测(工程默认只进行人体关键点检测,检测人脸和手部关键点需要在在代码中修改开启)并修改netInputSize参数分别为512x256,256x256,256x256 FPS在1.2左右,部分结果如下: 

扫描二维码关注公众号,回复: 3986362 查看本文章

测试中使用windows自带的截图工具从网页上截图并保存为jpg格式,后缀为”.JPG”(大写)无法完成测试,工程自带的图片,后缀为”.jpg”(小写)可以正常测试。将截取保存的图片使用画图工具”另存为JPEG”,得到的图片后缀为”.jpg”,可以正常测试。可能是程序问题。
--------------------- 
作者:JerryZhang__ 
来源:CSDN 
原文:https://blog.csdn.net/JerryZhang__/article/details/76208871 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/hk121/article/details/83536785
今日推荐