Inspiration
Mask Monitor was inspired by one of the preventive measures of COVID 19, which is to wear a face mask, and the refusal of some members of the public to wear one. COVID 19 is a contagious virus that spreads through respiratory droplets. As a result, many establishments make it a requirement for their customers to enter the building with a face covering to slow down the spread of the virus. However, some people fail to realize the dangers of this phage and refuse to take precautions, putting themselves and others around them at risk. To combat these poor actions, we have developed Mask Monitor, an automated system to enforce store mask policies.
What It Does
Mask Monitor is a user-friendly tool used to control mask policies and deny entry to anyone lacking a face mask. When a person enters the frame of a surveillance camera, their face and its presence of a mask are observed. On the presence of a mask, the entrance is unlocked temporarily and entry is granted to that customer. In the absence of a mask, the door remains locked as their face is logged. Our program's mask detection heuristics are accurate, so covering the lower face to deceive the system will not work. Our product offers many features, such as the following:
-Easy to operate and sophisticated graphical user interface.
-Ability to view the live camera feed.
-Event logs with a detailed message and storage.
-Ability to contact support.
How We Built It
Backend: The application's backend is written in Python, and it uses the Flask library to host a server and provide endpoints to the video feed and its logs. The backend also uses OpenCV, a computer vision library, which is critical in reading the frames from the camera. As well, a Caffe neural network is used to detect faces in the frame, and more importantly, the mask on the faces.
Frontend: The frontend is written with HTML, JS, and CSS. These front end technologies are combined with Electron JS, a software development framework, to create the native desktop application that pairs nicely with our backend detection system.
Challenges We Ran Into
Fortunately, our team did not run into many challenges during the creation of Mask Monitor. We quickly adapted to the workflow and reading library documentations. The one challenge we faced was partly burning out a servo motor.
Accomplishments that We're Proud of
We are proud that we were able to adapt to the workflow, although this is our first hackathon, follow along with documentation, communicate effectively with each other to complete frontend and backend programs, and follow optimal programming practices to produce a fully working product in one week!
What We Learned
Throughout this hackathon, we developed many new skills. Some programming skills that were gained include the ability to read documentation rightly, programming in an object-oriented style, and better-debugging skills. We also gained knowledge in libraries such as OpenCV, Caffe, Electron, and Flask, which can be transferred to various upcoming projects. Furthermore, soft skills like communication, time management, and organization were learned.
What's Next for Mask Monitor
We are continuing to optimize the code, as well as add new functions to the GUI and detection system.
The following are some features we would like to implement for future deployments:
»Using a thermal camera to measure body temperatures and deny access to those who have abnormal temperatures (We were originally planning to have this feature; however, thermal cameras are hundreds of dollars and are out of our budget).
»Optimizing code along with training the facial recognition AI with a larger data set to improve the speed and quality of each detection.
»Collecting and displaying a wider range of meaningful statistics to the user of Mask Monitor, or to whomever it may interest.
»Adding anti-tamper software that alerts the user via SMS during an active attempt to compromise the integrity of the system. This can include presenting an image or photograph of a masked individual to the camera or intentionally damaging the device in an attempt to gain access to the establishment, scanning a face multiple times to grant entry to others in line, etc.
Log in or sign up for Devpost to join the conversation.