Skip to content

In this project, a Fully Convolutional Network (FCN) is used to label the pixels of a road in images

License

Notifications You must be signed in to change notification settings

autonomobil/SDCND-P12_Semantic-Segmentation

Repository files navigation


SDCND Term 3 Project 12: Semantic Segmentation

Semantic Segmentation Project for Udacity's Self-Driving Car Engineer Nanodegree Program

Udacity - Self-Driving Car NanoDegree

In this project, a Fully Convolutional Network (FCN) is used to label the pixels of a road in images. It is trained on the Kitti Road dataset.

Some results:

img1 img2 img3 img5 img6

The following files were changed compared to the seed project:

  • helper.py
  • main.py

These files were added:

  • augment_data.py
  • helper2.py

Augmentation

The Kitti road dataset was augmented, by flipping, adding noise, zoom, warp, moving and colorshifting, see augment_data.py.

Examples:

img7 img8 img9 img10

Fully Convolutional Network (FCN)

Structure

img4

Why Layer skip 3, 4 and 7?

In main.py, layers 3, 4 and 7 of VGG16 are utilized in creating skip layers for a fully convolutional network. The reasons for this are contained in the paper Fully Convolutional Networks for Semantic Segmentation.

In section 4.3, and further under header "Skip Architectures for Segmentation" and Figure 3, they note these provided for 8x, 16x and 32x upsampling, respectively. Using each of these in their FCN-8s was the most effective architecture they found.

Training

  • keep_prob: 0.475
  • learning_rate: 0.0001
  • epochs: 100
  • batch_size: 8
  • L2-Regularizer on each layer, reg_factor = 2e-3
  • Adam-Optimizer
  • Cross-entropy-loss

Notes: GPU

main.py will check to make sure a GPU is available

About

In this project, a Fully Convolutional Network (FCN) is used to label the pixels of a road in images

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages