Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Active Shape Models for face detection

This project was part of my work for Advanced Digital Image Processing at the University of Iowa during spring 2017. You can read my final report for the class here. The report was a tad rushed, my apologies!


After cloning this repository, run the Example_FindFace script for a walkthrough demonstration of how to use this ASM code for locating a face in an example image.

More than just faces

It's probably worth pointing out that the ASM technique (and this implementation) is not limited to face detection. The models can be trained to detect whatever class of shapes the user chooses. So if you have a set of labeled images of hands (or whatever), you can train a model using the buildShapeModel.m and buildGrayLevelModel.m functions to search for hands (or whatever).


Here is the original Cootes et al. paper. PDFs of the paper are available elsewhere online if you don't have access to the journal. Here is a link to the faces training set I annotated to train my model.

Manipulating the weights on the 1st and 2nd principal components deforms the face shape within an allowable range of variation.