Inspiration

No matter where our families go, whether it be the supermarket or the next state over, they always insist on taking the most beautiful route. Driving by breathtaking scenery is one of life's finest pleasures, yet it is near impossible to find the prettiest route to take. Google Maps can get you from point A to point B the fastest, but it falls short when asked to give you a scenic route. This inspired us to build Sceniq—an app that will point you towards the most beautiful route for your journey.

What it does

Sceniq will take in a starting location and a destination, and will return back to you the most scenic route between those two points.

How we built it

Our algorithm identifies all of the key routes between two points and retrieves image data of those routes through Google Maps. This information is fed into a neural network that was trained on over 6,000 images to distinguish between scenic and non-scenic imagery. Using the network's output, a score is assigned to each route indicating how scenic it is. This data is returned to the user.

Challenges we ran into

We ran into several challenges. While working on the neural network, Adith struggled with optimizing the prediction speed. After he got around this, he realized that there was a fundamental flaw in how he was labeling the data, which took a while to fix.

Adam had his own set of problems. He had to reverse engineer the Unsplash API because it wasn't well formed. Additionally, he was getting timeout errors because he was making simultaneous requests, which he got around by implementing a randomized incremental back-off algorithm. Finally, he was very proud of the fact that he created a recursive generator algorithm that was able to divide a geographic polyline into n equal parts.

Accomplishments that we're proud of

We're proud of the project as a whole. Not only did we train, test, and fine-tune a neural network, but we also were able to implement an algorithm that interfaces with Google Maps to get image data for routes.

What we learned

1) How to break down a problem into smaller chunks that are later combined into a cohesive solution. 2) How to use CNNs to differentiate between various types of images. 3) How to interface with Google's various map/direction APIs.

What's next for Sceniq

We need a better front-end interface. Additionally, we could also improve our route visualization. These changes would make our program more user-friendly.

Built With

Share this project:

Updates

posted an update

Well, it seems that Yac didn't record my audio. Oh well. Here is what I said as best as I can remember it: Sceniq is a web application, though right now mostly just an API with a minimal front-end, to find scenic routes between locations. As you can see here, I have typed out an origin and a destination, and here I have preloaded the response, which would come up when I click "submit". Since I have "get all" selected, I get all the links returned. If I follow the returned URL, I am taken to Google Maps with the route pre-loaded. In our code, we used Svelte for the front end. Right now, we have two separate servers running: one for the front end, one for the back end, both locally because of issues with cloud deployment. We are running TensorFlow.js in Node.js, using a model we trained using TensorFlow and Keras in Python using a Jupyter Notebook. Hopefully if you have any questions, the code will provide answers. Thank you very much for your time!

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