This repository is an application of high performance face recognition using FaceNet, Multi-Task Cascaded Convolutional Neural Networks(MTCNN) and Random Forest classifier. A camera is used to capture video frames and each frame is analysed by the face recogonition algorithm, if a face is recognized name of the person is displayed in the console with confidence score. Names displayed in console are also displayed in a excel sheet within Names column along with date and in-time(shows the students' arrival time in class).
- Camera
- Python (latest version preffered)
- Libraries
- pytorch - provides machine learning framework.
- facenet-pytorch - provides implementation of FaceNet and uses PyTorch framework.
- sklearn - contains tools and utilities for data preparation, model fitting, and evaluation.
- opencv - provides methods to read images and video frames from camera.
- joblib - provides a set of tools to for lightweight pipelining and loading model.
- Clone the repository or download the zip file.
- Collect images of people and create a dataset.
- Download FaceNet model and generate embeddings of images present in the dataset.
- Train your classification model on the generated embeddings using the train.py script.
- Open the main.py file and update model address.
- Run the program.
- The trained clasiffication model has an accuracy score of 99 %
- Model demonstrated remarkable recognition ability in low light conditions,
- The model excels at recognizing faces from various angles, positions, and even from a distance of 7 meters.
As the pixel count increases, we get better video quality so the camera can capture more information or detailing in every frame and range of the camera increases as well, but the CPU/GPU now has to evaluate so many pixels in the frame. The algorithm can perform even better(recogonise faces from a distance of 10 meters) if used with a better processor



