PyOpenPose编译与使用-程序员宅基地

技术标签: python  openpose  图像处理  pyopenpose  caffe  姿态估计  

PyOpenPose编译

前言

PyOpenPose是一个OpenPose的python绑定,你可以使用python来实现人体的姿态估计。用上python的openpose,想想就有点小激动呢。哈哈

PyOpenPose依赖于OpenCV3以上的版本,依赖于python2.7这个版本,以及protobuf 2.6.1

  • OpenCV3的版本
    其实opencv3的其他版本我也试过,2.4的会出问题,3.3的也会出问题,问了作者之后才知道他装的是3.2的,所以这里建议安装3.2的版本。
    并且OpenCV3不要开启dnn,编译OpenCV3的时候一定要关闭dnn,否则会出现caffe.proto相关的错误。

  • protobuf的版本
    系统如果是ubuntu的话,执行使用apt安装默认的protobuf就行,protobuf的版本是2.6.1,其他的版本比如3.3的是不行的。
    注意系统中不能存在其他版本的protobuf,否则会出现openpose链接到旧版本的protobuf错误。

安装OpenCV3

安装依赖的包

sudo apt-get install -y build-essential cmake pkg-config
sudo apt-get install -y libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install -y libxvidcore-dev libx264-dev
sudo apt-get install -y libgtk-3-dev
sudo apt-get install -y libatlas-base-dev gfortran
sudo apt-get install -y python2.7-dev python3.5-dev

下载opencv3.2

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/3.2.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.2.0.zip

解压源码

unzip opencv.zip
unzop opencv_contrib.zip

编译opencv

cd opencv/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D BUILD_opencv_dnn=OFF \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D PYTHON_EXECUTABLE=/usr/bin/python2.7 \
    -D BUILD_EXAMPLES=ON ..

安装

sudo make install
sudo ldconfig

当然你如果想卸载可以sudo make uninstall

安装Protobuf

ubuntu自带的就是 2.6.1所以可以直接安装

sudo apt install libprotobuf-dev protobuf-compiler libprotobuf-lite9v5 protobuf9v5 libprotobuf-c1

编译OpenPose

这个官方有教程,这里不写,只想表明一下编译完openpose自带的caffe之后,需要
make distribute同样openpose也需要make distribute,因为后面 PyOpenPose需要用到。
同样本博客也有caffe的安装教程

安装PyOpenPose

#下载PyOpenPose代码
git clone https://github.com/FORTH-ModelBasedTracker/PyOpenPose.git
cd PyOpenPose

#设置环境变量为openpose的路径
export OPENPOSE_ROOT=你的openpose路径

#开始编译
mkdir build
cd build 
# 一定要指定python的版本,否则会出错!!!!!!,cmake会找不到正确的python版本
cmake ..  -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so

make all -j $nproc
# 测试是否编译成功
cd ..
cd scripts
python OpLoop.py

另外github已经给作者PR了,就看作者同意不同意merge了。
还是把我的github放出来
https://github.com/djangogo/PyOpenPose

Reference
http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

written by xizero00
blog.csdn.net/xizero00

姿态估计群号(做姿态估计的同行可以交流):
6962519489(1群,已满)
970029323(2群)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xizero00/article/details/77294595

智能推荐

Android快速实现扫描二维码功能_快速扫码脚本csdn-程序员宅基地

文章浏览阅读2.4k次。先去把工程文件下下载github然后找到lib-zxing这个文件夹在AndroidStudio中导入模块选择刚刚那个文件夹即可把这些参数改成和工程一样即可然后开始编译中间还处理一些import包的问题,删掉然后重新导入即可等到build完全没有错误即可代码应用 /** * 跳转到扫码界面扫码 */ private void goScan(){ startActivityForResult(new Intent(this, CaptureA_快速扫码脚本csdn

基于springboot的疫情信息管理系统论文_springboot信息管理系统论文-程序员宅基地

文章浏览阅读915次,点赞22次,收藏15次。近年来,信息化管理行业的不断兴起,使得人们的日常生活越来越离不开计算机和互联网技术。首先,根据收集到的用户需求分析,对设计系统有一个初步的认识与了解,确定疫情信息管理系统的总体功能模块。然后,详细设计系统的主要功能模块,通过数据库设计过程将相关的数据信息存储到数据库中,再通过使用关键的开发工具,如IDEA开发平台、AJAX技术等,编码设计相关的功能模块。接着,主要采用功能测试的方式对系统进行测试,找出系统在运行过程中存在的问题,以及解决问题的方法,不断地改进和完善系统的设计。_springboot信息管理系统论文

一个程序员的十年程序人生感悟_十年程序找工作-程序员宅基地

文章浏览阅读4k次,点赞11次,收藏24次。展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道_十年程序找工作

摄像头中的果冻效应_摄像头效应-程序员宅基地

文章浏览阅读2k次。数码相机的快门有Global shutter(全局快门) and Rolling shutter(卷帘快门)Global shutter是通过整幅场景在同一时间曝光实现的。Sensor所有像素点同时收集光线,同时曝光。即在曝光开始的时候,Sensor开始收集光线;在曝光结束的时候,光线收集电路被切断。然后Sensor值读出即为一幅照片。CCD就是Global shutter工作方式。Rol..._摄像头效应

在浏览器输入URL回车之后发生了什么?(超详细版)-程序员宅基地

文章浏览阅读385次。原文地址:https://4ark.me/post/b6c7c0a2.html作者:4Ark前言这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊..._7、浏览器输入url回车的时候发生了什么?

Linux kernel: How to debug mutex deadlock 如何调试mutex死锁_mutex debug-程序员宅基地

文章浏览阅读1.6k次。和userspace调试lock一样,主要是要:1. 找到lock死锁的地方,打印出调用栈2. 找出这个mutex目前被谁占用了 针对1:在kernel config中,Kernel Hacking这个大项中,enable跟lock/mutex相关的config,比如CONFIG_DEBUG_MUTEX,以及CONFIG_DETECT_HUNG_TASKS, 这样当死锁发生时,稍微_mutex debug

随便推点

SystemVerilog之时序块的采样与驱动_时钟块 提前采样延后驱动-程序员宅基地

文章浏览阅读793次。由于时钟偏移等因素的存在,用某个时钟clk驱动信号d1,在实际测试中总是会出现信号d1相对于clk总是会有一个无限小的延时(delta-cycle),为解决这一实际问题可采用本文的几种方法。_时钟块 提前采样延后驱动

16.【进阶】特征提升之特征筛选----feature_selection_corth-features-causal-feature-selection-via-orthog-程序员宅基地

文章浏览阅读1.3k次。#-*- coding:utf-8 -*-#特征筛选的目标:一句话来说就是去冗余特征;与PCA不同,不会修改特征值,而是寻找那些对模型性能提升较大的少量特征#使用Titanic数据集,通过特征筛选的方法一步步提升决策树的预测性能import pandas as pdtitanic = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki..._corth-features-causal-feature-selection-via-orthogonal-search

Python字典(dict )的几种遍历方式_python dict 遍历-程序员宅基地

文章浏览阅读5.8w次,点赞17次,收藏83次。1.使用 for key in dict遍历字典可以使用for key in dict遍历字典中所有的键x = {'a': 'A', 'b': 'B'}for key in x: print(key)# 输出结果ab2.使用for key in dict.keys () 遍历字典的键字典提供了 keys () 方法返回字典中所有的键# keysbook = { 'title': 'Python', 'author': '-----', 'press'_python dict 遍历

apache 搭建webdav_apache2搭建webdav不让陌生人访问-程序员宅基地

文章浏览阅读6k次。首先安装好你的apache服务启动webdavsudo a2enmod dav_fssudo a2enmod dav创建一个可以共享目录并授权给apache;sudo mkdir /var/www/webdavsudo chown www-data:www-data /var/www/webdavsudo mkdir /var/www/webdavpasswd创建..._apache2搭建webdav不让陌生人访问

Python基础入门:Task3(day07)Python入门(下)--阿里云天池_alst=1,3,5,7,"python" alst[5]=add-程序员宅基地

文章浏览阅读135次。Task03 Day07函数函数的定义_alst=1,3,5,7,"python" alst[5]=add

微信小程序开发中,图片报403问题(图片加载失败)解决办法_微信小程序图片地址403错误-程序员宅基地

文章浏览阅读1.8w次,点赞2次,收藏6次。微信小程序开发中,图片报403问题(图片加载失败)解决办法一、前提说明最近自己在搞一个微信小程序项目,用到了微信小程序中wx.previewImage预览图片这个API,在使用这个API需要注意一个问题就是wx.previewImage只能预览位于网络中的图片,无法预览本地的图片(也就是说,项目中的图片引用,无论是使用相对路径还是绝对路径引用都无法实现预览功能),so,我们必须将所要预..._微信小程序图片地址403错误

推荐文章

热门文章

相关标签