An intelligent, real-time face recognition-based attendance system for mentor-mentee teams.
Mentor-Mentee Face Attendance Tracker is a desktop application that uses real-time face recognition to identify mentors via webcam and allows them to mark attendance for their assigned mentees through a sleek GUI. The system features a futuristic face mesh overlay powered by MediaPipe and stores attendance records in CSV format for easy access and reporting.
| Feature | Description |
|---|---|
| 🎥 Real-Time Face Detection | Live webcam feed with face detection and scanning animation |
| 🧠 Face Recognition | Automatically identifies registered mentors using facial encodings |
| 🕸️ Face Mesh Overlay | Futuristic MediaPipe face mesh visualization on the live feed |
| 📋 Attendance GUI | Beautiful Tkinter-based interface to mark mentee attendance |
| 🖼️ Display Pictures | Shows mentor profile photos in the attendance window |
| 💾 CSV Export | Attendance records saved to attendance.csv for easy reporting |
| ⚙️ Configurable Teams | Mentor-mentee relationships managed via a simple info.txt file |
| 🔁 Continuous Detection | Supports scanning multiple mentors in a single session |
|
Python |
OpenCV |
NumPy |
|
🧠 face_recognition |
🕸️ MediaPipe |
🖼️ Pillow (PIL) |
|
🖥️ Tkinter |
📊 CSV |
⚙️ dlib |
Mentor-Mentee_Face_Attendance/
│
├── face_app.py # Main application entry point
├── info.txt # Mentor-mentee relationship config
├── Requirements.txt # Python dependencies
├── attendance.csv # Generated attendance records
│
├── faces/ # Mentor face images for recognition
│ ├── mentor1.jpg
│ ├── mentor2.jpg
│ └── ...
│
├── DisplayPicture/ # Mentor display photos for the GUI
│ ├── mentor1.jpg
│ ├── mentor2.jpg
│ └── ...
│
└── required_images/ # App assets
├── Logo.jpg # Application logo/icon
└── Background_Image.jpg # GUI background image
- Python 3.8+ installed on your system
- A working webcam connected to your computer
- CMake and Visual Studio Build Tools (required for
dlibcompilation)
1. Clone the repository
git clone https://github.com/ChinnappaSwami/Mentor-Mentee-Face-Attendance.git
cd Mentor-Mentee-Face-Attendance2. Create a virtual environment (recommended)
python -m venv venv3. Activate the virtual environment
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate4. Install dependencies
pip install -r Requirements.txtpython face_app.py💡 Tip: Press
Qon the camera window to quit the application at any time.
Edit the info.txt file to define mentor-mentee relationships:
1. John_Doe
a. Alice_Smith
b. Bob_Johnson
c. Carol_Williams
2. Jane_Doe
a. Dave_Brown
b. Eve_Davis
-
Place a clear face photo of each mentor in the
faces/folder
→ Filename must match:mentor_name.jpg(e.g.,John_Doe.jpg) -
Place a display picture in the
DisplayPicture/folder
→ Same naming convention:John_Doe.jpg
┌──────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Webcam Feed │────▶│ Face Detection │────▶│ Face Recognition│
│ │ │ + Mesh Overlay │ │ (Match Mentor) │
└──────────────┘ └──────────────────┘ └────────┬────────┘
│
▼
┌──────────────────┐ ┌─────────────────┐
│ Save to CSV │◀────│ Attendance GUI │
│ (attendance.csv)│ │ (Mark Mentees) │
└──────────────────┘ └─────────────────┘
- Launch the app — the webcam activates with a futuristic face mesh overlay.
- Confirm face detection when prompted via a popup dialog.
- Recognize — the system scans and matches the face against registered mentors.
- Mark Attendance — an attendance window opens showing the mentor's mentees.
- Save — attendance is recorded to
attendance.csvwith Present/Absent status. - Repeat — the system loops back for the next mentor.
Camera Feed Attendance Window
| Package | Purpose |
|---|---|
opencv-python |
Camera access & image processing |
Pillow |
Image loading & GUI display |
face_recognition |
Facial encoding & matching |
mediapipe |
Face mesh landmark detection |
dlib |
Backend for face_recognition |
numpy |
Numerical operations |
Contributions, issues, and feature requests are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
ChinnappaSwami
Made with ❤️ by ChinnappaSwami
⭐ Star this repository if you found it helpful!