参考链接:https://blog.csdn.net/m0_37592397/article/details/81119591
【我的电脑配置】
操作系统:windows 10
CUDA版本:cuda_8.0.61_win10
cuDNN版本:cudnn-8.0-windows10-x64-v5.1
显卡信息:Inter(R) HD Graphics 530
OpenPose版本:1.0.1
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
我的网盘:链接:https://pan.baidu.com/s/148FhJJRUsMMoj86E7_DpLA 密码:kqi8
【CuDNN】
官网:https://developer.nvidia.com/cudnn
我的网盘:链接:https://pan.baidu.com/s/1UTYOacFtmH5r9eAwmzBsfA 密码:7xxd
官网安装过程
链接: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++开发语言包,以避免出现【OpenPose-Windows】error1 OpenPose项目加载失败 这个问题。 (记住,必须是VS2015)
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两个脚本文件,两个文件作用相同(bat用于windows,sh用于linux),都是下载face/hand/pose文件夹下的model,运行其一即可。下载后的三个文件夹内容如下:
除了运行上述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和三方库全部下载好。
如果上面的都不好自动下载的话,可以直接在网上下载对应的文件,链接如下:
【caffe3rdparty】链接:https://pan.baidu.com/s/1WHfTmcKbY6smkhIBo1xjPQ 提取码:1g5z
【opencv_310】链接:https://pan.baidu.com/s/1ppx-hID5ebTYUEz-CaHvRQ 提取码:djw0
【openpose_caffe_model】链接:https://pan.baidu.com/s/1QfKVA4FIfBOYAcJhLPh0bg 提取码:8qel
步骤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格式的视频文件。
【PS】此处设置时,不能两个都不为空。
步骤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中断问题 有具体给出。
【关于如何在运行之后保存运行结果】之前的博主已经写了一篇新的博客 【OpenPose-Windows】运行OpenposeDemo.exe 如何保存图像运行结果及关节点信息 欢迎大家前来讨论研究。
【安装运行时遇到如下问题 】
问题1
其实别看到那么多错误,就被他吓到了,下面让我们一个一个解决他们。
首先解决gflags和glog的问题,通常来讲无法打开源文件” — “, 都是没有找到对应的头文件所致,既然环境无法自动定位我们对应的头文件,那就需要我们人工include了,打开OpenPoseDemo-》属性-》VC++目录-》包含目录,然后导入你的对应路径。笔者的路径如下:
D:\DeepLearning\openpose-master\3rdparty\windows\caffe3rdparty\include
gflags和glog其实就放在..\openpose-master\3rdparty\windows\caffe3rdparty\include 下面
问题2
好,gflags和glog的问题就被我们解决了。
现在开始解决openpose/headers.hpp的问题,其实这个问题非常简单,只要吧debug运行状态改为release运行状态就完美解决了。
问题3
这个问题,我是参考以下链接修改的,配置设置->链接器->输入中加入了lib库的名称。(即加入了OpenPose.lib)。完成后就算是把lib包导入了。当然之后要点击生成->生成解决方案,用来生成exe执行文件,并把相应的dll文件拷贝到exe文件的旁边,便大功告成。
修改的链接:https://blog.csdn.net/galileoyuyu/article/details/82562776
问题4
LINK : fatal error LNK1181: 无法打开输入文件..\3rdparty\windows\caffe3rdparty\lib\boost_atomic-vc140-mt-1_61.lib
LINK : fatal error LNK1181: 无法打开输入文件..\x64\Release\OpenPose.lib
原因:对应文件夹下没有对应的lib文件,自然也就无法打开。
解决办法:下载对应版本的boost库(即boost_1_61_0)并运行其exe文件,将该文件夹下的lib64-msvc-14.0文件中对应的lib拷贝到..\3rdparty\windows\caffe3rdparty\lib目录下,重新编译即可。
【boost_1_61_0下载】https://blog.csdn.net/duan19920101/article/details/51363418
问题5
问题分析:https://blog.csdn.net/nemo2011/article/details/51232533
问题解决办法:换显卡配置更高的电脑运行代码