An end-to-end face identification and attendance approach using Convolutional Neural Networks (CNN), which processes the CCTV footage or a video of the class and mark the attendance of the entire class simultaneously. One of the main advantages of the proposed solution is its robustness against usual challenges like occlusion (partially visible/covered faces), orientation, alignment and luminescence of the classroom.
- 'Main' directory:
- Tensorflow 1.14
- Numpy
- OpenCV
- MTCNN
- Sklearn
- xlsxwriter, xlrd
- scipy
- pickle
- Install the required libraries. (Conda environment preferred).
- Download the pre-trained model from the link given below and copy to the main directory.
- Make sure to have the afformantioned directory fomat (you've to manually create two folders named "attendance" and "output" in the main directory | refer to the "Main" directory structure).
- To verify is everything installed properly run 'user_interface.py'.
- Run 'user_interface.py'
- Click on the 'Create' button.
- Select 'webcam' if you wish to create live dataset. (you can leave all other fileds empty)
- Click on the 'Continue' button to start streaming webcam feed.
- Press 's' to save the face images. Take as many images as you can take. (approx. 80-100 preferred)
- Press 'q' to exit.
- Likewise create other datasets.
- Run 'user_interface.py'
- Click on the 'Train' button.
- Training may take several minutes (depending upon your system configuration).
- Once training is completed, a 'classifier.pkl' file will be generated.
- Run 'user_interface.py'
- Click on the 'Run' button.
- Select 'Webcam' fom the list and leave all fields blank.
- Click on 'Mark Attendance' button.
- Attendance sheet will be generated automatically with current date/time.
The file for data augmentation will be uploaded soon.
To know more about the working of the software, refer to our paper.
The implementation is based on the following paper: https://ieeexplore.ieee.org/document/9029001
https://drive.google.com/open?id=1EXPBSXwTaqrSC0OhUdXNmKSh9qJUQ55-