【OpenPose-Windows】OpenPose+VS2015+Windows+CUDA8+cuDNN5.1 官方配置教程

转载说明:https://blog.csdn.net/lgh0824/article/details/75949477#commentsedit
对博主表示感谢!

版权声明:欢迎大家一起交流,有错误谢谢指正。

【我的电脑配置】

操作系统:Windows 10
CUDA版本:cuda_8.0.61_win10
cuDNN版本:cudnn-8.0-windows10-x64-v5.1
GPU model:Nvidia GeForce 950M (2GB)
OpenPose版本:Jul 2017 (已Fork到个人Github)
Caffe版本:OpenPose默认
OpenCV版本:OpenPose默认

来一波地址:

【OpenPose下载】

官方Github:https://github.com/CMU-Perceptual-Computing-Lab/openpose
我的Github:https://github.com/luckynote/openpose

【CUDA下载】

官网:https://developer.nvidia.com/cuda-downloads
我的网盘:链接:http://pan.baidu.com/s/1hr8urXy 密码:f4n5

【cuDNN下载】

官网:https://developer.nvidia.com/cudnn
我的网盘:链接:http://pan.baidu.com/s/1o7TgLsu 密码:tzgy

看看官网的安装介绍:

链接:https://github.com/luckynote/openpose/blob/master/doc/installation.md
这里写图片描述

官网安装分析:

步骤1:安装VS2015和CUDA8&cuDNN5.1

阅读本文的笔者推荐从我的云盘下载CUDA8&cuDNN5.1,当然按照官方Github安装的官方有提供CUDA8&cuDNN5.1的下载链接。
a.安装VS2015。
这里写图片描述
这个必须首先安装,安装过程和VS2013一样选择默认安装路径,安装的时候注意一定要选择C++开发语言包。记住必须是VS2015,有VS2013的请务必要把VS2015安装上,否则会出现【OpenPose-Windows】error1 OpenPose项目加载失败 这个问题。
b.安装CUDA8。
这里写图片描述
在安装VS2015之后,安装CUDA8,安装时选择默认安装路径,安装过程和平时安装qq一样,只要一直下一步就行。笔者默认安装路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0。注意在安装CUDA8之前,一定要确保VS2015已经安装,否则的话,需要在安装VS2015之后,再重新安装CUDA8,不然同样会出现【OpenPose-Windows】error1 OpenPose 这个问题。
c.安装cuDNN5.1。在完成a.b.之后,下载cuDNN5.1
这里写图片描述
解压后的内容如下
这里写图片描述
请把压缩包内的bin、include、lib三个文件夹Copy到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\文件夹下,覆盖原有的bin、include、lib。

步骤2:下载model

这个比较简单,在../openpose-master/models/文件下
这里写图片描述
存在getModels.bat和getModels.sh两个脚本文件,两个文件作用相同,都是下载face/hand/pose文件夹下的model,运行其一即可。下载后的三个文件夹内容如下:
../face/
这里写图片描述
../hand/
这里写图片描述
../pose/coco/
这里写图片描述
../pose/mpi/
这里写图片描述
除了运行上述getModels.bat和getModels.sh两个脚本文件下载model模型外,还可以通过../openpose-moster/windows/download_3rdparty_and_models.bat脚本命令下载上述四个model文件。
这里写图片描述
d.下载运行OpenPose.sln所需的三方库。在完成a.b.c.之后,必须运行../openpose-moster/windows/download_3rdparty_and_models.bat脚本文件,如果在c过程运行了getModels.bat或getModels.sh,download_3rdparty_and_models.bat只会下载OpenPose.sln所需的三方库
这里写图片描述
当然也可以跳过c过程,直接运行download_3rdparty_and_models.bat,会把OpenPose.sln运行所需的model和三方库全部下载好。

步骤3:启动OpenPose.sln

完成步骤2之后,进入../openpose-master/windows/路径下,打开OpenPose.sln即可。
这里写图片描述
打开OpenPose.sln之后,资源管理器显示如下
这里写图片描述
依次打开Examples/OpenPoseDemo/openpose.cpp文件,并且设置OpenPoseDemo为启动项目。

步骤4:编译运行OpenPoseDemo

a.推荐使用Release编译运行模式,然后直接运行其程序即可。
b.默认运行后会直接调用电脑的摄像头,如果你的电脑没有可用摄像头,相信应该会报出错误。具体的错误由于笔者还没遇到,暂时不粘贴了,有朋友遇到可以帮我留图。
c.运行.jpg图片检测识别pose。
按照下图所示,修改image_dir的值为“example/media/”
这里写图片描述
【PS】此处的example/media/路径为../openpose-master/examples/media/路径,其路径下内容如下。笔者在一开始的时候以为是../Release路径下的,这里的PS也是提示大家别有一样的想法。另外大家测试自己的图像,也可以放到这个路径下进行测试。
这里写图片描述
给一个运行结果给大家看看
这里写图片描述
d.运行.avi视频检测识别pose。
按照下图所示,修改image_dir的值为“example/media/”
这里写图片描述
以自带的video.avi为例,给一个运行结果给大家看看,也可以运行一个自己的视频,支持.avi和.mp4格式的视频文件。
这里写图片描述

步骤5:编译运行pose+hand/face

a.pose
在默认条件下,即是识别pose,并且按照骨骼姿态还原出当前人体的pose,图像案例在步骤4已经给出来了,这里不在另外给出。
b.pose+hand
修改配置,设置hand变量的值为true,就设置为pose+hand模式
这里写图片描述
给一个运行结果给大家看看,
这里写图片描述
c.pose+face
修改配置,设置face变量的值为true,就设置为pose+face模式
这里写图片描述
给一个运行结果给大家看看,
这里写图片描述
d.pose+hand+face
修改配置,设置hand变量的值为true,设置face变量的值为true,就设置为pose+hand+face模式的识别检测。
这里写图片描述
这里写图片描述
然而,笔者的笔记本GPU配置较差,无法运行pose+hand+face模式下的程序,程序报错如下,这是一个内存溢出问题,笔者一开始调试还以为是程序bug,后来经过一番周折才弄明白是怎么回事。
这里写图片描述
【PS】pose+hand/face如果不修改其网络处理的分辨率,也同样会出现下列问题。
【PS】这个问题的出现及详细分析和具体实验,笔者在上一篇博文【OpenPose-Windows】error2 win10-OpenPose-pose+hand/face中断问题 有具体给出。

【2017/8/6】关于如何在运行之后保存运行结果,笔者已经写了一篇新的博客 【OpenPose-Windows】运行OpenposeDemo.exe 如何保存图像运行结果及关节点信息 欢迎大家前来讨论研究。

【2017/8/19】有的朋友刚刚安装运行的时候或许会遇到如下问题
这里写图片描述
其实别看到那么多错误,就被他吓到了,下面让我们一个一个解决他们。
首先解决gflags和glog的问题,通常来讲无法打开源文件” — “, 都是没有找到对应的头文件所致,既然环境无法自动定位我们对应的头文件,那就需要我们人工include了,打开OpenPoseDemo-》属性-》VC++目录-》包含目录,然后导入你的对应路径。笔者的路径如下:
D:\DeepLearning\openpose-master\3rdparty\windows\caffe3rdparty\include
gflags和glog其实就放在..\openpose-master\3rdparty\windows\caffe3rdparty\include 下面
这里写图片描述
好,gflags和glog的问题就被我们解决了。

现在开始解决openpose/headers.hpp的问题,其实这个问题非常简单,只要吧debug运行状态改为release运行状态就完美解决了。

增加一个自己遇到的问题:

在根据博主的博客自己尝试配置一下,其中遇到了很多问题,最后通过查阅资料成功实现了
问题描述:
>LINK : fatal error LNK1181: 无法打开输入文件“python27.lib”
2>------ 已启动生成: 项目: OpenPoseDemo, 配置: Release x64 ------
2>LINK : fatal error LNK1181: 无法打开输入文件“..\x64\Release\OpenPose.lib”

通过点击运行后,vs2015(社区版)报出来上面的两个错误,最后知道是博主给出的代码中没有包含python的库,而且自己的本地的python版本是3.5,并不支持,所以需要你自己配置自己本地的python路径。

注意:这里只支持python2.7版本的,官方下载地址

配置过程

1、首先将下载下来的python安装在已知目录下,便于后面的配置,我这里安装在
这里写图片描述
安装的位置根据自己的情况定就可以。
2、在vs2015中的项目中进行配置,在OpenPoseDemo上右击选择属性,进入到下面的选项页
这里写图片描述
3、选择链接器——》常规——》附加库目录
这里写图片描述
4、将刚刚python2.7安装目录下的路径添加到项目目录路径下
这里写图片描述
5、点击确定后,上面的问题就可以得到解决

个人实验结果

【2017/8/20】今天从优酷上下载了一个张广成的小苹果广场舞的小视频,做了一些裁剪,再在openpose上跑了一遍,得到一组处理结果,下面展示的是视频的一张截图

这里写图片描述

视频bilibilishow:小苹果 广场舞 openpose 2D 姿态
原视频下载地址:链接: https://download.csdn.net/download/lgh0824/10382790
由于该视频是笔者辛苦一天裁剪好的,喜欢的小伙伴还望多多支持。
该视频仅用于学术交流,谢绝商用!

最后感谢Github官方gineshidalgo99给予的帮助,感谢CSDN博主 风翼冰舟 引导笔者OpenPose入门。

参考博客1:https://blog.csdn.net/d408550969/article/details/72823605
参考博客2:https://blog.csdn.net/m0_37592397/article/details/81109297