Skip to content

Light-weight implementation of lane/road segmentation in Tensorflow

License

Notifications You must be signed in to change notification settings

oflucas/lane-detection

 
 

Repository files navigation

LANE DETECTION

This is a light weight Tensorflow implementation of lane detection using fully connected convolutional (FCN) network.

A Demo Picture

This is a forked work from link. The implementation is largely based on the reference code provided by the authors of the paper link.

Hightlighted Work

  • Take input images of any size.
  • Tailored model for performance: 20 layers lighter than pretrained model. 86% less parameter memory.

Prerequisites

Run

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.

Results

After 1000 batches (~200 epochs), on validation set gets:

ACC (pixcel accuracy): 0.963042, mIOU: 0.797466, time: 5 images / 1.8s

Here's the training curves:

Next Works

  • 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.

Others

About

Light-weight implementation of lane/road segmentation in Tensorflow

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 83.2%
  • Python 16.8%