Skip to content
Baptiste Caramiaux edited this page Nov 6, 2013 · 19 revisions

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);

Parameters

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 value 0.0000001. sigs is 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 be 1
  • ranges: Range of spreading.

Version using default parameters

Not committed yet, in progress ...

Clone this wiki locally