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.
test accuracy on 10 land types
place nationally, DEPI Data Science track
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:
| Model | Accuracy |
|---|---|
| EfficientNet-B0 (final) | 97.12% |
| Random Forest | 81.3% |
| SVM | 77.6% |
| KNN | 75.7% |
| Decision Tree | 69.4% |
| Logistic Regression | 63.1% |
The project placed 3rd nationally in the DEPI Data Science track.