Attendo
A smart attendance management system leveraging facial recognition technology for automated and accurate attendance tracking.
Goal
To automate attendance marking processes for educational institutions and organizations, providing an efficient, user-friendly solution.
Approach
The project is composed of two main components: a facial recognition model and a web application. - **The Model:** Utilizes a pretrained ResNet-based architecture (dlib_face_recognition_resnet_model_v1) for extracting facial encodings. The training process includes video frame extraction, image enhancement, encoding generation, and average encoding calculation for each student. Prediction scripts recognize faces from uploaded photos, marking attendance and logging the data into CSV files. - **The Web Application:** Built using Django, the application includes three core apps—Accounts (for user authentication), Attendance (for managing attendance records and exporting data), and Face Recognition (for uploading images and recognizing faces). The system provides features like account creation, manual attendance marking, CSV export/import, and day-specific attendance searches.
Features
  • Automated attendance marking using facial recognition.
  • Manual attendance editing and CSV export/import.
  • Day-specific attendance search and reporting.
  • User authentication and account management.

Attendo: Attendance System with Facial Recognition

This project automates student attendance marking using facial recognition technology.

System Overview

The system consists of two main components:

Facial Recognition Model (Python)

Dependencies:

  • Python 3.x
  • OpenCV
  • face_recognition
  • NumPy
  • os
  • pickle

Training Process:

  • Model: dlib_face_recognition_resnet_model_v1 (pre-trained)
  • Objectives:
    • Frame Extraction: Extract frames from videos containing faces.
    • Image Enhancement: Enhance image quality for better recognition.
    • Face Recognition: Identify individuals using facial encodings.
    • Scalability & Automation: Efficiently process large datasets.
    • Data Management: Organize and store facial recognition data.
  • Flow:
    1. Video Frame Extraction (using OpenCV)
    2. Image Enhancement (histogram equalization)
    3. Image Loading (from folders and extracted frames)
    4. Facial Encoding Generation (using face_recognition)
    5. Average Encoding Calculation (per student)
    6. Saving Encodings (encodings.pkl)

Prediction Script:

  • Loads pre-trained encodings and information.
  • Allows image selection for attendance marking.
  • Performs facial recognition and compares encodings.
  • Logs attendance (name, ID, timestamp) to a CSV file (Attendance.csv) with duplicate checks.

Django Web Application

Key Components:

  • Accounts App: User authentication (login/registration).
  • Attendance App: Student data management, attendance recording, export functionality.
  • Face Recognition App: Integration with facial recognition model for student detection.

User Interface:

  • Accounts App
    • Login
    • Sign Up
  • Attendance App
    • Upload photos
    • Student list
    • Manual attendance
    • Export
    • Search
  • Face Recognition App
    • Image upload and recognition results

Results

Tests using photos with challenging lighting conditions (sun facing camera) yielded some missed detections. However, recognition accuracy improves with well-lit images.

[Image of Test 1] [Image of Test 2] [Image of Test 3]

Note: Replace the placeholder images with actual screenshots or mockups for a more visually appealing README.

Tech Stack
PythonOpenCVDjangoPostgreSQLface_recognitionNumpyBootstrap