The attendance system at my school is cumbersome and requires a lot of time for the teacher to take attendance. My school also has a fairly complex security system placing cameras by almost every classroom. I thought that by utilizing the camera feed, students would be automatically checked in as they walked to their classroom. The benefit of this facial recognition library is that it does not require high resolution images to compare to. This would allow the school to use the current system without costly upgrades.
What it does
My automated attendance program takes advantage of the recent innovations in vision processing and machine learning. This attendance program used a python library called face_recognition which packaged dlib’s state of the art machine learning program into an easy to use facial recognition package. Vision processing is used to identify features and landmarks in an image so that it can be used for object recognition and facial recognition. My attendance program simplifies the checking in process to just a 1 second process.
How I built it
My program was first a few lines of code testing the facial recognition software with an image feed from the webcam and another image for comparison. I created another program to scrape the online facebook at my school and retrieve an image with a name of the student. The program creates a numerical facemap of each student’s face and stores it in an array. The unknown image would be compared to all 300+ facemaps and if more than 1 match is detected, tolerance would be decreased. The student’s name and webcam frame is displayed after the process to show positive confirmation.
Challenges I ran into
I had to optimize the code in the beginning because there were just too many matches. I couldn't set the tolerance for matching to a static number so I built an a loop that would increase when there were no matches and decrease when there were more than one match. There were also bugs in the machine learning parts but looking through the documentation helped me solve them.
Accomplishments that I'm proud of
Seeingeye has managed to reliably recognize a student's face 91% of the time while just using a single photo for reference. This has simplified the setting up process tenfold compared to other libraries that had to use multiple photos for a more accurate reference.
What I learned
Documentation is very important when building programs like these.
What's next for Seeing Eye
I have been talking with the administrators in the hopes that I will be able to implement this system at this school.