Skip to content
Snippets Groups Projects

Number of endmember estimation application

Merged Cédric Traizet requested to merge number_of_endmember_estimation into develop

Summary

Application for number of endmembers estimation in hyperspectral images.

Rationale

There are two classes in OTB for estimating the number of endmembers in hyperspectral images, one implementing the virtual dimensionality algorithm and the other using the Eigenvalue Likelihood Maximization algorithm, but there are no application corresponding to these algorithm.

This MR adds an application for the endmember number estimation. The application will first compute the covariance and correlation matrices of the input image using a otb::StreamingStatisticsVectorImageFilter and then use a EigenvalueLikelihoodMaximisation or a VirtualDimensionality object with the computed statistics to output an estimation of the number of endmembers.

Implementation Details

Classes and files

New file otbEndmemberNumberEstimation.cxx where the new application is implemented.

Applications

A new application has been created : EndmemberNumberEstimation, it has the following parameters :

  • in : input multi-channel image
  • number: number of endmembers
  • algo : chosen algorithm
    • elm : eigenvalue likelihood maximization
    • vd : virtual dimensionality
  • algo.vd.far : false alarm rate for the virtual dimensionality algorithm.
  • ram : ram parameter

Tests

New validation tests for both algorithms.

Copyright

The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.


Check before merging:

  • All discussions are resolved
  • At least 2 :thumbsup: votes from core developers, no :thumbsdown: vote.
  • The feature branch is (reasonably) up-to-date with the base branch
  • Dashboard is green
  • Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
Edited by Cédric Traizet

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Cédric Traizet changed the description

    changed the description

  • Suggestions:

    • Better explain that the output is made with the parameter "number" in the documentation.

    • Display the "number" value in the log. (Otherwise the application is unusable from the command line).

    • Move the "number" parameter to be the second parameter (so it shows up on top in otbgui).

  • I agree with @poughov. You have my +1.

  • Victor Poughon added 1 commit

    added 1 commit

    • fd887393 - DOC: improve doc of EndmemberNumberEstimation

    Compare with previous version

  • I pushed a commit with a few improvements to the documentation directly to the branch.

  • Cédric Traizet added 50 commits

    added 50 commits

    • fd887393...734a0d16 - 47 commits from branch develop
    • 59cd64eb - Merge branch 'develop' into number_of_endmember_estimation
    • 43a93438 - ENH: added progress reporting to the statistic estimation step
    • fa5f216a - DOC: updated doc for output number parameter

    Compare with previous version

  • added 1 commit

    • c4ff6702 - DOC: moved the output parameter up in the app so it shows up on top in otbgui

    Compare with previous version

  • I added progress reporting for the stat computation step.

    @poughov I don't think we need to print the output number of endmembers, as it is done automatically when we declare a parameter as "output" ( SetParameterRole("number", Role_Output) ), this is the log from the application :

    cedric@PO16088LX:~/Documents/OTB/develop_build$ bin/otbcli_EndmemberNumberEstimation -in ../otb-data/Input/Hyperspectral/synthetic/hsi_cube.tif
    2019-01-14 15:12:29 (INFO): Default RAM limit for OTB is 128 MB
    2019-01-14 15:12:29 (INFO): GDAL maximum cache size is 794 MB
    2019-01-14 15:12:29 (INFO): OTB will use at most 12 threads
    2019-01-14 15:12:29 (INFO): No kwl metadata found in file ../otb-data/Input/Hyperspectral/synthetic/hsi_cube.tif
    2019-01-14 15:12:29 (INFO): Computing statistics on input image...
    2019-01-14 15:12:29 (INFO): Estimated memory for full processing: 17.0898MB (avail.: 128 MB), optimal image partitioning: 1 blocks
    2019-01-14 15:12:29 (INFO): Estimation will be performed in 1 blocks of 100x100 pixels
    Statistic estimation step: 100% [**************************************************] (1s)
    2019-01-14 15:12:31 (INFO): Estimation algorithm: Eigenvalue Likelihood Maximization.
    Output parameters value:
    number: 5
  • ok!

  • This can be merged because:

  • Victor Poughon mentioned in commit 73406694

    mentioned in commit 73406694

Please register or sign in to reply
Loading