Road Recognition in Satellite Imagery

Satellite imagery is a wide spreading tool both for military and civil purposes. Embedding an automated road recognition tool

Satellite imagery is a wide spreading tool both for military and civil purposes.
Embedding an automated road recognition tool within the photograph analysis
phase can effectively aid the image handling, save time and human resources.
We set forth to develop methods of effectively solving such a problem using
signal and image processing knowledge.

The problem

The seemingly simple task of extracting roads out of an image is a rather
complex automated task. Satellite imagery varies in resolution, quality,
and formats. The objects photographs contain different background, terrain,
road types and sizes and so forth.
i.e. :

The solution

The eye perceives roads in images as directional patterns in high frequency
changes of colors in the image. First of all we pre-process the image with
Coherence Enhancing Diffusion : We use this method in order to complete lines and segments with similar orientation whilst blurring the low frequency changes in the image. The method is implemented using the Wieckert tensor

We present the set of tools we developed in order to solve to problem and
integrate them into two different flows that produce the output :
Hessian Edge Detector :
We extract the Eigenvalues out of the hessian matrix above.
Using hysteresis thresholding and a relation of both Eigenvalues we create
two robust edge detectors :

Morphological Filtering :
We use a morphological process over a binary input image, using straight
line connectivity over several angles. The output is separated into objects
and each object is marked as “Road-Like” / “Non-Road-Like” using the next

  • Object if tilted around its main orientation to an upright position.
  • Width vs. Length Ratio
  • Perimeter vs. Area Ratio
  • Minimum Area
    Neural Network :

        Using learning mechanisms we extract “road like” segments out of the
        image. We use back propagation learning with a hidden layer containing 8 neurons:


    The network inputs are filters processed over the whole image and fed into the network pixel wise. The filters consist of :

    • an array of hessian edge detectors over different standard deviation scales and sampling matrix sizes
    • same scaled hessian relation images
    • several derivations of the image in different directions
    • LOG filters
    • canny, sobel and prewitt edge detectorsthe network training set is fed manually (predefined image with roads
      marked as ‘1’, else ‘0’) the network outputs are thresholded and morphologically filtered:


    Suspected Road Pixel Extraction :

    • Neural Network :
          Using a “tough” trained network (high threshold) we obtain data
          which is mostly “Road-Like”. The network’s output is separated into
          image blocks and each block into objects using morphological close
          function with a disk object. The maximum value pixel under each
          object is determined as the most “Road Like” in the image block.
    • Hough Transform :
          Under the assumption that the image is larger than a specific resolution,
          we search for all the lines in the image that are longer than a
          specific length (proportional to the image resolution). The Hough
          transform enables us to find such lines on the hessian edge detected
          images. The lines detected are mostly road margins due to the behavior
          of the second derivatives in the hessian. We find the nearest directional
          object near the line and mark it as “Road Like” :


      Road Extraction :

      • Equal Height Contour (EHC):
            Assuming we have a “Road-Like” start point (pixel), we “walk”
            on an interpolated grayscale image, moving to the direction
            perpendicular to the gradient. In this method we actually try
            to move on the same or closest grayscale to the current. Avoiding
            repetitions and u-turns by determining the next valid angle
            according to the Eigen vector obtained with the hessian edge
            Road ends are set by :
        • large change of grayscale
        • reach of start point
        • road detected crosses itself
        • detected road’s curvature not valid
        • reach of image margins
      • Dijkstra Infinite Horizon Algorithm :
            Using the shortest path algorithm on the set of “Road-Like”
            pixels, we attempt to extract the matching roads.
            Each pixel is set as a node with 8 direction connectivity –
            all neighboring pixels.
            We train a “weakly trained” neural network (so we have enough
            data in grayscale of the “Road-Likeliness” of each pixel in
            the image). And set the price between two pixels as a function
            of the distance passed and the difference on the Weak neural
            network output.
            Detection limiters :
        • minimum price
        • maximum price per distance
        • margins
          in order to detect the opposite side of the road we crop the
          image accordingly

      The combined process scheme :

      Results :


    Code Written in Matlab 7.5
    Graphical User Interfaces designed with Matlab:

    Pictures provided by Google Earth.
    Pictures Edited with Paint.Net
    CED theory – Rein Van den Boomgarden


    We have managed to produce a tool that with proper parametrical adjustments
    is a powerful road extractor.
    Each of the separate methods reaches high performance results but slightly
    different. Integrating the two of them and adjusting the parameters can enhance
    and improve the road extractor results, while at the same time more
    computing memory and time is needed.


    We are grateful to our project supervisor Udi Pfeffer for his help and
    guidance throughout this work, and Johanan Erez. We are also grateful
    to the Ollendorff Minerva Center for supporting this project.