Skip to content
All projects
AI

Face Attendance with Anti-Spoofing

Face-recognition attendance that rejects photos and screens, with a signed, tamper-evident record per user

Year
2024
Status
Shipped
Role
Graduation project (MAVS) — integration, digital signature, UI
Stack
Python · OpenCV · face_recognition · dlib · Tkinter · SQLite · PyCryptodome
Face Attendance with Anti-Spoofing cover

Problem

The face side of MAVS, my graduation project at Future University in Egypt (the ID-card side is the Arabic OCR pipeline). An attendance system has to recognize a person's face, must not be fooled by someone holding up a photo or a phone screen, and its records must not be quietly altered later.

Approach

It builds on two open-source projects: a face-attendance system for capture, registration and matching, and Silent-Face-Anti-Spoofing for liveness detection. My part was what joins and secures them:

  • One flow: every registration and verification runs through the anti-spoofing check before face recognition.
  • Digital signature: each registered user gets a signature built from their 68 facial landmarks (dlib) and AES encryption, so every registration is a signed, tamper-evident record.
  • Storage and UI: a SQLite layer storing each user's image, face embedding and signature, and the Tkinter registration and verification screens.
Webcam frameblur checkLiveness checkMiniFASNetFace recognitionembeddingsDigital signaturelandmarks + AESSQLiteimage, embedding, signature

Result

Photos and screen replays are rejected before recognition runs, and each registration carries a signature that exposes tampering. The public repository ships without any face data: the database folder is empty on purpose, since face images and embeddings are personal data.