Sleep deprivation is a serious problem that we encounter all the time. Frequently during hackathons, we often have issues with sleep. We have no way to decide who sleeps at what time, decreasing productivity. Knowing that, we decided that we wanted to tackle sleep deprivation during hackathons.
What it does:
WakefulWatch is a background application that monitors the sleepiness of all your team members. The application determines a sleepiness score and sends a post-request to our web-server domain. The user and their sleep score is added to our website. Every two hours, the user with the highest sleepiness score is selected to sleep. When those two hours have passed, another person with the highest sleepiness score is also selected to sleep. This is a constant rotation until every person sleeps once and it becomes morning.
How we built it:
Python Application (Back End)
A background python application uses open computer vision to identify where the eyes are located on a person's face. Then, a support vector classifier is used to determine if the person is blinking or not. By measuring the blink rate and time between blinks we can determine the person's fatigue and sleepiness. The python app will send the user id and sleepiness score to an our domain.
Node JS Web Server with socket.io (Back End)
Interacts with node.js to store data about user id and their sleepiness score.
CSS, HTML Website (Front End)
Display sleepiness score of all users on a leaderboard. Uses jQuery to access information from the back end.
Challenges we ran into:
It was difficult to create a database of open and closed eyes. We had to create the database ourselves by recording each other and sorting low resolution images for open computer vision to use.
Accomplishments that we're proud of
Creating a fully functional application that combines client side to create a server side viewer that anyone can connect to.
What we learned:
What's next for WakefulWatch?
We are releasing an open source version of this project that anyone can use. We are also planning on expanding the sleepiness openCV library by having more reference images in the database.