According to the WHO, drowning is the second most common cause of death in children. Once someone is in danger of drowning, they must be noticed early. It usually takes 60 seconds for someone to submerge fully underwater after they start struggling. I decided to make a system that will use AI technology to detect if swimmers are in danger. I have been interested in AI technology for a while now, and am curious to see what it will do in the future.

What it does

AI-guard will take in live video feeds with 5g speeds and low latency. The system will segregate and classify each object in the video frame, and with a swimming distress detection algorithm applied to a 15-20 second window, the software will recognize a drowning situation. The drowning object(s) will be highlighted with a danger symbol on the display of the monitoring dashboard, alerting people to save the swimmer.

How we built it

AI-guard was built by setting up a server on AWS and using the Shinobi system as the basis for video management, which takes in and manages live IP camera video feeds. Shinobi adopts a plugin architecture that allows for new plugins to be bundled into the video analysis pipeline, so Tensorflow models for object detection were used. I modified the plugin for object detection and overlaid a swimmer distress detection algorithm on top of the object detection plugin to achieve the goal of drowning detection. The algorithm is coded in javascript for node js, tracking objects' movements and comparing them to movements that fit the description of distressed swimmers.

Challenges we ran into

The first challenge I ran into was finding videos suitable for testing. We needed videos of swimmers in danger of drowning, and there are not many of those online. I could only find a few that were suitable for us. Another challenge was getting familiar with Tensorflow, and understanding how Shinobi and its plugins worked, to figure out where and how to implement the algorithm. Another challenge was determining the algorithm that would work for detecting drowning. After some research, I determined that the best way was to follow the coordinates of the object, seeing if they had drastic changes, indicating that a swimmer could be drowning.

Accomplishments that we're proud of

I am proud of having made a working AI drowning detector system in such a short period of time that works to some degree. I hope to improve the algorithm in the future, and hopefully see AI-guard in use at a pool or beach.

What we learned

I learned how to run an AWS EC2 server in a wavelength zone as well as utilize Shinobi systems for video management and Tensorflow for various types of detection such as object detection and pose tracking. I learned more about Javascript and algorithms.

What's next for AI-Guard

In the future, I plan to improve AI-guard by adding more features to the user interface and improving the accuracy of our detection. I plan to improve the object detection and add pose tracking so that the analysis of the swimmer will be more accurate. Also, I plan to add a system that uses all the camera angles in one algorithm for the most accurate detection. I also plan to utilize more machine learning methods and give many inputs to train a model for more accurate detection.

Built With

Share this project: