Facial Recognition System for Online Examination Authentication

A facial recognition system to authenticate students for online examinations

Python TensorFlow Tkinter Keras CNN (Convolutional Neural Network) OpenCV MySQL Kaggle (Dataset) NumPy LabelEncoder (Scikit-learn) Pickle (Serialization) Triplet Loss (Deep Metric Learning) HTML CSS JavaScript

Project Overview

During my time at university, I noticed that our online examination system relied only on email and password, which made it easy for someone else to impersonate a student. To solve this real-world security problem, I built this facial recognition system using Python, TensorFlow, Tkinter and OpenCV. The system's front end was built using Tkinter which is a lightweight python GUI library because of it lets me quickly build desktop interfaces without needing seperate web frameworks . When a student registers, the system captures multiple photos and stores the best one in a database along with their details like name, matriculation number, and course information. During login, the system matches the live camera feed with the stored image using a CNN(Convolutional Neural Network) model trained on over 13,000 images. If the face matches, the student is granted access; if not, an alert email with the attempted matriculation number and impostor image is sent to the admin for investigation. This project shows how I apply machine learning to strengthen security for real-life use cases.

Key Features

  • Built with Python (TensorFlow, Keras, OpenCV)
  • Frontend was built using Tkinter
  • Uses a CNN (Convolutional Neural Network) trained with over 13,000 images
  • Implements Triplet Loss for accurate face matching
  • Uses LabelEncoder (Scikit-learn) and Pickle for label management
  • Stores student data and images securely in MySQL
  • Captures and compares student faces in real time during login
  • Sends an alert email to the admin if an impostor attempt is detected
  • Includes a quiz front-end built with HTML, CSS, and JavaScript