-
Notifications
You must be signed in to change notification settings - Fork 28
Overview
Here we give a quick tutorial to use the C++ library provided in the repository.
The construction of a GestureVariationFollower object requires a certain number of parameters. This page tries to help the interested programmer in choosing the parameters for given input data.
Construct a GestureVariationFollower object:
GestureVariationFollower* myGvf = new GestureVariationFollower(ns, sigs, icov, resThresh, nu);
Learning. For each new template to be added to the vocabulary:
myGvf->addTemplate();
For each new incoming data vector data [type vector<float>] of a template N [type: int]:
myGvf->fillTemplate(N, data);
Following. At the beginning of each new gesture (first point of a gesture), restart the GVF by spreading particles:
myGvf->spreadParticles(means, ranges);
For each new live gesture data vector livedata [type vector<float>]:
myGvf->infer(livedata);
Constructor:
-
ns: Number of particles (~200/template) -
sigs: Incremental step length for each feature. In other words, for instance allowing large variation in scale would lead to put its sig value to 0.01, on the contrary constraining the evolving scaling would lead to a sig value0.0000001.sigsis a vector of the size of the variation features to be estimated (typically 4). -
icov: e.g. value at 1/(0.04) for data between 0 and 1 -
resThresh= ns/5 -
nu= 0.
Spreading particles: particles are spread uniformly onto each feature (phase, speed, scale and angle)
-
means: Mean values for spreading. For instance, if considering that at the beginning the live gesture would start at the original speed before varying, the mean value for the speed feature will be1 -
ranges: Range of spreading.
Not committed yet, in progress ...