About this project

FaceAttend is a classroom attendance application that processes short videos to recognize students. It utilizes InsightFace for detection and ArcFace for generating 512-dimensional embeddings, which are then matched using FAISS similarity search. Key capabilities include: - Multi-embedding enrollment: Students can be enrolled using multiple images to improve recognition across different poses and lighting. - Video processing pipeline: Includes frame sampling, face alignment, and a multi-frame voting system to reduce false positives (requiring a student to be recognized in multiple frames to be marked present). - Active Learning: A teacher-review interface allows users to confirm uncertain face detections and append those embeddings to a student's gallery to improve future accuracy. - Management tools: Features for editing student records, overriding attendance status, and exporting attendance reports to Excel. - Evaluation metrics: Built-in tools to calculate precision, recall, and F1 scores against ground-truth data. The system is built with a FastAPI backend, a vanilla JavaScript frontend, and uses SQLite for data storage. It supports both CPU and NVIDIA CUDA GPU acceleration via ONNX Runtime.