$30
Design a face recognition system using the Eigenface method you have learned in class. Use the training images in the face dataset provided to produce a set of Eigenfaces and then recognize the faces in the testing set using the Eigenface method. To recognize the face in the input image, compute the Euclidean distances 𝑑𝑑𝑖𝑖 between the Eigenface coefficients of the input image and the Eigenface coefficients of the training images. The input face is then recognized as the face in the training images with the smallest Euclidean distance. (You can skip the computation of 𝐼𝐼⃗𝑅𝑅 and 𝑑𝑑0, and ignore thresholds 𝑇𝑇0 and 𝑇𝑇1 in the lecture slides.)
Python, C++/C, Java or Matlab are the recommended languages to use. If you plan to use a different language, send me an email first. You can use built-in library functions for the reading, writing and displaying of images, to perform matrix and vector operations, and to compute eigenvalues and eigenvectors from matrices, but you cannot use library functions to perform other steps that you are required to implement in the project.
Face dataset: The training set contains 8 grayscale face images from 8 different persons, and the testing set contains 5 face images from 4 of the individuals in the training set. Two images in the testing set are from the same person. The images are in .jpg format and have dimensions 195 x 231 (width x height) pixels. Each pixel uses 8 bits for grayscale.