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
parameters:
- 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
- detector.
- 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
- Equal Height Contour (EHC):
Tools
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
Conclusions
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.
Acknowledgment
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.