GestureRecognitionToolkit  Version: 1.0 Revision: 04-03-15
The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, c++ machine learning library for real-time gesture recognition.
KMeansQuantizer.h
Go to the documentation of this file.
1 
37 #ifndef GRT_KMEANS_QUANTIZER_HEADER
38 #define GRT_KMEANS_QUANTIZER_HEADER
39 
40 //Include the main GRT header to get access to the FeatureExtraction base class
41 #include "../../CoreModules/FeatureExtraction.h"
42 #include "../../ClusteringModules/KMeans/KMeans.h"
43 #include "../../DataStructures/TimeSeriesClassificationData.h"
44 #include "../../DataStructures/TimeSeriesClassificationDataStream.h"
45 #include "../../DataStructures/UnlabelledData.h"
46 
47 namespace GRT{
48 
50 public:
56  KMeansQuantizer(const UINT numClusters=10);
57 
63  KMeansQuantizer(const KMeansQuantizer &rhs);
64 
68  virtual ~KMeansQuantizer();
69 
77 
86  virtual bool deepCopyFrom(const FeatureExtraction *featureExtraction);
87 
95  virtual bool computeFeatures(const VectorDouble &inputVector);
96 
103  virtual bool reset();
104 
110  virtual bool clear();
111 
120  virtual bool saveModelToFile(fstream &file) const;
121 
129  virtual bool loadModelFromFile(fstream &file);
130 
137  bool train_(ClassificationData &trainingData);
138 
145  bool train_(TimeSeriesClassificationData &trainingData);
146 
153  bool train_(TimeSeriesClassificationDataStream &trainingData);
154 
161  bool train_(UnlabelledData &trainingData);
162 
169  bool train_(MatrixDouble &trainingData);
170 
177  UINT quantize(double inputValue);
178 
185  UINT quantize(const VectorDouble &inputVector);
186 
192  bool getQuantizerTrained() const { return trained; }
193 
199  UINT getNumClusters() const;
200 
206  UINT getQuantizedValue() const { return (trained ? (UINT)featureVector[0] : 0); }
207 
213  VectorDouble getQuantizationDistances() const{
214  return quantizationDistances;
215  }
216 
224  return clusters;
225  }
226 
232  bool setNumClusters(const UINT numClusters);
233 
234  //Tell the compiler we are using the following functions from the FeatureExtractiona and MLBase class to stop hidden virtual function warnings
237  using MLBase::train;
238  using MLBase::train_;
239  using MLBase::predict;
240  using MLBase::predict_;
241 
242 protected:
243  UINT numClusters;
244  MatrixDouble clusters;
245  VectorDouble quantizationDistances;
246 
248 };
249 
250 }//End of namespace GRT
251 
252 #endif //GRT_KMEANS_QUANTIZER_HEADER
KMeansQuantizer & operator=(const KMeansQuantizer &rhs)
MatrixDouble getQuantizationModel() const
Definition: AdaBoost.cpp:25
virtual bool saveModelToFile(fstream &file) const
virtual bool train(ClassificationData trainingData)
Definition: MLBase.cpp:80
virtual bool loadModelFromFile(fstream &file)
bool getQuantizerTrained() const
bool setNumClusters(const UINT numClusters)
virtual bool predict(VectorDouble inputVector)
Definition: MLBase.cpp:104
KMeansQuantizer(const UINT numClusters=10)
virtual bool computeFeatures(const VectorDouble &inputVector)
virtual bool predict_(VectorDouble &inputVector)
Definition: MLBase.cpp:106
virtual bool loadModelFromFile(fstream &file)
UINT getNumClusters() const
virtual bool deepCopyFrom(const FeatureExtraction *featureExtraction)
UINT quantize(double inputValue)
VectorDouble getQuantizationDistances() const
bool train_(ClassificationData &trainingData)
UINT getQuantizedValue() const
virtual bool train_(ClassificationData &trainingData)
Definition: MLBase.cpp:82
virtual bool saveModelToFile(fstream &file) const