How Feature aggregator (P300 speller) works?

Concerning processing components: filters, file load/save, visualizations, communication ...
Post Reply
Sergio Vivar
Posts: 10
Joined: Tue Oct 18, 2016 7:26 pm

How Feature aggregator (P300 speller) works?

Post by Sergio Vivar »

Hi

I have:
*OpenViBE v1.2.2
*SO Windows 10
*OpenEEG hardware 2 electrodes, Oz y Pz for P300 sampling frecuency 256 hz
*Decimation factor 4
*9 trials and 12 repetitions
*Scenario: 2 train classifier in P300 speller
Epoch block average: epoch count=1

I have a question about "Feature aggregator" box works.

Epoch average box provide:

Image

and the LDA classifier report:

Code: Select all

[  INF  ] At time 502.000 sec <Box algorithm::(0x0a5a6a4a, 0x1d92a778) aka Classifier trainer> Received train stimulation. Data dim is [1295x76]
[  INF  ] At time 502.000 sec <Box algorithm::(0x0a5a6a4a, 0x1d92a778) aka Classifier trainer> For information, we have 216 feature vector(s) for input 1
[  INF  ] At time 502.000 sec <Box algorithm::(0x0a5a6a4a, 0x1d92a778) aka Classifier trainer> For information, we have 1079 feature vector(s) for input 2
for epoch duration= 0.6 seconds, epochs must have 38 samples each one. If the classifier receive data dim=1295 x 76, I suppose Feature aggregator puts in rows the epochs, each row contains 38 samples for Oz and 38 samples for Pz; 216 rows for target epoch and 1079 for non target epochs.

Is "Feature aggregator" box for target provide an array like this to the classifier?:

Image

I mean, Feature aggregator put 38 samples for Oz, immediatelly after 38 samples for Pz, and then for each epoch

and the same for the non target but with 1079 rows (epochs)?

Another question ¿is it possible write on .csv file the Feature aggregator output? CSV File Writer shows "invalid connection" warning and Generic Stream Writer shows error during the train process.

jtlindgren
Posts: 775
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

Re: How Feature aggregator (P300 speller) works?

Post by jtlindgren »

Hi Sergio,

I'm not sure if I completely understand the question. Here's some info though.

Basically Feature Aggregator just flattens a matrix to a vector. In OpenViBE, each signal epoch corresponds to one such matrix, or 'chunk'.

For N channels and M samples (epoch length in samples), each matrix is laid out as follows

Code: Select all

channel1 time1, channel1 time2, channel1 time3,..., channel1 timeM
channel2 time1, channel2 time2, channel2 time3,..., channel2 timeM
...
channelN time1, channelN time2, channelN time3,..., channelN timeM
The Feature Aggregator will turn each received matrix into one feature vector with size [N*M]. It will do this by reading the matrix one row at a time, from left to right, top down.

Hope this helps,
Jussi

Sergio Vivar
Posts: 10
Joined: Tue Oct 18, 2016 7:26 pm

Re: How Feature aggregator (P300 speller) works?

Post by Sergio Vivar »

Oh, now I understand. Thanks a lot Jussi

Post Reply