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.
FiniteStateMachine.h
Go to the documentation of this file.
1 
27 #ifndef GRT_FINITE_STATE_MACHINE_HEADER
28 #define GRT_FINITE_STATE_MACHINE_HEADER
29 
30 #include "../../CoreModules/Classifier.h"
31 #include "FSMParticleFilter.h"
32 #include "../../ClusteringModules/KMeans/KMeans.h"
33 
34 namespace GRT{
35 
37 {
38 public:
39 
44  FiniteStateMachine(const UINT numParticles = 200,const UINT numClustersPerState = 20,const double stateTransitionSmoothingCoeff = 0.0,const double measurementNoise = 10.0);
45 
52 
56  virtual ~FiniteStateMachine(void);
57 
65 
73  virtual bool deepCopyFrom(const Classifier *classifier);
74 
83  virtual bool train_( ClassificationData &trainingData );
84 
93  virtual bool train_( TimeSeriesClassificationData &trainingData );
94 
102  virtual bool train_( TimeSeriesClassificationDataStream &data );
103 
111  virtual bool predict_(VectorDouble &inputVector);
112 
120  virtual bool reset();
121 
128  virtual bool clear();
129 
136  virtual bool print() const;
137 
145  virtual bool saveModelToFile(fstream &file) const;
146 
154  virtual bool loadModelFromFile(fstream &file);
155 
156 
157  bool setNumParticles(const UINT numParticles);
158  bool setNumClustersPerState(const UINT numClustersPerState);
159  bool setStateTransitionSmoothingCoeff(const double stateTransitionSmoothingCoeff);
160  bool setMeasurementNoise(const double measurementNoise);
161 
162  //Tell the compiler we are using the following functions from the MLBase class to stop hidden virtual function warnings
165  using MLBase::train;
166  using MLBase::train_;
167  using MLBase::predict;
168  using MLBase::predict_;
169 
170 protected:
171  bool recomputePT();
172  bool recomputePE();
173  bool initParticles();
174 
175  UINT numParticles;
176  UINT numClustersPerState;
177  double stateTransitionSmoothingCoeff;
178  double measurementNoise;
179  FSMParticleFilter particles;
180  MatrixDouble stateTransitions;
181  vector< MatrixDouble > stateEmissions;
182  vector< vector< IndexedDouble > > pt;
183  vector< vector< VectorDouble > > pe;
184 
186 };
187 
188 } //End of namespace GRT
189 
190 #endif
vector< vector< IndexedDouble > > pt
This stores the stateTransitions matrix in a format more efficient for the particle filter...
virtual bool saveModelToFile(fstream &file) const
virtual bool saveModelToFile(string filename) const
Definition: MLBase.cpp:135
vector< vector< VectorDouble > > pe
This stores the stateEmissions model in a format more efficient for the particle filter.
virtual bool loadModelFromFile(string filename)
Definition: MLBase.cpp:157
Definition: AdaBoost.cpp:25
virtual bool train(ClassificationData trainingData)
Definition: MLBase.cpp:80
virtual bool predict(VectorDouble inputVector)
Definition: MLBase.cpp:104
virtual bool predict_(VectorDouble &inputVector)
Definition: MLBase.cpp:106
virtual bool deepCopyFrom(const Classifier *classifier)
virtual bool predict_(VectorDouble &inputVector)
FiniteStateMachine(const UINT numParticles=200, const UINT numClustersPerState=20, const double stateTransitionSmoothingCoeff=0.0, const double measurementNoise=10.0)
virtual bool train_(ClassificationData &trainingData)
virtual bool loadModelFromFile(fstream &file)
virtual bool print() const
FiniteStateMachine & operator=(const FiniteStateMachine &rhs)
virtual bool train_(ClassificationData &trainingData)
Definition: MLBase.cpp:82