Thesis Title: Development of Attendance Tracker System using computer vision based AI on an embedded system.
This project is a work of a bachelor thesis done by me as a student of Mechatronic Systems Engineering B.Sc.
- Abstract
- Fields Involved
- AI Models Used
- Hardware Requirements and Circuit Diagram
- GUI
- Optimisation Results
- Results
- List of Dependencies and Steps of Code Execution
- Conclusion
- Author
The scope of this thesis presents the development of an attendance tracker system from scratch using computer vision based AI deployed on an embedded system. As students frequently forget to fill out the user attendance list and the carbon footprints need to be physically stored for records, conventional techniques of attendance monitoring such as signing attendance sheets or calling out names of each student by the professor are becoming woefully out of date, repetitive, and dull. This is where the project comes into play. It aims to automate the entire system by implementing a quicker and more secure method of recording attendance that uses face recognition to authenticate the user and gesture recognition to identify the time of entry and exit of the lab, which are alluded to as login and logout. The face recognition has been implemented using the face-recognition python library whereas the hand detection and gesture recognition has been implemented using the MediaPipe library. The system has been meticulously packaged into a complete software that includes an interactive graphical user interface supporting all the key functionalities aside from user login, including: registering a new user in the database, deleting the user from the database, and changing other crucial system parameters from system preferences. This has been done to facilitate and mesmerize user experience. Python has been used only in the writing and development of the software because the goal of this thesis is to create a quick prototype. The finished product has a touchscreen, camera, and Raspberry Pi 4 inside a Polylactic Acid (PLA) case that was 3D printed, making it portable, lightweight, and simple to assemble.
- Computer Vision
- Artificial Intelligence
- Embedded Systems
- Programming
- Completely developed on python
- Face Detection
- Face Recognition
- Hand Tracking and Hand Gesture Regonition
- Palm Detection
- Hand Landmark Detection
- Raspberry Pi 4B
- Raspberry Pi Camera v1.3
- Raspberry Pi Touchscreen
- Power Adapter
- SD Card
- 3D printed casing
The graphical user interface has been built using a library called Tkinter. The following images showcase all the 12 windows present in the software.
The optimization results have been carried out for 2 hardwares:
- Macbook Pro 15-inch, 2017 model
- Raspberry Pi model 4B (4GB)
Models used before optimisation:
- Face Detection and Recognition: face-recognition library.
- Hand Gesture Recognition: BlazePalm and BlazeHand from MediaPipe.
Models used after optimisation:
- Face detection: BlazeFace from Google implemented via MediaPipe
- Face Recognition: face-recognition library.
- Hand Gesture Recognition: BlazePalm and BlazeHand implemented via MediaPipe.
Performance Analysis Results | Time Analysis Results |
---|---|
This section showcases some major functionalities of the software.
media7.mov
media8.mov
media10.mov
media9.mov
media11.mov
media12.mov
The master software code file: autologger.py
List of names of image files needed to run the software are as follows:
- robopic.jpeg
- homebutton.jpg
- settingslogo.png
- loginlogo.png
- nextlogo.png
- backlogo.png
- createuser.png
- deleteuser.png
- autologgerparameters.png
- adminloginlogo.png
- cameraphoto.png
- AboutUs.png
- savefile.png
- deletefile.png
- activelogins.png
- loginconfirm.png
- yesicon.png
- noicon.png
- archive.png
List of names of files automatically created by the software are as follows:
- autologger_tempfile.txt
- autologger_logfile.txt
- autologger_userdetails.txt
- autologger_faceencodings.txt
- autologger_archive.txt
- autologger_timedetails.txt
List of library dependencies required to run the software are:
- face-recognition
- mediapipe
- numpy
- opencv-python
- Pillow
Python Version required to run: Python 3.9
To execute the code normally on a PC:
$ git clone https://github.com/28anmol/Attendance-Tracking-System.git
$ cd attendance-tracker-system
$ sudo apt-get install python3-venv
$ python3 -m venv autolog
$ source autolog/bin/activate
$ python3 -m pip install --upgrade pip
$ pip install -r requirements.txt
$ python3 autologger.py
To execute the code through terminal on Raspberry Pi with the touchscreen and camera connected:
$ source autolog/bin/activate
$ export DISPLAY=:0.0
$ python3 autologger.py
Functionalities Delivered |
---|
User Login/Logout |
Active Users |
Create User |
Delete/Archive User |
Autologger Parameters |
About Software |
Author's Name: Anmol Singh
Matriculation Number: 24244
Study Program: Mechatronic Systems Engineering(B.Sc.)
Study Semester: 8th
Degree Faculty: Faculty of Technology & Bionics
Bachelor Thesis Supervisor: Prof. Dr. Ronny Hartanto(Technische Informatik)
Bachelor Thesis Co-Supervisor: Prof. Dr. Matthias Krauledat(Informatik)
Guided & Supported by: Mamen Thomas Chembakasseril(Mechanical Engineer, M.Sc.)
Place: Robotics Laboratory(05 EG 025), Rhine Waal University of Applied Sciences, Kleve, Germany.