The Menpo Project is a set of BSD 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 consists of a family of packages (primarily Python), each designed to solve one problem well:
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
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
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
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.
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 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.