![]() |
GestureRecognitionToolkit
Version: 1.0 Revision: 04-03-15
The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, c++ machine learning library for real-time gesture recognition.
|
Public Types | |
enum | SwipeDirections { POSITIVE_SWIPE =0, NEGATIVE_SWIPE } |
![]() | |
typedef std::map< string, Classifier *(*)() > | StringClassifierMap |
![]() | |
enum | BaseTypes { BASE_TYPE_NOT_SET =0, CLASSIFIER, REGRESSIFIER, CLUSTERER } |
Public Member Functions | |
SwipeDetector (const unsigned int swipeIndex=0, const unsigned int swipeThreshold=100, const unsigned int hysteresisThreshold=0, const unsigned int swipeDirection=POSITIVE_SWIPE, bool useScaling=false) | |
SwipeDetector (const SwipeDetector &rhs) | |
virtual | ~SwipeDetector (void) |
SwipeDetector & | operator= (const SwipeDetector &rhs) |
virtual bool | deepCopyFrom (const Classifier *classifier) |
bool | init (const unsigned int numInputDimensions) |
virtual bool | train_ (ClassificationData &trainingData) |
virtual bool | predict_ (VectorDouble &inputVector) |
virtual bool | clear () |
virtual bool | reset () |
virtual bool | saveModelToFile (fstream &file) const |
virtual bool | loadModelFromFile (fstream &file) |
bool | getSwipeDetected () const |
double | getSwipeValue () const |
double | getSwipeThreshold () const |
double | getHysteresisThreshold () const |
double | getMovementVelocity () const |
double | getMovementThreshold () const |
double | getContextValue () const |
double | getSwipeIntegrationCoeff () const |
bool | setContext (const bool context) |
bool | setSwipeIndex (const unsigned int swipeIndex) |
bool | setSwipeDirection (const unsigned int swipeDirection) |
bool | setSwipeThreshold (const double swipeThreshold) |
bool | setHysteresisThreshold (const double hysteresisThreshold) |
bool | setMovementThreshold (const double movementThreshold) |
bool | setSwipeIntegrationCoeff (const double swipeIntegrationCoeff) |
![]() | |
Classifier (void) | |
virtual | ~Classifier (void) |
bool | copyBaseVariables (const Classifier *classifier) |
string | getClassifierType () const |
bool | getSupportsNullRejection () const |
bool | getNullRejectionEnabled () const |
double | getNullRejectionCoeff () const |
double | getMaximumLikelihood () const |
double | getBestDistance () const |
double | getPhase () const |
virtual UINT | getNumClasses () const |
UINT | getClassLabelIndexValue (UINT classLabel) const |
UINT | getPredictedClassLabel () const |
VectorDouble | getClassLikelihoods () const |
VectorDouble | getClassDistances () const |
VectorDouble | getNullRejectionThresholds () const |
vector< UINT > | getClassLabels () const |
vector< MinMax > | getRanges () const |
bool | enableNullRejection (bool useNullRejection) |
virtual bool | setNullRejectionCoeff (double nullRejectionCoeff) |
virtual bool | setNullRejectionThresholds (VectorDouble newRejectionThresholds) |
virtual bool | recomputeNullRejectionThresholds () |
bool | getTimeseriesCompatible () const |
Classifier * | createNewInstance () const |
Classifier * | deepCopy () const |
const Classifier * | getClassifierPointer () const |
const Classifier & | getBaseClassifier () const |
![]() | |
MLBase (void) | |
virtual | ~MLBase (void) |
bool | copyMLBaseVariables (const MLBase *mlBase) |
virtual bool | train (ClassificationData trainingData) |
virtual bool | train (RegressionData trainingData) |
virtual bool | train_ (RegressionData &trainingData) |
virtual bool | train (TimeSeriesClassificationData trainingData) |
virtual bool | train_ (TimeSeriesClassificationData &trainingData) |
virtual bool | train (TimeSeriesClassificationDataStream trainingData) |
virtual bool | train_ (TimeSeriesClassificationDataStream &trainingData) |
virtual bool | train (UnlabelledData trainingData) |
virtual bool | train_ (UnlabelledData &trainingData) |
virtual bool | train (MatrixDouble data) |
virtual bool | train_ (MatrixDouble &data) |
virtual bool | predict (VectorDouble inputVector) |
virtual bool | predict (MatrixDouble inputMatrix) |
virtual bool | predict_ (MatrixDouble &inputMatrix) |
virtual bool | map (VectorDouble inputVector) |
virtual bool | map_ (VectorDouble &inputVector) |
virtual bool | print () const |
virtual bool | save (const string filename) const |
virtual bool | load (const string filename) |
virtual bool | saveModelToFile (string filename) const |
virtual bool | loadModelFromFile (string filename) |
virtual bool | getModel (ostream &stream) const |
double | scale (const double &x, const double &minSource, const double &maxSource, const double &minTarget, const double &maxTarget, const bool constrain=false) |
virtual string | getModelAsString () const |
UINT | getBaseType () const |
UINT | getNumInputFeatures () const |
UINT | getNumInputDimensions () const |
UINT | getNumOutputDimensions () const |
UINT | getMinNumEpochs () const |
UINT | getMaxNumEpochs () const |
UINT | getValidationSetSize () const |
UINT | getNumTrainingIterationsToConverge () const |
double | getMinChange () const |
double | getLearningRate () const |
double | getRootMeanSquaredTrainingError () const |
double | getTotalSquaredTrainingError () const |
bool | getUseValidationSet () const |
bool | getRandomiseTrainingOrder () const |
bool | getTrained () const |
bool | getModelTrained () const |
bool | getScalingEnabled () const |
bool | getIsBaseTypeClassifier () const |
bool | getIsBaseTypeRegressifier () const |
bool | getIsBaseTypeClusterer () const |
bool | enableScaling (bool useScaling) |
bool | setMaxNumEpochs (const UINT maxNumEpochs) |
bool | setMinNumEpochs (const UINT minNumEpochs) |
bool | setMinChange (const double minChange) |
bool | setLearningRate (double learningRate) |
bool | setUseValidationSet (const bool useValidationSet) |
bool | setValidationSetSize (const UINT validationSetSize) |
bool | setRandomiseTrainingOrder (const bool randomiseTrainingOrder) |
bool | registerTrainingResultsObserver (Observer< TrainingResult > &observer) |
bool | registerTestResultsObserver (Observer< TestInstanceResult > &observer) |
bool | removeTrainingResultsObserver (const Observer< TrainingResult > &observer) |
bool | removeTestResultsObserver (const Observer< TestInstanceResult > &observer) |
bool | removeAllTrainingObservers () |
bool | removeAllTestObservers () |
bool | notifyTrainingResultsObservers (const TrainingResult &data) |
bool | notifyTestResultsObservers (const TestInstanceResult &data) |
MLBase * | getMLBasePointer () |
const MLBase * | getMLBasePointer () const |
vector< TrainingResult > | getTrainingResults () const |
![]() | |
GRTBase (void) | |
virtual | ~GRTBase (void) |
bool | copyGRTBaseVariables (const GRTBase *GRTBase) |
string | getClassType () const |
string | getLastWarningMessage () const |
string | getLastErrorMessage () const |
string | getLastInfoMessage () const |
GRTBase * | getGRTBasePointer () |
const GRTBase * | getGRTBasePointer () const |
![]() | |
virtual void | notify (const TrainingResult &data) |
![]() | |
virtual void | notify (const TestInstanceResult &data) |
Protected Attributes | |
bool | firstSample |
bool | swipeDetected |
bool | contextInput |
unsigned int | swipeIndex |
unsigned int | swipeDirection |
unsigned int | contextFilterSize |
double | swipeIntegrationCoeff |
double | movementIntegrationCoeff |
double | swipeThreshold |
double | hysteresisThreshold |
double | swipeVelocity |
double | movementVelocity |
double | movementThreshold |
double | contextFilteredValue |
vector< double > | lastX |
GRT::ThresholdCrossingDetector | thresholdDetector |
GRT::MedianFilter | contextFilter |
![]() | |
string | classifierType |
bool | supportsNullRejection |
bool | useNullRejection |
UINT | numClasses |
UINT | predictedClassLabel |
UINT | classifierMode |
double | nullRejectionCoeff |
double | maxLikelihood |
double | bestDistance |
double | phase |
VectorDouble | classLikelihoods |
VectorDouble | classDistances |
VectorDouble | nullRejectionThresholds |
vector< UINT > | classLabels |
vector< MinMax > | ranges |
![]() | |
bool | trained |
bool | useScaling |
UINT | baseType |
UINT | numInputDimensions |
UINT | numOutputDimensions |
UINT | numTrainingIterationsToConverge |
UINT | minNumEpochs |
UINT | maxNumEpochs |
UINT | validationSetSize |
double | learningRate |
double | minChange |
double | rootMeanSquaredTrainingError |
double | totalSquaredTrainingError |
bool | useValidationSet |
bool | randomiseTrainingOrder |
Random | random |
vector< TrainingResult > | trainingResults |
TrainingResultsObserverManager | trainingResultsObserverManager |
TestResultsObserverManager | testResultsObserverManager |
![]() | |
string | classType |
DebugLog | debugLog |
ErrorLog | errorLog |
InfoLog | infoLog |
TrainingLog | trainingLog |
TestingLog | testingLog |
WarningLog | warningLog |
Static Protected Attributes | |
static RegisterClassifierModule< SwipeDetector > | registerModule |
Additional Inherited Members | |
![]() | |
static Classifier * | createInstanceFromString (string const &classifierType) |
static vector< string > | getRegisteredClassifiers () |
![]() | |
static string | getGRTVersion (bool returnRevision=true) |
static string | getGRTRevison () |
![]() | |
enum | ClassifierModes { STANDARD_CLASSIFIER_MODE =0, TIMESERIES_CLASSIFIER_MODE } |
![]() | |
bool | saveBaseSettingsToFile (fstream &file) const |
bool | loadBaseSettingsFromFile (fstream &file) |
![]() | |
bool | saveBaseSettingsToFile (fstream &file) const |
bool | loadBaseSettingsFromFile (fstream &file) |
![]() | |
double | SQR (const double &x) const |
![]() | |
static StringClassifierMap * | getMap () |
Definition at line 40 of file SwipeDetector.h.
GRT::SwipeDetector::SwipeDetector | ( | const unsigned int | swipeIndex = 0 , |
const unsigned int | swipeThreshold = 100 , |
||
const unsigned int | hysteresisThreshold = 0 , |
||
const unsigned int | swipeDirection = POSITIVE_SWIPE , |
||
bool | useScaling = false |
||
) |
Default Constructor
bool | useScaling: sets if the training and prediction data should be scaled to a specific range. Default value is useScaling = false |
Definition at line 28 of file SwipeDetector.cpp.
GRT::SwipeDetector::SwipeDetector | ( | const SwipeDetector & | rhs | ) |
Defines the copy constructor.
const | SwipeDetector &rhs: the instance from which all the data will be copied into this instance |
Definition at line 55 of file SwipeDetector.cpp.
|
virtual |
Default Destructor
Definition at line 73 of file SwipeDetector.cpp.
|
virtual |
This overrides the clear function in the Classifier base class. It will completely clear the ML module, removing any trained model and setting all the base variables to their default values.
Reimplemented from GRT::Classifier.
Definition at line 247 of file SwipeDetector.cpp.
|
virtual |
This is required for the Gesture Recognition Pipeline for when the pipeline.setClassifier(...) method is called. It clones the data from the Base Class Classifier pointer (which should be pointing to an SwipeDetector instance) into this instance
Classifier | *classifier: a pointer to the Classifier Base Class, this should be pointing to another SwipeDetector instance |
Reimplemented from GRT::Classifier.
Definition at line 104 of file SwipeDetector.cpp.
double GRT::SwipeDetector::getContextValue | ( | ) | const |
Definition at line 445 of file SwipeDetector.cpp.
double GRT::SwipeDetector::getHysteresisThreshold | ( | ) | const |
Definition at line 433 of file SwipeDetector.cpp.
double GRT::SwipeDetector::getMovementThreshold | ( | ) | const |
Definition at line 441 of file SwipeDetector.cpp.
double GRT::SwipeDetector::getMovementVelocity | ( | ) | const |
This function returns the movement velocity. This is the integrated difference between each of the additional inputs (that are not the swipe index) that is used to detected a valid swipe. The movement velocity must be below the movement threshold for a valid swipe to be detected.
Definition at line 437 of file SwipeDetector.cpp.
bool GRT::SwipeDetector::getSwipeDetected | ( | ) | const |
Definition at line 421 of file SwipeDetector.cpp.
double GRT::SwipeDetector::getSwipeIntegrationCoeff | ( | ) | const |
Definition at line 449 of file SwipeDetector.cpp.
double GRT::SwipeDetector::getSwipeThreshold | ( | ) | const |
Definition at line 429 of file SwipeDetector.cpp.
double GRT::SwipeDetector::getSwipeValue | ( | ) | const |
Definition at line 425 of file SwipeDetector.cpp.
|
virtual |
This loads a trained SwipeDetector model from a file. This overrides the loadModelFromFile function in the Classifier base class.
fstream | &file: a reference to the file the SwipeDetector model will be loaded from |
Reimplemented from GRT::MLBase.
Definition at line 321 of file SwipeDetector.cpp.
SwipeDetector & GRT::SwipeDetector::operator= | ( | const SwipeDetector & | rhs | ) |
Defines how the data from the rhs SwipeDetector should be copied to this SwipeDetector
const | SwipeDetector &rhs: another instance of a SwipeDetector |
Definition at line 77 of file SwipeDetector.cpp.
|
virtual |
This predicts the class of the inputVector. This overrides the predict function in the Classifier base class.
VectorDouble | inputVector: the input vector to classify |
Reimplemented from GRT::MLBase.
Definition at line 189 of file SwipeDetector.cpp.
|
virtual |
This overrides the reset function in the Classifier base class.
Reimplemented from GRT::Classifier.
Definition at line 257 of file SwipeDetector.cpp.
|
virtual |
This saves the trained SwipeDetector model to a file. This overrides the saveModelToFile function in the Classifier base class.
fstream | &file: a reference to the file the SwipeDetector model will be saved to |
Reimplemented from GRT::MLBase.
Definition at line 284 of file SwipeDetector.cpp.
bool GRT::SwipeDetector::setContext | ( | const bool | context | ) |
This function lets you set the current context input. This should be called before you call the predict function.
Definition at line 453 of file SwipeDetector.cpp.
bool GRT::SwipeDetector::setHysteresisThreshold | ( | const double | hysteresisThreshold | ) |
This function lets you set the swipe hysteresisThreshold, this is the threshold that the swipe analysis value must pass after a valid swipe before a new swipe can be detected.
const | double hysteresisThreshold: the new hysteresis threshold |
Definition at line 483 of file SwipeDetector.cpp.
bool GRT::SwipeDetector::setMovementThreshold | ( | const double | movementThreshold | ) |
This function lets you set the swipe movementThreshold. The movement index must be below the movementThreshold for a valid swipe to be detected.
const | double movementThreshold: the new movement threshold |
Definition at line 489 of file SwipeDetector.cpp.
bool GRT::SwipeDetector::setSwipeDirection | ( | const unsigned int | swipeDirection | ) |
This function lets you set the swipe direction, this should be one of the SwipeDirections enums.
const | unsigned int swipeDirection: the direction you want to search for a swipe in |
Definition at line 464 of file SwipeDetector.cpp.
bool GRT::SwipeDetector::setSwipeIndex | ( | const unsigned int | swipeIndex | ) |
This function lets you set the swipe index, this is the index in the input vector that contains the main axis you want to use for the swipe detection. The other elements in the input vector will be combined to compute the movement index. The swipeIndex should be a valid index in your input vector.
const | unsigned int swipeIndex: the index in the input vector you want to use for the swipe detection |
Definition at line 458 of file SwipeDetector.cpp.
bool GRT::SwipeDetector::setSwipeIntegrationCoeff | ( | const double | swipeIntegrationCoeff | ) |
This function lets you set the swipe integration coeff. This controls how much 'memory' is used to when integrating the input data.
const | double swipeIntegrationCoeff: the new integration coefficient |
Definition at line 495 of file SwipeDetector.cpp.
bool GRT::SwipeDetector::setSwipeThreshold | ( | const double | swipeThreshold | ) |
This function lets you set the swipe threshold, this is the threshold that the swipe analysis value must pass for a swipe to be detected.
const | double swipeThreshold: the new swipe threshold |
Definition at line 477 of file SwipeDetector.cpp.
|
virtual |
This trains the SwipeDetector model, using the labelled classification data. This overrides the train function in the Classifier base class.
ClassificationData | trainingData: a reference to the training data |
Reimplemented from GRT::MLBase.
Definition at line 155 of file SwipeDetector.cpp.