GestureRecognitionToolkit  Version: 0.1.0
The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, c++ machine learning library for real-time gesture recognition.
ContinuousHiddenMarkovModel.h
Go to the documentation of this file.
1 
31 #ifndef GRT_CONTINUOUS_HIDDEN_MARKOV_MODEL_HEADER
32 #define GRT_CONTINUOUS_HIDDEN_MARKOV_MODEL_HEADER
33 
34 #include "HMMEnums.h"
35 #include "../../Util/GRTCommon.h"
36 #include "../../CoreModules/MLBase.h"
37 
38 GRT_BEGIN_NAMESPACE
39 
41 public:
42  ContinuousHiddenMarkovModel(const UINT downsampleFactor = 5,const UINT delta = 1,const bool autoEstimateSigma = true,const Float sigma = 10.0);
43 
45 
46  virtual ~ContinuousHiddenMarkovModel();
47 
49 
50  virtual bool predict_(VectorFloat &x);
51  virtual bool predict_(MatrixFloat &obs);
52 
53  virtual bool train_(TimeSeriesClassificationSample &trainingData);
54 
62  virtual bool reset();
63 
70  virtual bool clear();
71 
78  virtual bool saveModelToFile( std::fstream &file ) const;
79 
86  virtual bool loadModelFromFile( std::fstream &file );
87 
88  virtual bool print() const;
89 
90  UINT getNumStates() const { return numStates; }
91 
92  UINT getClassLabel() const { return classLabel; }
93 
94  Float getLoglikelihood() const { return loglikelihood; }
95 
96  Float getPhase() const { return phase; }
97 
98  Vector< UINT > getEstimatedStates() const { return estimatedStates; }
99 
100  MatrixFloat getAlpha() const { return alpha; }
101 
102  bool setDownsampleFactor(const UINT downsampleFactor);
103 
112  bool setModelType(const UINT modelType);
113 
126  bool setDelta(const UINT delta);
127 
128  bool setSigma(const Float sigma);
129 
130  bool setAutoEstimateSigma(const bool autoEstimateSigma);
131 
132 protected:
133 
134  Float gauss( const MatrixFloat &x, const MatrixFloat &y, const MatrixFloat &sigma, const unsigned int i,const unsigned int j,const unsigned int N );
135 
136  UINT downsampleFactor;
137  UINT numStates;
138  UINT classLabel;
140  bool autoEstimateSigma;
141  Float sigma;
142  Float phase;
146  MatrixFloat alpha;
147  VectorFloat c;
149  MatrixFloat obsSequence;
152 
153  UINT modelType;
154  UINT delta;
156  Float cThreshold;
157 
158 };
159 
160 GRT_END_NAMESPACE
161 
162 #endif
Vector< UINT > estimatedStates
The estimated states for prediction.
Float cThreshold
The classification threshold for this model.
This class acts as the main interface for using a Hidden Markov Model.
MatrixFloat a
The transitions probability matrix.
Float loglikelihood
The log likelihood of an observation sequence given the modal, calculated by the forward method...
VectorFloat pi
The state start probability vector.
UINT modelType
The model type (LEFTRIGHT, or ERGODIC)
UINT delta
The number of states a model can move to in a LEFTRIGHT model.
CircularBuffer< VectorFloat > observationSequence
A buffer to store data for realtime prediction.
virtual bool saveModelToFile(std::fstream &file) const
UINT classLabel
The class label associated with this model.
MatrixFloat sigmaStates
The sigma value for each state.
virtual bool loadModelFromFile(std::fstream &file)
virtual bool predict_(VectorFloat &x)
MatrixFloat b
The emissions probability matrix.
UINT timeseriesLength
The length of the training timeseries.
Definition: MLBase.h:70
bool setModelType(const UINT modelType)
UINT numStates
The number of states for this model.