Problem
Land-cover classifiers are usually evaluated as isolated models. Their output is difficult to inspect spatially, and a class label alone does not explain which part of an image influenced the decision. This project combined model comparison, an inference API, and an interactive interface into one system.
Model comparison
We trained three PyTorch models on the RGB version of EuroSAT: 27,000 labeled, geo-referenced Sentinel-2 image patches across 10 land-cover classes. ResNet-50 and GoogLeNet used ImageNet transfer learning; a compact custom CNN was trained from scratch as a baseline. All experiments used the same split and a fixed random seed.

The transfer-learning models exceeded 98% test accuracy. GoogLeNet achieved similar performance with roughly 6–7 million parameters, compared with about 25 million for ResNet-50.
From model to application
I integrated the trained models behind a FastAPI service and built the EuroSAT.AI interface in React. Users can navigate a Leaflet map, choose a model, provide an image or coordinate, and inspect the predicted class and confidence. An optional Grad-CAM view exposes the image regions that drove the prediction instead of presenting the result as a black box.

The X-ray view overlays the model’s activation map alongside its class and confidence output.
What did not work
The shallow custom CNN plateaued around 85–88% accuracy and confused visually similar classes, especially Highway and River with PermanentCrop. Its smaller capacity could not capture the same spatial and textural features as the pretrained networks. The comparison made the value of transfer learning clear while also showing that GoogLeNet offered a better parameter-to-performance tradeoff than ResNet-50.
Result
Both transfer-learning models passed 98% test accuracy, and the final web application turned their predictions into an inspectable workflow with model selection, map-based input, confidence reporting, and Grad-CAM explanations.
The current system uses only RGB channels and 64×64 image patches. It does not use Sentinel-2’s NIR or SWIR bands, and scene classification cannot locate small objects inside a patch. Multispectral input and semantic segmentation are the main next steps.
