Classifier processor

Summary

Doc_BoxAlgorithm_ClassifierProcessor.png
  • Plugin name : Classifier processor
  • Version : 2.1
  • Author : Yann Renard, Guillaume Serriere
  • Company : INRIA/IRISA
  • Short description : Generic classification, relying on several box algorithms
  • Documentation template generation date : Dec 30 2016

Description

Classifies incoming feature vectors using a previously learned classifier.

The Classifier Processor box is a generic box for classifying data (feature vectors). It works in conjunction with the Classifier trainer box. This box' role is to expose a generic interface to the rest of the BCI pipeline. The vectors to classify are forwarded to an algorithm or a structure of algorithms depending on what is described in the loaded configuration file. The behavior is simple: at initialization phase, the classification structure is initialized and its configuration is loaded from the configuration file. Then each time this box receives a new feature vector, it is forwarded to the classification algorithm that classifies it. The box gets the algorithm status and the actual class value and translates this information to its output. The predicted class is sent out in the form of a stimulation and the algorithm status is sent in the form a streamed matrix. The stimulation can be generically interpreted by the rest of the pipeline but it is important to understand that each classification algorithm is free to report whatever it wants in its "status matrix". Consequently, the use of this output stream will be dependent on the chosen classification algorithm. For example, the LDA classifier sends the hyperplane distance value as its status.

Inputs

1. Features

This input should be connected to the feature vector stream to classify. Each time a new feature vector arrives, a classification process will be triggered. Consequently, a classification stimulation will be sent on the first output of this box.

  • Type identifier : Feature vector (0x17341935, 0x152ff448)

2. Commands

If this input receives the stimulation OVTK_StimulationId_TrainCompleted, the box will reload the classifier from the disk. It can be used to implement simple incremental learning.

  • Type identifier : Stimulations (0x6f752dd0, 0x082a321e)

Outputs

1. Labels

This output will contain the classification stimulations. Each time a new feature vector arrives to this box, a new classification process is triggered, resulting in the generation of the corresponding class stimulation.

  • Type identifier : Stimulations (0x6f752dd0, 0x082a321e)

2. Hyperplane distance

This output reflects the classification algorithm status in the form of a matrix of value. This output will contain one or several distances to an hyperplane if the classifier provide it. If not, the matrix will have 0 dimension. The format of this output directly depend on the classification algorithm and of the strategy used by the processor box.

  • Type identifier : Streamed matrix (0x544a003e, 0x6dcba5f6)

3. Probability values

This output reflects the classification algorithm status in the form of a matrix of value. This output will contains one or several probabilities for a data to be on a class if the classifier provide it. If not, the matrix will have 0 dimension. The format of this output directly depend on the classification algorithm and of the strategy used by the processor box.

  • Type identifier : Streamed matrix (0x544a003e, 0x6dcba5f6)

Settings

1. Filename to load configuration from

This setting points to the configuration file of the box generated by the Classifier trainer box. Its syntax depends on the selected algorithm.

  • Type identifier : Filename (0x330306dd, 0x74a95f98)
  • Default value : [ ]

Examples

This box is used in BCI pipelines in order to classify cerebral activity states. For a detailed scenario using this box and its associated Classifier trainer, please see the motor imagary BCI scenario in the sample scenarios.

Miscellaneous