A member of our team researched a report on motor vehicle safety from the CDC (Center for Disease Control and Prevention) for a project while in grade school. The report highlighted disturbing facts about distracted driving such as every day approximately 9 people are killed and more than 1,000 people are injured in crashes that involved a distracted driver. In 2015 alone, 391,000 people were injured in motor vehicle crashes, and 3,477 people were killed in crashes involving a distracted driver. "Distracted driving is driving while doing another activity that takes your attention away from driving. Distracted driving can increase the chance of a motor vehicle crash" (cdc.gov). Our team became very cognizant of the growing number of incidents and preventable accidents due to distracted driving, and decided to develop an attention monitoring system that could be utilized in several different use cases to monitor and encourage more deliberate engagement while driving a vehicle or operating equipment.
What It Does
Our attention monitoring system intelligently monitors a user's head and pupil movement while driving to track when the user is distracted. According to the CDC, visual and cognitive distraction are two of the leading causes of distracted driving, and can lead to serious injuries and loss of life. Our team has imagined several different use cases and implementations of this technology. Attention monitoring and tracking can be used for insurance purposes to determine how engaged and safe drivers are. Other examples include monitoring pilots, bus drivers, equipment operators, and testing the focus of student drivers while participating in Drivers Education. All of the use cases build upon the foundation of attention monitoring and tracking, and can be implemented in different ways to accommodate each use case. When people are driving a car, flying a plane, or operating a piece of motor equipment, it is important that their attention stays on the task they are performing. Once people "take their eyes off the road" and become distracted, injuries and fatal outcomes are significantly more likely to occur. Texting and driving is 6 times more likely to get someone in a car accident than drunk driving (icebike.org). The attention monitoring system provides a simple and effective solution to this preventable worriment by tracking the instances that an individual is distracted while driving/flying/operating. Our group has created a specific implementation of the attention monitoring solution designed for the use case of a parent overseeing the quality of their child's driving behavior.
How We Built It
Our attention monitor solution and parent/child implementation was built using a Dell XPS 13 laptop running Linux, usb webcam, OpenCV, Twilio, RapidAPI, and Google Cloud. The webcam is used to stream video into the laptop, and the laptop utilizes OpenCV to track the movement of the user's head and pupils. Custom defined thresholds define when a user is considered to be "distracted." For instance, it takes approximately 5 seconds to complete a lane switch (semanticscholar.org), and taking one's eyes off the road long enough to read a text message takes almost 5 seconds to complete (cdc.gov). 5 seconds is enough time to cover a football field at 55mph. If the child is considered to be distracted for more than 5 consecutive seconds, then they are given one strike. After the child gains three strikes, a text message is sent to their parent using Twilio letting them know that their child has been quite distracted while driving. The parent can choose to reply to that automated alert in order to further action. In addition to this, the parent will be able to access an online portal with information including real-time coordinates of the child, real-time location-accurate weather, and histogram representations of driver engagement. The back end was constructed in the web framework Django. Our solution has several diverse applications and markets, so we developed a user interface that is approachable and easy to understand.
Challenges We Ran Into
The greatest challenge we ran into was trying to create a live updated graph that updated every 20 seconds. One of the main issues was that Bokeh doesn't have clear documentation for their application server implementation in Django. Additionally, Bokeh requires its own port to run its server and with our Django setup we could not run two ports at once unless we set up an Apache server, and we did not have time to do so. After realizing that we could not take this approach we came up with an alternate way of presenting the graphs. We chose to export the graphs to a new html page every time there was new data. The drawback of this approach is that it requires the page to be refreshed every time new data is requested.
Accomplishments That We're Proud Of
Our team is proud of our collaboration, critical thinking, ingenuity, and the final product. Each one of us has a different technical background and expertise, and we were able to find a way to include everyone's expertise and work together through difficult challenges in order to create an attention monitoring system that tracks when a user is distracted while driving/flying/operating.
What We Learned
Our team learned that coming across annoying challenges and bugs are typical to the development process. In addition to this, we expanded our experience in developing with APIs, Django, Geolocation, and SQL.
What's Next for Attention Monitor
Our team wants to improve the image recognition system to recognize an individual's head and eyes in more challenging lighting conditions. We want to work on more custom implementations of the solution such as the Parent/Child driving scenario.