这几天开始接触人体行为识别,经过多方对比后,选择了现在最热的人体骨架提取开源库,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的更多相关文章

  1. 初识python 之 离线搭建pyhive环境(含python3安装)

    系统版本: centos6.5 python版本:python3.6.8 相关包存放目录:software 注意:以下操作需要用到root权限 安装python3 root操作 cd /lzh/sof ...

  2. opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程

    很多朋友为了学习python.ML(机器学习).DL(深度学习).opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索.下载.安装配置,出问题等. 市面上的配置资料很多,选 ...

  3. 一、React Native 搭建开发环境(1)(Mac OS - IOS项目)

    React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 目的: 由于我想在一台电脑上同时开发IOS和Android两 ...

  4. Tesseract识别图片提取文字&字库训练

    文中测试了3.0和4.0两个版本.发现3.0识别效率不准确,需要训练词库.4.0识别效率就比较高了,而且支持结果生成pdf.txt等格式.所以推荐使用4.0版本. 这个工具可以用在爬虫的时候获取验证码 ...

  5. 如何使用eclipse搭建maven环境以及常见的错误

    这篇博客适合零基础学习maven,搭建maven以及运行项目,常见的错误,我会在结尾写出说明白,看是否和大家的错误一样,或者文章的括号注释部分也会写出一些注意点. 第一步:就是下载maven,以及配置 ...

  6. 深入浅出Docker(五):基于Fig搭建开发环境

    概述 在搭建开发环境时,我们都希望搭建过程能够简单,并且一劳永逸,其他的同事可以复用已经搭建好的开发环境以节省开发时间.而在搭建开发环境时,我们经常会被复杂的配置以及重复的下载安装所困扰.在Docke ...

  7. 一、React Native 搭建开发环境(1)(Mac OS - IOS项目篇)

    React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 原因:由于我想在一台电脑上同时开发IOS和Android两个 ...

  8. 带你一步一步搭建TypeScript环境

    今天继续来更新,本篇文章我们讲环境搭建,主要分享一些环境搭建的学习资源及安装步骤,解决一些安装时可能会出现的问题.下面就让我们一起进入学习第一步,搭建TypeScript环境:一. 环境搭建1.1. ...

  9. python学习之正则表达式,StringIO模块,异常处理,搭建测试环境

    python正则表达式 引入一个强大的匹配功能来匹配字符串 import re 正则表达式的表示类型raw string类型(原生字符串类型) r'sa\\/sad/asd'用r转为raw strin ...

随机推荐

  1. 主成分分析 Principle Component Analysis

    一.主要思想 利用正交变换把可能线性相关变量表示的观测数据,转换为由少数几个线性无关变量(主成分)表示的数据.(重构原始特征空间:线性降维) 要尽可能保留原始数据中的信息,两个思路:最大投影方差.最小 ...

  2. 《机器学习技法》---对偶SVM

    1.对偶问题的推导 为什么要求解对偶问题?一是对偶问题往往更容易求解,二是可以自然的引入核函数. 1.1 用拉格朗日函数将原问题转化为“无约束”等价问题 原问题是: 写出它的拉格朗日函数: 然后我们的 ...

  3. C# ModBus 读取数据

    简单介绍: 项目上需要与多家公司做接口对接.我们提供接口的有,其他公司提供的接口也有.所有的接口全部对接完了,遇到一个非常棘手的问题,需要获取甲方船厂设备上的状态,就给了一个文档,文档上写了IP.端口 ...

  4. 用python解析JSON

    先来认识下JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使 ...

  5. 图数据库 Nebula Graph 的数据模型和系统架构设计

    Nebula Graph:一个开源的分布式图数据库.作为唯一能够存储万亿个带属性的节点和边的在线图数据库,Nebula Graph 不仅能够在高并发场景下满足毫秒级的低时延查询要求,而且能够提供极高的 ...

  6. 曹工杂谈:一例简单的Jar包冲突解决示例

    Jar包冲突的相关文章: 了不得,我可能发现了Jar 包冲突的秘密   一.前言 jar包冲突分多种,简单理解来说,就是同package且同名的类在多个jar包内出现,如果两个jar包在同一个clas ...

  7. malloc和free

    1.系统使用红黑树管理空闲堆空间,malloc是申请了堆一块内存的使用权,拿到了这个钥匙,然后红黑树该块的空闲标记被去除. 2.free后,红黑树重新标记该块内存为空闲,其他程序就可以申请到此块内存. ...

  8. 线程学习oneday

    进程:执行中的程序叫做进程(Process),是一个动态的概念. 线程:一个进程可以产生多个线程.同多个进程可以共享操作系统的某些资源一样,同一进程的多个线程也可以共享此进程的某些资源(比如:代码.数 ...

  9. count(*) count(1) count(column)的区别

    count(1)中的1并不是指第一个column: count(*)和count(1)一样,包括对值为NULL的统计: count(column)不包括对值为NULL的统计,这里的column指的不是 ...

  10. mac下面有epoll?

    没有的,但是mac下面有kqueue,跟epoll原理是差不多的. 这个是没办法的,如果实在需要,就用Ubuntu吧,这个也可以无缝迁移. 更多资源,更多文章由小白技术社提供(是我啦)