Direct Graphical Models
v.1.7.0
|
OpenCV Gaussian Mixture Model training class. More...
#include <TrainNodeCvGMM.h>
Public Member Functions | |
CTrainNodeCvGMM (byte nStates, word nFeatures, TrainNodeCvGMMParams params=TRAIN_NODE_CV_GMM_PARAMS_DEFAULT) | |
Constructor. More... | |
CTrainNodeCvGMM (byte nStates, word nFeatures, size_t maxSamples, byte nGausses=TRAIN_NODE_CV_GMM_PARAMS_DEFAULT.numGausses) | |
Constructor. More... | |
virtual | ~CTrainNodeCvGMM (void) |
void | reset (void) |
Resets class variables. More... | |
void | save (const std::string &path, const std::string &name=std::string(), short idx=-1) const |
Saves the training data. More... | |
void | load (const std::string &path, const std::string &name=std::string(), short idx=-1) |
Loads the training data. 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)=default |
void | addFeatureVecs (const Mat &featureVectors, const Mat >) |
Adds a block of new feature vectors. More... | |
void | addFeatureVecs (const vec_mat_t &featureVectors, const Mat >) |
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)=default |
word | getNumFeatures (void) const |
Returns number of features. More... | |
Public Member Functions inherited from DirectGraphicalModels::CBaseRandomModel | |
CBaseRandomModel (byte nStates) | |
Constructor. More... | |
virtual | ~CBaseRandomModel (void) |
byte | getNumStates (void) const |
Returns number of states (classes) 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... | |
Protected Attributes | |
std::vector< Ptr< ml::EM > > | m_vpEM |
Expectation Maximization for GMM parameters estimation. More... | |
CSamplesAccumulator * | m_pSamplesAcc |
Samples Accumulator. More... | |
Protected Attributes inherited from DirectGraphicalModels::CBaseRandomModel | |
byte | m_nStates |
The number of states (classes) More... | |
Private Member Functions | |
void | init (TrainNodeCvGMMParams params) |
Private Attributes | |
long double | m_minCoefficient |
Static Private Attributes | |
static const double | MIN_COEFFICIENT_BASE = 32.0 |
Additional Inherited Members | |
Static Public Member Functions inherited from DirectGraphicalModels::CTrainNode | |
static std::shared_ptr< CTrainNode > | create (byte nodeRandomModel, byte nStates, word nFeatures) |
Factory method returning node trainer object. More... | |
OpenCV Gaussian Mixture Model training class.
Definition at line 39 of file TrainNodeCvGMM.h.
DirectGraphicalModels::CTrainNodeCvGMM::CTrainNodeCvGMM | ( | byte | nStates, |
word | nFeatures, | ||
TrainNodeCvGMMParams | params = TRAIN_NODE_CV_GMM_PARAMS_DEFAULT |
||
) |
Constructor.
nStates | Number of states (classes) |
nFeatures | Number of features |
params | Expectation Maximization parameters (Ref. TrainNodeCvGMMParams) |
Definition at line 12 of file TrainNodeCvGMM.cpp.
DirectGraphicalModels::CTrainNodeCvGMM::CTrainNodeCvGMM | ( | byte | nStates, |
word | nFeatures, | ||
size_t | maxSamples, | ||
byte | nGausses = TRAIN_NODE_CV_GMM_PARAMS_DEFAULT.numGausses |
||
) |
Constructor.
nStates | Number of states (classes) |
nFeatures | Number of features |
maxSamples | Maximum number of samples to be used in training
|
nGausses | The number of mixture components in the Gaussian Mixture Model per state (class) |
Definition at line 18 of file TrainNodeCvGMM.cpp.
|
virtual |
Definition at line 40 of file TrainNodeCvGMM.cpp.
|
virtual |
Adds new feature vector.
Used to add a featureVector, corresponding to the ground-truth state (class) gt for training
featureVector | Multi-dimensinal point: Mat(size: nFeatures x 1; type: CV_8UC1) |
gt | Corresponding ground-truth state (class) |
Implements DirectGraphicalModels::CTrainNode.
Definition at line 74 of file TrainNodeCvGMM.cpp.
|
protectedvirtual |
Calculates the node potential, based on the feature vector.
This function calculates the potentials of the node, described with the sample featureVector, being in each state (belonging to each class). These potentials are united in the node potential vector:
\[nodePot[nStates] = f(\textbf{f}[nFeatures]).\]
Functions \( f \) must be implemented in derived classes.
[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.
Definition at line 98 of file TrainNodeCvGMM.cpp.
|
private |
|
virtual |
Loads the training data.
Allows to re-use the class. Loads data to the file: "<path><name>_<idx>.dat".
path | Path to the folder, containing the data file. |
name | Name of data file. If empty, will be generated automatically from the class name. |
idx | Index of the data file. Negative value means no index. |
Reimplemented from DirectGraphicalModels::CBaseRandomModel.
Definition at line 60 of file TrainNodeCvGMM.cpp.
|
inlineprotectedvirtual |
Loads the random model from the file.
Allows to re-use the class.
pFile | Pointer to the file, opened for reading. |
Implements DirectGraphicalModels::CBaseRandomModel.
Definition at line 72 of file TrainNodeCvGMM.h.
|
virtual |
Resets class variables.
Allows to re-use the class.
Implements DirectGraphicalModels::CBaseRandomModel.
Definition at line 46 of file TrainNodeCvGMM.cpp.
|
virtual |
Saves the training data.
Allows to re-use the class. Stores data to the file: "<path><name>_<idx>.dat".
path | Path to the destination folder. |
name | Name of data file. If empty, will be generated automatically from the class name. |
idx | Index of the destination file. Negative value means no index. |
Reimplemented from DirectGraphicalModels::CBaseRandomModel.
Definition at line 52 of file TrainNodeCvGMM.cpp.
|
inlineprotectedvirtual |
Saves the random model into the file.
Allows to re-use the class.
pFile | Pointer to the file, opened for writing. |
Implements DirectGraphicalModels::CBaseRandomModel.
Definition at line 71 of file TrainNodeCvGMM.h.
|
virtual |
Random model training.
Auxilary function for training - some derived classes may use this function inbetween training and classification phases
doClean | Flag indicating if the memory, keeping the trining data should be released after training |
Reimplemented from DirectGraphicalModels::CTrainNode.
Definition at line 79 of file TrainNodeCvGMM.cpp.
|
private |
Definition at line 89 of file TrainNodeCvGMM.h.
|
protected |
Samples Accumulator.
Definition at line 86 of file TrainNodeCvGMM.h.
|
protected |
Expectation Maximization for GMM parameters estimation.
Definition at line 85 of file TrainNodeCvGMM.h.
|
staticprivate |
Definition at line 81 of file TrainNodeCvGMM.h.