目录

  • 1 什么是Openpose?
  • 2 Windows下配置Openpose
    • 2.1 下载openpose
    • 2.2 配置第三方库与模型
    • 2.3 编译Openpose
    • 2.4 生成项目与测试
  • 3 Python调用Openpose
  • 4 附录: Ubuntu下配置Openpose
    • 4.1 下载Openpose并配置第三方
    • 4.2 编译openpose
    • 4.3 测试

1 什么是Openpose?

OpenPose是在单图像上联合检测人体、手、面部和脚关键点(总共135个关键点)的实时多人系统。

openpose(图源github.com)

抖音“尬舞”机就应用了人体关键点检测技术:

就像玩真实的跳舞机一样,屏幕里伴随着音乐会不断出现不同动作图形,用户需要及时摆出对应的动作才能得分,随着动作的进程系统会发出perfect 、good以及连击音效。

应用openpose检测出人体关键点,再和预设舞蹈的关键点作比较,就可以判定得分,实现上述功能。

2 Windows下配置Openpose

2.1 下载openpose

新建空白目录,使用git bash运行

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git

也可以到openpose仓库直接下载开源压缩包到本地。

2.2 配置第三方库与模型

下载openpose完毕后进入openpose\3rdparty\windows依次点击下面的.bat文件安装第三方库。

安装完毕如下所示:


进入openpose\model点击getModels.bat下载模型,下载完成后如下

2.3 编译Openpose

在openpose根目录下新建文件夹build,打开CMake GUI,源文件选择openpose根目录,编译文件选择build文件夹,如下


Build中勾选下面的选项:


其中BUILD_CAFFE用于编译caffe库,BUILD_PYTHON用于编译Python接口,后面想使用Python调用Openpose务必要勾选(有的教程怕出错不勾选)。

CUDA方面之前配置过会自动链接并显示版本号的,没有GPU的同学可以勾选CPU_ONLY用CPU来跑这个模型,但是运行不流畅。没有安装CUDA的同学先行安装CUDA以及对应版本的Cudnn。

之后点击Configure按钮,在Windows下请选择对应Visual Studio版本号和PC位数;在Ubuntu下请选择Unix MakeFile

Configure完成后如下:


因为勾选了BUILD_PYTHON,所以CMake为链接到本机上的Python编译器。

最后点击Generate即可。

2.4 生成项目与测试

点击CMake中的Open Project进入VS,右键项目重新生成解决方案。


经过一段时间的编译后,会在build/x64/Release下生成可执行文件。

build\bin中的*.dll以及根目录下的model复制到build/x64/Release中,即可测试实例。

3 Python调用Openpose

再新建一个文件夹用于测试Python API。

openpose\build\binopenpose\modelsopenpose\build\x64\Release目录复制进来,把Openpose\build\python\openpose的三个文件复制进来,否则会报错。


新建一个test.py文件用于测试接口,下面的例程需要插入一个USB摄像机,没有设备的话可以把cv2.imread()替换成自己的图片。

import sys
import cv2
import os
from sys import platform# Import Openpose (Windows/Ubuntu/OSX)
dir_path = os.path.dirname(os.path.realpath(__file__))
try:# Windows Importif platform == "win32":os.environ['PATH']  = os.environ['PATH'] + ';' + dir_path + './Release;' +  dir_path + './bin;'import pyopenpose as opelse:# Change these variables to point to the correct folder (Release/x64 etc.)sys.path.append('../../python');from openpose import pyopenpose as op
except ImportError as e:print('Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON` in CMake and have this Python script in the right folder?')raise eif __name__ == "__main__":# 设置Openpose模型并初始化params = dict()params["model_folder"] = "./models/"opWrapper, datum = op.WrapperPython(), op.Datum()opWrapper.configure(params)opWrapper.start()# 启动摄像头capture= cv2.VideoCapture(0)while(1):ref,frame = capture.read()# 载入当前帧到Openposedatum.cvInputData = frame           opWrapper.emplaceAndPop(op.VectorDatum([datum]))# 模型输出图像process = datum.cvOutputData# 显示cv2.imshow("test", process)if not ref:breakkey = cv2.waitKey(1) & 0xFFif key == 27: print("Escape hit, closing...")break

显示效果如下:


在这个基础上可以进一步二次开发。

4 附录: Ubuntu下配置Openpose

4.1 下载Openpose并配置第三方

下载openpose

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
cd openpose/
git submodule update --init --recursive --remote

配置opencv、caffe以及一些依赖

sudo apt-get install libopencv-dev
cd openpose
sudo bash ./scripts/ubuntu/install_deps.sh

4.2 编译openpose

打开CMake-GUI

cd {OpenPose_folder}
mkdir build/
cd build/
cmake-gui ..

其余部分同Windows过程

4.3 测试

# 视频
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution '160x80'
# 图片
./build/examples/openpose/openpose.bin --image_dir examples/media/ --net_resolution '160x80'

计算机视觉教程7-3:Openpose配置与实践相关推荐

  1. 深度学习与计算机视觉教程(4) | 神经网络与反向传播(CV通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/37 本文地址:https://www.showmeai.tech/article-d ...

  2. Jenkins从配置到实践

    Jenkins从配置到实践 1 持续集成 Continuous integration(CI) 1.1 什么是持续集成? 持续集成Continuous integration(CI)是一种软件开发实践 ...

  3. Windows server 2012 搭建×××图文教程(二)配置路由和远程访问服务

    Windows server 2012 搭建×××图文教程(一)安装×××相关服务 Windows server 2012 搭建×××图文教程(二)配置路由和远程访问服务 Windows server ...

  4. Xamarin.Forms教程下载安装JDK配置环境变量

    Xamarin.Forms教程下载安装JDK配置环境变量 Xamarin.Form环境配置下载安装JDK JDK是编程Java程序必须的软件.也许有人会问我们用的C#为什么还有Java呢?这是因为我们 ...

  5. Xamarin Anroid开发教程之验证环境配置是否正确

    Xamarin Anroid开发教程之验证环境配置是否正确 经过前面几节的内容已经把所有的编程环境设置完成了,但是如何才能确定所有的一切都处理争取并且没有任何错误呢?这就需要使用相应的实例来验证,本节 ...

  6. Java异常处理教程(包含示例和最佳实践)

    异常是可能在程序执行期间发生的错误事件,它会破坏其正常流程. Java提供了一种健壮且面向对象的方式来处理异常情况,称为Java异常处理 . 我们将在本教程中研究以下主题. Java异常处理概述 异常 ...

  7. linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...

    Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...

  8. 新手篇 | K8S配置最佳实践

    本文档旨在汇总和强调用户指南.快速开始文档和示例中的最佳实践.本文已上传到 kubernetes-handbook 中的第四章最佳实践章节,本文仅作归档,更新以 kubernetes-handbook ...

  9. WebStorm下载与安装2022版教程注册码WebStorm使用配置

    一.WebStorm下载 二.WebStorm扩展教程 三.WebStorm配置 JavaScript和TypeScript 私有类成员的重构支持 我们在 2018 年增加了对私有字段的支持. 然而, ...

  10. nginxWebUI :nginx可视化配置工具---实践

    nginxWebUI :nginx可视化配置工具-实践 官网:nginxWebUI nginx的可视化配置管理工具,最近发现迭代了新版本,安装体验了一下. nginxWebUI 简介 本项目可以使用W ...

最新文章

  1. 图像技术在上亿规模实拍图片中的应用(算法好文)
  2. apache shiro怎么升级_Springboot整合Shiro之授权
  3. css线条伸缩_CSS3弹性伸缩布局之box布局
  4. 容器编排技术 -- Kubernetes Pod概述
  5. C#将LINQ数据集转换为Datatable
  6. linux anaconda搜索路径,Anaconda安装及虚拟环境搭建教程(linux)
  7. AC日记——红色的幻想乡 洛谷 P3801
  8. SAP License:HANA在线日志被误删后如何恢复?
  9. 阿里在美申请区块链专利;Win10 最新漏洞被发现;MongoDB 4.2 发布​ | 极客头条...
  10. Python基础篇:Python 程序流程控制,让你的代码有理有据
  11. 疫情政务问答助手算法冠军开源
  12. 解决jsp无法用el表达式的问题
  13. 隐藏桌面图标软件——CoverDesk for Mac免激活版
  14. sql语句基本查询日期
  15. 《计算机组成原理阅读笔记》
  16. 112家IT网络公司薪水一览表
  17. git查看历史记录及修改内容
  18. js两种拼接字符串方法
  19. Markdownpad2下载
  20. 《程序设计基础》 第十章 函数与程序结构 6-5 递归求简单交错幂级数的部分和 (15 分)

热门文章

  1. 三维随机介质模型matlab,基于随机介质理论的复合材料孔隙二维形貌几何仿真
  2. 敏捷软件开发 - 原则、模式与实践
  3. java坦克大战地图_『坦克大战的基本地图系统(一)』Clickteam Fusion系列教程(13)...
  4. 湖北省荆州市谷歌高清卫星地图下载
  5. VS中javascript注释快捷键
  6. 春风十里,Webpower喊营销汪们更聪明地获得理想薪资
  7. Python sklearn 实现过采样和欠采样
  8. js获取 当前URL中的参数
  9. dos2unix命令
  10. java 获取身份证前两位对应省份