--- 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).