<SOURCE_TEXT>
OpenPose 是 *第一个能够在单张图像中实时检测人体、手部、面部和脚步关键点(共135个关键点)的多人人体姿态估计系统。
它的作者是 Ginés Hidalgo, Zhe Cao, Tomas Simon, Shih-En Wei, Yaadhav Raaj, Hanbyul Joo, 和 Yaser Sheikh。 它由 Ginés Hidalgo 和 Yaadhav Raaj 维护。OpenPose 的实现离不开 CMU Panoptic Studio 数据集。我们也要感谢所有 以任何方式帮助过 OpenPose 的人们。
作者 Ginés Hidalgo(左)和 Hanbyul Joo(右)在 CMU Panoptic Studio 前
目录
结果
全身 (身体, 脚, 面部和手部) 2D 姿态估计
测试 OpenPose: (左) 在悉尼举办的疯狂 Uptown Funk flashmob 视频序列。 (中和右) 作者 Ginés Hidalgo 和 Tomas Simon 测试面部和手部
全身 3D 姿态重建与估计
Tianyi Zhao 正在测试 OpenPose 3D 模块
Unity 插件
Tianyi Zhao 和 Ginés Hidalgo 正在测试 OpenPose Unity 插件
运行时分析
我们展示了三种可用的姿态估计库(同样的硬件和条件):OpenPose, Alpha-Pose(快速的 Pytorch 版本),和 Mask R-CNN 的推理时间对比。OpenPose 的运行时间是恒定的,而 Alpha-Pose 和 Mask R-CNN 的运行时间随着人数增加线性增长。更多详情 这里。
功能
主要功能:
- 2D 实时多人人关键点检测:
- 15、18 或 25 个关键点的身体/脚部关键点估计,包括 6 个脚部关键点。运行时间不随检测人数变化。
- 2x21 个关键点的手部关键点估计。运行时间取决于检测人数。更多详情查看 OpenPose Training 中的运行时间不变的替代方法。
- 70 个关键点的面部关键点估计。运行时间取决于检测人数。更多详情查看 OpenPose Training 中的运行时间不变的替代方法。
- 3D 实时单人关键点检测:
- 从多个单视图进行 3D 三角测量。
- 处理 Flir 摄像机的同步。
- 兼容 Flir/Point Grey 摄像机。
- 校准工具箱: 估计扭曲、内参和外参。
- 单人跟踪 以进一步加快速度或视觉平滑。
输入: 图片、视频、网络摄像头、Flir/Point Grey、IP 摄像机,并支持添加您自己的自定义输入源(例如深度摄像机)。 </SOURCE_TEXT> 输出:基本图像 + 关键点显示/保存(PNG, JPG, AVI, ...),关键点保存(JSON, XML, YML, ...),关键点作为数组类,并支持添加自定义输出代码(例如,一些时髦的UI)。
操作系统:Ubuntu(20, 18, 16, 14),Windows(10, 8),Mac OSX,Nvidia TX2。
硬件兼容性:CUDA(Nvidia GPU),OpenCL(AMD GPU),以及非GPU(仅CPU)版本。
使用替代方案:
- 命令行演示 用于内置功能。
- C++ API 和 Python API 用于自定义功能。例如,添加自定义输入、预处理、后处理和输出步骤。
相关工作
- OpenPose训练代码
- OpenPose脚部数据集
- OpenPose Unity插件
- 发布在IEEE TPAMI和CVPR上的OpenPose论文。如果OpenPose对您的研究有帮助,请在您的出版物中引用它们!(链接和详细信息在下面的引用部分)。
安装
如果您想在不进行安装或编写任何代码的情况下使用OpenPose,请简单下载并使用最新的Windows便携版本OpenPose!
否则,您可以从源代码构建OpenPose。所有的替代方案请参见安装文档。
快速入门概述
只需从您喜欢的命令行工具(例如,Windows PowerShell或Ubuntu终端)使用OpenPose演示。例如,该示例在您的网络摄像头上运行OpenPose并显示身体关键点:
# Ubuntu
./build/examples/openpose/openpose.bin
:: Windows - 便携演示
bin\OpenPoseDemo.exe --video examples\media\video.avi
您还可以按任何顺序添加任何可用标志。例如,下面的示例在视频上运行(--video {路径}
),启用面部(--face
)和手部(--hand
),并将输出关键点保存为磁盘上的JSON文件(--write_json {路径}
)。
# Ubuntu
./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand --write_json output_json_folder/
:: Windows - 便携演示
bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand --write_json output_json_folder/
可选地,您还可以通过其Python和C++ API扩展OpenPose的功能。在安装OpenPose之后,请查看其官方文档以快速了解所有替代方案和教程。
给我们反馈!
我们的库是为研究目的而开源的,我们希望改进它!因此,如果您...
- 发现/修复任何错误(在功能或速度方面)或知道如何加速或改进OpenPose的任何部分,请让我们知道(创建一个新的GitHub问题或拉取请求,给我们发电子邮件等)。
- 希望添加/展示一些基于OpenPose的酷功能/演示/项目。我们可以将您的项目链接添加到我们的社区基础项目部分,甚至将其与OpenPose集成!
引用
如果OpenPose对您的研究有帮助,请在您的出版物中引用这些论文。所有的OpenPose基于OpenPose: 通过部件亲和场进行实时多人2D姿态估计,而手部和面部检测器也使用了单图像中的手部关键点检测通过多视图引导(面部检测器与手部检测器采用相同的训练程序)。
@article{8765346,
author = {Z. {Cao} 和 G. {Hidalgo Martinez} 和 T. {Simon} 和 S. {Wei} 和 Y. A. {Sheikh}},
journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
title = {OpenPose: 通过部件亲和场进行实时多人2D姿态估计},
year = {2019}
}
@inproceedings{simon2017hand,
author = {Tomas Simon 和 Hanbyul Joo 和 Iain Matthews 和 Yaser Sheikh},
booktitle = {CVPR},
title = {单图像中的手部关键点检测通过多视图引导},
year = {2017}
}
@inproceedings{cao2017realtime,
author = {Zhe Cao 和 Tomas Simon 和 Shih-En Wei 和 Yaser Sheikh},
booktitle = {CVPR},
title = {通过部件亲和场进行实时多人2D姿态估计},
year = {2017}
}
@inproceedings{wei2016cpm,
author = {Shih-En Wei 和 Varun Ramakrishna 和 Takeo Kanade 和 Yaser Sheikh},
booktitle = {CVPR},
title = {卷积姿态机器},
year = {2016}
}
论文链接:
- OpenPose: 通过部件亲和场进行实时多人2D姿态估计:
- 单图像中的手部关键点检测通过多视图引导
- 通过部件亲和场进行实时多人2D姿态估计
- 卷积姿态机器
许可证
OpenPose在非商业用途下免费开放,并且可以在这些条件下重新分发。详情请参见许可证。有兴趣获取商业许可证?请查看这个FlintBox链接。商业查询请使用FlintBox链接中的Contact
部分,还请将那条消息抄送给Yaser Sheikh。