博客 | Github开源人体姿态识别项目OpenPose中文文档

logo

OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用,基于它的实例如雨后春笋般涌现。人体姿态估计技术在体育健身、动作采集、3D试衣、舆情监测等领域具有广阔的应用前景,人们更加熟悉的应用就是抖音尬舞机。 OpenPose项目Github链接:https://github.com/CMU-Perceptual-Computing-Lab/openpose 为了便于中国开发者学习CMU开源人体姿态识别项目,我将README文档翻译成了中文。 向卡耐基梅隆大学大学的开发者以及本项目其他贡献者致敬。 英译汉:张子豪(同济大学开源软件协会) 文章勘误、补充,请看译者知乎专栏:人工智能小技巧 In order to facilitate Chinese software developers to learn, use Openpose, make progress in human gesture recognition development and source code contributions, we translated README file into simplified Chinese. Salute to the developers in Carnegie Mellon university and the contributors to this project. Translattor: Tommy in Tongji Univerisity Opensource Software Association

人体姿态识别与估计的应用场景:抖音尬舞机、体育动作教学、3D健身教练、3D试衣、绘画辅助、游戏人物动作采集。

本项目更详细的中文介绍:【AI识人】OpenPose:实时多人2D姿态估计 | 附视频测试及源码链接

本项目理论基础来自Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ,是CVPR 2017的一篇论文,作者是来自CMU感知计算实验室的曹哲,Tomas Simon,Shih-En Wei,Yaser Sheikh 。

一些人体姿态识别案例案例:

《芳华》文工团跳舞视频片段:人体姿态识别

《芳华》文工团跳舞视频片段:人体姿态识别

《叶问》武打视频片段:人体姿态识别

《叶问》武打视频片段:人体姿态识别

内容

  1. 特点
  2. 最近更新
  3. 效果
  4. 安装、重装、卸载
  5. 快速启动
  6. 输出
  7. 增加运算速度以及基准测试
  8. 向我们提供出错信息和反馈
  9. 作者和项目贡献者
  10. 引用
  11. 授权协议

特点

  • 功能:

·能够对摄像机拍摄中出现的扭曲等内外参数进行简易评估。

·通过多个单一角度的视频进行三角测量。

·菲力尔品牌摄像机的视频同步处理。

·与Flir摄像机和Point Grey摄像机兼容,提供了C++语言的代码样本,用户可以自定义输入。

·15、18或 25个身体/脚部的关键点识别,运算时间与检测出的人数无关。

·221个手部关键点识别。目前,运算时间取决于检测出的人数*。

·70个面部关键点的识别。目前,运算时间取决于检测出的人数

·二维多人关键点实时识别:

·三维单关键点实时识别:

·校准工具:

·针对未来的加速优化和视觉流畅,增加了单人位置追踪 。

  • 输入: 图片、视频、网络摄像头的视频流、Flir或Point Grey和IP摄像机。项目提供了C++语言的代码样本,用户可以自定义输入。
  • 输出: 原有图片+关键点展示(PNG、JPG、AVI等格式),关键点数据存储文件((JSON, XML, YML等格式)。
  • 操作系统: Ubuntu (14, 16), Windows (8, 10), Mac OSX, Nvidia TX2.
  • 其它:

·项目提供: 命令行测试、C++封装、C++ API接口。

·CUDA (Nvidia GPU), OpenCL (AMD GPU), and CPU 版本。

最近更新

  • Sep 2018: 单人位置追踪测试 增加处理速度,观看体验更加流畅!
  • Jun 2018: 躯干、脚部联合检测的模型发布!速度加快40%,精确度增加5%!
  • Jun 2018: Python API接口发布!
  • Jun 2018: OpenCL/AMD 显卡版本 发布!
  • Jun 2018: 校准工具 发布!
  • Jun 2018: Mac OSX 版本(CPU) 发布!
  • Mar 2018: CPU 版本!
  • Mar 2018: 三维关键点重建模型 (从多个摄像机角度识别)!

更多信息可访问 全部更新文档 以及 版本更新记录.

效果

躯干、脚部识别

躯干、脸部、手部识别

身体、手指关键点识别

身体识别

安装、重装、卸载

Windows能用的版本: 点击所有版本 下载最新的版本即可。

或者,你也可以点击 安装文档 查看通过源代码编译安装的安装指南。

快速启动

大部分用户不需要调用OpenPose的C++和Python的开发接口,这些用户只需要运行OpenPose Demo即可

  • OpenPose Demo: 为了便于处理图片、视频或者网络摄像头的视频流,并展示和后处理结果,你需要看doc/demo_overview.md. 例如,你可以直接通过以下命令在Ubuntu操作系统上处理一个视频。
# Ubuntu./build/examples/openpose/openpose.bin --video examples/media/video.avi
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi
  • 校准工具: 三维的OpenPose处理和其它立体视觉处理任务需要你便捷校准摄像机,可查看 doc/modules/calibration_module.md文档。
  • OpenPose C++ API: 如果你想定制开发读取特定内容的接口、增加个性定制的后处理功能或者展示存储功能,点击这个链接查看C++的API接口,examples/tutorial_api_cpp/ 和 doc/library_introduction.md。你可以增加自己的代码examples/user_code/ 使用Cmake快速编译整个项目。快速增加自己定制的代码,看这个文档:examples/user_code/README.md
  • OpenPose Python API: 类似C++的API接口,点击文档查看Python API的教程examples/tutorial_api_python/.
  • 增加额外的模块:查看 doc/library_add_new_module.md.
  • 独立的脸部和手指检测:
    • 脸部 不对身体关键点进行识别,仅对脸部关键点识别:如果你想加快处理速度(同时也会减少识别脸的个数),请看OpenCV脸部识别文档:doc/standalone_face_or_hand_keypoint_detector.md.
    • 使用你自己的脸部和手部识别工具: 与身体关键点识别不同,你可以使用你自己的脸部和手部识别工具。比方说,在手指能看清但身体看不清的时候使用(OpenPose的识别器不能正常工作)。查看文档doc/standalone_face_or_hand_keypoint_detector.md.

输出

请点击这个文档,查看输出文件的格式、关键点数据结构等信息。doc/output.md.

增加运算速度以及基准测试

点击这个文档,查看增加运行速度、减少内存需求的提示 doc/faq.md#speed-up-memory-reduction-and-benchmark.

向我们提供出错信息和反馈!

我们的代码库面向以科学研究为目的开发者开源,我们希望持续不断地优化它!所以,如果出现了以下情况,请及时向我们反馈。

  1. 你发现OpenPose处理图片或视频出错,请把识别失败的案例发到openposecmu@gmail.com邮箱中,我们会运用你提供的信息优化我们的算法。
  2. 你发现了软件功能或者运行速度上的bug。
  3. 你增加了一些我们可能吸纳到项目源代码中的函数、类或者其它子类。
  4. 你知道如何针对本项目优化性能、提升检测速度。
  5. 你发现本项目的一个潜在应用场景。
  6. 其它问题.

你可以在Github上评论,或者pull request提交你的新代码,我们会尽快回复你的。如果你基于本项目做了有趣的开发或者录制了Youtube视频,请给我们发电子邮件。

作者和项目贡献者

Openpose项目由 Gines Hidalgo, Zhe Cao, Tomas Simon, Shih-En Wei, Hanbyul Joo, 和 Yaser Sheikh创造发起。 目前,这个项目由 Gines Hidalgo 和 Yaadhav Raaj进行日常维护。 original CVPR 2017 repo 包括了Matlab和Python版本,以及模型训练代码。人体姿态评估方面的工作是基于 the original ECCV 2016 demo的。

除此之外,不可或缺的还有 CMU Panoptic Studio dataset。

我们还想感谢所有帮助过OpenPose项目的人,主要贡献者列在了这个文档里doc/contributors.md。

引用

如果本项目帮助了你的研究,请在你发表的作品里注明引用出处(人脸关键点识别与[Simon et al. 2017]使用了同样的训练方法)。

@inproceedings{cao2017realtime,
  author = {Zhe Cao and Tomas Simon and Shih-En Wei and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
  year = {2017}
}@inproceedings{simon2017hand,
  author = {Tomas Simon and Hanbyul Joo and Iain Matthews and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Hand Keypoint Detection in Single Images using Multiview Bootstrapping},
  year = {2017}
}@inproceedings{wei2016cpm,
  author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Convolutional pose machines},
  year = {2016}
}

授权协议

Openpose对于非商业化使用是免费的,而且仅限于这些情况。点击 license查看更多细节。对商业使用的授权感兴趣?点我吧。咨询商业应用相关信息可以联系 Yaser Sheikh.

参考文献和扩展阅读

【1】论文:

https://arxiv.org/pdf/1611.08050.pdf

【2】姿态检测视频制作源码:muyiguangda/caffe_rtpose

【3】开头视频:Changing Batteries 更换电池「中字」

【4】CMU训练数据集: CMU Panoptic Dataset

【4】匈牙利算法: Hungarian algorithm

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2018-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据的力量

五种高效自学方法 | 用学霸的思维建立系统的知识体系

27940
来自专栏腾讯玄武实验室的专栏

让 iPhone “崩溃” 又有了新方法:只需要一个视频

玄武实验室在 10 月 15 日就发现了视频样本,在深入分析后,我们在微信后台对能够触发这种漏洞的恶意视频进行检测和拦截,保护了大量用户免遭攻击。

59620
来自专栏量子位

陈天奇团队发布NNVM编译器,性能优于MXNet,李沐撰文介绍

夏乙 若朴 编译整理 量子位 出品 | 公众号 QbitAI 亚马逊和华盛顿大学今天合作发布了开源的端到端深度学习编译器NNVM compiler。 先提醒一句...

51660
来自专栏腾讯移动品质中心TMQ的专栏

【Android场景化性能测试】UI流畅度篇

承接《Android场景化性能测试-方向与框架篇》,本篇详述UI流畅度的测试方法,重点在于获得流畅度SM数据之后,如何利用好。

93040
来自专栏机器学习AI算法工程

Microsoft 时序算法——结果预算+下期彩票预测篇)

前言 本篇我们将总结的算法为Microsoft时序算法的结果预测值,是上一篇文章Microsoft时序算法的一个总结,上一篇我们已经基于微软案例数据库的销售历史...

95560
来自专栏算法+

音频算法之小黄人变声 附完整C代码

前面提及到《大话音频变声原理 附简单示例代码》与《声音变调算法PitchShift(模拟汤姆猫) 附完整C++算法实现代码》

99270
来自专栏腾讯大讲堂的专栏

AI异常计算点的监控调度

19370
来自专栏流柯技术学院

性能测试学习之三—— PV->TPS转换模型&TPS波动模型

TPS = ( (80%*总PV)/(24*60*60*(T/24)))/服务器数量

28420
来自专栏量子位

陈天奇团队发布TVM:把深度学习部署到手机、树莓派等更多硬件

允中 编译整理 量子位 出品 | 公众号 QbitAI ? △ 陈天奇,华盛顿大学计算机系博士生,此前毕业于上海交通大学ACM班。XGBoost、cxxnet等...

49150
来自专栏Golang语言社区

体育竞技游戏的团队AI

很多人问游戏AI该怎么做?随着游戏类型的多元化,非 MMO或者卡牌的游戏越来越多,对AI的需求也越来越强了。而市面上关于 AI的书,网上找得到的文章,也都流于一...

20640

扫码关注云+社区

领取腾讯云代金券