All of us have dealt with long commutes rather they be after work, or to school after the holidays, and end up driving for over 9 hours on our way back. This was an app created out of necessity and usefulness as every driver has dealt with driver's fatigue to varying degrees. Drowsiness severely impacts attentiveness, which is a crucial factor in safe driving. Over ~21% of all fatal automobile crashes are due to driver's fatigue, where falling asleep at the wheel is common occurrence. At EyesPy, we want to mitigate this damage by building a driver's aid that works to detect drowsiness, implement an alarm system that, if it fails to wake up the driver, notifies any emergency contacts that the driver may have fallen asleep at the wheel, and eventually reroutes the driver to a safer location or temporary lodging. The symptoms for driver fatigue are easy to detect with a computer vision system, and using these parameters decides actions to take.
What it does and how we built it
For back camera, a CUDA-accelerated algorithm detects and classifies 3 classes: person, bike and car- this capability is due to a deep neural net trained with pictures. This aids the potentially drowsy driver, prevent any kind of collision and send an alert in an event there is an obstacle in front of car.
For front camera, a traditional CV algorithm is used to determine whether if the driver's eyes are closed for too long. Counter-measures are built in to prevent the driver from falling asleep. For instance, an alarm will ring if driver closes their eyes for more than 4 seconds, a Google maps API redirect the car to a safe space for driver to rest. Using Twilio API, emergency contacts specified by the driver will be contacted by SMS notification if the system detects drowsiness.
Challenges we ran into
Some of the challenges we ran into was node.js server communication, state machine design, networking problems, and GPU acceleration.
...oh yeah, and front-end.
Accomplishments that we're proud of
We're proud of ourselves. Mom, we did it fam. We made a functional project in 24 hours.
What's next for EyesPy
The re-routing functionality would be incredibly helpful for automated car technology as well as the detection system. A capability for the car system to take over once the person has been deemed asleep would be optimal. Using sensor technology or improving the drowsiness detection algorithm, it's possible to assess more parameters to determine if the driver is "asleep." Other symptoms such as involuntary head nodding, swerving, and auditory cues could be employed.