Inspiration

Car accidents seem to be an unavoidable part of life. A grim reality that leaves many harmed, both temporarily and permanently. However, car accidents are not necessarily unavoidable. Approximately 90% of car accidents are caused by human error, whether that be through a lack of attention, bad driving habits, or unsafe automobiles. Not Another Driver addresses that by tackling the problem at the root- bad driver habits- through telematics, score-based data aggregation, incentives, and driver education to turn bad driver habits into good ones.

What it does

To help with this and encourage safer driving practices, we created Not Another Driver to aggregate various driving metrics into one program, using it to educate and incentivize users to practice safe driving practices. We used geolocation to calculate and track unsafe driving speeds, as well as computer vision and image processing to analyze braking and safe distance practices. The app collects data through these methods and uses a proprietary scoring algorithm to create detailed and personalized driving reports for users.

A GIF showing the app in action.

How we built it

Object Recognition

The first step for computer vision was to get a machine learning algorithm to read, analyze, and recognize objects in videos. While we could have trained our own algorithm using our dataset, we decided to use a pre-trained Convolutional Neural Network, as it saved us processing time and gave us more time to develop the processing part of our application. This included figuring out the positions and distances of cars around the user.

Image

Image Processing

We used geometry and image analysis to determine the angular distances between the user and other cars, which was then used to determine relevance and importance in the data aggregation algorithm. While not visible in the final product, we drew geometry around recognizable parts of the footage in a video frame to show how the algorithm works. This geometry is used to determine if the driver follows other cars at a safe distance, if their braking is safe, and how they react to both safe and unsafe situations.

Image

Challenges we ran into

Right Lane

One key challenge we ran into was figuring out which object is in the driver’s lane. Without it, the program would calculate distances and other attributes based on all objects, regardless of whether they were relevant to the user or not. We used geometry- specifically, the law of cosines and vector arithmetic- to calculate if objects were in the focal lane.

Image

Exception to Geometric Analysis

This caused other problems, however. When cars were too close to the camera, it would exceed the angular threshold and confuse the program. We decided if the object was close enough to occupy a large part of the screen, its importance in the algorithm would be determined by a set of conditions. This did prove effective as we were able to get an accurate graph which gave a measure of how close we are to the car in front.

Image

Reliable Footage

Another problem was sourcing reliable footage to test our program. It proved quite difficult to find dashcam footage that fit the test cases we needed. After much deliberation, we decided to use footage from realistic video games, such as Forza. This allowed us to perfectly model the conditions we needed for our test cases with reliable enough quality to act as real footage.

Accomplishments that we're proud of

We were particularly proud of our ability to create and modify existing algorithms, such as car detection and location speed, to fit our mission statement. We were also proud of the brainstorming and design that went into creating our data aggregation and scoring algorithms.

What we learned

We learned lots about:

  • Full-Stack Development
  • OpenCV
  • Neural Networks
  • Google Cloud API interaction
  • And algorithm design

especially when it came to implementing all of those into a general mission statement.

What's next for Not Another Driver

In the future, more data points for our driver score model would allow for more reliable data and better predictions for users. In addition to this, implementing the coupon redemption feature and point system would allow us to offer better incentives to the users of the app.

Image

Share this project:

Updates