This project is part of my Bachelor's Degree thesis and was also featured in a paper published by IEEE, though it uses a different dataset. The published paper is available at IEEE.
The purpose of this project is to build a face recognition system using the Fisherface method for dimensionality reduction and a Support Vector Machine (SVM) for classification. This project explores effective facial image processing techniques and provides a robust machine learning model for recognizing faces from images. The system has potential applications in security, identity verification, and user authentication systems.
- Image Processing
- Dimensionality Reduction (Eigen decomposition)
- Machine Learning (Support Vector Machine)
- Data Visualization
- Python
- OpenCV
- Matplotlib
- Numpy
- Pandas
- MTCNN
- Patool
This project focuses on processing face images from the Labeled Faces in the Wild (LFW) dataset. The system applies the following steps:
- Face Detection and Cropping: Utilizes
MTCNN
to detect and crop faces. - Preprocessing: Converts images to grayscale and resizes them to a uniform size.
- Dimensionality Reduction: Computes Fisherfaces through Eigen decomposition for feature extraction.
- Classification: Implements a Support Vector Machine (SVM) to classify faces into categories based on labels.
- Visualization: Displays the mean face image, eigenfaces, and reconstructed images from the reduced feature space.
├── code.ipynb <- Jupyter Notebook containing the code for data preprocessing, prediction, and visualization.
├── README.md <- Project documentation and instructions.
- Clone this repository:
git clone https://github.com/yourusername/FaceRecognition-Fisherfaces.git
- Raw Data: The dataset is stored in the Labeled Faces in the Wild Home Focused directory. If the dataset is not included, download it from the LFW Dataset.
- Data Processing Scripts: The data processing and transformation scripts are located in the main directory of this repository.
Follow the steps below to set up the environment and execute the system:
- Install the required Python packages:
pip install opencv-python-headless numpy matplotlib pandas mtcnn patool
- Run the Python notebook to execute the system.
Metric | Value |
---|---|
Accuracy | 88.16% |
Precision | 89.50% |
Recall | 82.44% |
F1-Score | 85.00% |
Team Lead
Syachrul Qolbi Nur Septi
Other Members