SDC Term 3 Elective: Semantic Segmentation project
In this project, we labeled the pixels of a road in images using a Fully Convolutional Network (FCN) programmed in Python 3.5.2, Tensorflow 1.1.0, CUDA 8.0 running in an Ubuntu 16.04 EVOC P870DMx-G laptop with dual NVIDIA GeForce GTX 1080s in SLI. We experimented with multiple epochs, batch sizes, learning rates and dropouts hyper parameters during training, and we finally settled on the following hyper parameters since the resulting model seems to generalize well and do not over or under fit the test data in the dataset:
- Epochs: 25
- Batch Size: 1 (One 160x576 pixel RGB image)
- Learning rate: 0.0001
- Dropouts: 0.2
We saved the final model and resulting weights in the runs directory, where all of the latest inference images are also stored.
The following give examples of the output of this Fully Convolutional Network for Semantic Segmentation:
Make sure you have the following is installed:
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 the following command to train the fully convolutional network (FCN) for semantic segmentation:
python main.py