C++ implementation of Deva Ramanan's "Articulated Pose Estimation with Flexible Mixtures of Parts"
C++ Matlab CMake Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
cells fix dependency ordering Dec 11, 2016
cmake Fixes #11 Feb 21, 2013
doc Added Matlab/Octave training code Sep 7, 2012
include fix compilation with OpenCV2 Nov 20, 2016
launch ros node improvements Nov 16, 2012
matlab documented the example training_demo.m file to try to help people who… Nov 6, 2014
models @ a352c98 copyright update Dec 22, 2012
python drop Fuerte support Dec 10, 2013
ros fix runtime crash Jun 25, 2014
src fix version test Dec 18, 2016
test reenable a test Jun 9, 2013
.gitmodules Update .gitmodules Sep 6, 2012
.travis.yml add a Travis job Dec 11, 2016
CMakeLists.txt do not play with compile flags Nov 12, 2017
INSTALL Added installation documentation for ECTO/ROS/Catkin Sep 7, 2012
README Updated documentation Sep 7, 2012
README.md Moving to OpenCV as only dependency in standalone build. Next commit … Jul 6, 2013
package.xml add a dependency on visualization_msgs Dec 11, 2016
setup.py updated python setup Dec 18, 2012



This project implements a Parts Based Detector in C++, described in the following paper:

Yi Yang, Deva Ramanan, "Articulated Pose Estimation with Flexible Mixtures-of-Parts," CVPR 2011

Windows Support:

This is an open source project, developed on open platforms. At this point I do not have the desire or resources to support non-compliant compilers such as MSVC. If you are using GCC or Clang and run into issues, be sure to let me know. If you are running MSVC, I can only offer you limited assistance (mostly due to lack of knowledge about MSVC idiosyncracies).


The project has the following dependencies:

  • OpenCV REQUIRED (for image processing)
  • CMake REQUIRED (for building)
  • Doxygen OPTIONAL (for documentation)
  • OpenMP OPTIONAL (for multithreading)
  • ROS OPTIONAL (for publishing detections on a ROS topic)
  • ECTO OPTIONAL (for building and ECTO cell)


The project can be built in one of two modes:

  • A standalone binary (for testing functionality)
  • A shared library (for use in existing applications)

To configure the project, set the options at the top of CMakeLists.txt To build the project, follow the normal cmake routine from the root folder:

  1. mkdir build
  2. cd build
  3. cmake ..
  4. make


To run the detector, please consult the Mainpage of the docs, or src/demo.cpp. Both contain examples of how the detector can be initialised and run.


The learning code is currently only in Octave/Matlab. This is because the detector supports a number of learning schema, and porting all of these to C++ is not practical at this time. Please consult the README within the matlab/ directory for instructions on training a model

This package is developed and maintained by Hilton Bristow, Willow Garage