The project presents a unsupervised learning framework which can learn and recognize human faces. A face can be described using a set of 2D characterisitic views. The "eigen faces" or eigen vectors of the training images are used to define a face space. The images are projected onto this face space that also encodes the variation amongst the known faces.
There are two ways to run the program:
python main.py
python main.py <path_to_image>
When we recognize faces for all test images, the output is a table in which the first column specifies the expected output, the second column specifies the actual output and the third column wheter the recognition was correct or not.
When we recognize face in a specified image . The output ranges from s1 till s40.
For example, If the output is s4 then that means that the test image is recognized to be the person whose images are in folder s4.
The methodology is as described in the following papers:
Eigenfaces for Face Detection/Recognition
For details on dataset used and results, please refer to Report.pdf
This work was done as part of assignment in the Probability and Random Processes course at IIT Gandhinagar.