A Windows application that can record attendance using facial recognition. This application provides basic tools to register user's face and record attendance. Registering new attendees, training models and checking attendance can be done through the app directly.
- Start Facial Recognition - Start the real-time facial recognition to record the attendance.
- Register User - Capture images of the attendee's face for the system to recognize the face.
- Update Model - Train the model using the captured faces dataset. This can take some time depending on the size of the dataset.
- Analyze Model - Generate a scatter plot chart in a 2D plane representing the current model data distribution.
- View Attendance - Opens the attendance table and displays the existing attendance from the Excel files.
- Change Password - Change the system's password to improve security.
- Camera Selection - Switch between available cameras connected to the device.
- Attendance File Selection - Switch between available attendance files.
- Button Tooltips - Helps user understand the button's functionality.
- Dynamic Buttons - Helps user identify the button and system state.
- Protected Buttons - Prevent sensitive actions from being executed without permission.
Important
The default password is admin.
Note
The system performs facial recognition every 0.1 seconds to improve performance. It will recognize face at 30% probability but only record attendance if above 70% probability.
- Keep the background plain without patterns, movements and other people.
- It is recommended to take the face dataset capturing two times. One in a well-lit environment and another in a darker environment.
- During capturing, try to move the attendees' heads at different angles slowly. Move from left to right and try to write the letter O using their head.
- During capturing, try to mimic different common emotions, visible teeth and talking.
- Capturing 50 face variations is not required but it would be ideal as long as the attendees are still comfortable during the process. At least providing 30 images can be acceptable but can produce less desirable results.
- Datasets are stored in the
facesfolder. Each attendee's name is inside the folder and the system uses the folder name as the attendee's name. - In case of capturing a dataset of the same attendees where there is a name conflict, you can temporarily add numbers to the attendee's name during registration and then move the images to the proper folder later.
- In case of gathering datasets from external sources like social media and personal photos, you can move those images directly to the proper attendee's folder.
- During training, the system automatically deletes datasets with no face or multiple faces.
- Sometimes, patterns in the background can be recognized as faces and the program cannot differentiate the error, that is why facefilter.py is created to manually review datasets, especially those which come from external sources.
Warning
Always have a backup of your dataset since training the model will delete invalid datasets.
- Download and install the latest version of FaceLog.
This project is licensed under the MIT License - see the LICENSE file for details.
- LSPU-SPCC BSCS2A A.Y 2023-2024: For contributing their faces dataset.
- css.gg: For icons.
- Flask CORS: For handling resource sharing between Python and JavaScript.
- Waitress: For production-ready WSGI server.
- PyWebview: For standalone web app wrapper.
- PyInstaller: For building the app into executables.
- Inno Setup: For installer.
- Facenet-pytorch: For providing a pre-trained model for facial recognition.
- OpenCV: For image processing.
- Scikit-learn: For machine learning and statistical modeling.
- Numpy: For handling different types of arrays.
- Pandas: For data manipulation and analysis of Excel data.
- Openpyxl: For reading and writing Excel files.
- Matplotlib: For generating scatter-plot chart.
- Cryptography: For generating the key, encrypting and decrypting.






