AquaSafe
AquaSafe is a multi-purpose pool monitoring system. The product includes multiple sensors that detects motions in the pool and quality of water. The included iOS App allows the user to track the various metrics as well as a video feed. The system also sends push notifications to the AquaSafe App to warn users of possible accidents thus reducing the risk for residential drowning.
Motivation
According to the Centers for Disease Control and Prevention, drowning is the leading cause of accidental death for children under the age of 5. For these children, swimming pools were the most common drowning places. AquaSafe will send an alert to the user’s Smart Phone when it detects someone falling into the pool. With this alert system, parents will be notified when a child accidentally falls into the pool, improving the reaction time.
The mission of AquaSafe is to provide an affordable and convenient way to keep families safe.
System
Architecture
The system consists of three main components: A poolside computer, A Cloud Server and An iOS app
Technical Components
Main Unit:
Battery powered raspberry pie with a webcam, microphone, temperature sensor and two wifi dongle. The unit will monitor water temperature and alert whenever someone goes into the pool as identified by the webcam. The device will be located outside the pool in a waterproof case.
Cloud:
The Cloud Server collects all readings and alerts into a DB which will also serve as an endpoint for the mobile app (REST and Push notifications).
Mobile:
The iOS mobile app allows the user to view information about water quality, a history of alerts including an image of the alert. Most importantly, the iOS app will serve notifications whenever someone goes into the pool.
Algorithms:
In order to detect when someone is in the pool (activity detection) we are using OpenCV to compute the difference between frames in a sliding window approach. Each frame is first converted to gray scale and then slightly blurred. We then accumulate the weighted average of the current frame and the previous frames in the window. We then compute the difference between the current frame and the running average. Once we obtained the delta frame we threshold and dilate it to fill any holes. Finally we're using openCV find contours method to search for objects in the frame. The sliding window approach allows us to ignore object that are either constant or moving very slowly (such as a pool robotic cleaner).
Prototype
Screenshots from the AquaSafe iOS App:
Results
The following images describes how our algorithms detects drowning:
References
Brahmbhatt, Samarth. "Embedded Computer Vision: Running OpenCV Programs on the Raspberry Pi." Practical OpenCV. Apress, 2013. 201-218.
Godbehere, Andrew B., Akihiro Matsukawa, and Ken Goldberg. "Visual tracking of human visitors under variable-lighting conditions for a responsive audio art installation." American Control Conference (ACC), 2012. IEEE, 2012.
Spampinato, Concetto, et al. "Detecting, Tracking and Counting Fish in Low Quality Unconstrained Underwater Videos." VISAPP (2) 2008 (2008): 514-519.
Watlington, F., 1979. How to Build & Use Low Cost Hydrophones. TAB Books, Blue Ridge Summit, PA (currently out of print)
OpenCV Computer Vision - http://opencv.org/
Thermal Sensor Connected Via i2c - http://raspberrypi.tomasgreno.cz/thermal-sensor-i2c.html
http://www.huffingtonpost.com/2014/04/15/drowning-lead-cause-of-death-kids_n_5155542.html
Contact
Gideon Mendes: gm2597@columbia.edu
Priscilla Wang: pyw2102@columbia.edu
Eden Dolev: ed2566@columbia.edu
Columbia University Department of Electrical Engineering
Class Website:
Columbia University ELEN E4902 Fall '15 IoT
Instructor: Professsor Xiaofan (Fred) Jiang