Author: Mahmoud Afifi - mafifi@eecs.yorku.ca
York University
The files here are:
(1) load_data: load the data from face_images.mat and nonface_images.mat
face_images.mat file should contain:
- train_imgs: NxMxL tensor that contains N test face images. Each image is MxL pixels (grayscale).
- train_ids: Nx1 vector that contains the id of each image in test_imgs
- test_imgs: KxMxL tensor that contains N test face images. Each image is MxL pixels (grayscale).
- test_ids: Kx1 vector that contains the id of each image in test_imgs
nonface_images.mat file should contain:
- nonface_imgs: SxMxL tensor that contains S non-face images. Each image is MxL pixels (grayscale)
(2) getAvgFace: calculate the average of the training face images and display it.
(3) PCA_: calculate the principle components (PCs), the latent low-dimensional data, and the eigenvalues
(4) KNN_: classifying using k-nearest neighbors algorithm. The nearest neighbors search method is euclidean distance.
(5) Demo: is a demo!
Note: you have to prepare your data as described in (1)
To get the results:
1- Download the datasets and locate them in the same directory of the source code.
2- Run Demo.m