aranga81 / Semantic-Segmentation

Semantic segmentation of kitti Road Data SDCND

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Semantic Segmentation

Introduction

In this project, a fully convolutional neural network (FCN) was implemented to perform semantic segmentation of the pixels of road in the images from Kitti Road Dataset.

Approach:

Network Architecture:

For this semantic segmentation task I used a pre-trained VGG-16 network (trained on 'imagenet') and adding additional 1x1 layers and skip conections to build a FCN that was used for training. The total number of classes for this task is two as we are performing a binary classification task to segment road vs non-road pixels from the images. Final convolution layer from VGG-16 i.e. layer 7 was input to 1x1 convolution with depth being equal to the desired clases. The other intermediate convolution layers from VGG-16 i.e. layer3 and layer4 are used as skip connection along with 1x1 convolutions and upsampled later to finally give the network output.

HYPERPARAMETERS:

Batch size = 5 Training Epochs = 50 L2 regularizer = 1e-3 learning rate = 0.0009 keep probability = 0.5

RESULTS:

The final cross entropy loss after 50 epochs was reduced to 0.026 !

The results on the test set using the save_inference_samples from the helper function:

image1

image2

iamge3

Setup

GPU

main.py will check to make sure you are using GPU - if you don't have a GPU on your system, you can use AWS or another cloud computing platform.

Frameworks and Packages

Make sure you have the following is installed:

Dataset

Download the Kitti Road dataset from here.
Extract the dataset in the data folder. This will create the folder data_road with all the training a test images.

Run

Run the following command to run the project:

python main.py

Note If running this in Jupyter Notebook system messages, such as those regarding test status, may appear in the terminal rather than the notebook.

About

Semantic segmentation of kitti Road Data SDCND

License:MIT License


Languages

Language:Python 100.0%