Many businesses are having trouble ensuring the safety of their customers by preventing people who refuse to wear masks from being near their store. MaskCam solves that problem, by alerting the owners and nearby users of the app to the danger. Wearing a mask is the #1 easiest thing we can all do to help save lives during the pandemic, but some people simply don't do it. Alerting people nearby of these dangers will help reduce the damage dealt by anti-maskers.
What it does
MaskCam leverages the Google Cloud Video Intelligence API to label videos recorded by an Arlo security camera. If it finds a mask in the video, it alerts the camera owner, but also anyone who has the app. Using the Radar.io API, only nearby users are alerted, and told they are in danger of being infected.
How I built it
I used Flask and GAE to write the backend, and used the Arlo API to pull videos from the camera. Determining whether there was a mask in the video was done by Google Cloud Vide Intelligence. For the mobile app, I wrote it in Swift and communicated with it to the server and using the Radar.io API for distance information. I used Bulma.css and Jinja to render the templates for the website.
Challenges I ran into
I had a lot of difficulty getting the Radar.io SDK to work in Swift, but eventually got it to work. Also, the Cloud Intelligence API had some difficulty recognizing surgical masks whereas homemade masks were more recognizable for it.
Accomplishments that I'm proud of
I am proud that I was able to put together such a big project as a solo hacker. This was my first time attempting something so big, and my first time using cloud Video Intelligence and Radar.io. I'm glad that I was able to get it to a working and presentable state.
What I learned
I learned a lot about google cloud APIs, the entire Radar.io API, and more Swift and app development.
What's next for Mask Detector
More camera APIs (e.g. Nest) could be added for more accessibility, but for now it only works with Arlo cameras.
NOTE: I did submit this project to multiple hackathons, but I was very careful to only work on it after all the hackathons had started and before the first submission deadline.