Point Cloud Library (PCL)
1.11.1-dev
|
41 #include <pcl/console/print.h>
42 #include <pcl/ml/svm.h>
50 #define Malloc(type, n) static_cast<type*>(malloc((n) * sizeof(type)))
115 std::vector<pcl::SVMDataPoint>
SV;
147 fprintf(stderr,
"Wrong input format at line %d\n", line_num);
152 inline const std::string&
185 svm_destroy_param(&
param_);
201 int nr_class = svm_get_nr_class(&
model_);
202 int* labels_ =
static_cast<int*
>(malloc(nr_class *
sizeof(
int)));
203 svm_get_labels(&
model_, labels_);
205 for (
int j = 0; j < nr_class; j++)
206 labels.push_back(labels_[j]);
219 if (svm_save_model(filename, &
model_)) {
220 fprintf(stderr,
"can't save model to file %s\n", filename);
269 svm_set_print_string_function(
277 svm_free_model_content(&
model_);
346 svm_set_print_string_function(
nullptr);
348 svm_set_print_string_function(&
printNull);
407 svm_free_model_content(&
model_);
414 assert(training_set.size() > 0);
418 PCL_ERROR(
"[pcl::%s::setInputTrainingSet] Classifier model not loaded!\n",
476 for (
int j = 0; j < i; j++) {
SVMModel getClassifierModel()
Return the result of the training.
float value
The value assigned to the correspondent feature.
int cross_validation_
Set too 1 for cross validating the classifier.
Base class for SVM SVM (Support Vector Machines).
void scaleProblem(svm_problem &input, svm_scaling scaling)
It scales the input dataset using the model information.
The structure initialize a single feature value for the classification using SVM (Support Vector Mach...
SVMClassify()
Constructor.
void setParameters(SVMParam param)
Change default training parameters (pcl::SVMParam).
bool saveNormClassProblem(const char *filename)
Save the normalized classification problem in a file (in svmlight format).
bool loadProblem(const char *filename)
Read in a problem (in svmlight format).
bool saveNormTrainingSet(const char *filename)
Save the normalized training set in a file (in svmlight format).
void doCrossValidation()
To cross validate the classifier.
bool saveTrainingSet(const char *filename)
Save the raw training set in a file (in svmlight format).
The structure initialize a model created by the SVM (Support Vector Machines) classifier (pcl::SVMTra...
bool classificationTest()
Start the classification on labelled input dataset.
std::vector< SVMData > training_set_
std::vector< pcl::SVMDataPoint > SV
Vector of features for the specific sample.
std::vector< std::vector< double > > prediction_
bool debug_
Set to 1 to see the training output.
bool trainClassifier()
Start the training of the SVM classifier.
bool loadNormClassProblem(const char *filename)
Read in a normalized classification problem (in svmlight format).
bool loadClassifierModel(const char *filename)
Read in a classifier model (in svmlight format).
bool saveProblem(const char *filename, bool labelled)
Save the raw problem in an extern file.
bool predict_probability_
bool model_extern_copied_
char * readline(FILE *input)
To read a line from the input file.
static void printNull(const char *)
Set for output printings during classification.
const std::string & getClassName() const
Get a string representation of the name of this class.
bool labelled_training_set_
bool loadClassProblem(const char *filename)
Read in a raw classification problem (in svmlight format).
void setInputTrainingSet(std::vector< SVMData > training_set)
It adds/store the training set with labelled data.
std::vector< SVMData > getInputTrainingSet()
Return the current training set.
int nr_fold_
Number of folds to be used during cross validation.
void scaleFactors(std::vector< SVMData > training_set, svm_scaling &scaling)
It extracts scaling factors from the input training_set.
void resetTrainingSet()
Reset the training set.
double label
Pointer to the label value. It is a mandatory to train the classifier.
void setDebugMode(bool in)
Set to 1 for debugging info.
void setInputTrainingSet(std::vector< SVMData > training_set)
It adds/store the training set with labelled data.
bool classification()
Start the classification on un-labelled input dataset.
bool saveClassProblem(const char *filename)
Save the raw classification problem in a file (in svmlight format).
SVM (Support Vector Machines) classification of a dataset.
int idx
It's the feature index. It has to be an integer number greater or equal to zero.
The structure stores the features and the label of a single sample which has to be used for the train...
void adaptLibSVMToInput(std::vector< SVMData > &training_set, svm_problem prob) const
Convert the libSVM format (svm_problem) into a easier output format.
void getLabel(std::vector< int > &labels)
Return the labels order from the classifier model.
void saveClassificationResult(const char *filename)
Save the classification result in an extern file.
void setProbabilityEstimates(bool set)
Set whether the classification has to be done with the probability estimate.
bool loadProblem(const char *filename, svm_problem &prob)
Load a problem from an extern file.
void adaptInputToLibSVM(std::vector< SVMData > training_set, svm_problem &prob)
Convert the input format (vector of SVMData) into a readable format for libSVM.
bool saveProblemNorm(const char *filename, svm_problem prob_, bool labelled)
Save the problem (with normalized values) in an extern file.
SVMParam getParameters()
Return the current training parameters.
void saveClassifierModel(const char *filename)
Save the classifier model in an extern file (in svmlight format).
void setClassifierModel(SVMModel model)
Set the classifier model.
SVM (Support Vector Machines) training class for the SVM machine learning.
The structure stores the parameters for the classificationa nd must be initialized and passed to the ...
void resetTrainingSet()
Reset the training set.
void exitInputError(int line_num)
Outputs an error in file reading.
struct svm_node * scaling
~SVMClassify()
Destructor.
void getClassificationResult(std::vector< std::vector< double >> &out)
Get the result of the classification.
std::vector< SVMData > getInputTrainingSet()
Return the current training set.