- Introduction
- Features
- Technologies Used
- Installation
- Usage
- Configuration
- Database Structure
- License
- Acknowledgements
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.
- 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
- 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
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]
sequenceDiagram
Camera->>Processing: Capture Frame
Processing->>Recognition: Detect Face
Recognition->>Database: Match Identity
Database->>UI: Update Display
Database->>Storage: Store Attendance
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
System actively detecting and recognizing faces with green bounding box
| 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 |
-
Clone the repository:
git clone https://github.com/your-username/face-recognition-attendance-system.git cd face-recognition-attendance-system -
Install the required dependencies:
pip install -r requirements.txt -
Set up Firebase:
- Create a Firebase project and download the
serviceAccountKey.json - Place the
serviceAccountKey.jsonin the project root directory - Update the Firebase configuration in the Python scripts with your project details
- Create a Firebase project and download the
-
Add student data to the Firebase database:
python AddDatatoDatabase.py -
Generate face encodings for registered students:
python EncodeGenerator.py -
Run the main attendance system:
python main.py -
The system will start the camera and begin recognizing faces. Attendance will be marked automatically for recognized students.
-
Press 'q' to quit the application.
You can configure various aspects of the system by modifying the following files:
main.py: Adjust frame processing frequency, attendance rules, and UI layoutEncodeGenerator.py: Customize the encoding process for face recognitionAddDatatoDatabase.py: Modify the structure of student data in the database
The Firebase Realtime Database follows this structure:
Students
β
βββ student_id
β βββ name
β βββ major
β βββ starting_year
β βββ total_attendance
β βββ standing
β βββ year
β βββ last_attendance_time
β
βββ ...
mindmap
root((Face Recognition))
Mobile App Integration
Multi-Camera Support
Advanced Analytics
Automated Reporting
Cloud Processing
No license till now
- [17/11/2024]



