Skip to content

ADP-1/Face-recognition-Attendence-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Face Recognition Attendance System

Table of Contents

πŸ‘‹ Introduction

The Face Recognition Attendance System is an advanced, automated solution designed to streamline the process of tracking attendance in educational institutions or workplaces. By leveraging state-of-the-art facial recognition technology, this system provides a contactless, efficient, and accurate method of recording attendance.

⭐ Features

  • Real-time face detection and recognition using OpenCV and face_recognition library
  • Automated attendance marking with timestamp recording
  • Firebase integration for secure data storage and retrieval
  • User-friendly graphical interface with custom background and mode displays
  • Multi-threaded operations for improved performance
  • Configurable attendance rules (e.g., minimum time between markings)
  • Detailed logging and debugging information
  • Support for multiple students with individual profiles

πŸ› οΈ Tech Stack

python opencv firebase numpy canva figma git github vscode

  • Python 3.10: Core programming language
  • OpenCV: Image processing and computer vision
  • face_recognition: Facial recognition algorithms
  • Firebase Admin SDK: Database management and cloud storage
  • NumPy: Numerical operations on arrays and matrices
  • cvzone: Additional computer vision utilities
  • Threading: Concurrent execution for improved performance
  • Pickle: Data serialization
  • Canva: UI design and graphics
  • Figma: Interface prototyping and design
  • Git: Version control system
  • GitHub: Code hosting and collaboration platform
  • VS Code: Code editor and development environment

🎨 System Architecture

System Overview

graph TD
    A[Web Camera] --> B[Face Detection Module]
    B --> C[Face Recognition Engine]
    C --> D[Firebase Integration]
    D --> E[Real-time Database]
    D --> F[Cloud Storage]
    B --> G[UI Display Module]
    G --> H[Attendance Status]
    G --> I[Student Information]
Loading

Data Flow

sequenceDiagram
    Camera->>Processing: Capture Frame
    Processing->>Recognition: Detect Face
    Recognition->>Database: Match Identity
    Database->>UI: Update Display
    Database->>Storage: Store Attendance
Loading

Component Interaction

graph TB
    subgraph Frontend
        A[OpenCV UI]
        B[Mode Display]
    end
    subgraph Processing
        C[Face Detection]
        D[Recognition Engine]
    end
    subgraph Backend
        E[Firebase DB]
        F[Cloud Storage]
    end
    A --> C
    C --> D
    D --> E
    E --> B
Loading

πŸ“· Screenshots

State 1: Active State - Face Detection

alt text System actively detecting and recognizing faces with green bounding box

State 2: Updating State - Marking Attendance

1.alt text

2.alt text

3.alt text

State 3: Already Marked State

alt text

System States Overview

State Description
Active System is actively detecting and recognizing faces
Updating Attendance is being recorded in the database
Already Marked Student's attendance has already been recorded

πŸš€ Installation

  1. Clone the repository:

    git clone https://github.com/your-username/face-recognition-attendance-system.git
    cd face-recognition-attendance-system
    
  2. Install the required dependencies:

    pip install -r requirements.txt
    
  3. Set up Firebase:

    • Create a Firebase project and download the serviceAccountKey.json
    • Place the serviceAccountKey.json in the project root directory
    • Update the Firebase configuration in the Python scripts with your project details

πŸ’» Usage

  1. Add student data to the Firebase database:

    python AddDatatoDatabase.py
    
  2. Generate face encodings for registered students:

    python EncodeGenerator.py
    
  3. Run the main attendance system:

    python main.py
    
  4. The system will start the camera and begin recognizing faces. Attendance will be marked automatically for recognized students.

  5. Press 'q' to quit the application.

πŸ”§ Configuration

You can configure various aspects of the system by modifying the following files:

  • main.py: Adjust frame processing frequency, attendance rules, and UI layout
  • EncodeGenerator.py: Customize the encoding process for face recognition
  • AddDatatoDatabase.py: Modify the structure of student data in the database

πŸ“ Database Structure

The Firebase Realtime Database follows this structure:

Students
β”‚
β”œβ”€β”€ student_id
β”‚   β”œβ”€β”€ name
β”‚   β”œβ”€β”€ major
β”‚   β”œβ”€β”€ starting_year
β”‚   β”œβ”€β”€ total_attendance
β”‚   β”œβ”€β”€ standing
β”‚   β”œβ”€β”€ year
β”‚   └── last_attendance_time
β”‚
└── ...

πŸš€ Future Enhancements

mindmap
    root((Face Recognition))
        Mobile App Integration
        Multi-Camera Support
        Advanced Analytics
        Automated Reporting
        Cloud Processing
Loading

License

No license till now

Acknowledgements

Last Updated

  • [17/11/2024]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages