Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields 是CVPR2017的一篇论文,作者称是世界上第一个基于深度学习的实时多人二维姿态估计。

优酷演示地址:链接

前几天作者公布了windows下的代码,下面来说说如何配置:

英文配置地址可以参考作者的github:https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.md#windows

首先你得装好CUDA8,cudnn5.1,vs2015. 其他版本都不行,只有vs2015可以装

作者说要下载Python 2.4.13 64 bits,其实我的anaconda2也可以(2.7的那个版本)

cmake,ninja(我下载了,但是貌似没用到)

下载windows版的 openpose   https://github.com/CMU-Perceptual-Computing-Lab/openpose/tree/windows

并解压,我放在D盘。下载model ,作者给了2个,

http://posefs1.perception.cs.cmu.edu/Users/tsimon/Projects/coco/data/models/coco/pose_iter_440000.caffemodel  (精度高,速度较慢)下载后放到 D:\openpose-windows\models\pose\coco下

http://posefs1.perception.cs.cmu.edu/Users/tsimon/Projects/coco/data/models/mpi/pose_iter_160000.caffemodel(速度快,但是精度低)

下载后放到D:\openpose-windows\models\pose\mpi\下

打开D:\openpose-windows\3rdparty\caffe\caffe-windows\scripts 下的build_win.cmd,开始编译。

提示出错hash 什么不匹配的,原因是网的问题,https://github-production-release-asset-2e65be.s3.amazonaws.com/39632178/8053cdd0-0068-11e7-8b60-c46f580c47e0?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170531%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170531T072412Z&X-Amz-Expires=300&X-Amz-Signature=1860d1ab5ee6598f6a93e6230d1b74a09200e95e22d72021043f5176b9d73de3&X-Amz-SignedHeaders=host&actor_id=28419338&response-content-disposition=attachment%3B%20filename%3Dlibraries_v140_x64_py27_1.1.0.tar.bz2&response-content-type=application%2Foctet-stream 下载后复制到D:\openpose-windows\3rdparty\caffe\dependencies\download下。再编译,等待半个小时,就会编译完毕。(若出现no c compiler could be found 请参考我另一篇博文)

接着 打开 D:\openpose-windows\windows_project\OpenPose.sln   右键点击OpenPoseDemo 生成,此时会报错。提示 找不到D:\openpose-windows\3rdparty\lib\Release  caffe.lib 。其实它在 D:\openpose-windows\3rdparty\caffe\lib\Release下,路径的问题。

把release下的的两个文件 放到D:\openpose-windows\3rdparty\lib\Release下 就OK 了。  再编译 又提示错误,说找不到pythoh27(其实也可以在build_win.cmd下 把Python的路径改成你自己的python路径,这样这里就不会报错。)右键OpenPoseDemo,属性,连接器,常规,附加库目录,把你的python路径加进去,我为了防止出错,把2个路径都加了。

再生成,就成功了。顺便再生成一下openpose(貌似没什么东西生成)

此时你会在D:\openpose-windows\windows_project\x64\Release下找到OpenPoseDemo.exe。但是你双击它会提示你缺少各种东西。

作者说把{openpose_folder}\3rdparty\caffe\caffe-windows\build\install\bin\ 下的所有DLL文件复制到{openpose_folder}\windows_project\x64\Release.下

但是我没有找到这个路径。我把D:\openpose-windows\3rdparty\caffe\caffe-windows\scripts\build\tools\Release下的所有DLL文件复制过去。

再把{}openpose_folder}\3rdparty\caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\x64\vc14\bin\下的

opencv_ffmpeg310_64.dllopencv_video310.dll 和opencv_videoio310.复制到{openpose_folder}\windows_project\x64\Release下。

此时打开OpenPoseDemo.exe,发现还是缺少一些东西,我在D:\openpose-windows 下搜索缺少的文件,并复制到{openpose_folder}\windows_project\x64\Release下。

此时,发现oppenpose可以打开了,但是提示找不到model,其实是路径的问题,打开OpenPose.sln ,双击OpenPoseDemo下的openpose.cpp.

在第66行,手动设定models的绝对路径,比如我的是这个:

保存,并再次编译。发现oppenpose终于可以打开了!

有些同学可能会提示报错 out of memory (比如说我),其实就是显存不够,爆显存了(1G GT650M伤不起啊

打开OpenPose.sln ,双击OpenPoseDemo下的openpose.cpp.

在第67行、68行 修改网络的大小,我设定成如上的大小,1G显存也可以跑了。

大功告成!

如果想在视频下跑,可以在cmd下使用如下命令:windows_project\x64\Release\OpenPoseDemo.exe --video examples/media/video.avi

如果是图片的话bin\OpenPoseDemo.exe --image_dir examples/media/


 

caffe openpose/Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields配置(转)的更多相关文章

  1. Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(翻译)

    0 - Abstract 我们提出了一种方法去在一张图片中有效地识别多个人体的2D姿势.这个方法使用了一个无参数表示法,我们将其叫为Part Affinity Fields(PAFs),其是去在图片中 ...

  2. Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(理解)

    0 - 人体姿态识别存在的挑战 图像中的个体数量.尺寸大小.位置均未知 个体间接触.遮挡等影响检测 实时性要求较高,传统的自顶向下方法运行时间随着个体数越多而越长 1 - 整体思路 整个模型架构是自底 ...

  3. (转)Awesome Human Pose Estimation

    Awesome Human Pose Estimation 2018-10-08 11:02:35 Copied from: https://github.com/cbsudux/awesome-hu ...

  4. human pose estimation

    2D Pose estimation主要面临的困难:遮挡.复杂背景.光照.真实世界的复杂姿态.人的尺度不一.拍摄角度不固定等. 单人姿态估计 传统方法:基于Pictorial Structures, ...

  5. 手势估计- Hand Pose Estimation

    http://blog.csdn.net/myarrow/article/details/51933651 1. 目前进展 1.1 相关资料      1)HANDS CVPR 2016      2 ...

  6. 论文解读:3D Hand Shape and Pose Estimation from a Singl RGB Image

    本文链接:https://blog.csdn.net/williamyi96/article/details/89207640由于最近做到了一些 3D Hand Pose Estimation 相关的 ...

  7. paper 154:姿态估计(Hand Pose Estimation)相关总结

    Awesome Works  !!!! Table of Contents Conference Papers 2017 ICCV 2017 CVPR 2017 Others 2016 ECCV 20 ...

  8. Social Grouping for Multi-Target Tracking and Head Pose Estimation in Video(翻译)

    0 - ABSTRACT 许多计算机任务在缺少上下文信息的情况下的处理会更加困难.例如,在多相机跟踪任务下,行人可能在不同照相机下面因为有这不同的姿势和灯光条件而看起来很不一样.类似地,在低分辨率高角 ...

  9. 论文笔记: Mutual Learning to Adapt for Joint Human Parsing and Pose Estimation

    Mutual Learning to Adapt for Joint Human Parsing and Pose Estimation 2018-11-03 09:58:58 Paper: http ...

随机推荐

  1. JUC集合之 LinkedBlockingDeque

    LinkedBlockingDeque介绍 LinkedBlockingDeque是双向链表实现的双向并发阻塞队列.该阻塞队列同时支持FIFO和FILO两种操作方式,即可以从队列的头和尾同时操作(插入 ...

  2. Charles :mac上的手机代理

    能在手机访问电脑上的网页. 配置: 下载 Charles,选中 Proxy => macOS Proxy Proxy => Proxy Setting 配置上端口 手机无线手动代理,配置上 ...

  3. POJ3013 Big Christmas Tree

    题目:http://poj.org/problem?id=3013 求每个点到1的最短路.不是最小生成树. 总是WA.看讨论里说INF至少2e10,于是真的A了! 算一下,dis最大可能3276800 ...

  4. Microsoft Dynamics CRM 2011 配置好的IFD环境 怎么制作证书?

    一.CRM2011 IFD怎么制作证书? 配置好的IFD环境里面:打开开始—运行 1.输入: mmc(微软管理控制台) 出现: 2. 出现: 3.添加/删除管理单元,如图: 4.添加证书 5. 6. ...

  5. Servlet是单例的吗?

    如题,是吗?首先我们得搞清楚啥是单例.一聊起单例,条件反射的第一个想到的自然是单例模式.单例模式的定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供.如果按照Java中单例的定义,那么当Ser ...

  6. 关于seo优化的核心思想

    简单说下,针对网页检索结果进行评估,主要是围绕精确率和召回率进行,具体如下:1.相关性:query与结果说的是不是一回事2.需求强度:抓住主要需求3.丰富程度:详细全面4.有效性:能否真正满足5.时效 ...

  7. Linux 期中架构 rsync

    上篇 Rsync rysnc查看版本   --version 全量  与增量在效率上有区别 cp mv scp  --全量复制 rsync       --增量复制 rsync利用的是quick ch ...

  8. HTTP发包工具 -HTTPie

    原文: https://zm8.sm-tc.cn/?src=l4uLj8XQ0IuekZWWi5bRk5CZi5qN0ZyQktCPkIyL0M6cnMmcx8qdoM7PnMrIyMnI&u ...

  9. sql编程中流程控制 IF ……THEN……ELSEIF……THEN………END IF

    写mysql存储过程应注意的几点: 1.声明变量(declare)时要注意字符集,用变量存储表字段时,表字段与变量的字符编码要一致. 2.mysql的字符合并不能用‘+’号,必须用concat函数. ...

  10. 第3课 进化后的 const分析

    1.  C语言中的const (1)const修饰的变量是只读的,使得变量具有只读属性,但本质还是变量.所以不是真正的常量,它只是告诉编译器该变量不能出现在赋值符号的左边. (2)const修饰的局部 ...