Various libraries were employed for face detection, including OpenCV and Dlib. However, YOLOv8 exhibited superior performance compared to its counterparts. The results are delineated below.
Guide For Confusion Matrix | Confusion Matrix |
Evaluation Metrics | Real-Time Detection |
There are three main components to this project.
- Server Side: Website for adding registered students/employees to the database
- Client side: TestBed (Hardware) for visual feedback of the attendance
- Client side: Face Recognition
The website is made using MERN stack (Mongodb, Express, React and NodeJs). The key functionalities of the website are
- Admin Authentication
- Dashboard UI to show all the registered Students
- Supports Registering, Modification and Deletion of Students in the Database
Guide For Website | Frontend and Database |
Three designated lanes will be provided for users to mark their attendance via camera recognition. Each gate will be equipped with a camera positioned overhead, which will facilitate the attendance marking process for a single student at a time. The camera will capture an image/frame of the user, initiate face detection algorithm, Create facial encodings using face recognition, cross-reference these against registered encodings stored in the database, and subsequently retrieve the pertinent information. Upon successful identification, the LED indicator will illuminate green.
The implementation utilizes the pyfirmata
library to interface with the LED indicator on the Arduino board.
The face recognition functionality underwent rigorous testing utilizing two prominent libraries: DeepFace and FaceRecognition. Following thorough evaluation, FaceRecognition emerged as the superior performer, showcasing optimal performance compared to DeepFace.
Confusion Matrix | Inference Time(seconds) |
Face recognition will be conducted using multiple cameras, with each camera focusing on a single student or employee within its field of view. This system employs multiprocessing, ensuring that each camera instance operates independently of others. Each instance is executed as a separate process, initiated by running the file multiple times in different terminals, specified by
python main.py (name of Camera Instance)
.
This approach enhances efficiency and scalability by enabling concurrent processing of multiple camera feeds without interference between instances.
The inference time for each of the camera along with the retrieval time of the infromation from the database.
© Developed Under the Supervision of
- Dr Muhammad Rafi(Associate Professor –Head of Department of AI & DS)
- Dr Muhammad Waqas(Assistant Professor)