Video demo: https://youtu.be/bIb28quoVLw?t=1h59m53s
I wanted to create an application that could make use of ESA's Sentinel satellite imagery data in order to determine obstacles along roads for civilian clearing purposes.
What it does
This program allows users to determine the most efficient path for drivers to take using Dijkstra's algorithm and machine learning optimization (two-class decision forest). Each of the coordinates along the polyline correspond to an image from satellite data, which is then scored based on relative safety. Users are also prompted to respond with realtime data regarding obstacles along roads which are then used to improve the algorithm.
How I built it
Challenges I ran into
It was difficult to work across datasets, parsing information from remote servers. It was also difficult to work on different domains for certain APIs that required authentication or headers for validation.
Accomplishments that I'm proud of
SafetyFirst is able to deliver results that are comparable to those of Google Maps, with the added feature that it improves the safety of drivers and civilians.
What I learned
I learned about how to develop for React Native, interfacing with CORs, and interacting with .tif images for ESA datasets. I also learned more about how to clean data and implement accurate and fast machine learning models (running the models took a long time, as expected).
What's next for SafetyFirst
I'm currently working on implementing a Unity extension that will map out a 3D path for the roads based on GeoJSON and encoded polyline data from SafetyFirst. This will allow drivers to search through a more updated version of their environment than Google Streetview can provide, which can be updated with current obstacles (snowbanks, leaves, traffic accidents, steep roads from natural disasters, etc.)