/Face-Recognition-Using-Eigenfaces

A Face Recognition system utilizing PCA to transform high-dimensional facial images into a lower-dimensional subspace, where each face is represented with minimal reconstruction error by a linear combination of the most significant eigenvectors, termed 'Eigenfaces'.

Primary LanguageJupyter Notebook

Face Recognition Using Eigenfaces

This repository contains the implementation of a Face Recognition system using the Eigenfaces algorithm. The project demonstrates the application of Principal Component Analysis (PCA) for dimensionality reduction and feature extraction in the domain of computer vision.

Project Structure

  • eigenface.ipynb: Jupyter notebook with the full implementation and documentation of the Eigenfaces algorithm.
  • crop.zip: Zipped dataset containing cropped images for training the model.
  • test.zip: Zipped dataset containing test images to evaluate the model's performance.
  • eigenface.pdf: PDF file of the Jupyter Notebook.

Getting Started

To get started with this project, clone the repository and install the required dependencies listed in pre-requisites

Prerequisites

  • Python 3.x
  • Jupyter Notebook
  • Libraries: numpy, matplotlib, scikit-learn (install these using pip or conda)

Installation

  1. Clone the repository: git clone https://github.com/ksheersagaragrawal/Face-Recognition-Using-Eigenfaces.git
  2. Navigate to the cloned directory and install dependencies.
  3. Unzip the datasets: unzip crop.zip -d path_to_extract/ unzip test.zip -d path_to_extract/

Usage

The Jupyter file seems to have corrupted and cannot be viewed on GitHub, however you can still access the code via local IDE like VSCode and Jupyter notebook. Run the Jupyter notebook to see the step-by-step process of the Eigenfaces algorithm: jupyter notebook eigenface.ipynb

Follow the instructions within the notebook to train and test the Face Recognition model.

Results

The eigenface.ipynb notebook contains visualizations and performance metrics demonstrating the efficacy of the Eigenfaces algorithm in recognizing faces.

Contributing

Contributions to this project are welcome. Specifically if you find solution to the error "Notebook does not appear to be JSON: '', do share.

License

This project is licensed under the MIT License.

Acknowledgments

  • The dataset used in this project is a subset of the Labeled Faces in the Wild dataset.
  • Thanks to all contributors who have participated in this project.