Road Navigation
Road finder demo.
By Laurent Ittiitti@usc.eduhttp://jevois.orgGPL v3
 Language:   C++            Supports mappings with USB output:   Yes            Supports mappings with NO USB output:   Yes
 Video Mapping:   NONE 0 0 0 YUYV 320 240 30.0 JeVois RoadNavigation
 Video Mapping:   NONE 0 0 0 YUYV 176 144 120.0 JeVois RoadNavigation
 Video Mapping:   YUYV 320 256 30.0 YUYV 320 240 30.0 JeVois RoadNavigation
 Video Mapping:   YUYV 176 160 120.0 YUYV 176 144 120.0 JeVois RoadNavigation

Module Documentation

This algorithm detects road using a compination of edge detection and tracking, and texture analysis. The algorithm is an implementation of Chang, Siagian and Itti, IROS 2012, available at

The algorithms combines detection and tracking of line segments at the edges of the road or on the road (e.g., lane dividers), and texture analysis to distinguish the road region from its surroundings.

The algorithm outputs the horizontal coordinate of the vanishing point of the road, which usually is a good indication of the road heading (except in very tight bends or corners).

Demo display outputs

Detected line segments are shown in black and white, while segments that have been reliably tracked over multiple frames are shown in thick purple. Estimated vanishing point location and confidence is shown as a big green disk on the horizon line.

Serial Messages

This module can send standardized serial messages as described in Standardized serial messages formatting. One 1D message is issued for on every video frame at vanishing point horizontal location.

  • Serial message type: 1D
  • id: always vp (shorthand for vanishing point)
  • x: standardized 2D horizontal coordinate of the vanishing point
  • w: always 0
  • extra: none (empty string)

Trying it out

To casually try out this module, just search the web for pictures of roads and point the JeVois camera to one of them. Make sure that you align the horizon line of the algorithm (which has a bumber of purple and green disks) roughly with the horizon line in your picture. As you move the camera left and right, the location of the large green disk that marks the detected vanishing point should move left and right, and should point to the vanishing point of the road in your image.

When using on a mobile robot in th ereal world, setting the proper horizon line is essential for good operation of the algorithm. This is determined by parameter horizon, which should be tuned according to the height and tilt angle of the JeVois camera on your vehicle.

ParameterTypeDescriptionDefaultValid Values
(RoadNavigation) vpconffloatMinimum vanishing point confidence required to send a serial message0.0F-
(RoadFinder) horizonintEstimated vertical (Y) position of the horizon (pixels, with 0 at the top of the frame). Adjust this depending on the tilt angle of your camera and video input resolution.70-
(RoadFinder) supportintOffset (in pixels) between horizon line and horizon support line (positive values means support line is below horizon line.20-
(RoadFinder) spacingunsigned intSpacing between vanishing point candidates (pixels).20-
(RoadFinder) distthreshunsigned intVanishing point distance threshold (pixels).40-
params.cfg file
# Default paremeters that are set upon loading the module

# y position of the horizon line, on our toy car and using 176x144 inputs:
#horizon = 70

# y position of the horizon line, on our toy car and using 320x240 inputs:
horizon = 110
Detailed docs:RoadNavigation
Copyright:Copyright (C) 2016 by Laurent Itti, iLab and the University of Southern California
License:GPL v3
Support URL:
Other URL:
Address:University of Southern California, HNB-07A, 3641 Watt Way, Los Angeles, CA 90089-2520, USA