Semantic Segmentation with CNNs

Final Deep Learning Course Task

Project Description

This final task of my Deep Learning course focused on semantic segmentation using Convolutional Neural Networks. The exercise required assigning a class label to each pixel in a remote sensing image. A U-Net architecture with a ResNet18 backbone was used to perform this task.

Semantic Segmentation

Objectives and Approach

The main objectives were:

  • To develop a deep learning model capable of pixel-wise classification of remote sensing images.
  • To compare two channel configurations: a standard 3-channel (RGB) input and a 4-channel input (RGB plus an additional normalized DSM image).
  • To evaluate the performance using metrics such as Precision, Recall, and F1-Score.

The problem was faced by first preparing the data – extracting patches of a fixed size, normalizing values, and setting up a custom dataloader. Then, the model was trained using the Adam optimizer and Cross-Entropy Loss for 15-20 epochs. Finally, the model’s performance was evaluated on test images, and standard classification metrics were computed.

Semantic Segmentation

Repository & Code

The complete solution is provided in the Task2DL.ipynb notebook.

Collab Notebook