We are very happy to announce that the OTB 3.16.0 Release Candidate, codename “v(n+1) = sqrt((v(n)-3)*100)” is ready for testing ! Sources (OTB, Monteverdi) and binary packages (Monteverdi for Mac OS X and Windows) can be downloaded here. This new release includes no less than 13 new ready-to-use applications, ranging from geometry refinement to push&play stereo framework, through classification maps regularization and fusion. There are also a great deal of major improvements in the core library (as listed in the release note). Here are some of the major changes.
Same code, extended use
OTB 3.16 provides support for both reading and writing extended filenames. Extended filenames provide a way to influence how your data are read and written by Orfeo ToolBox. You can use them to specify an external geom file for sensor modeling, tell Gdal that you want to write a TILED GeoTiff, read a different subdataset or resolution (for multi-resolution data), or manage ortho-ready product by skipping either geographic or sensor-model information. For instance :
otbcli_OrthoRectification -io.in "input.JP2?&geom=someGeomFile.geom&resol=2" -io.out "output.tif?&writegeom=false&gdal:co:TILED=yes&streaming:type=tiled&streaming:sizemode=height&streaming:sizevalue=512"
Tells OTB to:
- Attach the sensor modelling and metadata from someGeomFile.geom to the input.JP2 image,
- Read the 2nd level of resolution of the input.JP2 Jpeg2000 file,
- Not write the geom file associated with the output image,
- Tell Gdal to write the output as a TILED Tiff,
- Write the output by doing tiled streaming, specifying tile size to 512.
The complete documentation of extended filenames options can be found in this page of the wiki. The most important thing to understand about this extended filenames is that their support is not limited to the applications. Any OTB code compiled against OTB 3.16 and using either ImageFileReader or ImageFileWriter supports them. It means that your home-made code will seamlessly support them as soon as you rebuild it with OTB 3.16!
Geometric accuracy is better, but you can improve it
There has been a great refactoring of bridge classes to OSSIM for elevation data management, sensor modeling and RPC model estimation. Almost nothing has changed from the end-user perspective, but this work behind the scene led to an improvement of sensor modeling accuracy. It can be worth replaying your ortho-rectifications, you might be surprised! But even with this improved accuracy, sensor models have their inner imprecision, so that if you have several images over the same area, you will not get a perfect ground registration. That is where the new HomologousPointsExtraction and RefineSensorModel applications come to your help.
HomologousPointsExtraction application allows you to find corresponding points between two images using the state-of-the-art SIFT or SURF method. The geobins mode of this application allows you to search for matching points spread all over the image very quickly (but not exhaustively). You can also filter the matched points with respect to the theoretical precision of the co-localization function. With the 2wgs84 option, you can match two sensor geometry images or a sensor geometry image with an ortho-rectified refererence. In all cases, you get a list of ground control points spread all over your image …
… Which you can directly send to the RefineSensorModel application. This application will make use of OSSIM capabilities to align the sensor model from a geom file with the set of ground control points, and produce an updated geom file. It also outputs global statistics, a per ground control points statistics file and a vector file containing residues that you can display in a GIS software. Now, you can use the output geom file (using extended filenames!) to get a better relative accuracy for tasks such as registration prior to change detection, or stereo processing for instance.
Extract features, (classify), regularize, fuse, assess
Almost all features (all those compatible with large file processing through streaming) from the Features Extraction Monteverdi module are now available through the applications :
- Radiometric indices in RadiometricIndices application,
- Textures in HaralickTextureExtraction and SFSTextureExtraction applications,
- Local bands statistics in LocalStatisticExtraction application,
- Edge extraction in EdgeExtraction application,
- Binary and grayscale morphological operation in BinaryMorphologicalOperation and GrayscaleMorphologicalOperation applications.
Classification maps can be regularized by a majority voting algorithm with the ClassificationMapRegularization application, and several classification maps obtained with different combination of features, training sets and classification algorithm can now be fused (also by majority voting) using the FusionOfClassifications application.
And if you want to assess your classification performances at the end of the day, you can use the ComputeConfusionMatrix application, which allows for generic computation (independent of the classification algorithm) of the confusion matrix, with either raster or vector ground truth.
One-click DEM generation
Extracting Digital Elevation Model (DEM) from stereo VHR pair is a complex tasks, with several methods and steps within these methods. These steps often require manual parameters tuning. Starting OTB 3.14, we provided tools to implement one of the classical method for DEM generation:
- Resampling in epipolar geometry,
- Horizontal sub-pixel block-matching,
- Cleaning and further processing of the resulting disparity map,
- Conversion of disparities to elevation and ground projection.
These steps can be achieved by combining several applications, as described in this recipe of the CookBook. But doing so requires a great deal of specific knowledge for parameter estimation and tuning, and is quite an heavy process. Therefore, we decided to package all these steps into one simple application with as few parameters as possible : the StereoFramework application.
This application will process two raw sensor geometry images composing a stereo pair, a digital elevation model and a few understandable parameters (like the resolution of the output DEM, or the minimum and maximum offset you expect with respect to the input DEM), and will output a ready to use, fully processed DEM.
If you want to have full control on all the steps, this application is probably not for you, but if you are looking for one-click DEM generation which does not require any particular knowledge on how to compute a DEM, this is what you are looking for! Of course, you can expect better results if you first use the HomologousPointsExtraction and RefineSensorModel applications to enhance the models accuracy first.