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
Mahmoud Afifi (2019). Face recognition using PCA and KNN (https://www.mathworks.com/matlabcentral/fileexchange/64568-face-recognition-using-pca-and-knn), MATLAB Central File Exchange. Retrieved .
@Malik and @hamza it is not allowed to upload data larger than 15 MB I guess, so I did not upload the datasets. You can read the comments to know the structure of the datasets should be used.
can you tell me about you are data set location or website
where is the data set??
a bug in KNN (for K>1) is fixed