[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Bachelor Thesis: Development of attendance tracking system using computer vision based AI on an embedded system

Notifications You must be signed in to change notification settings

28anmol/Attendance-Tracking-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attendance Monitoring System

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.

Table of Contents

  1. Abstract
  2. Fields Involved
  3. AI Models Used
  4. Hardware Requirements and Circuit Diagram
  5. GUI
  6. Optimisation Results
  7. Results
  8. List of Dependencies and Steps of Code Execution
  9. Conclusion
  10. Author

Abstract

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.

Fields Involved

  • Computer Vision
  • Artificial Intelligence
  • Embedded Systems
  • Programming
    • Completely developed on python

AI Models Used

  • Face Detection
  • Face Recognition
  • Hand Tracking and Hand Gesture Regonition
    • Palm Detection
    • Hand Landmark Detection

Hardware Requirements and Circuit Diagram

  • Raspberry Pi 4B
  • Raspberry Pi Camera v1.3
  • Raspberry Pi Touchscreen
  • Power Adapter
  • SD Card
  • 3D printed casing

drawing

GUI

GUI Layout

drawing

GUI

The graphical user interface has been built using a library called Tkinter. The following images showcase all the 12 windows present in the software.

Welcome Window Main Window
drawing drawing
About Software Window User Login Window
drawing drawing
Active Users Window Admin Password Window
drawing drawing
System Preferences Window Create User(Registration form) Window
drawing drawing
Create User(Snap Picture) Window Create User(Confirmation) Window
drawing drawing
Delete/Archive User Window Autologger Parameters Window
drawing drawing

Optimisation Results

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
drawing drawing

Results

This section showcases some major functionalities of the software.

User Login + Active Users

media7.mov

User Logout + Active Users

media8.mov

Create User

media10.mov

Delete User

media9.mov

Archive User

media11.mov

Autologger Parameters

media12.mov

List of Dependencies and Steps Of Code Execution

The master software code file: autologger.py

List of names of image files needed to run the software are as follows:

  1. robopic.jpeg
  2. homebutton.jpg
  3. settingslogo.png
  4. loginlogo.png
  5. nextlogo.png
  6. backlogo.png
  7. createuser.png
  8. deleteuser.png
  9. autologgerparameters.png
  10. adminloginlogo.png
  11. cameraphoto.png
  12. AboutUs.png
  13. savefile.png
  14. deletefile.png
  15. activelogins.png
  16. loginconfirm.png
  17. yesicon.png
  18. noicon.png
  19. 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:

  1. face-recognition
  2. mediapipe
  3. numpy
  4. opencv-python
  5. 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

Conclusion

Functional attendance tracker on embedded system

drawing

Functionalities Delivered
User Login/Logout
Active Users
Create User
Delete/Archive User
Autologger Parameters
About Software

Author

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.

About

Bachelor Thesis: Development of attendance tracking system using computer vision based AI on an embedded system

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages