Utilizing Computer Vision for head detection, activated by an alarm clock, to shoot water at my face.
Explore the docs »
Table of Contents
Have you ever struggled to wake up in the morning? Are regular alarm clocks not enough (even when you set multiple alarms)? Did you develop muscle memory to snooze or even turn off your alarm?
This project idea came from my struggle to wake up in the morning. At one point I thought, "I wish someone would just punch me awake." And then, I remembered splashing water in my face to wake up and thought, "Hey...what if I could do both?" Overall, I wanted to continue working with ML and decided that this project would be a fun development.
WaterWake (..or SquirtAlarm) is meant as a fun project to utilize Computer Vision and learn some mechanical engineer create a fool-proof alarm.
- Python
- OpenCV
- RaspberryPi
- Arduino
- Swift (potentially)
- opencv-python
- dlib
- numpy
Initially, I thought that a simple facial detection would suffice for this portion, but then, I realized that I sleep on my side and a standard face detection code would not suffice.
-
I actually did try various version before landing on my head_detection code, including CV2's facial detection
-
the head_detection.py code utilizes the CV2 and the dlib library
- with the get_frontal_face_detector() from the dlib library, I could get the original face detection
- I added the lock-on code for the bounding box to continue tracking my head, despite the change in angle
-
Additionally, there is a head-pose-estimation code that can detect ears
- with this code, when the camera turns on, it will look for either my entire face or one of my ears and use those to track my head
- Work in Progress
- Plan: iOS application to set alarm and send trigger to my laptop to activate the head detection
- Work in Progress
- Plan: Arduino and RaspberryPi connected to my laptop and used to:
- Aim the watergun
- Shoot water
- Head Detection
- Camera can detect head
- Side profile detection
- Head detection draws bounding box and locks on
- Bounding box remains locked when side profile
- Triggers a stop if head not detected for more than 10 seconds
- Alarm Function
- Sends trigger to a server when alarm goes off
- Trigger activates Head detection code
- Watergun Mechanism
- Obtains head detection input
- Aims watergun
- Shoot water accurately at head
See the open issues for a full list of proposed features (and known issues).
Derek Nguyen
- Email
Project Link: https://github.com/derekn4/WakerWake