Help with P300 Speller

Working with OpenViBE signal processing scenarios and doing scenario/BCI design
Post Reply
yvessl
Posts: 5
Joined: Fri Oct 22, 2010 3:00 pm

Help with P300 Speller

Post by yvessl »

Hi,

I'm new to BCI and I'm still confused with how things work, especially with the P300 Speller xDawn scenario.

Basically, I would like to know how to retrieve the letter chosen by the user so I could use a VRPN box to communicate it to another application.

I'm using OpenViBE 0.8.0 and the p300-speller-5-replay scenario.

I connected a stimulation listener box to the P300 Speller Visualisation output and observed that the target/non target stimulation was sent based on the current target.

But I don't understand how you decide on the result.

For instance, let us assume the following scenario:

Target: MRVZ
Result: R3V

Could you please help me understanding that?

Thanks you very much.

Regards,

Yves.

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Help with P300 Speller

Post by lbonnet »

Hello Yves and welcome on board !

The results of the classification are output by the Voting Classifier boxes.
One is giving the chosen column, the other is giving the chosen row.
You cannot have directly the letter selected. In fact, you could put in the Speller grid images or symbols and not letters. The system just flashes and selects a cell of the grid.

The actual output of the voting classifier is a stimulation, with code given by the box setting "Result class label base". "base" because if the first class is elected the box triggers this stimulation, and if the second class is elected the box triggers this stimulation +1, and so on. Thus you can have multiple classes without having to tweak a lot of settings.

These outputs are both redirected to the P300 Speller Visualisation Box to display the cell selected by the system (and hopefully the user).

If you want to send through VRPN the result of the classification process, you have to translate the pair of stimulations (row,column) into a letter.
You can do this translation in OpenViBE with a LUA stimulator for example. Or you can directly send to a VRPN button server the stimulations (row,column).
However if you need all the letters, you will need 6*6=36 buttons in the server, and modify the 36 according settings manually (not advised...). If you focus on few letters (for example if your application triggers few actions with few letters) this solution is ok I guess.

Hope this helps,

Laurent
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

yvessl
Posts: 5
Joined: Fri Oct 22, 2010 3:00 pm

Re: Help with P300 Speller

Post by yvessl »

Hi Laurent,

Thanks for your quick answer, it helped me a lot.

I observed what you said after modifying the log level of the stimulation listeners (connected to the classifiers output). In my context, nothing did appear when using "DEBUG", I guess I need to tweak some settings.

From what I understand now, the user in your replay scenario does not really act as expected, doesn't it? Could you tell me what are the main reasons please? I mean, is it due to a lack of training or better could you provide me with an average error rate?

Thanks again.

Regards,

Yves.

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Help with P300 Speller

Post by lbonnet »

Hi Yves,
In my context, nothing did appear when using "DEBUG", I guess I need to tweak some settings.
Yep ! One of the buttons on the designer toolbar allows you to modify the log levels displayed. Select the one you wish to see.
From what I understand now, the user in your replay scenario does not really act as expected, doesn't it? Could you tell me what are the main reasons please? I mean, is it due to a lack of training or better could you provide me with an average error rate?
Indeed the session replayed gives very bad results. The reason is simple : we didn't update the configuration files of the classifiers and xDawn spatial filter :)
There is an incoherence between the configuration and the data replayed... and we can't achieve good results. I'll correct that right now for the future release.

You can try to use the other scenarios to train the xDawn filter (p300-speller-2-train-xDAWN.xml), then the classifiers (p300-speller-2-train-classifier.xml), with the EEG file provided (${Path_Samples}/signals/bci-p300-speller.ov).
Of course you will have good recognition as you replays on the training data :) Anyway it will show you how the other scenarios work.

Laurent-
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

yvessl
Posts: 5
Joined: Fri Oct 22, 2010 3:00 pm

Re: Help with P300 Speller

Post by yvessl »

Hi Laurent.

Thanks again for your answer.

I will try your method to get better accuracy cause I might need it later on in my project.

I might post a feedback once done.

Thanks.

Regards,

Yves.

Post Reply