Skip to content

CMU-Perceptual-Computing-Lab/openpose_caffe_train

Repository files navigation

OpenPose Caffe Training (Experimental)


Contents

  1. Introduction
  2. Functionality
  3. Testing
  4. Training
  5. Citation
  6. License

Experimental Disclaimer

While OpenPose is highly tested and stable, this training repository is highly experimental and not production ready. Use at your own risk.

This repository was used and tested on Ubuntu 16 with CUDA 8, and it compiles in Ubuntu 20 with WSL2 (Windows 11). It should work with other versions of Ubuntu and up to CUDA 10, but it might require modifications.

Introduction

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.

It is authored by Ginés Hidalgo, Zhe Cao, Tomas Simon, Shih-En Wei, Yaadhav Raaj, Hanbyul Joo, and Yaser Sheikh. It is maintained by Ginés Hidalgo and Yaadhav Raaj. OpenPose would not be possible without the CMU Panoptic Studio dataset. We would also like to thank all the people who has helped OpenPose in any way.

OpenPose Caffe Training includes the modified Caffe version for training OpenPose. Check the training repository in github.com/CMU-Perceptual-Computing-Lab/openpose_train for all the training details.

This repository and its documentation assumes knowledge of OpenPose. If you have not used OpenPose yet, you must familiare yourself with it before attempting to follow this documentation.

Installation

It depends on your Ubuntu version, but it should look similar to the following:

  1. Make sure OpenPose runs on the machine. This will imply that most Caffe prerequisites are properly installed (including CUDA, Protobuf, etc).
  2. Install all Caffe prerequisites.
  3. Compile OpenPose Caffe Train by running:
mkdir build
cd build
cmake-gui ..
# Configure CMake-GUI from its UI. E.g.,
# - If you are using OpenCV < 4, set USE_OPENCV_LESS_THAN_4 accordingly!
# - If you do not need Python (or if you are getting Pybind errors), disable BUILD_python & BUILD_python_layer
# - If you get an infinite CMake loop (ie error saying "[...]Configure will be re-run [...] CMAKE_CXX_COMPILER= /usr/bin/c++", click "Advanced", and replace "/usr/bin/c++" with "/usr/bin/g++"
# After configuring CMake, press "Configure" and (if/after all configuration errors are gone) "Generate"
# Finally, close CMake and compile the library with:
make -j`nproc`

Citation

Please cite these papers in your publications if it helps your research (the face keypoint detector was trained using the procedure described in [Simon et al. 2017] for hands):

@inproceedings{hidalgo2019singlenetwork,
  author = {Gines Hidalgo and Yaadhav Raaj and Haroon Idrees and Donglai Xiang and Hanbyul Joo and Tomas Simon and Yaser Sheikh},
  booktitle = {ICCV},
  title = {Single-Network Whole-Body Pose Estimation},
  year = {2019}
}

@inproceedings{cao2018openpose,
  author = {Zhe Cao and Gines Hidalgo and Tomas Simon and Shih-En Wei and Yaser Sheikh},
  booktitle = {arXiv preprint arXiv:1812.08008},
  title = {Open{P}ose: realtime multi-person 2{D} pose estimation using {P}art {A}ffinity {F}ields},
  year = {2018}
}

Links to the papers:

License

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 FlintBox link. For commercial queries, use the Contact section from the FlintBox link and also send a copy of that message to Yaser Sheikh.