Lane Segmentation for Self Driving Cars using Fully Convolutional Networks
In this project, We are going to label the pixels of a road in a given image using a Fully Convolutional Network (FCN). This project is an extension of Jonathan Long and Evan Shelhamer's work in the paper "Fully Convolutional Network for Semantic Segmentation".
Frameworks and Packages
Make sure you have the following is installed:
The dataset used for training the model can be downloaded. 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.
Here I implement the code in the
main.py module to develop the model using the layers of VGG Network using a skip layer architecture and then write optimization and training code for this model. And then this model is used to produce results using the test data of the
Kitti Road Dataset.
Run the following command to run the project:
The implementation code for the fully convolutional network is available in the ipython notebook as well. You can use the jupyter notebook to study the code using a cell by cell approach to see what is happening under the hood.
Here are some cherry picked examples from the results produced.
When the following images go in:
Here are the results that we get.
You can also produce the same results yourself using the code here. The same model can also be used to process video files using minor modifiations to the code base.