Face Reconition


         In this project, I learnt how to do the basic face recognition. The project can be seperated into three parts. The first part is face detection. The second part is trainning and producing Eigenface. The last one is finding the nearest face.



         The program uses cvHaarDetectObjects function to detect the faces in the pictures. The program will detect the faces in the pictures, crop the face part, and store the cropped image in a folder.


         Now we load the sample images(previous cropped images) to train the program. The program will then produce eigenfaces. Eigenfaces are the eigenvectors of the set of faces. The cropped face images can be viewed as a vector of pixel value. To generate this vector, the face image must be scaled, and its intensity must be normalized. Then, we compute Principal Component Analysis(PCA) and do identification. PCA is a well-known technique for dimensionality reduction and it re-duces the dimension by finding the subspace in the dataset. In this program, each input face can be defined by a set of coefficients weights.



         The last part is matching and doing the face recognition. The test image will be projected into the subspace spanned by the Eigenfaces. Then the program will compare its position in face space with the positions of known faces. (finding the Nearest-Neighbor)



reference data:
          "Face recognition using eigenfaces" by M. Turk and A. Pentland
          "Computer Vision Algorithms and Applications" by Richard Szeliski