OpenPose用于身体面部手部和脚部的实时关键点检测库


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

结果

全身(身体、脚、脸和手)二维姿态估计

全身三维姿态重建与估计

运行时分析

我们展示了三个可用的姿态估计库(相同硬件和条件)的推理时间比较:OpenPose、Alpha-Pose(快速 Pytorch 版本)和 Mask R-CNN。OpenPose 的运行时间保持不变,而 Alpha-Pose 和 Mask R-CNN 的运行时间则随着人数的增加而线性增长。更多详情请见此处

功能

主要功能:

  • 二维实时多人关键点检测:
    • 15、18 或 25 个关键点的身体/足部关键点估计,包括 6 个足部关键点运行时间与检测到的人数无关
    • 2x21 个关键点的手部关键点估计运行时间取决于检测到的人数。请参阅 OpenPose 训练 了解运行时不变的替代方案。
    • 70 个关键点的人脸关键点估计运行时间取决于检测到的人数。请参阅 OpenPose 训练 了解运行时不变的替代方案。
  • 3D实时单人关键点检测:
    • 从多个单一视图进行 3D 三角测量。
    • 处理 Flir 相机的同步。
    • 兼容 Flir/Point Grey 相机。
  • 校准工具箱:估计畸变、相机固有参数和外部参数。
  • 单人追踪,用于进一步加速或视觉平滑。

输入:图像、视频、网络摄像头、Flir/Point Grey 相机、IP 摄像头,以及支持添加自定义输入源(例如深度摄像头)。

输出:基本图像 + 关键点显示/保存(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)版本。

其他使用方式

更多详细信息,请参阅 主要发布功能发布说明 文档。

安装

如果您想在不安装或编写任何代码的情况下使用 OpenPose,只需下载并使用最新的 Windows 便携版 OpenPose

或者,您可以从源代码构建 OpenPose。请参阅安装文档 了解所有替代方案。

快速入门概述

只需从您喜欢的命令行工具(例如 Windows PowerShell 或 Ubuntu Terminal)使用 OpenPose Demo 即可。例如,此示例在您的网络摄像头上运行 OpenPose 并显示身体关键点:

复制代码
# Ubuntu
./build/examples/openpose/openpose.bin
复制代码
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi

您还可以按任意顺序添加任何可用的标志。例如,以下示例在视频上运行(--video {PATH}),启用面部(--face)和手部(--hand),并将输出关键点保存在磁盘上的 JSON 文件中(--write_json {PATH})。

Ubuntu

复制代码
./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand --write_json output_json_folder/
复制代码
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand --write_json output_json_folder/

您也可以选择使用 OpenPose 的 Python 和 C++ API 扩展其功能。安装 OpenPose 后,请查看其官方文档,快速了解所有替代方案和教程。

向我们发送反馈!

我们的库是开源的,仅供研究使用,我们希望不断改进!如果您有以下情况,请告诉我们(创建新的 GitHub 问题或拉取请求、发送电子邮件给我们等):

  1. 发现/修复任何 bug(功能或速度方面),或者知道如何加速或改进 OpenPose 的任何部分。
  2. 想要添加/展示一些基于 OpenPose 的酷炫功能/演示/项目。我们可以将您的项目链接添加到我们的社区项目 部分,甚至可以将其与 OpenPose 集成!

引用

如果 OpenPose 对您的研究有帮助,请在您的出版物中引用这些论文。OpenPose 的全部内容均基于 OpenPose:使用部位亲和力场进行实时多人二维姿态估计,而手部和人脸检测器也使用了 使用多视图引导法在单幅图像中进行手部关键点检测(人脸检测器的训练流程与手部检测器相同)。

复制代码
    @article{8765346,
      author = {Z. {Cao} and G. {Hidalgo Martinez} and T. {Simon} and S. {Wei} and Y. A. {Sheikh}},
      journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
      title = {OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
      year = {2019}
    }

    @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{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{wei2016cpm,
      author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
      booktitle = {CVPR},
      title = {Convolutional pose machines},
      year = {2016}
    }
    

论文链接:

许可证

OpenPose 可免费用于非商业用途,并可在以下情况下重新分发:这些条款。请参阅许可证了解更多详情。对商业许可证感兴趣?请查看此FlintBox链接。如有商业咨询,请使用FlintBox链接中的“联系”部分,并将该邮件的副本发送至Yaser Sheikh

关于项目

OpenPose 是第一个实时多人系统,可以在单幅图像上联合检测人体、手、脸和脚的关键点(共 135 个关键点)。
Other
C++
33,253
8027
915
2017-04-24
2024-08-03

增长趋势 - stars