Gaussian Mixture Model training class.
More...
#include <TrainNodeGMM.h>
|
| CTrainNodeGMM (byte nStates, word nFeatures, TrainNodeGMMParams params=TRAIN_NODE_GMM_PARAMS_DEFAULT) |
| Constructor. More...
|
|
| CTrainNodeGMM (byte nStates, word nFeatures, byte maxGausses) |
| Constructor. More...
|
|
virtual | ~CTrainNodeGMM (void) |
|
void | reset (void) |
| Resets class variables. More...
|
|
void | addFeatureVec (const Mat &featureVector, byte gt) |
| Adds new feature vector. More...
|
|
void | train (bool doClean=false) |
| Random model training. More...
|
|
| CTrainNode (byte nStates, word nFeatures) |
| Constructor. More...
|
|
virtual | ~CTrainNode (void) |
|
void | addFeatureVec (const Mat &featureVectors, const Mat >) |
| Adds a block of new feature vectors. More...
|
|
void | addFeatureVec (const vec_mat_t &featureVectors, const Mat >) |
| Adds a block of new feature vectors. More...
|
|
Mat | getNodePotentials (const Mat &featureVector, float weight=1.0f) const |
| Returns the node potential, based on the feature vector. More...
|
|
| ITrain (byte nStates, word nFeatures) |
| Constructor. More...
|
|
virtual | ~ITrain (void) |
|
word | getNumFeatures (void) const |
| Returns number of features. More...
|
|
| CBaseRandomModel (byte nStates) |
| Constructor. More...
|
|
virtual | ~CBaseRandomModel (void) |
|
virtual void | save (const std::string &path, const std::string &name=std::string(), short idx=-1) const |
| Saves the training data. More...
|
|
virtual void | load (const std::string &path, const std::string &name=std::string(), short idx=-1) |
| Loads the training data. More...
|
|
byte | getNumStates (void) const |
| Returns number of features. More...
|
|
|
void | saveFile (FILE *pFile) const |
| Saves the random model into the file. More...
|
|
void | loadFile (FILE *pFile) |
| Loads the random model from the file. More...
|
|
void | calculateNodePotentials (const Mat &featureVector, Mat &potential, Mat &mask) const |
| Calculates the node potential, based on the feature vector. More...
|
|
std::string | generateFileName (const std::string &path, const std::string &name, short idx) const |
| Generates name of the data file for storing random model parameters. More...
|
|
Gaussian Mixture Model training class.
This class realizes the generative training mechanism, based on the idea of approximating the density of multi-dimensional random variables with an additive super-position of multivariate Gaussian distributions. The underlying algorithm is described in the paper Sequential Gaussian Mixture Models for Two-Level Conditional Random Fields
- Author
- Sergey G. Kosov, serge.nosp@m.y.ko.nosp@m.sov@p.nosp@m.roje.nosp@m.ct-10.nosp@m..de
Definition at line 38 of file TrainNodeGMM.h.
Constructor.
- Parameters
-
nStates | Number of states (classes) |
nFeatures | Number of features |
params | Gaussian Mixture Model parameters (Ref. TrainNodeGMMParams) |
DirectGraphicalModels::CTrainNodeGMM::CTrainNodeGMM |
( |
byte |
nStates, |
|
|
word |
nFeatures, |
|
|
byte |
maxGausses |
|
) |
| |
Constructor.
- Parameters
-
nStates | Number of states (classes) |
nFeatures | Number of features |
maxGausses | The maximal number of mixture components in the Gaussian Mixture Model per state (class) |
virtual DirectGraphicalModels::CTrainNodeGMM::~CTrainNodeGMM |
( |
void |
| ) |
|
|
virtual |
void DirectGraphicalModels::CTrainNodeGMM::addFeatureVec |
( |
const Mat & |
featureVector, |
|
|
byte |
gt |
|
) |
| |
|
virtual |
Adds new feature vector.
Used to add a featureVector, corresponding to the ground-truth state (class) gt for training
- Parameters
-
featureVector | Multi-dimensinal point: Mat(size: nFeatures x 1; type: CV_8UC1) |
gt | Corresponding ground-truth state (class) |
Implements DirectGraphicalModels::CTrainNode.
void DirectGraphicalModels::CTrainNodeGMM::calculateNodePotentials |
( |
const Mat & |
featureVector, |
|
|
Mat & |
potential, |
|
|
Mat & |
mask |
|
) |
| const |
|
protectedvirtual |
Calculates the node potential, based on the feature vector.
This function calculates the potentials of the node, described with the sample featureVector ( \( \textbf{f} \)): \( nodePot_s = \sum^{nGaussians_s}_{i=1}\pi_{i,s}\cdot\mathcal{N}_{i,s}(\textbf{f}), \forall s \in \mathbb{S} \), where \(\mathbb{S}\) is the set of all states (classes) and \(\pi\) is a weighted coefficient. In other words, the indexes: \( s \in [0; nStates) \). Here \( \mathcal{N} \) is a Gaussian function kernel, described in class CNDGauss
- Parameters
-
[in] | featureVector | Multi-dimensinal point \(\textbf{f}\): Mat(size: nFeatures x 1; type: CV_{XX}C1) |
[in,out] | potential | Node potentials: Mat(size: nStates x 1; type: CV_32FC1). This parameter should be preinitialized and set to value 0. |
[in,out] | mask | Relevant Node potentials: Mat(size: nStates x 1; type: CV_8UC1). This parameter should be preinitialized and set to value 1 (all potentials are relevant). |
Implements DirectGraphicalModels::CTrainNode.
void DirectGraphicalModels::CTrainNodeGMM::loadFile |
( |
FILE * |
pFile | ) |
|
|
protectedvirtual |
void DirectGraphicalModels::CTrainNodeGMM::reset |
( |
void |
| ) |
|
|
virtual |
void DirectGraphicalModels::CTrainNodeGMM::saveFile |
( |
FILE * |
pFile | ) |
const |
|
protectedvirtual |
void DirectGraphicalModels::CTrainNodeGMM::train |
( |
bool |
doClean = false | ) |
|
|
virtual |
Random model training.
Auxilary function for training - some derived classes may use this function inbetween training and classification phases
- Note
- This function must be called inbetween the training and classification phases
- Parameters
-
doClean | Flag indicating if the memory, keeping the trining data should be released after training |
Reimplemented from DirectGraphicalModels::CTrainNode.
The documentation for this class was generated from the following file: