-
-
GIF
A video of the image analysis component of the app in action. It uses OpenCV and image analysis to identify unsafe driving behavior.
-
This image quantitatively models the rapid, unsafe brake shown in the previous video through a rapid increase in car-related pixel usage.
-
GIF
This video shows the image analysis tool in action again, this time in a safe driving environment.
-
This graph correlates to the previous image. The slow changes and small values show a safe driving distance with no major unsafe brakeage.
-
GIF
A GIF showing the app in action.
-
The homepage of the app.
-
The main menu page of the app.
-
The driving page of the app. Users will see this page while the app collects driving data.
-
The reports homepage of the app.
-
The page for specific reports. This shows a color-coded score, suggestions, and appropriate navigation UI.
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.

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 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.

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.

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.

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.


Log in or sign up for Devpost to join the conversation.