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.
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.
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.
5- Classification using manually-implemented LDA.
6- KNN classifier tuning by trying different number of neighbors.
7- Compare against non-face images to solve the classification problem faces vs. non-faces.
8- Use different training and test splits.
This project was developed in the following environment:
- Jupyter Notebook
- Miniconda
- Python 3.11.5
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
.
This project is licensed under the MIT License - see the LICENSE.md file for details.