Geobot

Geoguessr is an online game where players are dropped in a random location in the world on Google streetview and the objective is for the user to guess where they are based on clues that they find in their surroundings.

There are plenty of people online who have played geuguessr for long enough that they are able to identify countries in seconds using different clues such as the terrain, road signs, light poles, architecture, and many other things the average person would not know vary from country to country.

For example, did you know that utility poles have very unique designs that can be used to detemine what country you're located in?

Here are a few examples of different utility pole designs

There is a website called geohints that has plenty of different features that players are able to learn if they want to become better at identifying countries. Including a full page dedidcated to utility pole designs.

Learning patterns like this in images seems like exactly what a Convolutional Neural Network would be good at doing, so I decided that I would attempt to train a bot that will be able to play geoguessr and get a respectable score in a game.

The first thing that I needed to do was create a data set that I was able to train the Neural Network on. Google Streetview has an API that would allow me to directly collect data fairly quick, however I decided against using it. When the bot is playing a game it will be required to use only screenshots from the geoguessr window, so I believe it would be best to train it on screenshots from the window so that the data is replicating an actual game.

To do this I have written a bot in python using the google chrome driver from Selenium in order to collect panorama images, and connect them with the coordinates of the actual location which you can recieve from the geoguessr API after a game hase been completed.