OTB
9.0.0
Orfeo Toolbox
|
#include <otbLearningApplicationBase.h>
Public Member Functions | |
ClassifierCategory | GetClassifierCategory () |
virtual const char * | GetNameOfClass () const |
virtual const std::vector< std::string > & | GetSupervisedClassifier () const |
virtual const std::vector< std::string > & | GetUnsupervisedClassifier () const |
Public Member Functions inherited from otb::Wrapper::Application | |
void | AddDocTag (const std::string &) |
unsigned int | AddExample (const std::string &comm="") |
void | AddImageToParameterInputImageList (std::string const ¶meter, ImageBaseType *img) |
void | AddParameterStringList (std::string const ¶meter, const std::string &str) |
void | ClearParameterInputImageList (std::string const ¶meter) |
void | ClearValue (std::string const ¶mKey) |
bool | ConnectImage (std::string in, Application *app, std::string out) |
void | DisableParameter (std::string const ¶mKey) |
void | EnableParameter (std::string const ¶mKey) |
int | Execute () |
int | ExecuteAndWriteOutput () |
std::vector< std::string > | GetChoiceKeys (std::string const ¶mKey) |
std::vector< std::string > | GetChoiceNames (std::string const ¶mKey) |
std::string | GetCLExample () |
double | GetDefaultParameterDouble (std::string const ¶meter) |
float | GetDefaultParameterFloat (std::string const ¶meter) |
int | GetDefaultParameterInt (std::string const ¶meter) |
virtual const char * | GetDescription () const |
virtual const char * | GetDocAuthors () const |
DocExampleStructure::Pointer | GetDocExample () |
virtual const char * | GetDocLimitations () const |
virtual const std::string & | GetDocLink () const |
virtual const char * | GetDocLongDescription () const |
virtual const char * | GetDocSeeAlso () const |
virtual std::vector< std::string > | GetDocTags () const |
std::string | GetExampleComment (unsigned int id) |
unsigned int | GetExampleNumberOfParameters (unsigned int id) |
std::string | GetExampleParameterKey (unsigned int exId, unsigned int paramId) |
std::string | GetExampleParameterValue (unsigned int exId, unsigned int paramId) |
std::string | GetHtmlExample () |
unsigned int | GetImageNbBands (const std::string &key, unsigned int idx=0) |
ImageBaseType::PointType | GetImageOrigin (const std::string &key, unsigned int idx=0) |
std::string | GetImageProjection (const std::string &key, unsigned int idx=0) |
ImageBaseType::RegionType | GetImageRequestedRegion (const std::string &key, unsigned int idx=0) |
ImageBaseType::SizeType | GetImageSize (const std::string &key, unsigned int idx=0) |
ImageBaseType::SpacingType | GetImageSpacing (const std::string &key, unsigned int idx=0) |
double | GetLastExecutionTiming () const |
bool | GetListViewSingleSelectionMode (const std::string ¶meter) |
otb::Logger * | GetLogger () const |
virtual const char * | GetName () const |
unsigned int | GetNumberOfElementsInParameterInputImageList (std::string const ¶meter) |
unsigned int | GetNumberOfExamples () |
std::vector< std::pair< std::string, std::string > > | GetOutputParametersSumUp () |
std::string | GetParameterAsString (std::string const ¶mKey) |
Parameter * | GetParameterByKey (std::string const ¶meter, bool follow=true) |
const Parameter * | GetParameterByKey (std::string const ¶meter, bool follow=true) const |
ComplexDoubleImageType * | GetParameterComplexDoubleImage (std::string const &) |
ComplexDoubleVectorImageType * | GetParameterComplexDoubleVectorImage (std::string const &) |
ComplexFloatImageType * | GetParameterComplexFloatImage (std::string const &) |
ComplexFloatVectorImageType * | GetParameterComplexFloatVectorImage (std::string const &) |
ComplexInt16ImageType * | GetParameterComplexInt16Image (std::string const &) |
ComplexInt16VectorImageType * | GetParameterComplexInt16VectorImage (std::string const &) |
ComplexInt32ImageType * | GetParameterComplexInt32Image (std::string const &) |
ComplexInt32VectorImageType * | GetParameterComplexInt32VectorImage (std::string const &) |
std::string | GetParameterDescription (std::string const ¶mKey) |
double | GetParameterDouble (std::string const ¶meter) const |
DoubleImageType * | GetParameterDoubleImage (std::string const &) |
DoubleVectorImageType * | GetParameterDoubleVectorImage (std::string const &) |
float | GetParameterFloat (std::string const ¶meter) const |
FloatImageType * | GetParameterFloatImage (std::string const &) |
FloatVectorImageType * | GetParameterFloatVectorImage (std::string const &) |
FloatVectorImageType * | GetParameterImage (std::string const ¶meter) |
FloatVectorImageListType * | GetParameterImageList (std::string const ¶meter) |
int | GetParameterInt (std::string const ¶meter) const |
Int16ImageType * | GetParameterInt16Image (std::string const &) |
Int16VectorImageType * | GetParameterInt16VectorImage (std::string const &) |
Int32ImageType * | GetParameterInt32Image (std::string const &) |
Int32VectorImageType * | GetParameterInt32VectorImage (std::string const &) |
ParameterGroup * | GetParameterList () |
std::string | GetParameterName (std::string const ¶mKey) |
ImageBaseType * | GetParameterOutputImage (std::string const ¶meter) |
ImagePixelType | GetParameterOutputImagePixelType (std::string const ¶meter) |
Role | GetParameterRole (std::string const ¶mKey) const |
std::vector< std::string > | GetParametersKeys (bool recursive=true) |
std::string | GetParameterString (std::string const ¶meter) const |
std::vector< std::string > | GetParameterStringList (const std::string ¶meter) |
ParameterType | GetParameterType (std::string const ¶mKey) const |
UInt16ImageType * | GetParameterUInt16Image (std::string const &) |
UInt16VectorImageType * | GetParameterUInt16VectorImage (std::string const &) |
UInt32ImageType * | GetParameterUInt32Image (std::string const &) |
UInt32VectorImageType * | GetParameterUInt32VectorImage (std::string const &) |
UInt8ImageType * | GetParameterUInt8Image (std::string const &) |
UInt8RGBAImageType * | GetParameterUInt8RGBAImage (std::string const &) |
UInt8RGBImageType * | GetParameterUInt8RGBImage (std::string const &) |
UInt8VectorImageType * | GetParameterUInt8VectorImage (std::string const &) |
UserLevel | GetParameterUserLevel (std::string const ¶mKey) const |
VectorDataType * | GetParameterVectorData (std::string const ¶meter) |
VectorDataListType * | GetParameterVectorDataList (std::string const ¶meter) |
std::string | GetProgressDescription () const |
itk::ProcessObject * | GetProgressSource () const |
const FieldParameter::TypeFilterType & | GetTypeFilter (std::string const &key) const |
bool | HasAutomaticValue (std::string const ¶mKey) const |
bool | HasUserValue (std::string const ¶mKey) const |
bool | HasValue (std::string const ¶mKey) const |
void | Init () |
bool | IsApplicationReady () |
bool | IsDeprecated () |
bool | IsInitialized () const |
bool | IsMandatory (std::string const ¶mKey) const |
bool | IsParameterEnabled (std::string const ¶mKey, bool recurseParents=false) const |
bool | IsParameterMissing (const std::string &key) const |
void | LoadParametersFromXML (const std::string &filename) |
void | PropagateConnectMode (bool isMem) |
unsigned long | PropagateRequestedRegion (const std::string &key, ImageBaseType::RegionType region, unsigned int idx=0) |
void | SaveParametersToXML (const std::string &filename) |
void | SetDefaultOutputComplexPixelType (std::string const ¶meter, ComplexImagePixelType type) |
void | SetDefaultOutputPixelType (std::string const ¶meter, ImagePixelType type) |
void | SetDefaultParameterDouble (std::string const ¶meter, double value) |
void | SetDefaultParameterFloat (std::string const ¶meter, float value) |
void | SetDefaultParameterInt (std::string const ¶meter, int value) |
void | SetDescription (const std::string &) |
virtual void | SetDocAuthors (const std::string &) |
void | SetDocExampleParameterValue (const std::string key, const std::string value, unsigned int exId=0) |
virtual void | SetDocLimitations (const std::string &) |
virtual void | SetDocLink (const std::string &link) |
virtual void | SetDocLongDescription (const std::string &) |
virtual void | SetDocSeeAlso (const std::string &) |
virtual void | SetDocTags (std::vector< std::string >) |
void | SetExampleComment (const std::string &comm, unsigned int i) |
void | SetListViewSingleSelectionMode (std::string const ¶meter, bool status) |
void | SetLogger (otb::Logger *logger) |
void | SetMaximumParameterDoubleValue (std::string const ¶meter, double value) |
void | SetMaximumParameterFloatValue (std::string const ¶meter, float value) |
void | SetMaximumParameterIntValue (std::string const ¶meter, int value) |
void | SetMinimumParameterDoubleValue (std::string const ¶meter, double value) |
void | SetMinimumParameterFloatValue (std::string const ¶meter, float value) |
void | SetMinimumParameterIntValue (std::string const ¶meter, int value) |
virtual void | SetName (const std::string &) |
void | SetNthParameterInputImageList (std::string const ¶meter, const unsigned int &id, ImageBaseType *img) |
void | SetNthParameterStringList (std::string const ¶meter, const unsigned int &id, const std::string &str) |
void | SetOfficialDocLink () |
void | SetParameterDescription (std::string const ¶mKey, std::string dec) |
void | SetParameterDouble (std::string const ¶meter, double value, bool hasUserValueFlag=true) |
void | SetParameterFloat (std::string const ¶meter, float value, bool hasUserValueFlag=true) |
void | SetParameterInputImage (std::string const ¶meter, ImageBaseType *inputImage) |
void | SetParameterInt (std::string const ¶meter, int value, bool hasUserValueFlag=true) |
void | SetParameterList (ParameterGroup::Pointer paramGroup) |
void | SetParameterOutputImage (std::string const ¶meter, FloatVectorImageType *value) |
void | SetParameterOutputImagePixelType (std::string const ¶meter, ImagePixelType pixelType) |
void | SetParameterOutputVectorData (std::string const ¶meter, VectorDataType *value) |
void | SetParameterString (std::string const ¶meter, std::string value, bool hasUserValueFlag=true) |
void | SetParameterStringList (std::string const ¶meter, std::vector< std::string > values, bool hasUserValueFlag=true) |
void | SetParameterUserValue (std::string const ¶mKey, bool value) |
void | SetRasterData (std::string const &key, std::string const &rasterData) |
void | SetTypeFilter (std::string const &key, FieldParameter::TypeFilterType const &typeFilter) |
void | SetVectorData (std::string const &key, std::string const &vectorData) |
void | Stop () |
void | UpdateParameters () |
void | WriteOutput () |
ImageMetadata & | GetImageMetadata (const std::string &key, unsigned int idx=0) |
void | SetImageMetadata (const ImageMetadata &imd, const std::string &key, unsigned int idx=0) |
itk::MetaDataDictionary | GetMetadataDictionary (const std::string &key, unsigned int idx=0) |
ImagePixelType | GetImageBasePixelType (const std::string &key, unsigned int idx=0) |
ImageBaseType * | GetParameterImageBase (const std::string &key, unsigned int idx=0) |
void | SetParameterImageBase (const std::string &key, ImageBaseType *img, unsigned int idx=0) |
void | RegisterPipeline () |
void | FreeRessources () |
bool | IsExecuteDone () |
bool | IsMultiWritingEnabled () |
Protected Member Functions | |
TargetListSampleType::Pointer | Classify (typename ListSampleType::Pointer validationListSample, std::string modelPath) |
void | DoInit () override |
LearningApplicationBase () | |
void | Train (typename ListSampleType::Pointer trainingListSample, typename TargetListSampleType::Pointer trainingLabeledListSample, std::string modelPath) |
~LearningApplicationBase () override | |
Protected Member Functions inherited from otb::Wrapper::Application | |
Application () | |
~Application () override | |
void | AddProcess (itk::ProcessObject *object, std::string description) |
void | AddChoice (std::string const ¶mKey, std::string const ¶mName) |
void | AddParameter (ParameterType type, std::string const ¶mKey, std::string const ¶mName) |
void | AddRAMParameter (std::string const ¶mKey="ram") |
void | AddRAMParameter (std::string const ¶mKey, std::string const ¶mName, unsigned int defaultValue) |
void | AddRANDParameter (std::string const ¶mKey="rand") |
void | AddRANDParameter (std::string const ¶mKey, std::string const ¶mName, unsigned int defaultValue) |
void | ClearChoices (std::string const &key) |
std::vector< int > | GetSelectedItems (std::string const ¶mKey) |
void | MandatoryOn (std::string const ¶mKey) |
void | MandatoryOff (std::string const ¶mKey) |
void | SetParameterUserLevel (std::string const ¶mKey, UserLevel level) |
void | SetParameterRole (std::string const ¶mKey, Role role) |
template<class TImageType > | |
TImageType * | GetParameterImage (std::string const ¶meter) |
void | AutomaticValueOn (std::string const ¶mKey) |
void | AutomaticValueOff (std::string const ¶mKey) |
template<class TImageType > | |
void | SetParameterOutputImage (std::string const ¶meter, TImageType *value) |
virtual void | SetMultiWriting (bool _arg) |
void | EnableInPrivateDo () |
void | DisableInPrivateDo () |
Protected Attributes | |
bool | m_RegressionFlag |
Private Member Functions | |
void | InitSupervisedClassifierParams () |
void | InitUnsupervisedClassifierParams () |
Private Attributes | |
std::vector< std::string > | m_SupervisedClassifier |
std::vector< std::string > | m_UnsupervisedClassifier |
LearningApplicationBase is the base class for application that use machine learning model.
This base class offers a DoInit() method to initialize all the parameters related to machine learning models. They will all be in the choice parameter named "classifier". The class also offers generic Train() and Classify() methods. The classes derived from LearningApplicationBase only need these 3 methods to handle the machine learning model.
There are multiple machine learning models in OTB, some imported from OpenCV and one imported from LibSVM. They all have different parameters. The purpose of this class is to handle the creation of all parameters related to machine learning models (in DoInit() ), and to dispatch the calls to specific train functions in function Train().
This class is templated over scalar types for input and output values. Typically, the input value type will be either float of double. The choice of an output value type depends on the learning mode. This base class supports both classification and regression modes. For classification (enabled by default), the output value type corresponds to a class identifier so integer types suit well. For regression, the output value should not be an integer type, but rather a floating point type. In addition, an application deriving this base class for regression should initialize the m_RegressionFlag to true in their constructor.
Definition at line 75 of file otbLearningApplicationBase.h.
typedef itk::SmartPointer<const Self> otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::ConstPointer |
Definition at line 82 of file otbLearningApplicationBase.h.
typedef TInputValue otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::InputValueType |
Definition at line 85 of file otbLearningApplicationBase.h.
typedef ModelType::InputListSampleType otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::ListSampleType |
Definition at line 99 of file otbLearningApplicationBase.h.
typedef otb::MachineLearningModelFactory<InputValueType, OutputValueType> otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::ModelFactoryType |
Definition at line 94 of file otbLearningApplicationBase.h.
typedef ModelFactoryType::MachineLearningModelTypePointer otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::ModelPointerType |
Definition at line 95 of file otbLearningApplicationBase.h.
typedef ModelFactoryType::MachineLearningModelType otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::ModelType |
Definition at line 96 of file otbLearningApplicationBase.h.
typedef TOutputValue otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::OutputValueType |
Definition at line 88 of file otbLearningApplicationBase.h.
typedef SampleImageType::PixelType otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::PixelType |
Definition at line 91 of file otbLearningApplicationBase.h.
typedef itk::SmartPointer<Self> otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::Pointer |
Definition at line 81 of file otbLearningApplicationBase.h.
typedef otb::VectorImage<InputValueType> otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::SampleImageType |
Definition at line 90 of file otbLearningApplicationBase.h.
typedef ModelType::InputSampleType otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::SampleType |
Definition at line 98 of file otbLearningApplicationBase.h.
typedef LearningApplicationBase otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::Self |
Standard class typedefs.
Definition at line 79 of file otbLearningApplicationBase.h.
typedef Application otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::Superclass |
Definition at line 80 of file otbLearningApplicationBase.h.
typedef ModelType::TargetListSampleType otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::TargetListSampleType |
Definition at line 102 of file otbLearningApplicationBase.h.
typedef ModelType::TargetSampleType otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::TargetSampleType |
Definition at line 101 of file otbLearningApplicationBase.h.
typedef ModelType::TargetValueType otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::TargetValueType |
Definition at line 103 of file otbLearningApplicationBase.h.
enum otb::Wrapper::LearningApplicationBase::ClassifierCategory |
Enumerator | |
---|---|
Supervised | |
Unsupervised |
Definition at line 108 of file otbLearningApplicationBase.h.
|
protected |
Definition at line 34 of file otbLearningApplicationBase.hxx.
|
overrideprotected |
Definition at line 40 of file otbLearningApplicationBase.hxx.
|
protected |
Generic method to load a model file and use it to classify a sample list
Definition at line 124 of file otbLearningApplicationBase.hxx.
References otb::RGBAPixelConverter< TInternalInputPixelType, TOutputPixelType >::New(), and otbAppLogFATAL.
|
overrideprotectedvirtual |
Init method that creates all the parameters for machine learning models
Implements otb::Wrapper::Application.
Reimplemented in otb::Wrapper::TrainVectorBase< TInputValue, TOutputValue >.
Definition at line 46 of file otbLearningApplicationBase.hxx.
References otb::Wrapper::Tags::Learning, and otb::Wrapper::ParameterType_Choice.
LearningApplicationBase< TInputValue, TOutputValue >::ClassifierCategory otb::Wrapper::LearningApplicationBase< TInputValue, TOutputValue >::GetClassifierCategory |
Retrieve the classifier category (supervisde or unsupervised) based on the select algorithm from the classifier choice.
Definition at line 65 of file otbLearningApplicationBase.hxx.
References otb::string_view::end(), and otb::find().
|
virtual |
Standard macro
Reimplemented from otb::Wrapper::Application.
Reimplemented in otb::Wrapper::TrainVectorBase< TInputValue, TOutputValue >.
|
virtual |
|
virtual |
|
private |
Specific Init and Train methods for each machine learning model Init Parameters for Supervised Classifier
Definition at line 80 of file otbLearningApplicationBase.hxx.
|
private |
Init Parameters for Unsupervised Classifier
Definition at line 112 of file otbLearningApplicationBase.hxx.
|
protected |
Generic method to train and save the machine learning model. This method uses specific train methods depending on the chosen model.
Definition at line 153 of file otbLearningApplicationBase.hxx.
References otb::RGBAPixelConverter< TInternalInputPixelType, TOutputPixelType >::New(), otbAppLogFATAL, and otbAppLogINFO.
|
protected |
Flag to switch between classification and regression mode. False by default, child classes may change it in their constructor
Definition at line 138 of file otbLearningApplicationBase.h.
|
private |
Definition at line 145 of file otbLearningApplicationBase.h.
|
private |
Definition at line 149 of file otbLearningApplicationBase.h.