Direct Graphical Models  v.1.5.2
DirectGraphicalModels::CTrainNodeGMM Class Reference

Gaussian Mixture Model training class. More...

#include <TrainNodeGMM.h>

Inheritance diagram for DirectGraphicalModels::CTrainNodeGMM:
Collaboration diagram for DirectGraphicalModels::CTrainNodeGMM:

Public Member Functions

 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...
 
- Public Member Functions inherited from DirectGraphicalModels::CTrainNode
 CTrainNode (byte nStates, word nFeatures)
 Constructor. More...
 
virtual ~CTrainNode (void)
 
void addFeatureVec (const Mat &featureVectors, const Mat &gt)
 Adds a block of new feature vectors. More...
 
void addFeatureVec (const vec_mat_t &featureVectors, const Mat &gt)
 Adds a block of new feature vectors. More...
 
Mat getNodePotentials (const Mat &featureVectors, const Mat &weights=Mat(), float Z=0.0f) const
 Returns a block of node potentials, based on the block of feature vector. More...
 
Mat getNodePotentials (const vec_mat_t &featureVectors, const Mat &weights=Mat(), float Z=0.0f) const
 Returns a block of node potentials, based on the block of feature vector. More...
 
Mat getNodePotentials (const Mat &featureVector, float weight, float Z=0.0f) const
 Returns the node potential, based on the feature vector. More...
 
- Public Member Functions inherited from DirectGraphicalModels::ITrain
 ITrain (byte nStates, word nFeatures)
 Constructor. More...
 
virtual ~ITrain (void)
 
word getNumFeatures (void) const
 Returns number of features. More...
 
- Public Member Functions inherited from DirectGraphicalModels::CBaseRandomModel
 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...
 

Protected Member Functions

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...
 
- Protected Member Functions inherited from DirectGraphicalModels::CBaseRandomModel
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...
 

Additional Inherited Members

- Protected Attributes inherited from DirectGraphicalModels::ITrain
word m_nFeatures
 The number of features (length of the feature vector) More...
 
- Protected Attributes inherited from DirectGraphicalModels::CBaseRandomModel
byte m_nStates
 The number of states (classes) More...
 

Detailed Description

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 & Destructor Documentation

◆ CTrainNodeGMM() [1/2]

DirectGraphicalModels::CTrainNodeGMM::CTrainNodeGMM ( byte  nStates,
word  nFeatures,
TrainNodeGMMParams  params = TRAIN_NODE_GMM_PARAMS_DEFAULT 
)

Constructor.

Parameters
nStatesNumber of states (classes)
nFeaturesNumber of features
paramsGaussian Mixture Model parameters (Ref. TrainNodeGMMParams)

◆ CTrainNodeGMM() [2/2]

DirectGraphicalModels::CTrainNodeGMM::CTrainNodeGMM ( byte  nStates,
word  nFeatures,
byte  maxGausses 
)

Constructor.

Parameters
nStatesNumber of states (classes)
nFeaturesNumber of features
maxGaussesThe maximal number of mixture components in the Gaussian Mixture Model per state (class)

◆ ~CTrainNodeGMM()

virtual DirectGraphicalModels::CTrainNodeGMM::~CTrainNodeGMM ( void  )
virtual

Member Function Documentation

◆ addFeatureVec()

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
featureVectorMulti-dimensinal point: Mat(size: nFeatures x 1; type: CV_8UC1)
gtCorresponding ground-truth state (class)

Implements DirectGraphicalModels::CTrainNode.

◆ calculateNodePotentials()

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]featureVectorMulti-dimensinal point \(\textbf{f}\): Mat(size: nFeatures x 1; type: CV_{XX}C1)
[in,out]potentialNode potentials: Mat(size: nStates x 1; type: CV_32FC1). This parameter should be preinitialized and set to value 0.
[in,out]maskRelevant 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.

◆ loadFile()

void DirectGraphicalModels::CTrainNodeGMM::loadFile ( FILE *  pFile)
protectedvirtual

Loads the random model from the file.

Allows to re-use the class.

Parameters
pFilePointer to the file, opened for reading.

Implements DirectGraphicalModels::CBaseRandomModel.

◆ reset()

void DirectGraphicalModels::CTrainNodeGMM::reset ( void  )
virtual

Resets class variables.

Allows to re-use the class.

Implements DirectGraphicalModels::CBaseRandomModel.

◆ saveFile()

void DirectGraphicalModels::CTrainNodeGMM::saveFile ( FILE *  pFile) const
protectedvirtual

Saves the random model into the file.

Allows to re-use the class.

Parameters
pFilePointer to the file, opened for writing.

Implements DirectGraphicalModels::CBaseRandomModel.

◆ train()

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
doCleanFlag 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: