Python Face-Recognition Attendance App
Budget: ₹600 – ₹1,500 INR
The goal is to deliver a stand-alone Python desktop application that records classroom or workplace attendance through real-time face recognition. The stack is fixed: Python 3, OpenCV, and the standard Tkinter GUI toolkit.
Core flow
1. A compact Tkinter window opens with clearly labelled buttons. The interface must, at a minimum, let a supervisor register new users.
2. During registration the system captures multiple webcam frames per person, automatically saving at least 20 crisp face crops for stronger training data.
3. An LBPH model is trained on those images and stored locally; subsequent launches should reload the latest model without retraining.
4. When recognition mode is active the app checks each detected face against the model and writes a time-stamped entry to a CSV file (one row per recognition event, no duplicates for the same person within the same session).
Deliverables
• Clean, well-commented source code (.py files)
• A README explaining setup, libraries (opencv-python, pillow if used, etc.), and how to add future GUI features such as “View attendance records”
• Sample CSV output and a small demo dataset to prove end-to-end functionality
Acceptance criteria
• GUI launches with no console errors on Windows and Linux.
• “Register” button captures multiple images and updates the trainer automatically.
• Recognition latency stays under one second per frame on a standard laptop webcam (720p).
• CSV logs contain Name, UserID, and timestamp columns and append correctly across sessions.
Keep the layout simple, rely only on open-source libraries, and structure the code so additional GUI options can be slotted in later without major refactoring.
Core flow
1. A compact Tkinter window opens with clearly labelled buttons. The interface must, at a minimum, let a supervisor register new users.
2. During registration the system captures multiple webcam frames per person, automatically saving at least 20 crisp face crops for stronger training data.
3. An LBPH model is trained on those images and stored locally; subsequent launches should reload the latest model without retraining.
4. When recognition mode is active the app checks each detected face against the model and writes a time-stamped entry to a CSV file (one row per recognition event, no duplicates for the same person within the same session).
Deliverables
• Clean, well-commented source code (.py files)
• A README explaining setup, libraries (opencv-python, pillow if used, etc.), and how to add future GUI features such as “View attendance records”
• Sample CSV output and a small demo dataset to prove end-to-end functionality
Acceptance criteria
• GUI launches with no console errors on Windows and Linux.
• “Register” button captures multiple images and updates the trainer automatically.
• Recognition latency stays under one second per frame on a standard laptop webcam (720p).
• CSV logs contain Name, UserID, and timestamp columns and append correctly across sessions.
Keep the layout simple, rely only on open-source libraries, and structure the code so additional GUI options can be slotted in later without major refactoring.