Doc_BoxAlgorithm_ClassifierProcessor.dox-part 5.41 KB
Newer Older
Jussi Lindgren's avatar
Jussi Lindgren committed
1
2
3
4
5
6
7
8
/**
 * \page BoxAlgorithm_ClassifierProcessor Classifier processor
__________________________________________________________________

Detailed description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Description|
Jussi Lindgren's avatar
Jussi Lindgren committed
9
10
11
12
13
14
15
16
17
The <em>Classifier Processor</em> 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's avatar
Jussi Lindgren committed
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's avatar
Jussi Lindgren committed
20
dependent on the chosen classification algorithm. For example, the LDA classifier sends the hyperplane distance
Jussi Lindgren's avatar
Jussi Lindgren committed
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's avatar
Jussi Lindgren committed
32
This input should be connected to the feature vector stream to classify. Each time a new feature vector arrives,
Jussi Lindgren's avatar
Jussi Lindgren committed
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|
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's avatar
Jussi Lindgren committed
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's avatar
Jussi Lindgren committed
52
a new classification process is triggered, resulting in the generation of the corresponding class stimulation.
Jussi Lindgren's avatar
Jussi Lindgren committed
53
54
55
 * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Output1|

 * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Output2|
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's avatar
Serrière Guillaume committed
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 
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's avatar
Jussi Lindgren committed
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|
75
This setting points to the configuration file of the box generated by the 
Jussi Lindgren's avatar
Jussi Lindgren committed
76
\ref Doc_BoxAlgorithm_ClassifierTrainer box. Its syntax depends on the selected algorithm.
77
 * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Setting1|
Jussi Lindgren's avatar
Jussi Lindgren committed
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 <b>motor imagary</b>
BCI scenario in the sample scenarios.
 * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Examples|
__________________________________________________________________

Miscellaneous description
__________________________________________________________________

 * |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Miscellaneous|
 * |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Miscellaneous|
 */