Skip to content

Roei-Azriel/FinalProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Face Recognition Project

This project implements a face classification system using deep learning. It includes training on a custom dataset, evaluation, real-time inference, and a web interface for user interaction. The system is based on a convolutional neural network model and was fine-tuned for both large and small datasets.


📁 Directory Structure

our_dataset/

  • Contains subfolders named after individuals.
  • Each subfolder includes face images of the respective person.
  • Used for training and evaluation.

TrainOnLargeDatasetWithDiffEpochs/

Contains experiments for training FaceCNN with different epoch configurations.

100epochs/

  • train_faces_100ep.py: Script to train the FaceCNN model for 100 epochs.
  • best_model.pth: Best weights from the training process.

200epochs/

  • train_faces_200ep.py: Script to train the model for 200 epochs.
  • best_model.pth: Best weights from this training.
  • Analyize/: Evaluation scripts and output visualizations:
    • eval_model.py: Evaluates the model and generates a confusion matrix.
    • eval_model_2.py: Extended evaluation script that produces:
      • Confusion matrix
      • Precision & Recall chart
      • Top-3 Accuracy chart

Website/

  • Contains all frontend (client) and backend (server) code for the web application.
  • Functionality:
    • Users can upload images grouped by person name.
    • Clicking Send triggers fine-tuning of the FaceCNN model based on the uploaded data.
    • The user receives back a trained weights file (.pth) fine-tuned to the uploaded dataset.
  • Frontend: [React]
  • Backend: [Node and Express]

live_check/

Code for live face recognition and personalized model fine-tuning.

  • face_rec.py:
    Fine-tunes a pretrained FaceCNN model (originally trained on 100 classes) to a smaller dataset of 5 people. This is done using new data for personalized recognition.

  • live_infer.py:
    Performs real-time face recognition using a webcam. It loads the fine-tuned model and identifies faces among the 5 trained individuals.


📄 Project Documents

Literature review- Oria_Roei_106.pdf

  • First submission of the report.

Progress report- Oria_Roei_106.pdf

  • Second submission of the report.

Final Report- Oria_Roei_106.pdf

  • Complete documentation including methodology, architecture, experiments, and results.

Poster- Oria_Roei_106.pdf

  • A visual summary of the project for academic or public presentation.

FaceRecognition_TechnicalDocumentation- Oria_Roei_106.pdf

  • A full technical documentation of the software.
    This document provides a detailed explanation of the system architecture, all developed modules, and their interactions.
    The goal is to allow developers and reviewers to clearly understand how the system was built, how each module works, and how they integrate together.

Summary

This project showcases:

  • Training and fine-tuning of deep learning models on face data
  • Real-time face inference using webcam
  • Evaluation metrics like confusion matrix, precision, recall, and Top-3 accuracy
  • Web-based interface for accessibility and interaction

About

My final project in Computer Science

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors