Compagnie Gaspard Buma
enfr

News

Workshop lubyk

Workshop interne avec l’équipe de l’EPFL-ECAL-lab pour évaluer lubyk. Si tout va bien, on aura quelques démos à mettre en ligne…

Prochain spectacle

Nous travaillons actuellement sur le spectacle des bateaux pour nulle part prévu pour l’automne 2012.

VQ object

After the first filtering stage we need to further compress our data (reduce it’s dimensionality). For this purpose, we use Vector Quantization.

In order to reduce the amount of data that arrives into the machine learning part of our software, we use Vector Quantization.

VQ

Picture © Mohamed Qasem

The idea is to split our input space (every possible movement of the dancers) into groups and use the labels for these groups instead of the values in the machine learning phase.

In our setup, we use this object to record and classify the result of the FFT object.

Usage

Connect it to an ArraySignal corresponding to a vector in your input space (frequency domain in our setup for example). Use a Keyboard object to send it “r” (record). The object will start recording all the vectors you send it as training data (the black crosses in the drawing above).

When you have enough data, send it an “l” (learn). It will produce a codebook (list of prototype signals in red above) and save it for future uses (the raw training data is saved too). The VQ object then enters the “Label” state where it finds the closest prototype for any vector it receives and sends the prototype id out.

If you intend to use large codebooks (>100), you should help me optimize the codebook search (doing a full search in the current implementation).

Real life

Please read the following posts to see how this behaves in the full setup :

Cabox --> Buffer --> FFT --> VQ --> Svm --> Turing --> Lua --> Midi