Coming next: Fine Registration

Local displacements estimation between two images is a common task in many remote sensing applications : DEM extraction, clouds detection … In Orfeo ToolBox, some filters are already available to perform this kind of task, like the otb::NCCRegistrationFilter based on a finite differences method or the otb::DisparityMapEstimationMethod which allows to apply ITK registration framework locally on an irregular grid. Yet, an efficient implementation of the classical block matching algorithm was still missing. Starting next release and already available for our early users (see how to get the latest source code), the otb::FineRegistrationImageFilter along with the Fine Correlation Monteverdi module intend to fill the gap.

The new otb::FineRegistrationImageFilter uses the full range of image-to-image metrics available in ITK (see the available metrics here) to perform block matching on a given neighborhood at each location of the reference image. The filter has two outputs, the optimum metric field and the deformation field (i.e. displacement in each image direction for which the optimum has been found), and both outputs support streaming. The filter performs dichotomic sub-pixel refinement up to a user defined accuracy, allows to generate coarser result with respect to a given grid step and can take into account an initial offset between the two images. It can also process reference and moving images with different sizes, origins and spacings. Here are some results of applying this filter to a pair of small stereo patches with two different metrics: the correlation and the mean reciprocal square difference (MRSD).

First image of the stereo pair

First image

Second image resampled using displacements estimated from correlation

Second image resampled (correlation)

Second image resampled using displacements estimated from Mean Reciprocal Square Difference

Second image resampled (MRSD)

Second image of the stereo pair

Second image of the stereo pair

Maximum of correlation field

Correlation field

Maximum of Mean Reciprocal Square Difference field

MRSD field

Displacement in the epipolar direction estimated using Correlation

Displacement (correlation)

Displacement in the epipolar direction estimated using Mean Reciprocal Square Difference

Displacement (MRSD)

This new filter can be accessed through Monteverdi using the new Fine Correlation module. This module allow to perform displacement estimation using the standard correlation metric. It also includes an optional gaussian smoothing of the input images, an optional resampling of the second image and allows to tune all the parameters in a clear and compact way. Here is what it looks like.

The new Fine Correlation module for Monteverdi

The new Fine Correlation module for Monteverdi

Here is an example of application of this new feature. Using Monteverdi, we produce two patches of ortho-image from a Quickbird bundle product over a cloudy part of the scene. The panchromatic image has a ground sampling distance of 0.7 meters, whereas the multispectral one has 2.8 meters.

Cloudy extract of a Quickbird panchromatic ortho-image


Cloudy extract of a Quickbird multispectral ortho-image


Due to the space between the panchromatic and multispectral detectors, there is a small stereo effect between the two images. This space also induces a small time delay between the two images, that is why some moving objects (such as cars) show a small displacement. These two effects are well known (see this paper for instance).

Using the new Fine Correlation module, it is possible to estimate displacements between the intensity of the multispectral image and a gaussian-smoothed version of the panchromatic image. In the below image of the estimated displacement amplitude, we can clearly see that the cloud, being a lot higher than surrounding ground, shows a noticeable displacement due to the stereo effect.

Maximum correlation between multispectral and panchromatic image

Correlation field

Amplitude of displacement between multispectral and panchromatic image

Amplitude of displacement

Please feel free to give a try to the new filter and module, and do not hesitate to send your feedback!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.