Shih-En Wei, Varun Ramakrishna, Takeo Kanade, Yaser Sheikh, "Convolutional Pose Machines", CVPR 2016.
This project is licensed under the terms of the GPL v2 license. By using the software, you are agreeing to the terms of the license agreement.
Contact: Shih-En Wei (weisteady@gmail.com)
- Synced our fork of caffe with most recent version (Dec. 2016) so that Pascal GPUs can work (tested with CUDA 8.0 and CUDNN 5).
- Including a VGG-pretrained model in matlab (and also python) code. This model was used in CVPR'16 demo. It scores 90.1% on MPI test set, and can be trained in much shorter time than previous models.
- We are working on releasing code of our new work in multi-person pose estimation demonstrated in ECCV'16 (best demo award!).
- Watch some videos.
- Install Caffe. If you are interested in training this model on your own machines, or realtime systems, please use our version (a submodule in this repo) with customized layers. Make sure you have compiled python and matlab interface. This repository at least runs on Ubuntu 14.04, OpenCV 2.4.10, CUDA 8.0, and CUDNN 5. The following assumes you use
cmake
to compile caffe in<repo path>/caffe/build
. [//]: # (- CopycaffePath.cfg.example
tocaffePath.cfg
and set your own path in it.) - Include
<repo path>/caffe/build/install/lib
in environment variable$LD_LIBRARY_PATH
. - Include
<repo path>/caffe/build/install/python
in environment variable$PYTHONPATH
.
First, run testing/get_model.sh
to retreive trained models from our web server.
- This demo file shows how to detect multiple people's poses as we demonstrated in CVPR'16. For real-time performance, please read it for further explanation.
-
CPM_demo.m
: Put the testing image intosample_image
then run it! You can select models (we provided 4) or other parameters inconfig.m
. If you just want to try our best-scoring model, leave them default.
-
CPM_benchmark.m
: Run the model on test benchmark and see the scores. Prediction files will be saved intesting/predicts
.
- Run
get_data.sh
to get datasets including FLIC Dataset, LEEDS Sport Dataset and its extended training set, and MPII Dataset. - Run
genJSON(<dataset_name>)
to generate a json file intraining/json/
folder (you'll have to create it). Dataset name can beMPI
,LEEDS
, orFLIC
. The json files contain raw informations needed for training from each individual dataset. - Run
python genLMDB.py
to generate LMDBs for CPM data layer in our caffe. Change the main function to select dataset, and note that you can generate a LMDB with multiple datasets. - Run
python genProto.py
to get prototxt for caffe. Read further explanation for layer parameters. - Train with generated prototxts and collect caffemodels.
Please cite CPM in your publications if it helps your research:
@inproceedings{wei2016cpm,
author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
booktitle = {CVPR},
title = {Convolutional pose machines},
year = {2016}
}