人体行为识别(骨架提取),搭建openpose环境,VS2019(python3.7)+openpose
这几天开始接触人体行为识别,经过多方对比后,选择了现在最热的人体骨架提取开源库,openpose。
下面就不多说了,直接开始openpose在win10下的配置:
需求如下:1. VS2019 据说VS2015以上的版本就可以,VS201x主要是为了通过cMake生成的.sln文件生成可执行exe文件、dll文件,和一些程 序运行所必需的文件,下载VS2019 community版本就可以,有微软账号(免费申请)就可以免费用;
2. Python3.7+Pycharm 想要在Python环境下运行的需要安装这两个,当然也可以是其他的组合,不过还是推荐最新版本的,而且 Pycharm真的很棒;
3.cmake-3.15.3-win64-x64 https://cmake.org/download/ 打开官方网站下载即可,选择最新版本的,这个版本可以生成VS2019的 文件,VS2017。。。。也可以选旧版本的,不过这个向下兼容,下载最新的就可以;
4.cudnn(最新)+cuda(最新) 这两个怎么装百度一下就可以了,很简单,但是推荐在装好VS201x后安装,不然可能会出现一些 问题,不会的可以留言问我;
5.openpose 在GitHub上下载最新的openpose源文件,网址如下https://github.com/CMU-Perceptual-Computing-Lab/openpose。
以上差不多就是配置openpose所必须的东西了,接下来是具体的步骤:
1.假设你已经装好了VS2019,Python3.7+Pycharm,cudnn(最新)+cuda(最新);然后两个下载并解压好的Cmake和OpenPose(我这里为openpose-master,不同的下载方式可能还会有不同的命名方式,不过都无伤大雅)源文件如下图红色下划线所指:

2.文件路径如下,打开cmake-gui.exe;

打开cmake-gui.exe如下,按照我所用红色下划线标注的填写,对应的路径修改为自己的,如果你跟我一样放在A盘,并且文件名都一样就可以 不用改,build_pan_20190913可以改成别的名字;

3.需要在Python中运行的,在这里打勾:

需要下载全部动作识别模型文件的,在找到这些选项打勾,默认只选BODY_25,这个模型识别关节点最多,有20多个,而且是标准CUDA运行 的,后面的COCO,MPI各有不同的优缺点,建议下载:

没有下载或者下载不成功也可以先通过Cmake编译以后再下载,路径如下,双击getModels.bat即可

4.回到Cmake,先点Configure,结束而且成功后再点Generate,此过程费时非常长,建议点完Configure后去吃个饭,回来可能就快好了。。
5.然后在如下图所示中会有这样一个文件:

如果你已经装好了VS201x,可以直接双击打开,之后会这样显示:

这里改成我这样,用Release模式:

然后生成解决方案,快捷键Ctrl+Shift+B,至此,所有配置完毕。
解决方案管理器中目录如下,打开示例程序,如果你的显卡足够好(显存需要4GB左右)而且有摄像头,可以直接按F5运行。

如果不行,就需要改一下东西,来让电脑运行起来(openpose需要的资源真的非常多):
1.显存不够就会报错:error == cudaSuccess (2 vs. 0) out of memory ,这个意思就是显存不够了,这时我们就需要修改头文件,鼠标放在flags.hpp上,按F12跳转到flag.hpp,如下:

修改 net_resolution, "-1x368",只需要修改368的数值就可以显著的降低显存使用率,但是相应的会降低准确度,我这里改成了-1x256,基本上2GB显存就可以运行了。

2.如果没有摄像头,就会报错找不到摄像头,这时我们就需要修改让程序打开视频文件,修改这个参数为视频文件位置,注意是程序里是反斜杠,相应的你需要在这个目录下放入视频文件,我这里完整目录为A:\openpose-master\examples\media\dance.mp4:

3.如果你需要不用body_25,而用coco或者MPI,相应可以更改 model_pose 这个参数,还有更多的可以更改的参数,自己读一读后面的注释就可以了。
经过一番配置,具体的运行结果如下:

可以看出来帧数真的很低啊,不过识别度真的非常高,接下来就可以愉快的玩耍了!!!
人体行为识别(骨架提取),搭建openpose环境,VS2019(python3.7)+openpose的更多相关文章
- 初识python 之 离线搭建pyhive环境(含python3安装)
系统版本: centos6.5 python版本:python3.6.8 相关包存放目录:software 注意:以下操作需要用到root权限 安装python3 root操作 cd /lzh/sof ...
- opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程
很多朋友为了学习python.ML(机器学习).DL(深度学习).opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索.下载.安装配置,出问题等. 市面上的配置资料很多,选 ...
- 一、React Native 搭建开发环境(1)(Mac OS - IOS项目)
React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 目的: 由于我想在一台电脑上同时开发IOS和Android两 ...
- Tesseract识别图片提取文字&字库训练
文中测试了3.0和4.0两个版本.发现3.0识别效率不准确,需要训练词库.4.0识别效率就比较高了,而且支持结果生成pdf.txt等格式.所以推荐使用4.0版本. 这个工具可以用在爬虫的时候获取验证码 ...
- 如何使用eclipse搭建maven环境以及常见的错误
这篇博客适合零基础学习maven,搭建maven以及运行项目,常见的错误,我会在结尾写出说明白,看是否和大家的错误一样,或者文章的括号注释部分也会写出一些注意点. 第一步:就是下载maven,以及配置 ...
- 深入浅出Docker(五):基于Fig搭建开发环境
概述 在搭建开发环境时,我们都希望搭建过程能够简单,并且一劳永逸,其他的同事可以复用已经搭建好的开发环境以节省开发时间.而在搭建开发环境时,我们经常会被复杂的配置以及重复的下载安装所困扰.在Docke ...
- 一、React Native 搭建开发环境(1)(Mac OS - IOS项目篇)
React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 原因:由于我想在一台电脑上同时开发IOS和Android两个 ...
- 带你一步一步搭建TypeScript环境
今天继续来更新,本篇文章我们讲环境搭建,主要分享一些环境搭建的学习资源及安装步骤,解决一些安装时可能会出现的问题.下面就让我们一起进入学习第一步,搭建TypeScript环境:一. 环境搭建1.1. ...
- python学习之正则表达式,StringIO模块,异常处理,搭建测试环境
python正则表达式 引入一个强大的匹配功能来匹配字符串 import re 正则表达式的表示类型raw string类型(原生字符串类型) r'sa\\/sad/asd'用r转为raw strin ...
随机推荐
- 9个tcpdump使用实例
tcpdump能帮助我们捕捉并保存网络包,保存下来的网络包可用于分析网络负载情况,包可通过tcpdump命令解析,也可以保存成后缀为pcap的文件,使用wireshark等软件进行查看. 以下将给出9 ...
- hadoop hdfs 分布式存储
1.克隆前的工作 1.配置好网络nat 需要设置静态ip并能通过主机上网 ssh 和 rsync 是必须下载的 2.yum install vim wget rsync ssh 并配 ...
- Opengl_入门学习分享和记录_03_渲染管线(二)再谈顶点着色器以及顶点属性以及属性链接
---恢复内容开始--- 写在前面的废话:岂可修!感觉最近好忙啊,本来今天还有同学约我出去玩的.(小声bb) 正文开始:之前已经编译好的着色器中还有一些问题,比如 layout(location=0) ...
- js及jquery常用代码
1.获取屏幕尺寸 document.documentElement.scrollWidth; document.documentElement.scrollHeight; $(window).widt ...
- (三十二)c#Winform自定义控件-表格
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- 自己实现spring核心功能 一
聊聊spring spring对于java开发者来说,是最熟悉不过的框架了,我们日常开发中每天都在使用它.它有着各种各样的好处,简单易用,得心应手... ... 我们一说到spring就会讲到ioc ...
- 【C语言基础】unsigned short类型用于循环的一个难点
我在我的知识星球:“C语言解惑课堂”里的第一篇提出一个问题:[第1篇][C语言基础][unsigned short类型用于循环的一个难点]要查看更多的C语言难点解析或者需要提问的同学,微信扫扫文末我的 ...
- 在使用Lists.transform时,不会直接生成PurchaseOrderVo的集合对象,而是生成一个Function的集合
但是在使用Lists.transform时,不会直接生成PurchaseOrderVo的集合对象,而是生成一个Function的集合,在循环的时候,会去调用apply 生成一个PurchaseOrde ...
- strcpy/strncpy/strcpy_s比较
转载自:http://blog.csdn.net/caomiao2006/article/details/4766416 strcpy()是依据源串的/0作为结束判断的,不检查copy先的Buffer ...
- HDFS介绍~超详细
HDFS(Hadoop Distributed File System) (1) HDFS--Hadoop分布式文件存储系统 源自于Google的GFS论文,HDFS是GFS的克隆版 HDFS ...