I was inspired by the day to day, "Ms.Slocum, can you please do your attendance" or "May all teachers do their attendance" announcements at my school. This not only disrupts the flow of the class but it also robs time from my learning.
What it does:
i-Tendance does the teacher's attendance for them. It uses the OpenCV library to facially recognize students. This not only gets rid of the need to spend time calling out students' names before class, but it also stops the issue of forgetting to do attendance entirely. Students can walk into the classroom, look into the i-Tendance camera and go about class. On the i-Tendance side, it tracks the status of each student and updates a google spreadsheet once passing time is over.
How I built it:
This entire project heavily utilizes the OpenCV library. There are 3 programs I made, each one doing a specific job. For example, the first program is called "collect_training_data.py". This program is meant to, as the name implies, collect data to train the classifier (used in facial recognition). "collect_training_data.py does this by taking a photo every .1 of a second from there and putting it in a folder called data. From there, "classifier.py" uses the photos collected and creates a custom classifier for that face (all in a .xml file). From there, the final program, "recognize3.py" uses the on-board camera to recognize any faces that match the classifier.xml. After the student is recognized, "recongnize3.py" then uses the gspread library (and the google spreadsheet API) to update a spreadsheet with the attendance.
Challenges I ran into:
My Raspberry Pi I was originally going to program on broke. As well, this is my first time really doing anything facial recognition related. I worked with OpenCV over the summer, but I am far from a master at it. Likewise, I ran into path and python3 issues on my computer. This was a major setback and I was on the verge of having to redownload python3. Overall, due to all of these issues and a lack of a team (who bailed out on me), I was so close to leaving Blueprint entirely.
Accomplishments that I'm proud of:
I managed to create a full form product within an 8-hour time frame by myself. This, to me, is amazing.
What I learned:
I learned a lot about the OpenCV library and how computers do facial recognition. As well, I learned a lot about myself and the power of determination and grit.
What's next for i-Tendence:
I plan on implementing i-Tendence into an all-in-one product. This would mean that I would port the code onto an RPI zero. This would allow me to create a small, cheap, yet durable product.