Inspiration

Mercedes-Benz's Attention Assist system saved my uncle from an accident by detecting drowsiness just in time. Since not everyone can afford a Mercedes, we came up with 'DrowsyDriver' : A Brain-Computer Interface System to detect drowsiness and alert the user before an accident occurs. Safety features should be more widely accessible, so we built an app that provides the same functionality using a $150 EEG headset.

What it does

This app detects drowsy drivers in real time by collecting EEG data through a MUSE headset. The app will graphically display the current level of user engagement and provide a driving performance report after the drive. It also displays the measured level of drowsiness among other drivers on the road. Since drivers generally look out for themselves, this feature organically motivates everyone to pay attention on the road.

How we built it

First, we performed signal acquisition using muse.js and developed a signal processing module using bci.js. We then built an Angular6 application (PWA) that leverages this module to detect the drowsiness of the driver. After setting up DynamoDB on AWS, we created AWS Lambda functions to access this database. We then set up AWS API Gateway to trigger these functions. We use this API to share data about other drivers' drowsiness states.

Challenges we ran into

We initially found it difficult to correlate drowsiness with the data we collected. We tried several signal processing techniques and found a solution using Exponentially-Weighted Moving Average inspired from stock market techniques.

Accomplishments that we're proud of

We're proud of developing a working prototype with a cheap EEG headset that is commercially available. We're also proud of our feature integrating Amazon AWS to add the 'Other Drivers' Drowsiness" functionality.

What we learned

We learned about how intuitive AWS Gateway API and AWS Lambda functions are. We learned how to detect levels of drowsiness using EEG data. We learned how to make Progressive Web Apps using Angular6.

What's next for Drowsy Driver

Currently, the "Other Drivers" functionality uses fake paths. We would like to use real GPS coordinates and perform analytics using AWS IoT services. Our current signal processing module occasionally triggers false positives. We would like to research better signal processing techniques to improve accuracy. Auto Launch functionality to prompt for headset connection when vehicle motion is detected.

Share this project:

Updates