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.
The Menpo Project consists of a family of packages (primarily Python), each designed to solve one problem well:
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.
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
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.
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
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.
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.
Command Line Interface (CLI) for the Menpo Project that allows to readily use pre-trained
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.
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.