https://github.com/mateluky/xview-satellite-classification
Classifying satellite imagery objects using deep learning (CNNs, transfer learning) on the xView dataset.
https://github.com/mateluky/xview-satellite-classification
cnn deep-learning image-classification keras pytorch satellite-imagery transfer-learning xview
Last synced: 2 months ago
JSON representation
Classifying satellite imagery objects using deep learning (CNNs, transfer learning) on the xView dataset.
- Host: GitHub
- URL: https://github.com/mateluky/xview-satellite-classification
- Owner: mateluky
- Created: 2025-10-03T11:36:21.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-10-03T11:49:30.000Z (8 months ago)
- Last Synced: 2025-10-23T20:53:24.733Z (8 months ago)
- Topics: cnn, deep-learning, image-classification, keras, pytorch, satellite-imagery, transfer-learning, xview
- Language: Jupyter Notebook
- Homepage:
- Size: 2.04 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# xView Satellite Imagery Classification
*(Deep Learning Course Project – Universidad Politécnica de Madrid, Master in Digital Innovation – EIT Digital)*
**Authors:**
- Ádám Földvári
- Joseph Tartivel
- Máté Lukács
**Instructor:** Roberto Valle
## 📖 Overview
This repository contains the final project for the Deep Learning course at UPM. The objective was to classify objects in high-resolution satellite imagery using progressively advanced deep learning techniques:
- Feedforward Neural Networks (FFNN)
- Regularized FFNNs
- Convolutional Neural Networks (CNNs)
- Transfer Learning with ResNet50
## 📊 Dataset
- **Source:** [xView Dataset](https://xviewdataset.org/)
- **Type:** High-resolution satellite images (0.3m GSD, WorldView-3)
- **Split:** 761 training images, 85 test images
- **Processed:** 21,377 training objects and 2,635 test objects (cropped & resized to 224×224)
- **Classes:** 12 categories (e.g., building, small car, cargo plane, helicopter)
## 🧪 Evaluation Platform
Final testing and evaluation were conducted via a private competition on [Codabench](https://www.codabench.org/). Submissions were provided in the required JSON format and benchmarked against a hidden test set.
## 📂 Project Structure
```
.
├── ffnn.ipynb # Feedforward Neural Network experiments
├── reg.ipynb # Regularization strategies for FFNNs
├── cnn.ipynb # Custom Convolutional Neural Networks
├── tl.ipynb # Transfer Learning with ResNet50
├── DeepLearning_JT_AF_ML_finalReport.pdf # Full technical report
└── README.md # Project overview and methodology
```
Each notebook corresponds to a development phase, with models iteratively refined at each stage.
## 🔎 Methodology & Results
### Phase 1 – Feedforward Neural Networks (FFNN)
- Compared shallow vs. deep architectures using flattened image inputs.
- Observed overfitting in deeper models due to loss of spatial structure.
- **Best test accuracy:** 45.2%

### Phase 2 – Regularized FFNNs
- Applied batch normalization, dropout, and extended training.
- Improved generalization significantly.
- **Best test accuracy:** 55.18%

### Phase 3 – Convolutional Neural Networks (CNNs)
- Developed and refined five CNN architectures.
- Integrated data augmentation, L2 regularization, batch normalization, dropout, and custom LR schedules.
- **Best test accuracy:** 76.36%

### Phase 4 – Transfer Learning (ResNet50)
- Employed a two-stage strategy:
- **Feature extraction** with frozen layers.
- **Selective fine-tuning** of top layers with lower LR.
- Achieved highest overall performance with reduced training time.
- **Best test accuracy:** 77.87%

## 📈 Results Summary
| Model | Test Accuracy | Precision | Recall |
|----------------------------|:-------------:|:---------:|:------:|
| FFNN (Simple) | 45.2% | 30.31% | 33.66% |
| FFNN + Regularization | 55.18% | 44.95% | 55.50% |
| Custom CNN | 76.36% | 74.00% | 74.53% |
| Transfer Learning (ResNet50) | **77.87%** | 67.15% | 77.47% |
## 💡 Key Insights
- **Spatially-aware architectures** (CNNs, ResNet50) are critical for image classification tasks.
- **Regularization** substantially improves generalization for non-convolutional models.
- **Class imbalance** remains a challenge, especially for minority categories (e.g., helicopters).
- **Transfer learning** offered the best trade-off between accuracy, recall, and development time.
## ⚙️ Infrastructure & Evaluation
- **Platform:** [Kaggle](https://www.kaggle.com/) with P100 GPU acceleration
- **Evaluation:** Codabench private competition with hidden test set
- **Submission format:** JSON files for leaderboard evaluation
## 📄 Documentation
For complete methodology, experiments, and analysis, see the [Final Report](DeepLearning_JT_AF_ML_finalReport.pdf).