The Menpo Project
The Python framework for deformable modelling
comfortable with conda?
conda install -c menpo menpoproject

The Menpo Project is a set of BSD 3-Clause licensed Python frameworks and associated tooling that provide end-to-end solutions for 2D and 3D deformable modeling. The project includes training and fitting code for various state-of-the-art methods such as:

  • Active Appearance Model (AAM)
  • Supervised Descent Method (SDM)
  • Ensemble of Regression Trees (ERT) (powered by dlib)
  • Constrained Local Model (CLM)
  • Active Shape Model (ASM)
  • Active Pictorial Structures (APS)
  • Lucas-Kanade (LK) and Active Template Model (ATM)

The Menpo Project also provides:

  • a web-based tool for annotation of bulk data for model training
  • a command line tool for landmark localisation with state-of-the-art pre-trained models
  • generic object detection in terms of a bounding box
  • an elegant standard library with simple dependencies, useful for many areas of computer vision
  • sophisticated visualization with interactive IPython/Jupyter widgets

All of the code is Open Source and can be found over on the Menpo Github Organisation.


Packages

The Menpo project is a consists of a family of packages (primarily Python), each designed to solve one problem well:

menpo

menpo The heart of the Menpo Project. menpo contains all core functionality needed for the project in well tested, mature, stable package. menpo is the numpy of the Menpo ecosystem - the foundation upon which all else is built. Even if you aren't interested in deformable modelling, menpo's minimal dependencies and general algorthims and data structures makes it an ideal standalone library for use in a wide variety of Computer Vision situations.

menpofit

menpofit Implementations of state-of-the-art 2D deformable models. Each implementation includes training and fitting code. menpofit contains the crown jewels of the Menpo Project - most people are interested in using the Menpo Project for the menpofit package.

menpodetect

menpodetect Wraps a number of existing projects that provide functionalities for training and fitting generic object detection techniques. It is designed in order to have full compatibility with menpofit. Not all of the wrapped projects fall under the same BSD license and so care must be taken when using this project to adhere to the sub-project licenses.

menpo3d

menpo3d A specialized library for working with 3D data. It is largely separate from the core menpo library as it has dependencies on a number of large, 3D specific projects (like VTK, mayavi, assimp) which many people using the Menpo Project would have no use for. You'll want to install menpo3d if you need to import and export 3D mesh data or perform advanced mesh processing.

menpowidgets

menpowidgets A key goal of the Menpo Project is to accelerate research in 2D and 3D computer vision by providing powerful visualization tools. menpowidgets contains a collection of Jupyter Notebook Widgets for sophisticated visualization and interactive inspection of the state of all Menpo objects.

menpocli

menpocli Command Line Interface (CLI) for the Menpo Project that allows to readily use pre-trained state-of-the-art menpofit facial models. This is useful for people that only care to quickly acquire facial landmarks on their images.

landmarker.io

landmarker.io An interactive web-based tool for manual annotation of 2D images and 3D meshes. Useful to quickly landmark a single image, or organize a large annotation effort for thousands of files. Features like Snap Mode and Dropbox compatibility make it unique.


Next Steps

We strongly suggest you head over to the installation instructions to get started.

Once you have installed the Menpo Project, you can visit our Examples to get an idea of what you can do with Menpo.


User Group and Issues

If you wish to get in contact with the Menpo developers, you can do so via various channels. If you have found a bug, or if any part of Menpo behaves in a way you do not expect, please raise an issue on the corresponding package on Github.

If you want to ask a theoretical question, or are having problems setting up or using the Menpo Project, please visit the user group.

Follow @teammenpo for updates on the Menpo Project, or tweet at us any questions you have.