Fast Β· Modular Β· Real-Time Facial Recognition Attendance System
Built with Django, OpenCV, and Deep LearningβBased Face Encodings
ReconRoll is a modular, real-time facial recognition attendance system designed for automation in schools, workplaces, events, and controlled environments. It provides robust attendance tracking using fast face detection, deep-learning encodings, and session-based logging.
ReconRoll evolved from the earlier FaceTrack Lite project and demonstrates a practical application of computer vision and AI engineering.
- Real-time face detection & recognition
- Automated attendance logging
- Capture of unknown faces for later review
- Attendance sessions with summaries
- Offline-first operation
- Lightweight, simple admin interface
| Technology | Purpose |
|---|---|
| Python | Core backend language |
| OpenCV | Face detection + video processing |
| face_recognition | Deep learning face encodings (dlib) |
| Django | Backend logic and web framework |
| SQLite/PostgreSQL | Database options |
| Docker | Containerized deployment |
| Bootstrap + JS | Admin UI and interactivity |
ReconRoll is designed around four core subsystems:

- Performs face detection and encoding
- Compares encodings with enrolled users
- Optimized for fast recognition using OpenCV pipelines
- Starts, runs, and ends attendance sessions
- Logs recognized users in real time
- Stores unidentified face captures
- Handles user registration
- Captures and processes face images
- Generates stable 128D embeddings for matching
-
Databases for:
- Encoded faces
- Attendance records
- Unknown captures
- Session histories
-
Defaults to SQLite but supports PostgreSQL
Admin uploads/captures user photo β generates encoding β saved in DB.
Admin begins a session β system starts processing frames.
Frame-by-frame:
- Face detected
- Face encoded
- Recognized β logged
- Unknown β saved
ReconRoll produces:
- Present students
- Absent students
- Unknown face log
- Attendance summary
| Module | Role |
|---|---|
| Recognition Engine | Detects, encodes, and matches faces |
| Enrollment Service | Registers new users and creates embeddings |
| Session Manager | Controls session lifecycle and logging |
| Unknown Face Handler | Stores unknown captures for review |
| Analytics Engine (Planned) | Attendance stats, performance metrics |
Before running, you may review the Pre-Installation Guide: https://docs.google.com/document/d/1OgYudT0YOkN6vht0wn9dWe4mxkAFOjGnz5ulX36hd94/edit?usp=sharing
git clone https://github.com/peter-njoro/ReconRoll.git
cd ReconRoll# Linux
chmod +x run.sh
./run.shApp available at:
http://localhost:8000
git clone https://github.com/peter-njoro/ReconRoll.git
cd ReconRoll
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver- Camera captures input
- Face detected
- Face recognized or marked unknown
- Attendance logged instantly
Contributions are welcome!
- Fork the repo
- Create a feature branch
- Submit a PR to development
ReconRoll is designed for educational and demo purposes. It is not ready for high-security or large-scale deployments.
Peter Njoroge Chege Machine Learning Engineer (In Progress) AI β’ Computer Vision β’ Backend Engineering
Inspired by the original Virone concept by Everlyne Mwangi.
If youβre reading this part:
- Yes, pip errors still haunt me.
- Docker promised peace, webcams declared war.
- ReconRoll is both a demo and a flex.
- And yesβ¦ by the wayβ¦ I use Arch btw π.
- If this becomes Skynet, at least the README will survive.