Active Shape Models with Stasm
Stasm is a C++ software library for finding features in faces. You give it an image of a face and it returns the positions of the facial features.
It also allows you to build your own Active Shape Models.
Source code is provided under the
GPL2.
Stasm is designed to work on "passport style" photographs i.e. on front views of upright faces with neutral expressions.
It doesn't work well on faces at an angle,
or with open mouths or other non-neutral facial expressions.
A little bit of blurring is not a problem.
Like all automatic techniques at the current time (Oct 2008) it is not as accurate as a human landmarker and will sometimes make quiet bad location errors.
Back to Stephen Milborrow Homepage
Download
Download Stasm software and documentation.
Version 2.4 was released on Nov 23, 2008.
If you are just browsing, look at this to save yourself a
download minimal.cpp
The Technology
Stasm extends the Active Shape Model of Tim Cootes
and his colleagues with the following techniques:
- selectively using two- instead of one-dimensional landmark profiles (for more reliable profile matches)
- stacking two Active Shape Models in series (for a better start shape)
- extending the set of landmarks (because using more landmarks generally gives an overall better fit)
- trimming covariance matrices by setting most entries to zero (for speed)
- using other modifications such as adding noise to the training set.
Before searching for facial features begins, Stasm uses the Rowley or the Viola Jones face detector to locate the overall position of the face.
On frontal upright faces with neutral expressions, Stasm is shown in my
master's thesis
to compare favorably with previously published methods.
See the graph to the right.
Citing Stasm
Please cite the following or equivalent reference in any publicly available text that uses Stasm:
@article{Milborrow08,
author={S. Milborrow and F. Nicolls},
title={Locating Facial Features with an Extended Active Shape Model},
journal={ECCV},
year={2008},
note={\url{http://www.milbo.users.sonic.net/stasm}}
}
(This paper is available here.)
Related software
Unlike Stasm, the software below does not include trained models --- you will have to do your own training.
Additional experiments
How reliable are manual landmarks?
To get an idea of the reliability of manual landmarks, we did a small
experiment.
Can we estimate the quality of the landmark positions generated by the Active State Model?
Alas, the short answer is not easily.
See this experiment.
Acknowledgments
I would like to thank the following people who provided ideas, code, data, and techniques used in Stasm:
- Tim Cootes
- David Cristinacce
- Fred Nicolls
- Brad Yearwood for help with the Ubuntu port and for sage advice over the years
- Pierre Moreels for help with the Ubuntu port
- GuoQing Hu for his neat start-shape alignment technique and for help testing
- Roger Willcocks for his prototype ASM code
- Eugen Dedu for his line drawing code
- Henry Rowley, Shumeet Baluja, and Takeo Kanade for the Rowley face detector
- M. Galassi, J. Theiler, and others for the GNU Scientific Library
- Ramin Nakisa, Marcel Bosc, Brian Gough, Rodney Sparapani, Torbjorn Vik, Nigel Wetters for gslwrap
- Paul Viola and Michael Jones for their face detector
- Rainer Lienhart for his implementation of the Viola Jones detector
- Jesorsky, Kirchberg, and Frischholz for making available the BioID data used in the project.
The face at the top right of this page is from the BioID set.
- The Independent JPEG Group for their library
Thanks guys!
Back to Stephen Milborrow Homepage