Table of Contents
The AAM-API is a C++ implementation of the Active Appearance Model framework. It can be used as a traditional API by linking in an AAM library, or it can be used as a precompiled command line program, e.g. as a part of an image analysis course. The complete package includes the AAMLab, various Matlab scripts for shape annotation and communication with the API, source code documentation and project files.
The AAMLab is a windows program that presents a GUI front-end to some of the functionality offered by the API. This includes running model searches, real-time visualisation of the modes of variation and training set annotation.
The software runs on the Windows platform and is partly based on the following software libraries:
Microsoft Visual C++ is required to recompile or modify the source code.
- MS VisionSDK - image, vector and matrix handling etc.
- LAPACK - matrix handling, eigen and singular value decompositions etc.
- Full implementation of the basic AAM
- Both grey-scale and colour images are supported
- Optimised implementation using pretty fast software warping in and very fast hardware warping [details]
- Supports multi-resolution model building and searching directly
- Generic initialisation method included
- Hold-out and leave-one-out evaluation of models
- Various schemes for shape fit evaluation
- Pretty flexible shape support: concave models, multiple open/closed paths, holes, points etc.
- A cornucopia of documentation features
- Movies of shape, texture and combined variation (avi)
- Training set registration movie (avi)
- Texture eigen modes images
- Parameter update images
- Zillions of matlab files, ready for plotting
- and much, much more...
Since the Stanford Wavelab team puts it so well, I will quote them at this point:
An article about computational science in a scientific publication is not the scholarship itself, it is merely advertising of the scholarship. The actual scholarship is the complete software development environment and the complete set of instructions which generated the figures.
The Stanford Wavelab Team
Class documentation is generated from source code comments by doc++. Cross-referenced HTML and printer-friendly PDF/PS formats are included in the package. These are also available for online viewing.
To enable usage of the AAM-API without a complete development environment the command line tool aamc provides a console interface to much of the AAM-API functionality. This also serves as an indirect example of how to use the API as a client. Refer to the usage output for further details.
The AAM-API package including source code, project files, et cetera is freely available for download.
To play around with the implementation, it is recommend to download one of the free data sets, see e.g. the face data set.
- Image i/o: BMP (can easily be extended to e.g. 16-bit tiff files)
- Shape i/o: ASF - AAM Shape File Format [format description] [example]
- Model i/o: AMF - AAM Model File Format, Partly binary and partly ascii format. ACSII part example.
Thanks to all the people at IMM and from all over the world providing me with feedback, ideas, bug reports, discussions et cetera. Your help is much appreciated. See readme.txt inside the package for more detailed acknowledgements.