Skip to content

Implementation of FaceNet for face recognition based attendance system.

License

Notifications You must be signed in to change notification settings

j0gi-18/Attendance-marking-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attendance marking system

This repository is an application of high performance face recognition using FaceNet, Multi-Task Cascaded Convolutional Neural Networks(MTCNN) and Random Forest classifier. A camera is used to capture video frames and each frame is analysed by the face recogonition algorithm, if a face is recognized name of the person is displayed in the console with confidence score. Names displayed in console are also displayed in a excel sheet within Names column along with date and in-time(shows the students' arrival time in class).

Requirements

  1. Camera
  2. Python (latest version preffered)
  3. Libraries
    • pytorch - provides machine learning framework.
    • facenet-pytorch - provides implementation of FaceNet and uses PyTorch framework.
    • sklearn - contains tools and utilities for data preparation, model fitting, and evaluation.
    • opencv - provides methods to read images and video frames from camera.
    • joblib - provides a set of tools to for lightweight pipelining and loading model.

Steps to run the program

  1. Clone the repository or download the zip file.
  2. Collect images of people and create a dataset.
  3. Download FaceNet model and generate embeddings of images present in the dataset.
  4. Train your classification model on the generated embeddings using the train.py script.
  5. Open the main.py file and update model address.
  6. Run the program.

Results

  1. The trained clasiffication model has an accuracy score of 99 %
  2. Model demonstrated remarkable recognition ability in low light conditions,
  3. The model excels at recognizing faces from various angles, positions, and even from a distance of 7 meters.

Precision recall curve

Precision recall curve

Receiver operating characteristic curve

ROC curve

Accuracy & Confusion matrix

Accuracy and Confusion Matrix

Low light performance

Low light performance

Observations

As the pixel count increases, we get better video quality so the camera can capture more information or detailing in every frame and range of the camera increases as well, but the CPU/GPU now has to evaluate so many pixels in the frame. The algorithm can perform even better(recogonise faces from a distance of 10 meters) if used with a better processor

About

Implementation of FaceNet for face recognition based attendance system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published