Geolocation Image Classifier
Image classification model that predicts the country that a Google street view image was taken in

I trained a computer vision model to classify Google street view images across 20 countries. The project uses a fine-tuned ConvNeXt-Tiny model trained on roughly 200,000 images and includes a prediction pipeline for evaluating unseen locations.
Components
Dataset
The dataset was collected using a custom collection script that I created in order to test several different combinations of countries and dataset sizes. The largest dataset used was 200,000 images and spanned 20 countries. All images come from Google street view and are just a single panorama.
Model
I fine-tuned a pretrained ConvNeXt-Tiny model for 20-class country classification. I replaced the final classification layer to match the target countries, allowing the model to retain general visual features learned during pretraining while adapting to geographic clues in the dataset.
Training
Before training, the data is preprocessed by rolling the panorama around to change the location of the seam in the image. There are also random jitters applied to the image to help the model generalize from geographic features as opposed to camera artifacts. The images are resized to 320x160 and the model is trained on the GPU to speed up training. We use cross-entropy as our loss function and after every epoch save the model with the lowest validation loss as a form of checkpointing.
Results
With our largest dataset of 200,000 images and 20 classes, the model achieved 92% accuracy in the test set.
Screenshots
Here the model correctly identifies Mexico (mx) with 99.71% confidence
Here the model correctly identifies South Africa (za) with 95.09% confidence
Here the model correctly identifies Thailand (th) with 99.79% confidence