Build a classroom attendance system that identifies students by face and validates liveness to reduce spoofing.
- Collect face images, align them, and generate embeddings.
- Train a KNN classifier with COA-based hyperparameter search.
- Serve a Flask app for capture, liveness checks, recognition, and attendance export.
flowchart LR
UI[Flask Web UI] --> API[/api/process_frame/]
API --> Detector[FaceDetector]
API --> Liveness[Liveness Check]
API --> Embed[FaceEmbedder]
Embed --> KNN[Trained KNN Model]
Data[(data/raw and data/faces_aligned)] --> Align[Align Faces]
Align --> Embed
KNN --> Attendance[attendance_YYYY-MM-DD.csv]
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtpython main.pyFollow menu options 1-5 in the CLI.
Or run steps directly:
python -m src.data.data_capture
python -m src.data.detect_align
python -m src.model.embedder
python -m src.model.find_hyperparams
python -m src.trainpython api/app.pyOpen http://127.0.0.1:5000 in your browser.