- Normalize each face
- Calculate the mean and standard deviation of each face. This is like brightness and contrast.
- Normalize each image so that each face is closer to some desired mean and standard deviation
- Calculate the mean image based on the M normalized images.
- Calculate the difference matrix using the new mean face.
- Find the eigenvectors of D * D'. However, this is too large of a matrix so it can not be done directly.
- Find the eigenvectors v of D' * D.
- Multiply the resulting eigenvector by D to get the eigenvectors of D * D'.
- Take the eigenfaces that correspond to the M eigenvectors with the highest value.
EnrollingThe enrollment process consists of creating a user "template" for comparison when he tries to log in again later. The template is an M-length vector (M is the number of eigenfaces used to create the face space) that represents the correlation of the user's face with each eigenface. We use M = 25.
To create a user template from the 176x143 face image, we use the following algorithm:
- Follow the same steps as above to normalize the new face image to the desired mean and standard deviation used in the eigenface calculation.
- Create the "difference" face by subtracting the average face from the normalized new face
- Dot the "difference" face with each eigenface. The value of the ith dot product is the ith element of the template. T is the template, F is the difference face, and E is the eigenface.
Logging InWhen a user attempts to log in, a new face template is created from the newly captured image as described above. This template is then compared with every other saved template. The measure of correlation we use is the cosine of the angle between the different templates. If the correlation between two templates is above the desired threshold then a "match" has been found. After testing, we decided to use 0.85 as a threshold. This was small enough to reduce false negatives while high enough to eliminate false positives.
To log in a user with their new 176x143 image, we used the following algorithm:
- Follow the same steps as the enrollment process to create a new template, T_new
- Calculate the correlation of T_new with all of the stored templates to find the number of matches.
If you don't want to get yourself into Serious Technical Trouble while doing your programming OR technical projects then just sit back and relax and let us do the Job for you at a fairly reasonable cost. Submit your project details by Clicking Here »