Doc_BoxAlgorithm_ClassifierProcessor.dox-part 5.41 KB
 Jussi Lindgren committed May 07, 2013 1 2 3 4 5 6 7 8 /** * \page BoxAlgorithm_ClassifierProcessor Classifier processor __________________________________________________________________ Detailed description __________________________________________________________________ * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Description|  Jussi Lindgren committed Jul 28, 2014 9 10 11 12 13 14 15 16 17 The Classifier Processor box is a generic box for classifying data (feature vectors). It works in conjunction with the \ref Doc_BoxAlgorithm_ClassifierTrainer 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  Jussi Lindgren committed May 07, 2013 18 19 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  Jussi Lindgren committed Jul 23, 2013 20 dependent on the chosen classification algorithm. For example, the LDA classifier sends the hyperplane distance  Jussi Lindgren committed May 07, 2013 21 22 23 24 25 26 27 28 29 30 31 value as its status. * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Description| __________________________________________________________________ Inputs description __________________________________________________________________ * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Inputs| * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Inputs| * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Input1|  Jussi Lindgren committed Jul 28, 2014 32 This input should be connected to the feature vector stream to classify. Each time a new feature vector arrives,  Jussi Lindgren committed May 07, 2013 33 34 35 a classification process will be triggered. Consequently, a classification stimulation will be sent on the first output of this box. * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Input1|  Jussi Lindgren committed May 09, 2016 36 37 38 39 40 41  * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Input2| 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. * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Input2|  Jussi Lindgren committed May 07, 2013 42 43 44 45 46 47 48 49 50 51 __________________________________________________________________ Outputs description __________________________________________________________________ * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Outputs| * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Outputs| * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Output1| This output will contain the classification stimulations. Each time a new feature vector arrives to this box,  Jussi Lindgren committed Jul 23, 2013 52 a new classification process is triggered, resulting in the generation of the corresponding class stimulation.  Jussi Lindgren committed May 07, 2013 53 54 55  * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Output1| * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Output2|  Serrière Guillaume committed Feb 09, 2015 56 This output reflects the classification algorithm status in the form of a matrix of value. This output will contain one or several distances  Serrière Guillaume committed Feb 17, 2015 57 to an hyperplane if the classifier provide it. If not, the matrix will have 0 dimension. The format of this output directly depend on  Serrière Guillaume committed Feb 09, 2015 58 59 60 61 62 63 64 the classification algorithm and of the strategy used by the processor box. * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Output2| * * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Output3| 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.  Jussi Lindgren committed May 07, 2013 65 66 67 68 69 70 71 72 73 74  * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Output2| __________________________________________________________________ Settings description __________________________________________________________________ * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Settings| * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Settings| * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Setting1|  Serrière Guillaume committed Jul 11, 2014 75 This setting points to the configuration file of the box generated by the  Jussi Lindgren committed May 07, 2013 76 \ref Doc_BoxAlgorithm_ClassifierTrainer box. Its syntax depends on the selected algorithm.  Serrière Guillaume committed Jul 11, 2014 77  * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Setting1|  Jussi Lindgren committed May 07, 2013 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96  __________________________________________________________________ Examples description __________________________________________________________________ * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_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 \ref Doc_BoxAlgorithm_ClassifierTrainer, please see the motor imagary BCI scenario in the sample scenarios. * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Examples| __________________________________________________________________ Miscellaneous description __________________________________________________________________ * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Miscellaneous| * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Miscellaneous| */