Public safety has become a national concern recently with events like the Florida shooting. What if we could prevent tragic events such as these through automatic detection of suspicious objects in a surveillance camera? Not only could such an application be helpful in preventing the next school shooting but it could also be used to track suspicious packages in a subway station, prevent muggings, etc.

What it does

SafetyCam is an application that allows users to receive notifications through the website and sends an SNS to emergency services when a suspicious/ threatening object is detected in a video feed.

How I built it

The backend of the app was written in python. OpenCV and Haar Cascade classifiers were used to detect suspicious objects. The camera sends alerts to the firebase database and the website pulled that data from that database. (RIP Flask). AWS was used to send an alert to emergency services.

Challenges I ran into

We had to adjust a lot of the threshold and positive hit images with the Haar Cascade Classifier to accurately detect knives. Handguns were also hard to detect as well because anything with a 90 degree angle would have been classified as a gun when we started out.

Accomplishments that I'm proud of

We are proud of our application being able to accurately detect knives over a variety of ranges. The scalability of our product is also something that we are proud of. Our application can be extended to work with objects that were beyond the scope of the 24hr time frame by simply adding positive hit images onto our Ubuntu server.

What I learned

We learned a lot about OpenCV. A lot. Some of us learned how communication between client side and server side applications work.

What's next for SafetyCam

Right now SafetyCam works by detecting dangerous objects through the webcam. Hopefully, we can move away from webcams and use standalone cameras like NEST cameras. Other objects that we did not have time for such as homemade weapons would also be a nice way to extend our project.

Share this project: