-
Notifications
You must be signed in to change notification settings - Fork 28
Get Started
Below we report the typical use of the library.
Create the GestureVariationFollower object:
GestureVariationFollower* myGvf = new GestureVariationFollower(ns, sigs, icov, resThresh, nu);
myGvf->addTemplate();
Learning. For each new template to be added to the vocabulary:
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 ...