Inspiration

From my experience at Columbia so far, the method of swiping your student ID often leads to long lines to get into different buildings. By instead using image recognition software to detect whether a student ID belongs to a certain university, this process can be expedited and allow for freer travel throughout university campuses.

What it does

iD recognizes whether or not what is displayed in front of a camera is a student ID or not. If it is, then it will determine what university the student's ID belongs to using machine learning.

How I built it

I fed the Clarifai system over 1,000 images of various student IDs from four different universities that I took using the software I developed for a Ximea camera using OpenCV. I developed two different pieces of software - one that auto-adjusted the exposure of the camera while taking photos and the other adjusted the exposure at set intervals of time. Also, the photos are taken using the Pillow API. These programs allow the model to detect student IDs in a variety of lighting situations.

After feeding the Clarifai system over 1,000 images, I developed a Python web app using Flask that runs the web app in parallel to the Ximea camera via multiprocessing. The camera is constantly running and takes a photo at a customizable interval of time and then uses the machine learning model I developed to determine whether there is a Columbia, NYU, Northeastern, or UMass Amherst student ID in the photo. If there is, then that info along with the confidence level is appended to a file that is being read simultaneously by the webapp. Whenever the web app is refreshed, this file is displayed using Flask and Jinja2.

Challenges I ran into

Coming into this hackathon, I had no experience with using APIs for anything. Having been to PennApps earlier this year, I had a general idea of what a hackathon is like, but this hackathon is my first time actually working on developing a project. With only having started taking Python weeks ago, I was initially overwhelmed, but I set out a path and followed it in order to develop my iD software. Unfortunately, my partner that I agreed to work with had to leave right when the hackathon started in order to work on homework. I decided to work on my own - which was a challenge, however, it was doable due to the support of the people around me as they answered any questions I had - no matter how stupid they may have been.

Accomplishments that I'm proud of

I'm proud of having learned so much in a short amount of time. The people around me were great resources and I hope that I was able to help them back as they helped me so much.

What I learned

I learned how to develop a product in a short amount of time that has something substantial to reflect on the hard work I put into developing it. I hope that what I learned will help me in the future as I continue to explore my passion for computer science and development as the skills you learn at a hackathon are invaluable.

What's next for iD

I hope to continue developing iD and add functionality that will allow for it to detect the person who the student ID belongs to along with keep track of who it detects and at what time as this is similar to what the university swipe-in accomplishes. I'd also like to attempt using a lower-cost camera in order to lower the potential cost of the project. Additionally, I'd like to feed the model more data to allow for more university IDs to be detected and for IDs not in good shape to still be able to be detected.

Share this project:

Updates