Face Recognition using Neural Network

What do we need computers to identify faces for ? The most common usage of such a system could be at the entrance of places such as army bases, bases, banks and other companies for security purposes.

Abstract
What do we need computers to identify faces for ?
The most common usage of such a system could be at the entrance of places such as army bases, banks and other companies for security purposes. Today most of the identification systems are based on all sorts of magnetic cards. A system based on face recognition would be much safer. It would be much more difficult to fake human face than breaking a code of a magnetic card…
Project Goal
Our goal in this project is to implement a Face Recognition application, which relies on a database of face pictures of different people. The application should be able to identify a person from the database.
 
Our Approach
The system implemented in this project is composed of two major units. The first one is based on the Eigen Faces algorithm. The second one is the identification application which is based on a Back Propagation Neural Network.

The purpose of the Eigen Faces algorithm is to create a spanning base of the pictures (The Eigen Faces). Using this base we can represent face pictures with several coefficients (about ten) instead of having to use the whole picture.

1
Figure 1: Three Eigen Faces (Base Pictures)
 
The aim of the second unit is to perform the identification using the Neural Network. The network is being trained on the pictures from the database first, and then it is ready to identify face pictures given to it.

2
Figure 2: An example of a three layers Neural Network
 
The algorithm main steps

Eigen Faces Unit:
1. Load the pictures from the database
2. Calculate the covariance matrix out of the pictures
3. Calculate the eigen vectors which correspond to the largest eigen values of the covariance matrix. These vectors form the spanning base (The Eigen Faces)
 
Neural Network Unit:
1. Load the pictures to the network. Note that what enters the network are the picture’s coefficients, calculated using the spanning base, and not the picture itself
2. Train the network on these pictures for a number of iterations
3. Load a picture to identify (and calculate its coefficients)
4. Identify picture by using the network
 
Tools
The Eigen Faces algorithm was implemented as a matlab program, which creates an output file containing the Eigen Faces.
The Neural Network application was implemented in Visual C++, under Windows 95 environment.
 
Results
The network was trained on a database of 5 different persons each had 10 different face pictures.
There was a 100% success in identifying pictures from the database, which the network was trained on, and about 90% success in identifying pictures the network was not trained on, and noisy pictures. There was not a single case of a false identification, i.e. identifying one person as another one.

3
Figure 3: Pictures from the database that were identified
 
4
Figure 4: Pictures not from the database that were identified
 
5
Figure 5: Noisy pictures that were identified
 
6
Figure 6: Noisy pictures that were not identified
 
Conclusions
1. It is important that the Neural Network’s input series will be as short as possible in order to decrease the application’s running time (Therefore we use the Eigen Faces coefficients).
2. The database should include a wide variety of pictures per each person to obtain successful identification percentage by the Neural Network.
3. There is a great importance to the number and order of iterations. The network is to be trained alternately on different persons rather than perform training iterations only on one person and than move to another. Activating the network in the second way damages the identification percentage.
4. The targets to the network should be carefully chosen.
5. The pictures should be normalized to the same standard, which means uniform size, contrast etc.
6. The pictures should include only the face without any background. Therefor a real system should have an image processing program which detects first the face in a picture, and then perform the identification process on the face picture.
 
Acknowledgments
We would like to thank our supervisor Johanan Erez and the VISL laboratory for their support and guidance and to the Ollendorff Minerva Center Fund which supported this project.