Road segmentation from 250 images, circa 2017
A KITTI road-segmentation model that once topped the benchmark and still serves as a reference implementation for FCN-based driving perception.

What it does
KittiSeg trains a fully-convolutional network (FCN-8 VGG) to segment road surfaces in camera images from the KITTI autonomous-driving dataset. It handles training, evaluation, and visualization through a modular TensorFlow pipeline built on the TensorVision backend.
The interesting bit
The model hit first place on the KITTI Road Detection Benchmark at submission time with a MaxF1 score over 96%—trained on just 250 densely labeled images. That data-efficiency claim is the project’s real calling card, not the raw speed numbers.
Key highlights
- Modular architecture: swap encoders, decoders, optimizers, or input pipelines by editing a JSON config file
- Experiment organization via TensorVision: each run gets its own directory with logs, checkpoints, model-code snapshots, and sample outputs
- 95 ms inference per image on the hardware of the era (usable for real-time, if not blazing)
- Includes
demo.pyfor quick prediction without downloading the full KITTI dataset - Companion repos KittiBox (detection) and MultiNet (joint training) share the same design philosophy
Caveats
- Locked to TensorFlow 1.0 and Python 2.7; this is legacy code by modern standards
- The README warns that forgetting
git submodule updateaftergit pullleaves you in “inconstant repository state”—a charming typo, but also a real footgun
Verdict
Worth studying if you’re implementing modular training pipelines or need a baseline FCN for academic comparison. Skip it if you want production-ready perception; the framework dependencies are archaeological at this point.