In this day and age, cars are getting much smarter with tech like self-driving cars emerging. However, it seems that drivers are getting more careless and reckless(Especially in Miami).

In recent news, the number of accidents related to smart cars has risen significantly.

We decided to tackle this problem. Using computer vision, machine learning, and APIs provided by these smart cars to prevent individuals who may be under the influence of driving.

What it does

With computer vision we're able to determine the sobriety of an individual by tracking their eye movements when observing a moving object. Source-1, Source-2

pdui is a suite of services working together divided into the following services:

  • Sentry: Our node.js API that handles connecting to the Smart Car API, giving us the ability to unlock cars, as well as uploading videos and images sent from the app to AWS S3 services to send to our other API, Bourbon.

  • Bourbon: Our Python Flask API hosting our in-house computer vision and machine learning service that detects eye movement to then determine the sobriety of an individual.

  • Scout: Our mobile app that tracks and calibrates eye movement to then upload to Sentry, as well as configuring your car login.

The basic rundown of pdui is to configure your car settings through our app, scout, as well as calibrating your eye movement to then upload a video of your eye movement when trained on a dot to then upload to our API, Sentry. Sentry then handles the request from Scout, to upload the video to AWS s3 to then send a link to Bourbon. Sentry also takes care of registering your Smart Cars account (More on that later). Bourbon then receives a link of a video to then determine sobriety levels and give a response back to Sentry whether or not the individual is sober. With that response, Sentry then has the ability to unlock your car if you are in the correct conditions to drive, if not, we send you a link to open the ride-sharing app Lyft and request a ride through their services.

How we built it

  • Sentry: Built in nodejs, the API takes care of various tasks such as registering your car to the SmartCar API, as well as uploading files to S3 to then send to Bourbon.

  • Bourbon: Built in Python with Flask to run a server. The app receives files from Sentry to then process them with opencv and tracks eye movement to determine sobriety, giving Sentry the proper response.

  • Scout: Built in react-native, we use the expo camera module to take a video of the client training their eyes on a moving dot to send to Sentry.

Share this project: