Last Updated: 7 June 2022
- Demonstration
- What is an Automatic Attendance System?
- Prerequisites
- Getting Started- How to use it?
- Description
The automatic Attendance System is designed to collect and manage students’ attendance records from video camera devices installed in a classroom. Based on the verification of student identification in the video cameras, attendance will be updated in the database. Attendance will be taken in every class for only an interval of 15 minutes time. This works on a timetable which tells when the attendance starts for the particular course.
- To use this project Python Version > 3.6 is recommended.
- To contribute to this project, knowledge of basic python scripting, Machine Learning, and Deep Learning will help.
git clone <https://github.com/krishrustagi/Automatic_Attendance_System>
To install all the packages required to run this python program
pip install -r requirements.txt
Note: This project requires a camera. So make sure you have a connection to the camera to your device.
The file timetable.csv
is just an example. You can the timetable accordingly. Follow the instructions to change the timetable.csv
- Replace the
timetable.csv
with your own timetable and rename it totimetable.csv
. - The format of the timetable in excel format should be like this:
or in CSV format like this:
Day,9:00,10:00,11:35,13:05,15:30,17:00
Monday,Test 2,Test 1,FR101,Test 2,,
Tuesday,,Test 1,FR101,Test 2,,
Wednesday,,Test 2,FR101,,,Test 1
Thursday,,,Test 1,Test 2,FR101,Test 1
Friday,FR101,Test 2,,,Test 1,FR101
The folders present in the data
are the attendance records (data files) and the image files for the courses and tests. It contains folders with the name CourseID or TestID as also present as example FR101, Test 2.
- The CSV file includes
Enrolment No.
andName
and it should be named after the course title, e.g. Test 1.csv, FR101.csv. - The images folder should include the required images of the students enrolled in the course and every image file should be named to {Enrolment No.}.jpg, e.g. BT19CSE089.jpg
It should follow the given hierarchy:
data
|── {CourseID/TestID}
| └── images
| └── {Enrolment No.}.jpg
| └── datafile
| └── {CourseID/TestID}.csv
|
|── {CourseID/TestID}
| └── images
| └── {Enrolment No.}.jpg
| └── datafile
| └── {CourseID/TestID}.csv
|
To run this python program, you need to execute the main.py
python file.
This program includes 4 things.
- The records and data are being handled for the automatic attendance using the panda's python library in the file
data_handle.py
. - As we have a timetable, so we are using the data time python library to get the current date and time. The attendance is marked with the given date in the format
MM/DD/YYYY
. the time kept is in the formatHH:MM
has also shown in the timetable. All of this is handled in the fileclock.py
. - The main part of the program is the face recognition which is handled in the file
face_reco.py
where the face is being detected and recognized using the python module face_recognition. This is a video capture-based project and to perform the video capturing, the cv2 module has been used. - This project also includes a text-to-speech service performed using the python module gTTS and the sound will be stored in
speak.mp3
which is then played. This is included in thespeak.py
python file.