Skip to content
Code repo for realtime multi-person pose estimation in CVPR'17 (Oral)
Jupyter Notebook MATLAB Other
Branch: master
Clone or download
ZheC Merge pull request #236 from MikeOfZen/master
Add a link to new Tensorflow implementation
Latest commit de8d698 Feb 17, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
model add matlab code for MPI Jan 26, 2017
readme Add result Dec 29, 2016
testing add result json file for the COCO test-dev split Mar 24, 2018
training Update (#137) Oct 25, 2018
.gitignore finish ipython notebook v0 Jan 26, 2017
.gitmodules rm submodule Mar 2, 2017
LICENSE Update LICENSE May 2, 2017 Update Jan 1, 2020

Realtime Multi-Person Pose Estimation

By Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh.


Code repo for winning 2016 MSCOCO Keypoints Challenge, 2016 ECCV Best Demo Award, and 2017 CVPR Oral paper.

Watch our video result in YouTube or our website.

We present a bottom-up approach for realtime multi-person pose estimation, without using any person detector. For more details, refer to our CVPR'17 paper, our oral presentation video recording at CVPR 2017 or our presentation slides at ILSVRC and COCO workshop 2016.

This project is licensed under the terms of the license.

Other Implementations

Thank you all for the efforts for the reimplementation! If you have new implementation and want to share with others, feel free to make a pull request or email me!


  1. Testing
  2. Training
  3. Citation


C++ (realtime version, for demo purpose)

  • Please use OpenPose, now it can run in CPU/ GPU and windows /Ubuntu.
  • Three input options: images, video, webcam

Matlab (slower, for COCO evaluation)

  • Compatible with general Caffe. Compile matcaffe.
  • Run cd testing; to retrieve our latest MSCOCO model from our web server.
  • Change the caffepath in the config.m and run demo.m for an example usage.


  • cd testing/python
  • ipython notebook
  • Open demo.ipynb and execute the code


Network Architecture


Training Steps

  • Run cd training; bash to obtain the COCO images in dataset/COCO/images/, keypoints annotations in dataset/COCO/annotations/ and COCO official toolbox in dataset/COCO/coco/.
  • Run getANNO.m in matlab to convert the annotation format from json to mat in dataset/COCO/mat/.
  • Run genCOCOMask.m in matlab to obatin the mask images for unlabeled person. You can use 'parfor' in matlab to speed up the code.
  • Run genJSON('COCO') to generate a json file in dataset/COCO/json/ folder. The json files contain raw informations needed for training.
  • Run python to generate your LMDB. (You can also download our LMDB for the COCO dataset (189GB file) by: bash
  • Download our modified caffe: caffe_train. Compile pycaffe. It will be merged with caffe_rtpose (for testing) soon.
  • Run python --exp 1 to generate the prototxt and shell file for training.
  • Download VGG-19 model, we use it to initialize the first 10 layers for training.
  • Run bash 0,1 (generated by to start the training with two gpus.


Please cite the paper in your publications if it helps your research:

  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}
  author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Convolutional pose machines},
  year = {2016}
You can’t perform that action at this time.