OpenPose represents the first real-time multi-person system to jointly detect human body, hand, and facial keypoints (in total 130 keypoints) on single images.
This repository is a slightly modified version of the original. I assume that we are using a Conda environment.
I assume that CUDA and cuDNN are already installed in your system.
$ sudo apt install cmake-qt-gui
$ sudo apt install protobuf-compiler
$ conda create -n openpose python=3.6
Then, activate it.
$ source activate openpose
Now we are in the new Conda environment, openpose.
Install Some Important Conda Packages for OpenPose
(openpose) $ conda install opencv
(openpose) $ conda install protobuf
My OpenPose version is 1.3.0. I cloned it on June 14, 2018.
I assume that your system does not have Caffe installed.
Start CMake GUI
(openpose) $ cmake-gui
Note that you must run this in the openpose
environment.
Source... must be your main openpose folder.
Build... can be same as the Source. But it is strongly recommended to use /build
after the source folder name.
Click "Configure"
If everything is OK, then click "Generate" to create necessary files to build the openpose
.
build
folder.
(openpose) $ make -j`nproc`
init.sh
(openpose) $ ./build/examples/openpose/openpose.bin --write_json json_output_live
pose-baseline
. Note that you can find my repository for the 3D Pose Baseline in my github.(pose-baseline) $ JSON_DIR=../openpose/json_output_live
(pose-baseline) $ python src/openpose_3dpose_sandbox_realtime.py --camera_frame --residual --batch_norm --dropout 0.5 --max_norm --evaluateActionWise --use_sh --epochs 200 --load 4874200 --openpose $JSON_DIR --write_gif --gif_fps 30 --verbose 3
./build/examples/openpose/openpose.bin --video examples/media/walking.ogv --write_json json_output
Windows portable version: Simply download and use the latest version from the Releases section.
Otherwise, check doc/installation.md for instructions on how to build OpenPose from source.
Most users do not need the OpenPose C++ API, but they can simply use the basic Demo and/or OpenPose Wrapper.
Demo: To easily process images/video/webcam and display/save the results. See doc/demo_overview.md. E.g. run OpenPose in a video with:
# Ubuntu
./build/examples/openpose/openpose.bin --video examples/media/video.avi
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi
Calibration toolbox: To easily calibrate your cameras for 3-D OpenPose or any other stereo vision task. See doc/calibration_demo.md.
OpenPose Wrapper: If you want to read a specific input, and/or add your custom post-processing function, and/or implement your own display/saving, check the Wrapper
tutorial on examples/tutorial_wrapper/. You can create your custom code on examples/user_code/ and quickly compile it by using make all
in the OpenPose folder (assuming Makefile installer).
OpenPose C++ API: See doc/library_introduction.md.
Adding an extra module: Check doc/library_add_new_module.md.
Standalone face or hand detector:
Library dependencies: OpenPose uses default Caffe and OpenCV, as well as any Caffe dependency. The demos additionally use GFlags. It could easily be ported to other deep learning frameworks (Tensorflow, Torch, ...). Feel free to make a pull request if you implement any of those!
Output (format, keypoint index ordering, etc.) in doc/output.md.
Check the OpenPose Benchmark as well as some hints to speed up and/or reduce the memory requirements for OpenPose on doc/faq.md#speed-up-memory-reduction-and-benchmark.
Our library is open source for research purposes, and we want to continuously improve it! So please, let us know if...
Just comment on GitHub or make a pull request and we will answer as soon as possible! Send us an email if you use the library to make a cool demo or YouTube video!
OpenPose is authored by Gines Hidalgo, Zhe Cao, Tomas Simon, Shih-En Wei, Hanbyul Joo, and Yaser Sheikh. Currently, it is being maintained by Gines Hidalgo and Yaadhav Raaj. The original CVPR 2017 repo includes Matlab and Python versions, as well as the training code. The body pose estimation work is based on the original ECCV 2016 demo.
In addition, OpenPose would not be possible without the CMU Panoptic Studio dataset.
We would also like to thank all the people who helped OpenPose in any way. The main contributors are listed in doc/contributors.md.
Please cite these papers in your publications if it helps your research (the face keypoint detector was trained using the same procedure described in [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 is freely available for free non-commercial use, and may be redistributed under these conditions. Please, see the license for further details. Interested in a commercial license? Check this link. For commercial queries, contact Yaser Sheikh.