This repo contains my implementation of UNet architecture for self-driving car semantic segmentation challenge dataset on kaggle.
The model achieves a mean IoU score of ~0.74 on a test set. Possible improvements include data augmentation and longer training.
CARLA is an open source self-driving car simulator. It allows to run SITL simulations and collect artificial data (including semantic segmentation camera).
To put it simply, semantic segmentation is image classification performed on individual pixels. Each pixel of an image gets classified as a class (road, car, road sign, etc...). The key to semantic segmentation is FCN (Fully Convolutional Neural Network), that takes an image and outputs another image, whose pixels are assigned classes.
Due to pooling and strided convolutions, it is hard for FCNs to restore spatial information from the "bottleneck". U-Net O. Ronneberger et al. (2015) solves this problem by croppping feature maps from the contracting part and feeding them to the corresponding layers of the expansion part. This enables the expansion part to recover spatial information more easily.