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:
The following files were changed compared to the seed project:
helper.py
main.py
These files were added:
augment_data.py
helper2.py
The Kitti road dataset was augmented, by flipping, adding noise, zoom, warp, moving and colorshifting, see augment_data.py.
Examples:
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.
- 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
main.py
will check to make sure a GPU is available