hayoung-kim / tf-semantic-segmentation-FCN-VGG16

Semantic segmentation for classifying road. "Fully Convolutional Networks for Semantic Segmentation (2015)" implemented using TF

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Semantic Segmentation

Udacity - Self-Driving Car NanoDegree

Implementation Details

Network

FCN-8s with VGG16 as below figure.

network figure

Dataset

Hyperparameters

hyperparams

Learning rate, batch size and keep probability were tunned by random search. If you want to see code for this: Link

  • Optimizer: Adam
  • Learning rate: 0.0002395
  • Deconvolution l2 regularization factor: 1e-3
  • Batch size: 2
  • Training epochs: 30
  • Keep prob for dropout (VGG): 0.495

Results

Loss

After 30 epochs, loss became about 0.05

loss

Nice results

These are pretty nice results. It seems like the network classify road area well.

good1 good2 good3 good4 good5 good6 good7 good8

Bad results

These are bad results. I believe that the results will be better using the following methods.

  • Use more deeper network (e.g. ResNet)
  • Augment given data or train network with another data (e.g. CityScape)
  • Use different architecture (e.g. U-Net)
  • Use post processing (e.g. CRF(Conditional Random Field))

bad1 bad2 bad3 bad4

Setup

Frameworks and Packages

Make sure you have the following is installed:

About

Semantic segmentation for classifying road. "Fully Convolutional Networks for Semantic Segmentation (2015)" implemented using TF


Languages

Language:Jupyter Notebook 96.1%Language:Python 3.9%