34 #ifndef xmm_lib_hierarchical_hmm_h 35 #define xmm_lib_hierarchical_hmm_h 37 #include "../../core/model/xmmModel.hpp" 38 #include "../gmm/xmmGmm.hpp" 107 virtual void reset();
115 virtual void filter(std::vector<float>
const& observation);
126 virtual Json::Value
toJson()
const;
133 virtual void fromJson(Json::Value
const& root);
264 void forward_init(std::vector<float>
const& observation);
289 std::vector<double>& likelihoodVector)
const;
Results of the filtering/inference process (for a Model with multiple classes).
Definition: xmmModelResults.hpp:80
std::vector< double > prior
Prior probabilities of the models.
Definition: xmmHierarchicalHmm.hpp:201
std::vector< std::vector< double > > transition
Transition probabilities between models.
Definition: xmmHierarchicalHmm.hpp:212
static const double DEFAULT_EXITTRANSITION()
Default exit transition for the highest level.
Definition: xmmHierarchicalHmm.hpp:52
bool forward_initialized_
Defines if the forward algorithm has been initialized.
Definition: xmmHierarchicalHmm.hpp:299
std::vector< double > frontier_v2_
intermediate Forward variable (used in Frontier algorithm)
Definition: xmmHierarchicalHmm.hpp:309
void updateTransition()
ergodic learning: update high-level transition matrix
Definition: xmmHierarchicalHmm.cpp:125
void updateResults()
Update the results (Likelihoods)
Definition: xmmHierarchicalHmm.cpp:464
virtual void filter(std::vector< float > const &observation)
filters a incoming observation (performs recognition or regression)
Definition: xmmHierarchicalHmm.cpp:389
Probabilistic machine learning model for multiclass recognition and regression.
Definition: xmmModel.hpp:52
void updateTransitionParameters()
update high-level parameters when a new primitive is learned
Definition: xmmHierarchicalHmm.cpp:110
virtual Json::Value toJson() const
Write the object to a JSON Structure.
Definition: xmmHierarchicalHmm.cpp:499
Results< HMM > results
Convert to bimodal HierarchicalHMM in place.
Definition: xmmHierarchicalHmm.hpp:196
void likelihoodAlpha(int exitNum, std::vector< double > &likelihoodVector) const
get instantaneous likelihood
Definition: xmmHierarchicalHmm.cpp:328
virtual void removeClass(std::string const &label)
Remove a specific class by label.
Definition: xmmHierarchicalHmm.cpp:356
virtual void reset()
Resets the fitering process (recognition or regression)
Definition: xmmHierarchicalHmm.cpp:361
std::vector< double > exit_transition
exit probabilities of the model (probability to finish and go back to the root)
Definition: xmmHierarchicalHmm.hpp:207
std::vector< double > frontier_v1_
intermediate Forward variable (used in Frontier algorithm)
Definition: xmmHierarchicalHmm.hpp:304
void normalizeTransitions()
Normalize segment level prior and transition matrices.
Definition: xmmHierarchicalHmm.cpp:92
void updateExitProbabilities()
Update exit probabilities of each sub-model.
Definition: xmmHierarchicalHmm.cpp:135
void forward_init(std::vector< float > const &observation)
Initialization of the Forward Algorithm for the hierarchical HMM. see: Jules Francoise. Realtime Segmentation and Recognition of Gestures using Hierarchical Markov Models. Master’s Thesis, Université Pierre et Marie Curie, Ircam, 2011. [http://articles.ircam.fr/textes/Francoise11a/index.pdf].
Definition: xmmHierarchicalHmm.cpp:146
virtual void joinTraining()
Finishes the background training process by joining threads and deleting the models which training fa...
Definition: xmmHierarchicalHmm.cpp:105
virtual void clear()
Remove All models.
Definition: xmmHierarchicalHmm.cpp:78
Hierarchical Hidden Markov Model for Continuous Recognition and Regression (Multi-class) ...
Definition: xmmHierarchicalHmm.hpp:47
void forward_update(std::vector< float > const &observation)
Update of the Forward Algorithm for the hierarchical HMM. see: Jules Francoise. Realtime Segmentation...
Definition: xmmHierarchicalHmm.cpp:203
Definition: xmmAttribute.hpp:42
HierarchicalHMM & operator=(HierarchicalHMM const &src)
Assignment.
Definition: xmmHierarchicalHmm.cpp:63
void addExitPoint(int state, float proba)
Definition: xmmHierarchicalHmm.cpp:85
virtual void addModelForClass(std::string const &label)
Update training set for a specific label.
Definition: xmmHierarchicalHmm.cpp:141
HierarchicalHMM(bool bimodal=false)
Constructor.
Definition: xmmHierarchicalHmm.cpp:36
virtual void fromJson(Json::Value const &root)
Read the object from a JSON Structure.
Definition: xmmHierarchicalHmm.cpp:519
void updatePrior()
ergodic learning update high-level prior probabilities -> equal prior probs
Definition: xmmHierarchicalHmm.cpp:121