Application improvements

This story gathers list of improvements for OTB Application from the old wiki.

General improvements

  • Improve otbgui look and feel (big white spaces, default window size, alignment, parameters ordering, etc.)
  • Add a "same as input" output type
  • Internationalization of otb applications (challenge: without making otbcli depend on qt)
  • Improve application Engine API to allow to mark some parameters as "Advanced". It will allow to provide solution to simplify some of the application GUI (like fold all advanced parameters in a specific widget)
  • Allow in-memory connection for OGRDataSource between applications (see TrainImagesClassifier)
  • In otb::Wrapper::Application, provide a "GenerateBufferOutput()" function that calls Update() on an output image parameter without writing it.
  • Interpolation on complex data
  • Save N-dimensional images (where N>2) (see SOM maps)
  • Display internal information of trained Machine Learning models (for instance, check the variables mostly used in a random forest model,...)

Existing applications

  • Implement IMORM approach in LSMSSmallRegionsMerging
  • ComputeConfusionMatrix: Also compute precision, recall and F1 score and optionally write to a csv file
  • Radiometric index: document which bands need to be filled for different indices
  • Improve performance of sampling applications :
    • In SampleExtraction : allow to compute features only on selected samples instead of computing them on the full image.
    • When using a mask during training, CPU usage is not at 100% but rather 70% : why ?
    • How to skip the processing of tiles without any sample ?
    • Better estimation of RAM usage for sampling applications (at the moment, the memory cost of OGRData is not taken into account).
  • (from M. Planells) In Orthorectification application: output the projected incidence angle (useful in case of SAR image orthorectification). See what is done in S1 toolbox Range Doppler Correction processing. It should output an optionnal image (1 local incidence angle per angle) TrainImageClassifierBetter: explain what happens when no validation vector is provided in the TrainImageClassifier application-> in this case the rating is used and -> idea: display the number of extracted pixels in the log ComputeConfusionMatrix: Improve the log of the confusion matrix (should be aligned properly) OpticalCalibration: Improve OpticalCalibration doc to explain that in case of TOA To Image the input is not a DN image

New applications

  • Apply a polynomial correction
  • Bundle block adjustment
  • Morphological profiles and profiles classification
  • The part of the object detection framework that can know be plugged in the new classification framework
  • DSM shading and other stuff like this
  • Proper denoising (the smoothing applications is quite poor and there are other filters in ITK)
  • Sharpening (there are filters in ITK)
  • HDR compression
  • Haze correction
  • Histogram application, lots of parameters (see numpy.histogram for inspiration) and which output format?

C++ API

  • Add topographic correction of reflectance. OTB filters can already take into account environment effects but not topo effects. It was requested on Mantis (https://bugs.orfeo-toolbox.org/view.php?id=1146)
  • Re-write a decent 'compare-ogr' method for the test driver
Edited by Yannick TANGUY