A smart and secure attendance management system that leverages Face Recognition, Liveness Detection, Gesture Verification, Voice Authentication, and GPS Logging to ensure accurate attendance tracking and minimize proxy attendance. Designed with a multi-layer verification pipeline, the system provides a reliable, user-friendly, and scalable solution for educational institutions, training centers, and organizations.
Install the required dependencies and launch the applications:
pip install -r requirements.txt
# Step 1: Enroll students
python enrollment_app.py
# Step 2: Start attendance verification
python attendance_app.pyStudents must be enrolled before attendance can be recorded.
If the webcam does not open, edit attend_config.py and try a different camera index:
CAMERA_INDEX = 0Possible values:
CAMERA_INDEX = 1
CAMERA_INDEX = 2
CAMERA_INDEX = 3Grant camera permissions:
sudo usermod -aG video $USERLog out and log back in after running the command.
The system includes OpenCV-based fallback detectors and will continue working even if MediaPipe is unavailable.
To enable MediaPipe support (v0.10+), download these model files and place them in the same directory as attend_detectors.py:
Voice verification adds an extra layer of identity confirmation.
Works out of the box in most cases.
sudo apt install portaudio19-dev libsndfile1
pip install sounddevicebrew install portaudio
pip install sounddeviceIf no microphone is detected, the voice verification step is automatically skipped and attendance can still be recorded successfully.
The system can automatically capture approximate attendance location using free IP-based geolocation.
- No API key required
- Uses
ip-api.com - Runs in the background without blocking the camera
- Stores location information alongside attendance records
Recorded fields include:
- Latitude
- Longitude
- City
- Region
- Country
Disable location tracking in attend_config.py:
GPS_ENABLED = FalseAttendance logs are automatically generated in CSV format:
attendance/attendance_YYYY-MM-DD.csv
- Roll Number
- Student Name
- Date
- Time
- Latitude
- Longitude
- Location
- Captured Photo Path
- Voice Verification Status
Captured images are stored in:
attendance/YYYY-MM-DD/<roll>_HHMMSS.jpg
| File | Description |
|---|---|
attendance_app.py |
Main attendance application entry point |
attend_config.py |
System configuration and thresholds |
attend_detectors.py |
Face, hand, liveness, voice, and GPS detection modules |
attend_pipeline.py |
Multi-step attendance verification workflow |
attend_ui.py |
Tkinter-based user interface |
enrollment_app.py |
Student enrollment application |
enroll_camera.py |
Enrollment image capture functionality |
enroll_voice.py |
Enrollment voice recording module |
enroll_config.py |
Enrollment configuration settings |
The attendance workflow uses multiple verification stages to improve authenticity:
- Face Recognition
- Liveness Detection
- Gesture Verification
- Voice Confirmation (optional)
- Location Logging
This layered approach helps reduce spoofing attempts and proxy attendance while maintaining a smooth user experience.
- Ensure adequate lighting for reliable face detection.
- Use a working webcam and microphone for the best experience.
- Attendance can still be recorded if optional modules (MediaPipe or microphone) are unavailable.
- All captured data is stored locally on the system.
Contributions, issues, and feature requests are welcome!
If you'd like to improve the project, fix bugs, enhance performance, or add new features, feel free to fork the repository and submit a Pull Request.
If you find this project useful, consider giving it a ⭐ to support its development.


