Skip to content

Attendo (Attendance Management System based on face recognition - Graduation Project)

Notifications You must be signed in to change notification settings

MinaSaad47/attendo

Repository files navigation

Logo

Attendo

Attendance System based on Face Recognition for graduation project (2023)

-----------------------------------------------------

Features ✨

  • πŸ“· Take Attendance with Face Recognition
  • πŸ”’ Take Attendance with QR Code and ID
  • πŸ“Š Generate Reports
  • πŸ”„ Automating Attendance Tracking Process
  • πŸ“‹ Admin Dashboard
  • πŸ“˜ API Docs
  • πŸ“± Mobile Application
  • 🌐 Cross-platform

-----------------------------------------------------

Background πŸ“š

Smart Attendance System with Face Recognition and QR Codes [1]

A research study by Singh et al. (2018) proposed a smart attendance system that integrated face recognition and QR codes for tracking attendance in a university setting. The system achieved high accuracy and significantly reduced the time required for attendance-taking compared to traditional manual methods.

Effectiveness of RFID-Based Smart Attendance System [2]

Sahu and Bhatt (2018) examined the effectiveness of an RFID-based smart attendance system in a manufacturing company. The study found that the system led to a remarkable reduction in absenteeism and improved attendance tracking accuracy and efficiency.

Impact of Smart Attendance System on Student Attendance and Academic Performance [3]

A study by Khan and Ahmed (2019) investigated the impact of a smart attendance system on student attendance and academic performance. The findings revealed that the system positively influenced attendance rates, particularly among previously absent or tardy students. Moreover, it correlated with improved academic performance, with students attending more classes achieving higher grades.

Smart Attendance System with Face Recognition and Deep Learning [4]

Han et al. (2019) developed a smart attendance system using face recognition and deep learning techniques. The system exhibited superior accuracy even with large datasets and challenging lighting conditions, making it a robust solution for attendance tracking.

Biometric-Based Smart Attendance System in Educational Institutions [5]

Alshehri and Drews (2020) conducted a study comparing a biometric-based smart attendance system with traditional attendance tracking methods in educational institutions. The results demonstrated that the smart system outperformed conventional methods, offering better accuracy, efficiency, and user satisfaction among students and teachers.

Enhancing Attendance Accuracy and Efficiency in Primary Schools [6]

Tsoi et al. (2019) explored the use of a smart attendance system in a primary school setting. The study revealed that the system improved attendance accuracy and reduced the time required for attendance-taking, making it beneficial for educational institutions.

-----------------------------------------------------

Architecture πŸ›οΈ

Architecture

The smart attendance system consists of various modules, each playing a crucial role in its operation. Here are the key modules and their functions:

Module Description
Face Recognition Module A container for facial recognition that serves a Face Embedding Model and a Face Classification Model. The Face Embedding Model transforms facial images into high-dimensional numerical representations (embeddings), enabling efficient face recognition and similarity comparisons. The Face Classification Model discriminates between different individuals and accurately recognizes known faces.
Web Server Module A container that hosts the backend server, handling incoming requests from clients (such as web browsers) and serving responses over the internet. It manages communication protocols and processes requests.
Application API Module A software component that handles incoming requests from clients and serves responses over the internet. It manages communication protocols and processes requests.
Image Store Module A file system module for managing and serving the system's images, facilitating efficient image storage and retrieval.
PostgreSQL Database Module [8] A container Database Management System that stores information about the system resources (e.g., attendees, instructors, subjects) in records in a table format.
Front End Application Software used by system users (attendees, instructors, and admins) to interact with the system through an easy-to-use interface, facilitating seamless user experience.
Mobile Application A mobile application built using Flutter [7] that enables taking attendance using face recognition and QR code technologies. It utilizes the device's camera to capture and analyze facial features or scan QR codes for identification purposes.
Dashboard Application A GUI that serves as an administrative tool for managing the system resources. It provides functionalities for adding new users, updating existing data, deleting records, and performing other administrative tasks through a user-friendly interface.

-----------------------------------------------------

Diagrams πŸ“Š

Usecase Diagram

Usecase Diagram

Sequence Diagram 1

Sequence Diagram 1

Sequence Diagram 2

Sequence Diagram 2

Class Diagram

Class Diagram

Database Schema

Database Schema

-----------------------------------------------------

DataSets πŸ“Š

  • LFW Dataset [15]

    • Description: Labeled Faces in the Wild (LFW) is a popular benchmark dataset in face recognition research.
    • Statistics: Contains around 13,000 images of 5,749 unique individuals.
  • Microsoft Artificial Dataset [16]

    • Description: The Microsoft Artificial Dataset comprises a significant number of artificially generated face images.
    • Statistics: The DigiFace1M subset of the dataset contains 1 million synthetic face images.
  • Personal Dataset

    • Description: The Personal Dataset includes images of 7 individuals captured specifically for this project.
    • Statistics: 10 images per person, totaling 70 images.
  • Celebrity Dataset

    • Description: The Celebrity Dataset consists of images of 10 well-known celebrities from various sources.
    • Statistics: 10 images per celebrity, totaling 100 images.

-----------------------------------------------------

Development πŸš€

Classification Model πŸ†

In our experiment, we explored the performance of four different classification models: EfficientNetB0 [10] , EfficientNetB2, VGGFace [13] , and ResNet50 [14] . We evaluated these models on three distinct datasets: LFW , Celebrity, and Personal. Each dataset provided a unique set of challenges and variations in facial images.

πŸ” We systematically combined each model with every dataset to observe the resulting accuracy and loss. By examining the combination of models with different datasets, we aimed to understand the strengths and weaknesses of each model in different contexts.

In the following table, we trained the models for 50 epochs and observed: Experiment Results

πŸ“ˆ Based on our comprehensive evaluation of the four classification modelsβ€”EfficientNetB0, EfficientNetB2, VGGFace, and ResNet50β€”in combination with the LFW, Celebrity, and Personal datasets, we have determined that EfficientNetB2 is the most suitable model for our intended application. Through rigorous analysis, we found that EfficientNetB2 consistently achieved high accuracy and demonstrated remarkable performance across multiple datasets.

πŸ’ͺ EfficientNetB2 exhibited superior results on both the Celebrity and Personal datasets, indicating its ability to capture intricate facial features and adapt well to various image variations. Its impressive performance, combined with its efficiency in terms of computational resources, makes EfficientNetB2 an ideal choice for our facial recognition task.

βœ… Considering the importance of accuracy, generalization capabilities, and computational efficiency, we have made an informed decision to employ EfficientNetB2 as our primary classification model for the proposed application. This selection ensures a reliable and efficient facial recognition system that can effectively handle diverse real-world scenarios.

Test Accuracy for EfficientNet-B2 on the three datasets: Test Accuracy

Test Loss for EfficientNet-B2 on the three datasets: Test Loss

Embedding 🧠

🎭 As another powerful technique, we delved into face embeddingβ€”a process that transforms a face image into a high-dimensional feature representation. This representation, known as an embedding, captures the unique characteristics of a face and facilitates measuring similarities or distances between faces.

πŸ” In our experiments, we harnessed the potential of a Siamese network architecture combined with the triplet loss function. The Siamese network comprises three identical subnetworks, sharing the same weights. Taking three face images as input, it produces their corresponding embeddings. The triplet loss function then trains the network by minimizing the distance between an anchor face embedding and a positive (same identity) face embedding, while maximizing the distance between the anchor face embedding and a negative (different identity) face embedding.

Face Embedding

Triplet Loss Formula: loss = max(0, ||A-P||^2 - ||A-N||^2 + Ξ±)

where:

  • A: Anchor embedding vector
  • P: Positive embedding vector
  • N: Negative embedding vector
  • Ξ±: Margin that determines the minimum separation between positive and negative pairs

πŸ˜• The naive approach in face recognition involves randomly selecting triplets for training the embedding model without considering the difficulty of the samples. In this case, the model learns from triplets that may not provide sufficient discriminative information, leading to suboptimal performance.

πŸš€ To overcome this challenge, we embraced the online triplet approach, dynamically selecting hard triplets during training. A hard triplet consists of an anchor, a positive (same identity) sample, and a negative (different identity) sample that are challenging to distinguish. By focusing on hard triplets, the model is pushed to learn more robust and discriminative embeddings.

πŸ† As our experiments progressed, we encountered difficulties in achieving optimal performance solely with our custom-built network architecture. To overcome this, we decided to harness the power of transfer learning and adopted the FaceNet [18] pretrained model. FaceNet is a widely recognized face recognition model trained on a large-scale dataset, demonstrating outstanding performance in embedding faces into a high-dimensional space. By leveraging the FaceNet model, we achieved higher accuracy and benefited from its robust features.

-----------------------------------------------------

Screenshots πŸ“Έ

API Docs

API Docs

Dashboard

Dashboard Image 1 Dashboard Image 1 Dashboard Image 1
Dashboard Image 1 Dashboard Image 1

Mobile Application

Application Image 4 Application Image 4 Application Image 4 Application Image 4
Application Image 5 Application Image 5 Application Image 5 Application Image 5
Application Image 6 Application Image 6 Application Image 6 Application Image 6

-----------------------------------------------------

Demo πŸš€

Demo.mp4

-----------------------------------------------------

Meet the Brilliant Minds Behind the Project 🌟

-----------------------------------------------------

References πŸ“š

[11] Rust.

-----------------------------------------------------

Acknowledgments πŸ™

  • We would like to express our sincere gratitude to our supervisor and faculty members who provided valuable guidance and support throughout the project.
  • Special thanks to our families and friends for their unwavering encouragement and belief in us.
  • We are also grateful to the open-source community for providing valuable tools and resources that greatly contributed to the success of this project.

-----------------------------------------------------

About

Attendo (Attendance Management System based on face recognition - Graduation Project)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published