Facial Expression Recognition from Still Images


Aim

The aim of this project was to develop a computer vision system that recognises facial expression from still images.


How are you feeling today?


Platform

The system was implemented in Matlab, using the Neural Networks Toolbox, in Microsoft Windows Environment.

Data

The Yale Face Database was used for training and testing the system. 60 greyscale images (15 human subjects, 4 images for each subject: normal, sad, happy, surprise) were selected for the database for training and testing the system.

Solution

A feed-forward back-propagation neural network solution was adopted, inspired by the paper: "A Neural Network Facial Expression Recognition System using Unsupervised Local Processing" by  L. Franco, A. Treves, in Proceedings of the 2nd International Symposium on Image and Signal Processing and Analysis, ISPA 2001, Pula, Croatia.

Initially, a 96x32 pixel image of the left side of each facial image was cropped. Then, PCA was used to reduce the dimensionality from 3072 to 55 elements per image. This data was used as input to train a variety of Neural Networks, using different versions of the Back Propagation algorithm (gradient descent, adaptive gradient descent, gradient descent with momentum, adaptive gradiant descent with momentum), with one or two hidden layers, with 3 or 4 outputs, corresponding to 3 or 4 facial expressions.
Each time, the images of 14 human subjects were used for training and the image of the remaining human subject were used to test the system.


Conclusions

Results were promising (48% in average for all implementations, therefore better than luck), but inconsistent over different implementation and/or different training sessions. The diagrams below show the best success rate achieved. "Happy" and "Surprised" expressions were easiest to recognise, while "Normal" and "Sad" were confused often.

Contrasting "Surprised" expressions
"Normal" and "Sad" similarities



Neural Networks with best results over all expressions. Neural netwroks with best results for particular expressions


About this work

The above system was implemented by Tom Botley for his final year project at Kingston University, under the supervision of Dimitrios Makris, during the academic year 2005-2006.