FRAS is the final-year graduation project I developed last year for university. It was built to demonstrate my practical software development skills in a real academic project context, including requirements analysis, system design, implementation, and testing. The project focuses on solving a real problem with a user-friendly interface, structured workflows, and reliable data handling, and it reflects my learning progress during the final year of study.
An automated, real-time biometric attendance management system built with Python, Django, MTCNN, and TensorFlow/Keras. FRAS eliminates manual roll-call processes by leveraging computer vision pipelines to detect faces from live video streams, extract facial feature embeddings, match identities against registered profiles, and log timestamped records automatically into a central web database.
- Automated Detection & Alignment: Uses Multi-task Cascaded Convolutional Networks (MTCNN) for precise face detection and alignment under varying lighting conditions.
- Deep Learning Recognition: Extracts high-dimensional facial embeddings using TensorFlow and Keras pre-trained models for identity verification.
- Real-Time Stream Processing: Processes live camera frames in real time with low latency to detect and label subjects.
- Django Administrative Portal: A web dashboard to register new users, manage profiles, monitor live recognition sessions, and analyze attendance history.
- Automated Logging & Reporting: Prevents duplicate logs per session and saves timestamped attendance entries directly to a database.
[ Video Input Feed ]
│
▼
[ MTCNN Face Detection ] ───► Detects Bounding Boxes & Facial Landmarks
│
▼
[ Deep Feature Extraction ] ───► Generates Embeddings (TensorFlow / Keras)
│
▼
[ Vector Matching Engine ] ───► Compares Vectors with Stored Profile Data
│
▼
[ Django Backend & Database ] ───► Records Timestamped Attendance Entries
- Programming Language: Python 3.8+
- Web Framework: Django
- Computer Vision & Processing: OpenCV, MTCNN
- Deep Learning Libraries: TensorFlow, Keras, NumPy
- Database: SQLite (Development) / PostgreSQL (Production)
├── manage.py
├── requirements.txt
├── README.md
├── fras_core/ # Django core settings and URL configurations
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── attendance_app/ # Main app logic
│ ├── models.py # Database models for user profiles and logs
│ ├── views.py # Stream ingestion and administrative views
│ ├── utils.py # Computer vision and model inference routines
│ ├── urls.py
│ └── templates/ # HTML templates for the web portal
└── dataset/ # Stored user profile vectors and images
Follow these steps sequentially to set up and run the system locally on your machine:
- git clone https://github.com/your-username/face-recognition-attendance.git
- cd face-recognition-attendance
- python3 -m venv venv
- source venv/bin/activate
- python -m venv venv
- venv\Scripts\activate
- pip install --upgrade pip
- pip install -r requirements.txt
- python manage.py makemigrations
- python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
Open your browser and go to http://127.0.0.1:8000/.
-
Log In: Access the Django admin portal using your superuser credentials.
-
Register Users: Create user profiles (e.g., students or employees) and collect face sample images to build baseline feature embeddings.
-
Start Live Tracking: Launch the recognition view from the web portal to open the camera stream.
-
Automatic Logging: As registered individuals appear in front of the camera, the system detects their faces, verifies their identity, and creates an attendance record with a timestamp in the database.
-
View Reports: Access the dashboard to view daily logs, filter by date, or review missing entries.