之前有介绍过基于tensorflow的openpose版本安装,但是我觉得没有caffe框架那么好用,很多功能也实现不了,比如调节net_resolution的调节,通过调节分辨率来提高检测的精确性和检测速度。还有手、脸和足的关键点识别,这些目前来说,tensorflow版本都没有涉及到。
所以寻求caffe框架好处多多,希望想进行大型项目开发的小伙伴还是选择caffe版本的,源码是c+。如果本身不太了解c++的小伙伴们,可以采用python api进行项目开发。

如果本文有讲的不清楚的地方,可以参考下面几个博主的安装教程。
## 1.https://medium.com/pixel-wise/real-time-pose-estimation-in-webcam-using-openpose-python-2-3-opencv-91af0372c31c 2.https://blog.techbridge.cc/2019/01/18/openpose-installation/ 3.https://blog.csdn.net/qq_20226441/article/details/82380030 4.https://blog.csdn.net/zb1165048017/article/details/82115724

openpose c++的环境搭建:
openpose1.5.0 + vs2017 +cuda10.2 + cudnn7 + win10

1.openpose的获取

打开 https://github.com/CMU-Perceptual-Computing-Lab/openpose
选择openpose1.5.0最新版本,点击clone or download,下载到项目目录。

2.vs2017的安装,建议按默认路径安装

3.cuda和cudnn安装

cuda官网:https://developer.nvidia.com/cuda-downloads
cudnn官网:https://developer.nvidia.com/cudnn
我的链接:https://pan.baidu.com/s/1Qyi9BUHf26b5ftCUr1FJKA
提取码:ukp3

4.下载模型文件

1.按照目录打开文件:\openpose\3rdparty\windows下找到四个.bat批处理文件分别运行一次以自动下载所需环境。(我尝试的运行很慢,可以用浏览器下载,比较快一些)

2.在\openpose\models下找到getModels.bat批处理文件运行下载所需模型。

5.cmake安装

6.生成工程(如下图所示)

单击configure进行配置,可能会下载一些文件,
注意选择相应的vs版本,默认是vs2017,若为64位平台选择win64
等进度条跑完,红色底色表示为新的内容,建议把所有model都勾选上,因为coco和mpi模型相对body_25较为简化,可加快运行速度。
记得将gpu-mode 改成cuda
单击generate生成工程文件,可能会下载一些文件。

7.生成库

用 Visual Studio 2015 打開 build/OpenPose.sln 檔案
切換到 Release Mode 並 Build Project
这一点非常重要,如果没有改成release,后面的python api会启动失败。
8.运行测试
将希望运行的项目(openposedemo或者tutorial里的项目等)右击设为启动项目f5运行。

重要:

如果上面的步驟都做完,應該可以在
openpose\build\python\openpose\Release 看到
openpose_python.cp36-win_amd64.pyd library 文件。
(OpenPose 原生是用 C++ 寫的,是用 pybind11 包成 Python 可以呼叫的 library,这里的cp36指的是python3.6版本,一定要注意,以后环境变了,还要重新编译。)

完成上述步骤后,就可以在 \openpose\build\examples\tutorial_api_python运行所需的文件了。
比如openpose_python.py,这个是运行摄像头,进行实时检测的。
注意:dir_path,指的是你openpose的安装目录,如果你换了项目环境,需要改成以下的绝对路径。

下面是关于参数的修改,里面涉及很多参数,等以后会出相关的参数含义介绍。也可以自己查看相关文档。
后期会出相关的openpose的文档介绍,非常有意思,需要注意的地方也很多。
目前在进行相关项目的开发和整理,有兴趣的小伙伴可以加入讨论,当然拒绝伸手党,希望大家能尊重彼此的劳动成果,有机会进行合作。

最新文章

  1. MPMoviePlayerViewController
  2. Javascript数组常用方法
  3. 【面向对象版】HashMap(增删改查)
  4. 【C-数据类型 常量 变量】
  5. C++不用任何算术运算符实现整数加法
  6. ping: sendto: Network is unreachable
  7. 类型安全且自动管理内存的返回 std::string 的 sprintf 实现
  8. BZOJ 3990 [SDOI 2015] 排序 解题报告
  9. 几种JavaScript富应用MVC MVVM框架
  10. Realm
  11. Cortex-M3 动态加载一(地址无关代码实现)
  12. TestNG+ExtentReports生成超漂亮的测试报告
  13. https://segmentfault.com/a/1190000004518374#articleHeader3
  14. tensorflow调试tfdbg
  15. webpack模块定义和使用的模式
  16. linux反向删除文件
  17. shell编程:for循环
  18. 吴裕雄 实战PYTHON编程(10)
  19. SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行(转)
  20. easyui - using

热门文章

  1. 安卓和ios的app证书过期的相关问题汇总
  2. [日常摸鱼]HDU2157 How many ways??
  3. 网站开发学习Python实现-Django的models学习-生鲜项目(6.3.2)
  4. Java项目连接数据库Mysql报错create connection SQLException
  5. Promise 之初探
  6. 如何使用Pytest进行自动化测试
  7. 从零开始手把手教你使用javascript+canvas开发一个塔防游戏01地图创建
  8. APP端有原生态的控件,但嵌入了H5页面,怎么定位到H5页面的元素
  9. [LeetCode]86. Partition List分离链表
  10. jQuery 库中的 $() 是什么?