AdamM
AdamM

Reputation: 4440

Matlab face alignment code

I am attempting to do some face recognition and hallucination experiments and in order to get the best results, I first need to ensure all the facial images are aligned. I am using several thousand images for experimenting.

I have been scouring the Internet for past few days and have found many different programs which claim to do so, however due to Matlabs poor backwards compatibility, many of the programs no longer work. I have tried several different programs which don't run as they are calling onto Matlab functions which have since been removed.

The closest I found was using the SIFT algorithm, code found here

http://people.csail.mit.edu/celiu/ECCV2008/

Which does help align the images, but unfortunately it also downsamples the image, so the result ends up quite blurry looking which would have a negative effect on any experiments I ran.

Does anyone have any Matlab code samples or be able to point me in the right direction to code that actually aligns faces in a database.

Any help would be much appreciated.

Upvotes: 3

Views: 6483

Answers (3)

Dima
Dima

Reputation: 39389

Do you need to detect the faces first, or are they already cropped? If you need to detect the faces, you can use vision.CascadeObjectDetector object in the Computer Vision System Toolbox.

To align the faces you can try the imregister function in the Image Processing Toolbox. Alternatively, you can use a feature-based approach. The Computer Vision System Toolbox includes a number of interest point detectors, feature descriptors, and a matchFeatures function to match the descriptors between a pair of images. You can then use the estimateGeometricTransform function to estimate an affine or even a projective transformation between two images. See this example for details.

Upvotes: 2

Vuwox
Vuwox

Reputation: 2359

The easiest way it with PCA and the eigen vector. To found X and Y most representative data. So you'll get the direction of the face.

You can found explication in this document : PCA Aligment

Upvotes: 2

Shai
Shai

Reputation: 114796

You can find this recent work on Face Detection, Pose Estimation and Landmark Localization in the Wild. It has a working Matlab implementation and it is quite a good method.
Once you identify keypoints on all your faces you can morph them into a single reference and work from there.

Upvotes: 3

Related Questions