Skip to content

Face Recognition using PCA & LDA dimensionality reduction, then classification using KNN.

License

Notifications You must be signed in to change notification settings

MohEsmail143/face-recognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Face Recognition

A manual implementation of the Principal Component Analysis (PCA) and Linear Discriminant Analysis (LDA) algorithms to solve the problem of face recognition (EigenFaces) on the AT&T Database of Faces.

AT&T Database of Faces

This project was developed as part of the course Pattern Recognition in the Spring 2023 semester at the Faculty of Engineering, Alexandria University, under the Computer and Communications Engineering department, supervised by Dr. Marwan Torki.

Steps

1- Download the dataset and understand the format.

2- Generate the data matrix and the label vector.

3- Split the Dataset into training and test sets.

4- Classification using manually-implemented PCA.

PCA

5- Classification using manually-implemented LDA.

LDA

6- KNN classifier tuning by trying different number of neighbors.

KNN Classifier Tuning

7- Compare against non-face images to solve the classification problem faces vs. non-faces.

8- Use different training and test splits.

Prerequisites

This project was developed in the following environment:

  • Jupyter Notebook
  • Miniconda
  • Python 3.11.5

Installing

1- Clone the repository to your local machine:

git clone https://github.com/MohEsmail143/face-recognition.git

2- Open Jupyter notebook.

3- Check out the the Jupyter notebook Face_Recognition.ipynb.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.