ML/AI Completed
Attendance Manager Using Face Recognition
An automated attendance system using face recognition with support for live capture, video files, and image processing.
Overview
This project automates attendance tracking using face recognition technology. It can process live camera feeds, video files, or static images to identify individuals and mark their attendance.
Features
- Multiple Input Modes: Process live camera, video files, or images
- Face Registration: Add new faces to the database from images or videos
- Model Training: Train the recognition model on registered faces
- Face Extraction: Extract and save faces from images for dataset building
- Real-time Recognition: Identify multiple faces in real-time video streams
Usage
# Process an image file
python main.py -i IMAGE
# Process a video file
python main.py -v VIDEO
# Process live camera capture
python main.py -c
# Train the model on image data
python main.py -t
# Register a new face from camera
python main.py -a
# Register a new face from video file
python main.py -av VIDEO
# Extract faces from an image
python main.py -g IMAGE
Tech Stack Details
- Face Detection: MTCNN (Multi-task Cascaded Convolutional Networks)
- Face Recognition: FaceNet with Keras (facenet_keras.h5)
- Computer Vision: OpenCV (cv2) for image/video processing
- Deep Learning: TensorFlow + Keras backend
Architecture
- Detection Stage: MTCNN detects face bounding boxes in frames
- Embedding Stage: FaceNet generates 128-dimensional face embeddings
- Recognition Stage: Compare embeddings against registered faces
- Attendance Logging: Mark identified individuals as present
Challenges
Key challenges in this project:
- Handling varying lighting conditions and camera angles
- Training efficient models on limited face samples
- Real-time processing performance optimization
- Managing face registration and database updates
Outcomes
The system successfully automates attendance tracking, reducing manual effort and improving accuracy compared to traditional methods. Received 4 stars and 2 forks on GitHub.