diff --git a/Modules/Applications/AppClassification/app/otbTrainImagesClassifier.cxx b/Modules/Applications/AppClassification/app/otbTrainImagesClassifier.cxx index 3c1bada305be2ec720d0ee0f32e49d571213fb18..5a5512b35a7fc52465a840557e1b786374ca0b15 100644 --- a/Modules/Applications/AppClassification/app/otbTrainImagesClassifier.cxx +++ b/Modules/Applications/AppClassification/app/otbTrainImagesClassifier.cxx @@ -73,20 +73,20 @@ public: // Change mandatory of input vector depending on supervised and unsupervised mode. - if( HasValue( "classifier" ) ) - { - UpdateInternalParameters( "training" ); - switch( trainVectorBase->GetClassifierCategory() ) - { - case TrainVectorBase::Unsupervised: - MandatoryOff( "io.vd" ); - break; - default: - case TrainVectorBase::Supervised: - MandatoryOn( "io.vd" ); - break; - } - } +// if( HasValue( "classifier" ) ) +// { +// UpdateInternalParameters( "training" ); +// switch( trainVectorBase->GetClassifierCategory() ) +// { +// case TrainVectorBase::Unsupervised: +// MandatoryOff( "io.vd" ); +// break; +// default: +// case TrainVectorBase::Supervised: +// MandatoryOn( "io.vd" ); +// break; +// } +// } } @@ -113,14 +113,14 @@ public: ComputePolygonStatistics( imageList, validationVectorFileList, fileNames.polyStatValidOutputs ); ComputeSamplingRate( fileNames.polyStatValidOutputs, fileNames.rateValidOut, rates.fmv ); SelectAndExtractValidationSamples( fileNames, imageList, validationVectorFileList ); - if( HasInputVector ) // if input vector is provided the sampleTrainOutputs is the previously extracted sampleOutputs - fileNames.sampleTrainOutputs = fileNames.sampleOutputs; +// if( HasInputVector ) // if input vector is provided the sampleTrainOutputs is the previously extracted sampleOutputs + fileNames.sampleTrainOutputs = fileNames.sampleOutputs; } else if(GetParameterFloat("sample.vtr") != 0.0)// Split training data to validation { - if( !HasInputVector ) // Compute one class statistics and sampling rate for the generated vector. - ComputePolygonStatistics( imageList, fileNames.sampleOutputs, fileNames.polyStatTrainOutputs ); - ComputeSamplingRate( fileNames.polyStatTrainOutputs, fileNames.rateTrainOut, rates.fmt ); +// if( !HasInputVector ) // Compute one class statistics and sampling rate for the generated vector. +// ComputePolygonStatistics( imageList, fileNames.sampleOutputs, fileNames.polyStatTrainOutputs ); +// ComputeSamplingRate( fileNames.polyStatTrainOutputs, fileNames.rateTrainOut, rates.fmt ); SplitTrainingToValidationSamples( fileNames, imageList ); } else // nothing to do, except update fileNames @@ -140,16 +140,16 @@ public: std::vector<std::string> vectorFileList, const SamplingRates& rates) { - if( !vectorFileList.empty() ) // Select and Extract samples for training with computed statistics and rates - { +// if( !vectorFileList.empty() ) // Select and Extract samples for training with computed statistics and rates +// { ComputePolygonStatistics( imageList, vectorFileList, fileNames.polyStatTrainOutputs ); ComputeSamplingRate( fileNames.polyStatTrainOutputs, fileNames.rateTrainOut, rates.fmt ); SelectAndExtractTrainSamples( fileNames, imageList, vectorFileList, SamplingStrategy::CLASS ); - } - else // Select training samples base on geometric sampling if no input vector is provided - { - SelectAndExtractTrainSamples( fileNames, imageList, vectorFileList, SamplingStrategy::GEOMETRIC, "fid" ); - } +// } +// else // Select training samples base on geometric sampling if no input vector is provided +// { +// SelectAndExtractTrainSamples( fileNames, imageList, vectorFileList, SamplingStrategy::GEOMETRIC, "fid" ); +// } } @@ -165,7 +165,7 @@ public: unsigned long nbInputs = imageList->Size(); - if( !HasInputVector && trainVectorBase->GetClassifierCategory() == TrainVectorBase::Supervised ) + if( !HasInputVector ) // && trainVectorBase->GetClassifierCategory() == TrainVectorBase::Supervised ) { otbAppLogFATAL( "Missing input vector data files" ); } diff --git a/Modules/Applications/AppClassification/include/otbTrainImagesBase.txx b/Modules/Applications/AppClassification/include/otbTrainImagesBase.txx index a0b881ee58c6af146c3bf3b911f0bccfc343e529..70bd7798b79dabe6d24bb22b3142a91ade47b449 100644 --- a/Modules/Applications/AppClassification/include/otbTrainImagesBase.txx +++ b/Modules/Applications/AppClassification/include/otbTrainImagesBase.txx @@ -37,7 +37,7 @@ void TrainImagesBase::InitIO() SetParameterDescription( "io.il", "A list of input images." ); AddParameter( ParameterType_InputVectorDataList, "io.vd", "Input Vector Data List" ); SetParameterDescription( "io.vd", "A list of vector data to select the training samples." ); - MandatoryOff( "io.vd" ); + MandatoryOn( "io.vd" ); AddParameter( ParameterType_Empty, "cleanup", "Temporary files cleaning" ); EnableParameter( "cleanup" ); @@ -83,12 +83,12 @@ void TrainImagesBase::InitSampling() SetMaximumParameterFloatValue( "sample.vtr", 1.0 ); SetMinimumParameterFloatValue( "sample.vtr", 0.0 ); - AddParameter( ParameterType_Float, "sample.percent", "Percentage of sample extract from images" ); - SetParameterDescription( "sample.percent", "Percentage of sample extract from images for " - "training and validation when only images are provided." ); - SetDefaultParameterFloat( "sample.percent", 1.0 ); - SetMinimumParameterFloatValue( "sample.percent", 0.0 ); - SetMaximumParameterFloatValue( "sample.percent", 1.0 ); +// AddParameter( ParameterType_Float, "sample.percent", "Percentage of sample extract from images" ); +// SetParameterDescription( "sample.percent", "Percentage of sample extract from images for " +// "training and validation when only images are provided." ); +// SetDefaultParameterFloat( "sample.percent", 1.0 ); +// SetMinimumParameterFloatValue( "sample.percent", 0.0 ); +// SetMaximumParameterFloatValue( "sample.percent", 1.0 ); ShareSamplingParameters(); ConnectSamplingParameters(); @@ -274,12 +274,12 @@ void TrainImagesBase::SelectAndExtractSamples(FloatVectorImageType *image, std:: // Change the selection strategy based on selected sampling strategy switch( strategy ) { - case GEOMETRIC: - GetInternalApplication( "select" )->SetParameterString( "sampler", "random", false ); - GetInternalApplication( "select" )->SetParameterString( "strategy", "percent", false ); - GetInternalApplication( "select" )->SetParameterFloat( "strategy.percent.p", - GetParameterFloat( "sample.percent" ), false ); - break; +// case GEOMETRIC: +// GetInternalApplication( "select" )->SetParameterString( "sampler", "random", false ); +// GetInternalApplication( "select" )->SetParameterString( "strategy", "percent", false ); +// GetInternalApplication( "select" )->SetParameterFloat( "strategy.percent.p", +// GetParameterFloat( "sample.percent" ), false ); +// break; case CLASS: default: GetInternalApplication( "select" )->SetParameterString( "vec", vectorFileName, false );