Driving is an essential aspect of our everyday life, and the safety of driving should be the priority for all drivers. We wanted to build an app that helps the drivers stay safe on the roads by being more aware of their emotions, and save them money by having customized insurance plans based on their risks. Our app is programmed to analyze the emotions of drivers and can give an estimate of the change of cost in their auto insurance plan.
What it does
InsureMotion is a mobile app that tracks your driving to determine whether or not you have a road rage problem. Stay calm and collected while driving? The app will help you reduce your insurance premiums. The app will film you while driving and look for facial expressions to detect emotion. The emotion data is used to see how calm and collected you can stay while on the road.
How we built it
InsureMotion app uses Expo to detecting for sudden vibrations indicating a collision or abrupt stop and consequently triggers the camera to capture video of the driver. Using Microsoft Azure Face Emotion Recognition API and our own Python Flask REST API, we were able to process the images and obtain the emotion present for each image. These are emotions are then used to determine a score for your road rage and distracted driving. These scores are a way of assessing the driver’s behaviour and also provide valuable information to their insurance company for a reduction in car insurance premiums. The end-user is able to login into the mobile app to start a trip and record there driving.
Challenges we ran into
Many different components of our app were challenging to build and set up. Firstly, OpenCV proved to a very finicky and problematic system to work with, and would occasionally not work, or work just sporadically. We were only able to set up OpenCV properly on one computer and that was very risky.
The flask server was in itself, not very challenging, but connection it and having it run asynchronously with OpenCV so that it would listen to calls from the React Native App, process them through azure and return the responses in a proper, seamless fashion was a very difficult and time consuming task.
Finally, navigating through React Native was challenging. After trying out many different ways, we managed to process information between the jsx code and Python code. Also, it took us some time to work out the parameters and syntax for better display on our app. It was also challenging to set up react promises to allow for the response of our REST API to be processed through the app and printed to the display for the driver to see when they get home.
Accomplishments that we're proud of
Being able to develop on Expo and getting the app set up, navigating through the hoops and challenges that are present with React Native, and having a functional but elegant design were all things we took pride in having accomplished.
What's next for InsureMotion
Flushing out a full detailed login portal for the end-user to analyze their DriveScore and road rage analysis score.
Using an ML model with trained images of road raged drivers to better build the model of what should be considered road rage.
Determining the real cost/deduction of premiums based on the road rage data present within the app.