Face Recognition by using SVM Technique and 3D Models

Face Recognition task is nowadays very popular among different recognition approaches using biometrics.

Abstract
Face Recognition task is nowadays very popular among different recognition approaches using biometrics. The main idea is to recognize a person with the best precision from a photo or video feed of this persons face. The input image or video is compared to a database of people that the system is able to recognize.
While most of the currently existing algorithms offer great recognition while the subject facing the camera and the lighting conditions are constant, those algorithms fail to recognize people who turn their head or who are illuminated in a different way. Such recognition is necessary in some applications such as surveillance cameras. The algorithm presented here shows an approach that allows wide range of head positions and illuminations.
The algorithm’s robustness to simple changes in subject’s appearance (change of face expression, gaining weight and growing a beard) is also tested.

The problem
Face recognition task considered hard because of the huge variation of possible human faces. Add to that the fact that the face can turn, illumination can change, face expression may vary and many more possible changes and you get a problem that despite the fact that it was researched for decades, still much work has to be done before a flawless design is presented.

pic_0001 pic_0010 pic_0021 pic_0030

The solution
This project uses an approach from the field of “”Machine Learning”” called SVM=Support Vector Machine which allows training the algorithm to classify between two groups by using positive and negative examples. The trained algorithm is capable of deciding what group does a new example belongs to.
The first task of the algorithm is to detect distinct areas in the face such as the eyes, mouth, and nose.
2
After this is accomplished, a Multi-class SVM is trained to enable recognition of people. Such SVM allows to classify between more than two groups – in this case more than two people. All the chosen face areas combined are used to accomplish the resulting classification.

Tools
Besides Matlab which is the programming language in which the code is written, two major software tools were used:
1. SVMlight – This is a SVM toolbox which is written in C language and has a matlab interface.
For further info refer to http://svmlight.joachims.org/
2. To build a database of thousands of pictures easily with the option to manipulate every feature of the face, a software named Poser 5 was used.

3

Results
Current project’s research was limited to artificial faces. Those are easy to generate using Poser 5 software thus huge training databases can be easily created. A group of 15 such artificial persons was used to test the algorithm.
For each person 5 face areas were extracted for the recognition. About 13000 pictures with varying face turn angles and various illuminations were created.
– While the subjects had no facial hair, neutral face expression and constant
“”weight”” the algorithm makes correct recognition with 85% accuracy.

– When face expression changes ( a Smile was tested ) the accuracy lowers to 66%
4

– When the subjects “”Gained weight”” the accuracy lowers to 59%
5

– When facial hair was added to the subjects the accuracy lowers to 33%
6

hose results can be improved by using more face areas for recognition at the expense of more processing time per image.

In addition, an idea of working with real pictures by creating 3d model of subjects face was tested, but was found to be impossible to implement with tools at my disposal. Such implementation will need a development of a new tool that will allow creation of 3d model of human face from several photos of that person.

Another idea for further research is to implement the algorithm on a real-time hardware connected to a video feed. This way recognition statistics can be further improved by using several frames to recognize single person.

Acknowledgment
I’d like to thank my supervisor Dori Peleg for his guidance, support and willingness to allow me follow the aspects I found most interesting to explore.
Many thanks go to people who developed the tools I used and mentioned in the tools section – I couldn’t do it without you.
I’m also grateful to the Ollendorff Minerva Center Fund for supporting this project.