README.md 11.2 KB
Newer Older
G
gineshidalgo99 已提交
1
<div align="center">
2
    <img src=".github/Logo_main_black.png" width="300">
G
gineshidalgo99 已提交
3
</div>
G
gineshidalgo99 已提交
4

G
gineshidalgo99 已提交
5
-----------------
G
gineshidalgo99 已提交
6

7 8 9
| **Build Type**   |`Linux`           |`MacOS`           |`Windows`         |
| :---:            | :---:            | :---:            | :---:            |
| **Build Status** | [![Status](https://github.com/CMU-Perceptual-Computing-Lab/openpose/workflows/CI/badge.svg)](https://github.com/CMU-Perceptual-Computing-Lab/openpose/actions) | [![Status](https://github.com/CMU-Perceptual-Computing-Lab/openpose/workflows/CI/badge.svg)](https://github.com/CMU-Perceptual-Computing-Lab/openpose/actions) | [![Status](https://ci.appveyor.com/api/projects/status/5leescxxdwen77kg/branch/master?svg=true)](https://ci.appveyor.com/project/gineshidalgo99/openpose/branch/master) |
B
Bikramjot Hanzra 已提交
10

G
Gines Hidalgo 已提交
11
[**OpenPose**](https://github.com/CMU-Perceptual-Computing-Lab/openpose) has represented the **first real-time multi-person system to jointly detect human body, hand, facial, and foot keypoints (in total 135 keypoints) on single images**.
G
gineshidalgo99 已提交
12

13
It is **authored by** [**Ginés Hidalgo**](https://www.gineshidalgo.com), [**Zhe Cao**](https://people.eecs.berkeley.edu/~zhecao), [**Tomas Simon**](http://www.cs.cmu.edu/~tsimon), [**Shih-En Wei**](https://scholar.google.com/citations?user=sFQD3k4AAAAJ&hl=en), [**Hanbyul Joo**](https://jhugestar.github.io), **and** [**Yaser Sheikh**](http://www.cs.cmu.edu/~yaser). It is **maintained by** [**Ginés Hidalgo**](https://www.gineshidalgo.com) **and** [**Yaadhav Raaj**](https://www.raaj.tech). OpenPose would not be possible without the [**CMU Panoptic Studio dataset**](http://domedb.perception.cs.cmu.edu). We would also like to thank all the people who [has helped OpenPose in any way](doc/8_authors_and_contributors.md).
G
gineshidalgo99 已提交
14

15

16

G
Gines 已提交
17
<p align="center">
18
    <img src=".github/media/pose_face_hands.gif" width="480">
G
gineshidalgo99 已提交
19
    <br>
20
    <sup>Authors <a href="https://www.gineshidalgo.com" target="_blank">Ginés Hidalgo</a> (left) and <a href="https://jhugestar.github.io" target="_blank">Hanbyul Joo</a> (right) in front of the <a href="http://domedb.perception.cs.cmu.edu" target="_blank">CMU Panoptic Studio</a></sup>
G
Gines 已提交
21
</p>
22

G
gineshidalgo99 已提交
23

Z
Zhe Cao 已提交
24

25 26 27 28 29 30 31 32 33
## Contents
1. [Results](#results)
2. [Features](#features)
3. [Related Work](#related-work)
4. [Installation](#installation)
5. [Quick Start](#quick-start)
6. [Send Us Feedback!](#send-us-feedback)
7. [Citation](#citation)
8. [License](#license)
G
gineshidalgo99 已提交
34

G
gineshidalgo99 已提交
35 36


G
gineshidalgo99 已提交
37
## Results
38
### Body and Foot Estimation
39
<p align="center">
40
    <img src=".github/media/dance_foot.gif" width="360">
G
gineshidalgo99 已提交
41 42
    <br>
    <sup>Testing the <a href="https://www.youtube.com/watch?v=2DiQUX11YaY" target="_blank"><i>Crazy Uptown Funk flashmob in Sydney</i></a> video sequence with OpenPose</sup>
43 44
</p>

45
### 3D Reconstruction Module (Body, Foot, Face, and Hands)
G
gineshidalgo99 已提交
46
<p align="center">
47
    <img src=".github/media/openpose3d.gif" width="360">
G
gineshidalgo99 已提交
48 49
    <br>
    <sup>Testing the 3D Reconstruction Module of OpenPose</sup>
G
gineshidalgo99 已提交
50
</p>
G
gineshidalgo99 已提交
51

52
### Body, Foot, Face, and Hands Estimation
G
gineshidalgo99 已提交
53
<p align="center">
54 55
    <img src=".github/media/pose_face.gif" width="360">
    <img src=".github/media/pose_hands.gif" width="360">
G
gineshidalgo99 已提交
56
    <br>
57
    <sup>Authors <a href="https://www.gineshidalgo.com" target="_blank">Ginés Hidalgo</a> (left image) and <a href="http://www.cs.cmu.edu/~tsimon" target="_blank">Tomas Simon</a> (right image) testing OpenPose</sup>
G
gineshidalgo99 已提交
58
</p>
G
Gines 已提交
59

60
### Unity Plugin
G
gineshidalgo99 已提交
61
<p align="center">
62 63 64
    <img src=".github/media/unity_main.png" width="240">
    <img src=".github/media/unity_body_foot.png" width="240">
    <img src=".github/media/unity_hand_face.png" width="240">
G
gineshidalgo99 已提交
65
    <br>
66
    <sup><a href="https://ziutinyat.github.io/" target="_blank">Tianyi Zhao</a> and <a href="https://www.gineshidalgo.com" target="_blank">Ginés Hidalgo</a> testing the <a href="https://github.com/CMU-Perceptual-Computing-Lab/openpose_unity_plugin" target="_blank">OpenPose Unity Plugin</a></sup>
G
gineshidalgo99 已提交
67 68
</p>

G
gineshidalgo99 已提交
69
### Runtime Analysis
G
Gines Hidalgo 已提交
70
We show an inference time comparison between the 3 available pose estimation libraries (same hardware and conditions): OpenPose, Alpha-Pose (fast Pytorch version), and Mask R-CNN. The OpenPose runtime is constant, while the runtime of Alpha-Pose and Mask R-CNN grow linearly with the number of people. More details [**here**](https://arxiv.org/abs/1812.08008).
G
gineshidalgo99 已提交
71
<p align="center">
72
    <img src=".github/media/openpose_vs_competition.png" width="360">
G
gineshidalgo99 已提交
73 74
</p>

G
Gines 已提交
75 76


77 78 79 80 81 82 83 84 85 86 87 88
## Features
- **Main Functionality**:
    - **2D real-time multi-person keypoint detection**:
        - 15, 18 or **25-keypoint body/foot keypoint estimation**, including **6 foot keypoints**. **Runtime invariant to number of detected people**.
        - **2x21-keypoint hand keypoint estimation**. **Runtime depends on number of detected people**. See [**OpenPose Training**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_train) for a runtime invariant alternative.
        - **70-keypoint face keypoint estimation**. **Runtime depends on number of detected people**. See [**OpenPose Training**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_train) for a runtime invariant alternative.
    - [**3D real-time single-person keypoint detection**](doc/advanced/3d_reconstruction_module.md):
        - 3D triangulation from multiple single views.
        - Synchronization of Flir cameras handled.
        - Compatible with Flir/Point Grey cameras.
    - [**Calibration toolbox**](doc/advanced/calibration_module.md): Estimation of distortion, intrinsic, and extrinsic camera parameters.
    - **Single-person tracking** for further speedup or visual smoothing.
G
Gines Hidalgo 已提交
89 90
- **Input**: Image, video, webcam, Flir/Point Grey, IP camera, and support to add your own custom input source (e.g., depth camera).
- **Output**: Basic image + keypoint display/saving (PNG, JPG, AVI, ...), keypoint saving (JSON, XML, YML, ...), keypoints as array class, and support to add your own custom output code (e.g., some fancy UI).
91 92
- **OS**: Ubuntu (20, 18, 16, 14), Windows (10, 8), Mac OSX, Nvidia TX2.
- **Hardware compatibility**: CUDA (Nvidia GPU), OpenCL (AMD GPU), and non-GPU (CPU-only) versions.
G
Gines Hidalgo 已提交
93
- **Usage Alternatives**:
94 95
    - [**Command-line demo**](doc/1_demo.md) for built-in functionality.
    - [**C++ API**](examples/tutorial_api_cpp/) and [**Python API**](doc/3_python_api.md) for custom functionality. E.g., adding your custom inputs, pre-processing, post-posprocessing, and output steps.
96

97
For further details, check the [major released features](doc/6_major_released_features.md) and [release notes](doc/7_release_notes.md) docs.
98 99 100 101



## Related Work
G
Gines Hidalgo 已提交
102 103 104 105
- [**OpenPose training code**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_train)
- [**OpenPose foot dataset**](https://cmu-perceptual-computing-lab.github.io/foot_keypoint_dataset/)
- [**OpenPose Unity Plugin**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_unity_plugin)
- OpenPose papers published in [**IEEE TPAMI** and **CVPR**](#citation). [Cite them](#citation) in your publications if it helps your research!
G
gineshidalgo99 已提交
106 107 108



109
## Installation
110
If you want to use OpenPose without compiling or writing any code, simply [download and use the latest Windows portable version of OpenPose](doc/installation/0_index.md#windows-portable-demo)! Otherwise, you can also [build OpenPose from source](doc/installation/0_index.md#compiling-and-running-openpose-from-source).
111

112
See [doc/installation/0_index.md](doc/installation/0_index.md) for more details.
G
gineshidalgo99 已提交
113 114 115 116



## Quick Start
G
Gines Hidalgo 已提交
117 118 119 120
Most users do not need to know C++ or Python, they can simply use the OpenPose Demo in their command-line tool (e.g., PowerShell/Terminal). E.g., this would run OpenPose on the webcam and display the body keypoints:
```
# Ubuntu
./build/examples/openpose/openpose.bin
121 122
```
```
G
Gines Hidalgo 已提交
123 124 125
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi
```
126

G
Gines Hidalgo 已提交
127
You can also add any of the available flags in any order. Do you also want to add face and/or hands? Add the `--face` and/or `--hand` flags. Do you also want to save the output keypoints on JSON files on disk? Add the `--write_json` flag, etc.
G
gineshidalgo99 已提交
128 129
```
# Ubuntu
130
./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand --write_json output_json_folder/
131 132
```
```
G
gineshidalgo99 已提交
133
:: Windows - Portable Demo
134
bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand --write_json output_json_folder/
G
gineshidalgo99 已提交
135
```
136

137
After [installing](#installation) OpenPose, check [doc/0_index.md](doc/0_index.md) for a quick overview of all the alternatives and tutorials.
138 139


G
gineshidalgo99 已提交
140

141
## Send Us Feedback!
G
Gines Hidalgo 已提交
142 143 144 145 146
Our library is open source for research purposes, and we want to continuously improve it! So let us know if you...
1. Find any bug (in functionality or speed).
2. Add some functionality on top of OpenPose which we might want to add.
3. Know how to speed up or improve any part of OpenPose.
4. Want to share your cool demo or project made on top of OpenPose (you can email it to us too!).
G
gineshidalgo99 已提交
147

148
Just create a new GitHub issue or a pull request and we will answer as soon as possible!
G
gineshidalgo99 已提交
149 150 151 152



## Citation
153
Please cite these papers in your publications if it helps your research. All of OpenPose is based on [OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields](https://arxiv.org/abs/1812.08008), while the hand and face detectors also use [Hand Keypoint Detection in Single Images using Multiview Bootstrapping](https://arxiv.org/abs/1704.07809) (the face detector was trained using the same procedure than the hand detector).
G
gineshidalgo99 已提交
154

G
Gines Hidalgo 已提交
155
    @article{8765346,
G
Gines Hidalgo 已提交
156 157 158 159
      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}
G
Gines Hidalgo 已提交
160
    }
161

162 163
    @inproceedings{simon2017hand,
      author = {Tomas Simon and Hanbyul Joo and Iain Matthews and Yaser Sheikh},
G
gineshidalgo99 已提交
164
      booktitle = {CVPR},
165
      title = {Hand Keypoint Detection in Single Images using Multiview Bootstrapping},
G
gineshidalgo99 已提交
166
      year = {2017}
167
    }
G
gineshidalgo99 已提交
168

169 170
    @inproceedings{cao2017realtime,
      author = {Zhe Cao and Tomas Simon and Shih-En Wei and Yaser Sheikh},
G
gineshidalgo99 已提交
171
      booktitle = {CVPR},
172
      title = {Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
G
gineshidalgo99 已提交
173
      year = {2017}
174
    }
G
gineshidalgo99 已提交
175

G
gineshidalgo99 已提交
176 177 178 179 180
    @inproceedings{wei2016cpm,
      author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
      booktitle = {CVPR},
      title = {Convolutional pose machines},
      year = {2016}
181
    }
182

183
Paper links:
G
Gines Hidalgo 已提交
184 185 186
- OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields:
    - [IEEE TPAMI](https://ieeexplore.ieee.org/document/8765346)
    - [ArXiv](https://arxiv.org/abs/1812.08008)
H
Harshal Mittal 已提交
187
- [Hand Keypoint Detection in Single Images using Multiview Bootstrapping](https://arxiv.org/abs/1704.07809)
188
- [Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields](https://arxiv.org/abs/1611.08050)
H
Harshal Mittal 已提交
189 190
- [Convolutional Pose Machines](https://arxiv.org/abs/1602.00134)

191 192


G
gineshidalgo99 已提交
193
## License
194
OpenPose is freely available for free non-commercial use, and may be redistributed under these conditions. Please, see the [license](./LICENSE) for further details. Interested in a commercial license? Check this [FlintBox link](https://cmu.flintbox.com/#technologies/b820c21d-8443-4aa2-a49f-8919d93a8740). For commercial queries, use the `Contact` section from the [FlintBox link](https://cmu.flintbox.com/#technologies/b820c21d-8443-4aa2-a49f-8919d93a8740) and also send a copy of that message to [Yaser Sheikh](mailto:yaser@cs.cmu.edu).