Point Cloud Library (PCL)
1.9.1
|
39 #ifndef PCL_SVM_WRAPPER_H_
40 #define PCL_SVM_WRAPPER_H_
49 #include <pcl/common/eigen.h>
52 #include <pcl/console/time.h>
54 #include <pcl/ml/svm.h>
55 #define Malloc(type,n) static_cast<type *> (malloc((n)*sizeof(type)))
120 std::vector<pcl::SVMDataPoint>
SV;
153 fprintf (stderr,
"Wrong input format at line %d\n", line_num);
158 inline const std::string&
174 bool saveProblem (
const char *filename,
bool labelled);
190 svm_destroy_param (&
param_);
207 int nr_class = svm_get_nr_class (&
model_);
208 int *labels_ =
static_cast<int *
> (malloc (nr_class *
sizeof (
int)));
209 svm_get_labels (&
model_, labels_);
211 for (
int j = 0 ; j < nr_class; j++)
212 labels.push_back (labels_[j]);
224 if (svm_save_model (filename, &
model_))
226 fprintf (stderr,
"can't save model to file %s\n", filename);
267 svm_set_print_string_function (&
printNull);
274 svm_free_model_content (&
model_);
339 svm_set_print_string_function (NULL);
341 svm_set_print_string_function (&
printNull);
395 svm_free_model_content (&
model_);
402 assert (training_set.size() > 0);
407 PCL_ERROR (
"[pcl::%s::setInputTrainingSet] Classifier model not loaded!\n",
getClassName ().c_str ());
462 for (
int j = 0; j < i; j++)
537 #endif // PCL_SVM_WRAPPER_H_
This file defines compatibility wrappers for low level I/O functions.
SVMModel getClassifierModel()
Return the result of the training.
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
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_
void adaptLibSVMToInput(std::vector< SVMData > &training_set, svm_problem prob)
Convert the libSVM format (svm_problem) into a easier output format.
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.
void scaleFactors(std::vector< SVMData > training_set, svm_scaling &scaling)
It extracts scaling factors from the input training_set.
void getClassificationResult(std::vector< std::vector< double > > &out)
Get the result of the classification.
void resetTrainingSet()
Reset the training set.
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.
The structure stores the features and the label of a single sample which has to be used for the train...
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 ...
std::vector< std::vector< double > > prediction_
void resetTrainingSet()
Reset the training set.
void exitInputError(int line_num)
Outputs an error in file reading.
struct svm_node * scaling
~SVMClassify()
Destructor.
std::vector< SVMData > getInputTrainingSet()
Return the current training set.