This is a light weight Tensorflow implementation of lane detection using fully connected convolutional (FCN) network.
This is a forked work from link. The implementation is largely based on the reference code provided by the authors of the paper link.
- Take input images of any size.
- Tailored model for performance: 20 layers lighter than pretrained model. 86% less parameter memory.
- The code was written and tested with
tensorflow0.14
andpython2.7
. - Dataset is using KITTI Vision Benchmark Suite. Download the training data in
Data_zoo/kitti_road/
- Used pretrained model of IMAGENET VGG 19
To train:
python FCN.py --batch_size=5 --learning_rate=1e-5
To evaluate on a random batch in validation set:
python FCN.py --batch_size=5 --mode=visualize
To infer a image:
python FCN.py --batch_size=5 --mode=infer --data_dir=<image directory or path>
debug
flag can be set during training to add information regarding activations, gradients, variables etc.- Use IPython notebook can be to view results.
After 1000 batches (~200 epochs), on validation set gets:
ACC (pixcel accuracy): 0.963042, mIOU: 0.797466, time: 5 images / 1.8s
- Post processing the predicted images. Consider use CRF.
- KITTI dataset is limited (300 images for train). More data is required to learn rich & generalized features and take care of more scene type. Consider use tusimple or synthia.
- Benchmark on public dataset.
- Implementation Paper: Fully Convolutional Networks for Semantic Segmentation (FCNs).
- Video of the presentaion given by the authors on the paper - link
- The model is originally applied on the Scene Parsing Challenge dataset provided by MIT http://sceneparsing.csail.mit.edu/. Take a look at the code to switch dataset.