XMM - Probabilistic Models for Motion Recognition and Mapping

Classes | Enumerations | Functions | Variables
xmm Namespace Reference

Classes

class  Attribute
 Generic Attribute. More...
 
class  Attribute< std::vector< std::string > >
 Generic Attribute (Vector Specialization) More...
 
class  Attribute< std::vector< T > >
 Generic Attribute (Vector Specialization) More...
 
class  AttributeBase
 Base Class for Generic Attributes. More...
 
class  CircularBuffer
 Simple CircularBuffer Class. More...
 
class  ClassParameters
 Class-specific Model Parameters. More...
 
class  ClassParameters< GMM >
 Parameters specific to each class of a Gaussian Mixture Model. More...
 
class  ClassParameters< HMM >
 Parameters specific to each class of a Hidden Markov Model. More...
 
class  ClassParameters< KMeans >
 Parameters specific to each class of a K-Means Algorithm. More...
 
struct  ClassResults
 Class-specific Results of the filtering/inference process. More...
 
struct  ClassResults< HMM >
 Results of Hidden Markov Models for a single class. More...
 
class  Configuration
 Model configuration. More...
 
struct  Ellipse
 Structure for storing Ellipse parameters. More...
 
class  EventGenerator
 Generator class for a specific type of events. More...
 
class  GaussianDistribution
 Multivariate Gaussian Distribution. More...
 
class  GMM
 Gaussian Mixture Model for Continuous Recognition and Regression (Multi-class) More...
 
class  HierarchicalHMM
 Hierarchical Hidden Markov Model for Continuous Recognition and Regression (Multi-class) More...
 
class  HMM
 
class  JsonException
 Exception class for handling JSON parsing errors. More...
 
class  KMeans
 K-Means Clustering algorithm. More...
 
class  Matrix
 Dirty and very incomplete Matrix Class. More...
 
class  Model
 Probabilistic machine learning model for multiclass recognition and regression. More...
 
class  Phrase
 Data phrase. More...
 
class  PhraseEvent
 Event that can be thrown by a phrase to a training set. More...
 
struct  Results
 Results of the filtering/inference process (for a Model with multiple classes). More...
 
struct  Results< KMeans >
 Results of the clustering process. More...
 
class  SharedParameters
 Shared Parameters for models with multiple classes. More...
 
class  SingleClassGMM
 Single-Class Gaussian Mixture Model. More...
 
class  SingleClassHMM
 Single-Class Hidden Markov Model. More...
 
class  SingleClassProbabilisticModel
 Generic Template for Machine Learning Probabilistic models based on the EM algorithm. More...
 
class  TrainingEvent
 Event for monitoring the training process. More...
 
class  TrainingSet
 Base class for the definition of training sets. More...
 
class  Writable
 Abstract class for handling JSON + File I/O. More...
 

Enumerations

enum  MemoryMode { MemoryMode::OwnMemory, MemoryMode::SharedMemory }
 Type of memory management for training sets and phrases. More...
 
enum  Multimodality { Multimodality::Unimodal, Multimodality::Bimodal }
 Number of modalities in the data phrase. More...
 
enum  MultiClassRegressionEstimator { MultiClassRegressionEstimator::Likeliest = 0, MultiClassRegressionEstimator::Mixture = 1 }
 Regression estimator for multiclass models. More...
 
enum  MultithreadingMode { MultithreadingMode::Sequential, MultithreadingMode::Parallel, MultithreadingMode::Background }
 Multithreading mode for multiple-class training. More...
 

Functions

template<typename T >
void checkLimits (T const &value, T const &limit_min, T const &limit_max)
 checks the validity of the requested value with respect to the current limits More...
 
template<>
void checkLimits< bool > (bool const &value, bool const &limit_min, bool const &limit_max)
 
template<>
void checkLimits< unsigned char > (unsigned char const &value, unsigned char const &limit_min, unsigned char const &limit_max)
 
template<>
void checkLimits< char > (char const &value, char const &limit_min, char const &limit_max)
 
template<>
void checkLimits< unsigned int > (unsigned int const &value, unsigned int const &limit_min, unsigned int const &limit_max)
 
template<>
void checkLimits< int > (int const &value, int const &limit_min, int const &limit_max)
 
template<>
void checkLimits< long > (long const &value, long const &limit_min, long const &limit_max)
 
template<>
void checkLimits< float > (float const &value, float const &limit_min, float const &limit_max)
 
template<>
void checkLimits< double > (double const &value, double const &limit_min, double const &limit_max)
 
template<>
void checkLimits< std::string > (std::string const &value, std::string const &limit_min, std::string const &limit_max)
 
template<typename T >
Json::Value array2json (T const *a, unsigned int n)
 Writes a C-style array to a Json Value. More...
 
template<typename T >
void json2array (Json::Value const &root, T *a, unsigned int n)
 Reads a C-style array from a Json Value. More...
 
template<>
void json2array (Json::Value const &root, float *a, unsigned int n)
 
template<>
void json2array (Json::Value const &root, double *a, unsigned int n)
 
template<>
void json2array (Json::Value const &root, bool *a, unsigned int n)
 
template<>
void json2array (Json::Value const &root, std::string *a, unsigned int n)
 
template<typename T >
Json::Value vector2json (std::vector< T > const &a)
 Writes a vector to a Json Value. More...
 
template<typename T >
void json2vector (Json::Value const &root, std::vector< T > &a, unsigned int n)
 Reads a vector from a Json Value. More...
 
template<>
void json2vector (Json::Value const &root, std::vector< float > &a, unsigned int n)
 
template<>
void json2vector (Json::Value const &root, std::vector< double > &a, unsigned int n)
 
template<>
void json2vector (Json::Value const &root, std::vector< bool > &a, unsigned int n)
 
template<>
void json2vector (Json::Value const &root, std::vector< std::string > &a, unsigned int n)
 
template<typename T >
T * reallocate (T *src, unsigned int dim_src, unsigned int dim_dst)
 Reallocate a C-like array (using c++ std::copy) More...
 
Ellipse covariance2ellipse (double c_xx, double c_xy, double c_yy)
 
template<>
void checkLimits< GaussianDistribution::CovarianceMode > (GaussianDistribution::CovarianceMode const &value, GaussianDistribution::CovarianceMode const &limit_min, GaussianDistribution::CovarianceMode const &limit_max)
 
template<typename T >
euclidean_distance (const T *vector1, const T *vector2, unsigned int dimension)
 Simple Euclidian distance measure. More...
 
template<>
void checkLimits< HMM::TransitionMode > (HMM::TransitionMode const &value, HMM::TransitionMode const &limit_min, HMM::TransitionMode const &limit_max)
 
template<>
void checkLimits< HMM::RegressionEstimator > (HMM::RegressionEstimator const &value, HMM::RegressionEstimator const &limit_min, HMM::RegressionEstimator const &limit_max)
 

Variables

const std::vector< float > null_vector_float
 

Enumeration Type Documentation

Regression estimator for multiclass models.

Enumerator
Likeliest 

the output is estimated as the output values of the likeliest class

Mixture 

the output is estimated as a weight sum of the output values of each class

Multithreading mode for multiple-class training.

Enumerator
Sequential 

No multithreading: all classes are trained sequentially.

Parallel 

Multithreading: all classes are trained in parallel in different threads. the train function returns after all classes have finished training.

Background 

Multithreading in Background: all classes are trained in parallel in different threads. the train function returns after the training has started.

Warning
when the train function return, models are still training in background.

Function Documentation

template<>
void xmm::checkLimits< bool > ( bool const &  value,
bool const &  limit_min,
bool const &  limit_max 
)
template<>
void xmm::checkLimits< char > ( char const &  value,
char const &  limit_min,
char const &  limit_max 
)
template<>
void xmm::checkLimits< double > ( double const &  value,
double const &  limit_min,
double const &  limit_max 
)
template<>
void xmm::checkLimits< float > ( float const &  value,
float const &  limit_min,
float const &  limit_max 
)
template<>
void xmm::checkLimits< HMM::RegressionEstimator > ( HMM::RegressionEstimator const &  value,
HMM::RegressionEstimator const &  limit_min,
HMM::RegressionEstimator const &  limit_max 
)
template<>
void xmm::checkLimits< HMM::TransitionMode > ( HMM::TransitionMode const &  value,
HMM::TransitionMode const &  limit_min,
HMM::TransitionMode const &  limit_max 
)
template<>
void xmm::checkLimits< int > ( int const &  value,
int const &  limit_min,
int const &  limit_max 
)
template<>
void xmm::checkLimits< long > ( long const &  value,
long const &  limit_min,
long const &  limit_max 
)
template<>
void xmm::checkLimits< std::string > ( std::string const &  value,
std::string const &  limit_min,
std::string const &  limit_max 
)
template<>
void xmm::checkLimits< unsigned char > ( unsigned char const &  value,
unsigned char const &  limit_min,
unsigned char const &  limit_max 
)
template<>
void xmm::checkLimits< unsigned int > ( unsigned int const &  value,
unsigned int const &  limit_min,
unsigned int const &  limit_max 
)
xmm::Ellipse xmm::covariance2ellipse ( double  c_xx,
double  c_xy,
double  c_yy 
)
template<typename T >
T xmm::euclidean_distance ( const T *  vector1,
const T *  vector2,
unsigned int  dimension 
)

Simple Euclidian distance measure.

Parameters
vector1first data point
vector2first data point
dimensiondimension of the data space
Returns
euclidian distance between the 2 points
template<>
void xmm::json2array ( Json::Value const &  root,
float *  a,
unsigned int  n 
)
template<>
void xmm::json2array ( Json::Value const &  root,
double *  a,
unsigned int  n 
)
template<>
void xmm::json2array ( Json::Value const &  root,
bool *  a,
unsigned int  n 
)
template<>
void xmm::json2array ( Json::Value const &  root,
std::string *  a,
unsigned int  n 
)
template<>
void xmm::json2vector ( Json::Value const &  root,
std::vector< float > &  a,
unsigned int  n 
)
template<>
void xmm::json2vector ( Json::Value const &  root,
std::vector< double > &  a,
unsigned int  n 
)
template<>
void xmm::json2vector ( Json::Value const &  root,
std::vector< bool > &  a,
unsigned int  n 
)
template<>
void xmm::json2vector ( Json::Value const &  root,
std::vector< std::string > &  a,
unsigned int  n 
)
template<typename T >
T* xmm::reallocate ( T *  src,
unsigned int  dim_src,
unsigned int  dim_dst 
)

Reallocate a C-like array (using c++ std::copy)

Parameters
srcsource array
dim_srcinitial dimension
dim_dsttarget dimension
Returns
resized array (content is conserved)

Variable Documentation

const std::vector<float> xmm::null_vector_float