What's new about OTB? Rotating Header Image

OTB (Original, Tasty & Beautiful) Cake !

Some people can be talented in several domains. In addition to his good work with Orfeo ToolBox on a supervised method to enhance segmentation results for categories of objects of interest, our intern, Olivier Canévet, has proven many times to be a very good baker. When he started planning to bake an OTB cake, at first we did not think he was serious. But with the end of his internship coming, he showed up one morning with this :

It took him no less than 7 hours in two days to do it, including building the cake pan out of carton pieces. It is needless to say it took us far less time to eat it once cut, and we can assure you that this cake was as tasty as beautiful !

Cheers !

Julien Michel

Elevation maps from along-track stereo pairs

Processing stereo pairs to derive an elevation map is a very frequent feature request from our users. The otb::FineRegistrationImageFilter has been a first step toward it but it and allows to estimates disparities in a precise way (see for instance this previous post). Yet, there are several steps missing to achieve an elevation (not disparity) map using this tool. In the mean time, nowadays sensors allow to acquire Very High Resolution stereo-pairs along-track (from the same orbit, and near simultaneous acquisition). The future Pleiades sensor will even be able to acquire triplets of stereo-images. All these new sensors make use of the RPC modelling to provide highly accurate sensor-to-ground transformation.

Classical scheme

The classical scheme to compute elevation maps from these kind of data is to first resample both images of the pair into the epipolar geometry (with optional refinement of the sensor-to-ground function using GPCs and tie points) , where displacement related to height only occurs in the horizontal direction. A block-matching algorithm (just like otb::FineRegistrationImageFilter does) is then applied to retrieve the disparities. Finally, disparities are casted back to height values using sensor modelling and the elevation map is resampled to a cartographic projection. Several post-processing may be needed to make the produced elevation map usable, which are out of the scope of this post.

However, resampling to epipolar geometry is an heavy process that must be done for both images, and in the case of push-broom acquisition system, this resampling may be tricky. Moreover, this resampling is often done with an average elevation hypothesis, which leads to a wide range of disparities to explore in case of highly varying relief over the scene.

Implicit exploration of epipolar lines

In Orfeo ToolBox, the otb::GenericRSTransform allows to map points from sensor geometry to ground, but it also allows to map points between two sensors geometries : we can therefore use it to build a function that will transform a point of the first image of our stereo pair to its homologous point in the second image of the stereo pair, according to both RPC modelling (possibly refined). This function also uses an elevation value as a parameter (either average or drawn from a Digital Elevation Model), so that we in fact have a function which associate a point with a candidate elevation to its homologous point in the other image of the stereo pair. If we transform the same point with a range of candidate elevation, we are then implicitly exploring its associated epipolar line in the other image (a similar approach is performed by the MicMac software).

A new OTB filter

Using this principle, we developped a new OTB filter called otb::StereoSensorModelToElevationFilter. This filter takes a pair of along-track stereo images, and behave as follows. For each pixel of the first (reference) image:

  1. Extract the neighborood of the pixel in the reference image according to the user-defined radius,
  2. For candidate elevations in a user-defined range:
    1. Transform the patch grid into the secondary image with the sensor-to-sensor function and the candidate height
    2. Interpolate the corresponding secondary patch
    3. Compute cross-correlation of reference and secondary patches
  3. If best correlation is high enough, keep the corresponding best elevation candidate as the final elevation.

The output of the algorithm is directly an elevation map in meters, in the same geomety and grid as the reference image of the stereo pair. There is no need to resample both image in epipolar geometry, we only need to interpolate necessary locations along the epipolar lines in the secondary image. One can then orthorectify the elevation map in any desired cartographic projection.

We can see that a difficult part of this algorithm lies in the definition of the appropriate elevation exploration range. First, it requires to know about the average elevation over the area, and even with this information, elevation might be varying a lot over the scene, so this range has to be pretty wide, and lead to high computation time and lots of matching errors. Therefore, the filter allows to draw the initial elevation from a DEM (like SRTM for instance). The algorithm will then explore elevation values around this intiial local elevation, which allows to define a much more narrow range.

Results

Our first result will be a pair of Worldview 2 images over the city of Toulouse. The following results were obtained on a detail of the multi-spectral images (2.3 meters resolution) over the city stadium.

©CNES

©CNES

Applying the same algorithm to the panchromatic images (0.5 meters resolution) leads to noisier results, but we can still clearly distinguish the shape of the stadium. Image on the left is the correlation mask associated with the result (and produced by the filter). Dark values correspond to low correlation, brighter ones correspond to higher correlation. Please note that in this case, initial height has been subtracted from the result (filter option).

Next results were obtained from a pair of WorldView 2 multi-spectral images (2.3 meters)  over the area of Aurignac, in France, an area of agricultural and natural landscape with lots of valley and hills. The two images were first properly down-sampled at a resolution of around 11.5 meters before the process was applied. The upper-left corner is more blur because it is an area which is only viewed in one of the image, and thus contains only the initial SRTM elevation.

The two images bellow shows the difference between the SRTM (on the left) and the estimated elevation (on the right).

If one does not want to use an initial DEM, the filter can start from a user-defined average elevation. Next image shows the result of using an average elevation on the Aurignac scene. Red pixels are those for which correlation fails. The result looks worse than the one using an initial DEM because in the DEM case pixels for which correlation fails are given the intial DEM value, which leads to a smooth result.

Conclusion

Of course, this block-matching algorithm is still very simple, and we do not claim that these results are better, faster or even valid with respect to those one can produce with similar tools. For instance, it is obvious that the results suffers from the well known fattening effect, and no particular filtering is performed to reduce it. The same holds for occlusions, incorrect matches or stereoscopic effects. Using some work from Ipol would be of great interest in this purpose. Still, this filter provides a very simple tool to perform elevation map estimation from along-track stereo pairs which makes use of the generic implementation of sensor-to-ground and ground-to-sensor transformation in Orfeo ToolBox to avoid the need for explicit epipolar geometry. Built-in access to DEM allows to initialise the height map with sound values and thus to narrow the search space. One can also make use of the filter streaming capability to produce only part of the image, which is more delicate with the standard scheme. Future work is to speed-up the computation, since the filter currently makes an intensive use of the sensor to sensor transform and of interpolation. Reviewers are welcome to read and comment the code which can be found here, whereas users can give it a try using the new otbStereoSensorModelToElevationMap-cli application from the latest revision.

Take the survey !

The Orfeo ToolBox celebrates its 5th birthday at the end of June 2011 and it seems to be the right time to learn more about our users and contributors. It will help us to find the best road-map for the future, to try to improve the weaker aspects of the software and to set priorities among the vast field of possible ways.

This will also allows us to measure the number of users and their typical usage. For all these reasons it would be very kind of you if you could take the Users and Contributors Survey.

It will only take about 10 minutes of your time. We are planning to provide the results in September.

Remember that you are welcome to give feedbacks, comment, contributions at any time through our users and developers mailing list. Do not hesitate to get involved !

Many thanks to all of you for your support,

The OTB development team

Orfeo Toolbox selected for ESA SOCIS

Inspired by the Google initiative and their GSoC, ESA has launched their Summer of Code in Space.

The idea is more or less the same as for the GSoC : ESA selects open source projects as mentoring organizations, and propose to pay students a very decent amount of money to work on those open source projects during a few months in the summer.

Students have the opportunity to work on fun projects during the summer, and in the end they can add an interesting experience to their resume.

The list of mentoring organizations selected by ESA can be seen here. As you can see, Orfeo Toolbox is selected for this pilot year !

An ideas list for this program has been compiled here, so students can start applying by picking up ideas from there. Of course, any other project which improves the library will be welcome, as long as we have the opportunity to discuss it before the application.

This year being a pilot year, the schedule is very tight, and students must apply before the 27th of July.

Students : we are looking forward to hearing from you soon !

 

 

Release of OTB 3.10 and Monteverdi 1.8

Dear all,

CNES is proud to announce the release of Orfeo ToolBox 3.10, codename Feliç aniversari. It coincides with the fifth anniversary of the Orfeo ToolBox library (release 1.0 was done the 06/30 2006!).

Release Candidate: thank you !

We would like to thanks all the users for their great feedback after the Release Candidate announcement : thanks to their work, 9 more bugs have been spotted and fixed between the Release Candidate announcement and today.

Take the survey !

Orfeo ToolBox is all about you ! To celebrate the fifth birthday of the OTB, we would like to collect your feedback : a better knowledge of your usage of Orfeo Toolbox and of your processing needs will  help us to improve the tool. Please take the Users and Contributors Survey, it will only take about 10 minutes of your time.

Even more easy to install

The source packages for OTB (Library 3.10, Applications 3.10, Monteverdi 1.8 and Wrapping 1.6) are available on sourceforge as usual. For our Ubuntu (10.04, 10.10 and 11.04) users the new version is available for update through you favorite package manager software.  OpenSuse and CentOS packages will be available in a few days.

For MS-Windows users, there are also a binary auto-install packages available for Monteverdi, OTB-Applications and OTB-Wrapping! Last, a brand new Apple Disk Image (DMG) is also available for Monteverdi.

All the details related to the installation of these binary packages can be found on the download page.

Powerful new features

There are lots of new features in this release! The list of new main add-ons is available here.

There are exciting new stuffs in all corners of the library. New functionalities include among other things :

  1. A new multi-image supervised classification suite in OTB-Applications described here.
  2. An application to perform segmentation based on connected components and object based image analysis (see description here)
  1. A framework for cartographic database creation and validation based on the fusion of features in the framework of Dempster-Shafer evidence theory (see description here)

Documentation for all

The OTB development team also initiated, in addition to the OTB software guide, a guide for OTB-Applications and Monteverdi, dedicated to non-developers. This guide is composed of a brief tour of OTB-Applications and Monteverdi, followed by a set of recipes to perform usual remote sensing tasks with both tools. A first version is available here.

Best regards,

Julien Michel, on behalf of OTB development  team.