Direct Graphical Models
v.1.7.0
|
Potts edge training class. More...
#include <TrainEdgePotts.h>
Public Member Functions | |
CTrainEdgePotts (byte nStates, word nFeatures) | |
Constructor. More... | |
virtual | ~CTrainEdgePotts (void) |
virtual void | reset (void) |
Resets class variables. More... | |
virtual void | addFeatureVecs (const Mat &featureVector1, byte gt1, const Mat &featureVector2, byte gt2) |
Adds a pair of feature vectors. More... | |
Public Member Functions inherited from DirectGraphicalModels::CTrainEdge | |
CTrainEdge (byte nStates, word nFeatures) | |
Constructor. More... | |
virtual | ~CTrainEdge (void)=default |
virtual void | train (bool doClean=false) |
Random model training. More... | |
Mat | getEdgePotentials (const Mat &featureVector1, const Mat &featureVector2, const vec_float_t &vParams, float weight=1.0f) const |
Returns the edge potential, based on the feature vectors. 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) |
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 states (classes) More... | |
Protected Member Functions | |
virtual void | saveFile (FILE *pFile) const |
Saves the random model into the file. More... | |
virtual void | loadFile (FILE *pFile) |
Loads the random model from the file. More... | |
virtual Mat | calculateEdgePotentials (const Mat &featureVector1, const Mat &featureVector2, const vec_float_t &vParams) const |
Returns the data-independent edge potentials. 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 | |
Static Public Member Functions inherited from DirectGraphicalModels::CTrainEdge | |
static std::shared_ptr< CTrainEdge > | create (byte edgeRandomModel, byte nStates, word nFeatures) |
Factory method returning edge trainer object. More... | |
static Mat | getDefaultEdgePotentials (float val, byte nStates) |
Returns the data-independent edge potentials. More... | |
static Mat | getDefaultEdgePotentials (const vec_float_t &values) |
Returns the data-independent edge potentials. More... | |
Protected Attributes inherited from DirectGraphicalModels::CBaseRandomModel | |
byte | m_nStates |
The number of states (classes) More... | |
Potts edge training class.
This class implements the Potts model for edge (pairwise) potentials, which is both training- and test-data-independent, and thus may be applied without edge training procedure, i.e. functions reset(), save(), load(), addFeatureVecs() are unnecessary here.
This class may be used in case when the training- and test-data for edges is not available.
Definition at line 19 of file TrainEdgePotts.h.
|
inline |
Constructor.
nStates | Number of states (classes) |
nFeatures | Number of features |
Definition at line 27 of file TrainEdgePotts.h.
|
inlinevirtual |
Definition at line 28 of file TrainEdgePotts.h.
|
inlinevirtual |
Adds a pair of feature vectors.
Used to add featureVector1 and featureVector2, corresponding to the ground-truth states (classes) gt1 and gt2 for training. Here the couple {featureVector1, gt1} corresponds to the first node of the edge, and the couple {featureVector2, gt2} - to the second node.
featureVector1 | Multi-dimensinal point: Mat(size: nFeatures x 1; type: CV_8UC1), corresponding to the first node of the edge. |
gt1 | The ground-truth state (class) of the first node of the edge, given by featureVector1 |
featureVector2 | Multi-dimensinal point: Mat(size: nFeatures x 1; type: CV_8UC1), corresponding to the second node of the edge. |
gt2 | The ground-truth state (class) of the second node of the edge, given by featureVector2 |
Implements DirectGraphicalModels::CTrainEdge.
Reimplemented in DirectGraphicalModels::CTrainEdgePrior.
Definition at line 32 of file TrainEdgePotts.h.
|
protectedvirtual |
Returns the data-independent edge potentials.
This function returns matrix with diagonal elements equal to parameter \(\vec{\theta}\) provided through argument params; all the other elements are 1's - this imitates the Potts model.
\[edgePot[nStates][nStates] = \begin{bmatrix} \theta_1 & 1 & \cdots & 1 \\ 1 & \theta_2 & \cdots & 1 \\ \vdots & \vdots & \ddots & \vdots \\ 1 & 1 & \cdots & \theta_{nStates} \end{bmatrix} \]
featureVector1 | Multi-dimensinal point \(\textbf{f}_1\): Mat(size: nFeatures x 1; type: CV_{XX}C1), corresponding to the first node of the edge
|
featureVector2 | Multi-dimensinal point \(\textbf{f}_2\): Mat(size: nFeatures x 1; type: CV_{XX}C1), corresponding to the second node of the edge
|
vParams | Array of control parameters \(\vec{\theta}\), which may consist either from one parameter (in this case all the diagonal elemets will be the same), or from nStates parameters, specifying smoothness strength for each state (class) individually. |
Implements DirectGraphicalModels::CTrainEdge.
Reimplemented in DirectGraphicalModels::CTrainEdgePottsCS, and DirectGraphicalModels::CTrainEdgePrior.
Definition at line 6 of file TrainEdgePotts.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.
Reimplemented in DirectGraphicalModels::CTrainEdgePrior.
Definition at line 37 of file TrainEdgePotts.h.
|
inlinevirtual |
Resets class variables.
Allows to re-use the class.
Implements DirectGraphicalModels::CBaseRandomModel.
Reimplemented in DirectGraphicalModels::CTrainEdgePrior.
Definition at line 30 of file TrainEdgePotts.h.
|
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.
Reimplemented in DirectGraphicalModels::CTrainEdgePrior.
Definition at line 36 of file TrainEdgePotts.h.