← All work
Deep learning · Computer vision

Satellite land classification: 97% accuracy and 3rd place nationally

A deep learning model that recognises 10 types of land (crops, forest, rivers, roads, homes and more) in Sentinel-2 satellite images. I led the team to 3rd place in the national DEPI Data Science track.

97.12%

test accuracy on 10 land types

3rd

place nationally, DEPI Data Science track

6

team members, led by me

The problem

Land-cover maps support city planning, farming and environmental monitoring, but labelling satellite images by hand is slow.

The task: automatically classify Sentinel-2 satellite images (EuroSAT dataset, 10 classes) into land types such as annual crop, forest, highway, industrial, residential, river and sea/lake.

What I built

  • Led a 6-person team: project management, the Flask deployment and the final integration.
  • Clean data split: 70% training, 15% validation, 15% test, with augmentation (rotations, flips, crops) on the training set only.
  • Honest baselines first: 5 classical models on engineered features such as NDVI and band statistics. The best, Random Forest, reached 81.3%.
  • Deep learning: compared ResNet-50 and EfficientNet-B0 with ImageNet transfer learning, early stopping and dropout. EfficientNet-B0 gave the best accuracy for its size.
  • Demo: the model was served as a Flask REST API with a web page to upload an image and get its land type.

The result

EfficientNet-B0 reached 97.12% test accuracy (97.00% on validation), far above the classical baselines:

ModelAccuracy
EfficientNet-B0 (final)97.12%
Random Forest81.3%
SVM77.6%
KNN75.7%
Decision Tree69.4%
Logistic Regression63.1%

The project placed 3rd nationally in the DEPI Data Science track.

Hire me on Upwork