File size: 3,413 Bytes
1eaffa3
 
30ddf64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1eaffa3
30ddf64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
---
license: mit
language:
- en
pipeline_tag: image-classification
library_name: keras
metrics:
- accuracy
tags:
- computer-vision
- satellite-imagery
- remote-sensing
- xview
- cnn
- inception
- tensorflow
- trained-from-scratch
---

# Custom Inception-style CNN for Satellite Image Classification

A custom convolutional neural network trained from scratch to classify satellite image crops into 13 xView categories. Developed as a Deep Learning course project at Universidad Politécnica de Madrid (UPM), this architecture uses parallel convolutional branches to extract features at multiple spatial scales.

## Architecture

- **Input:** 128 × 128 RGB image crops.
- **Output:** softmax probabilities over 13 classes.
- **Parameters:** 4,529,325, as recorded in the notebook.
- **Feature extractor:** convolutional stem followed by seven custom Inception-style modules.
- **Parallel branches:** 1 × 1 convolution; 1 × 1 followed by 3 × 3 convolution; 1 × 1 followed by two 3 × 3 convolutions; and max pooling followed by 1 × 1 convolution.
- **Classification head:** global average pooling, dropout (0.4), and a dense softmax layer.
- **Framework:** TensorFlow / Keras.

This is a custom Inception-inspired architecture, not the standard InceptionV3 model. It classifies individual image crops rather than detecting objects in full satellite scenes.

## Training

The notebook uses Adam with an initial learning rate of 0.001 and categorical cross-entropy with label smoothing of 0.1. Training is configured for up to 50 epochs with a batch size of 64. The saved training log identifies epoch 47 as the best epoch by validation accuracy.

## Results

The notebook compares three custom CNN architectures on the same validation split:

| Architecture | Validation accuracy |
| --- | --- |
| ResNet-style | 18.67% |
| VGG-style | 68.53% |
| **Inception-style** | **72.69%** |

The selected Inception-style model also achieved **75.63% macro recall** and **75.48% macro precision** in the recorded validation evaluation.

These results come from the original experiments in `CNN Best model.ipynb`. They refer to the course's 13-class classification setup, not the full xView object detection benchmark.

## Classes

Cargo plane, small car, bus, truck, motorboat, fishing vessel, dump truck, excavator, building, helipad, storage tank, shipping container, and pylon.

## Project materials

- Training and evaluation notebook: `CNN Best model.ipynb`.
- Project report: `Report_ImageRecognitionAndObjectDetectiononthexViewSatelliteDataset.pdf`.

The notebook documents the architecture definitions, training experiments, confusion matrices, and per-class evaluation. Results from any subsequent training run should be evaluated independently.

## Authors

Melen Laclais, Léo Lamy, and Adrián García-Pozuelo Fornieles.

## License and attribution

The MIT license designation applies to original project code only. Third-party code and course materials retain their respective terms.

xView imagery and annotations remain under **CC BY-NC-SA 4.0**, including any dataset images reproduced in notebooks or the report.

- [xView dataset](https://xviewdataset.org/)
- [Official xView dataset license terms](https://challenge.xviewdataset.org/rules)
- [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)

Dataset reference: Lam et al., *xView: Objects in Context in Overhead Imagery* (2018).