Commit aeffb140 authored by MONSEIGNE Thibaut's avatar MONSEIGNE Thibaut

Boxes: Update boxes and tests

parent a3e24244
......@@ -295,8 +295,8 @@
<Setting>
<TypeIdentifier>(0x5261636b, 0x436c6173)</TypeIdentifier>
<Name>Method</Name>
<DefaultValue>Minimum Distance to Mean</DefaultValue>
<Value>Minimum Distance to Mean</Value>
<DefaultValue>Minimum Distance to Mean with geodesic filtering (FgMDM) (Real Time adaptation assumed)</DefaultValue>
<Value>Minimum Distance to Mean (MDM)</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
......
......@@ -45,7 +45,7 @@ bool CBoxAlgorithmCovarianceMatrixCalculator::uninitialize()
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
bool CBoxAlgorithmCovarianceMatrixCalculator::processInput(uint32_t index)
bool CBoxAlgorithmCovarianceMatrixCalculator::processInput(uint32_t /*index*/)
{
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
......
......@@ -43,7 +43,7 @@ bool CBoxAlgorithmCovarianceMatrixToFeatureVector::uninitialize()
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
bool CBoxAlgorithmCovarianceMatrixToFeatureVector::processInput(uint32_t index)
bool CBoxAlgorithmCovarianceMatrixToFeatureVector::processInput(uint32_t /*index*/)
{
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
......
......@@ -73,7 +73,7 @@ bool CBoxAlgorithmCovarianceMeanCalculator::uninitialize()
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
bool CBoxAlgorithmCovarianceMeanCalculator::processInput(uint32_t index)
bool CBoxAlgorithmCovarianceMeanCalculator::processInput(uint32_t /*index*/)
{
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
......@@ -92,7 +92,7 @@ bool CBoxAlgorithmCovarianceMeanCalculator::process()
m_i0StimulationCodec.decode(i); // Decode the chunk
if (m_i0StimulationCodec.isBufferReceived()) // Buffer received
{
for (uint32_t j = 0; j < m_iStimulation->getStimulationCount(); ++j)
for (uint64_t j = 0; j < m_iStimulation->getStimulationCount(); ++j)
{
if (m_iStimulation->getStimulationIdentifier(j) == m_stimulationName)
{
......@@ -188,5 +188,5 @@ bool CBoxAlgorithmCovarianceMeanCalculatorListener::onInputAdded(IBox& rBox, con
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
bool CBoxAlgorithmCovarianceMeanCalculatorListener::onInputRemoved(IBox& rBox, const uint32_t index) { return true; }
bool CBoxAlgorithmCovarianceMeanCalculatorListener::onInputRemoved(IBox& /*rBox*/, const uint32_t /*index*/) { return true; }
//---------------------------------------------------------------------------------------------------
......@@ -2,7 +2,6 @@
#include "classifier/CMatrixClassifierMDM.hpp"
#include "classifier/CMatrixClassifierMDMRebias.hpp"
#include "classifier/CMatrixClassifierFgMDMRT.hpp"
#include "classifier/CMatrixClassifierFgMDM.hpp"
#include "utils/ovpMisc.hpp"
using namespace OpenViBE;
......@@ -79,7 +78,7 @@ bool CBoxAlgorithmMatrixClassifierProcessor::uninitialize()
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
bool CBoxAlgorithmMatrixClassifierProcessor::processInput(uint32_t index)
bool CBoxAlgorithmMatrixClassifierProcessor::processInput(uint32_t /*index*/)
{
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
......@@ -199,7 +198,6 @@ bool CBoxAlgorithmMatrixClassifierProcessor::loadXML()
// Check Type
if (classifierType == IMatrixClassifier::getType(Matrix_Classifier_MDM)) { m_classifier = new CMatrixClassifierMDM; }
else if (classifierType == IMatrixClassifier::getType(Matrix_Classifier_MDM_Rebias)) { m_classifier = new CMatrixClassifierMDMRebias; }
else if (classifierType == IMatrixClassifier::getType(Matrix_Classifier_FgMDM)) { m_classifier = new CMatrixClassifierFgMDM; }
else if (classifierType == IMatrixClassifier::getType(Matrix_Classifier_FgMDM_RT)) { m_classifier = new CMatrixClassifierFgMDMRT; }
else { OV_ERROR_UNLESS_KRF(false, "Incorrect Classifier", ErrorType::BadFileParsing); }
......
......@@ -2,7 +2,6 @@
#include "3rd-party/tinyxml2.h"
#include "classifier/CMatrixClassifierMDM.hpp"
#include "classifier/CMatrixClassifierMDMRebias.hpp"
#include "classifier/CMatrixClassifierFgMDM.hpp"
#include "classifier/CMatrixClassifierFgMDMRT.hpp"
#include "utils/ovpMisc.hpp"
......@@ -55,7 +54,6 @@ bool CBoxAlgorithmMatrixClassifierTrainer::initialize()
if (m_method == OVP_TypeId_Matrix_Classifier_MDM) { msg << NAME_MDM; }
else if (m_method == OVP_TypeId_Matrix_Classifier_MDM_REBIAS) { msg << NAME_MDM_REBIAS; }
else if (m_method == OVP_TypeId_Matrix_Classifier_FGMDM_RT) { msg << NAME_FGMDM_RT; }
else if (m_method == OVP_TypeId_Matrix_Classifier_FGMDM) { msg << NAME_FGMDM; }
else { OV_ERROR_UNLESS_KRF(false, "Incorrect Selected Method", ErrorType::BadSetting); }
msg << std::endl;
this->getLogManager() << m_logLevel << msg.str().c_str();
......@@ -81,7 +79,7 @@ bool CBoxAlgorithmMatrixClassifierTrainer::uninitialize()
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
bool CBoxAlgorithmMatrixClassifierTrainer::processInput(uint32_t index)
bool CBoxAlgorithmMatrixClassifierTrainer::processInput(uint32_t /*index*/)
{
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
......@@ -91,58 +89,61 @@ bool CBoxAlgorithmMatrixClassifierTrainer::processInput(uint32_t index)
//---------------------------------------------------------------------------------------------------
bool CBoxAlgorithmMatrixClassifierTrainer::process()
{
IBoxIO& boxContext = this->getDynamicBoxContext();
//***** Stimulations *****
for (uint32_t i = 0; i < boxContext.getInputChunkCount(0); ++i)
if (!m_isTrain)
{
m_i0StimulationCodec.decode(i); // Decode the chunk
const uint64_t tStart = boxContext.getInputChunkStartTime(0, i), // Time Code Chunk Start
tEnd = boxContext.getInputChunkEndTime(0, i); // Time Code Chunk End
IBoxIO& boxContext = this->getDynamicBoxContext();
if (m_i0StimulationCodec.isHeaderReceived())
{
m_o0StimulationCodec.encodeHeader();
boxContext.markOutputAsReadyToSend(0, 0, 0);
}
else if (m_i0StimulationCodec.isBufferReceived()) // Buffer received
//***** Stimulations *****
for (uint32_t i = 0; i < boxContext.getInputChunkCount(0); ++i)
{
for (uint32_t j = 0; j < m_iStimulation->getStimulationCount(); ++j)
m_i0StimulationCodec.decode(i); // Decode the chunk
const uint64_t tStart = boxContext.getInputChunkStartTime(0, i), // Time Code Chunk Start
tEnd = boxContext.getInputChunkEndTime(0, i); // Time Code Chunk End
if (m_i0StimulationCodec.isHeaderReceived())
{
if (m_iStimulation->getStimulationIdentifier(j) == m_stimulationName)
m_o0StimulationCodec.encodeHeader();
boxContext.markOutputAsReadyToSend(0, 0, 0);
}
else if (m_i0StimulationCodec.isBufferReceived()) // Buffer received
{
for (uint64_t j = 0; j < m_iStimulation->getStimulationCount(); ++j)
{
OV_ERROR_UNLESS_KRF(train(), "Train failed", ErrorType::BadProcessing);
const uint64_t stim = this->getTypeManager().getEnumerationEntryValueFromName(OV_TypeId_Stimulation, "OVTK_StimulationId_TrainCompleted");
m_oStimulation->appendStimulation(stim, m_iStimulation->getStimulationDate(j), 0);
if (m_iStimulation->getStimulationIdentifier(j) == m_stimulationName)
{
OV_ERROR_UNLESS_KRF(train(), "Train failed", ErrorType::BadProcessing);
const uint64_t stim = this->getTypeManager().getEnumerationEntryValueFromName(OV_TypeId_Stimulation, "OVTK_StimulationId_TrainCompleted");
m_oStimulation->appendStimulation(stim, m_iStimulation->getStimulationDate(j), 0);
m_isTrain = true;
}
}
m_o0StimulationCodec.encodeBuffer();
boxContext.markOutputAsReadyToSend(0, tStart, tEnd);
}
else if (m_i0StimulationCodec.isEndReceived())
{
m_o0StimulationCodec.encodeEnd();
boxContext.markOutputAsReadyToSend(0, tStart, tEnd);
}
m_o0StimulationCodec.encodeBuffer();
boxContext.markOutputAsReadyToSend(0, tStart, tEnd);
}
else if (m_i0StimulationCodec.isEndReceived())
{
m_o0StimulationCodec.encodeEnd();
boxContext.markOutputAsReadyToSend(0, tStart, tEnd);
}
}
//***** Matrix *****
for (size_t k = 0; k < m_nbClass; ++k)
{
for (uint32_t i = 0; i < boxContext.getInputChunkCount(uint32_t(k + 1)); ++i)
//***** Matrix *****
for (size_t k = 0; k < m_nbClass; ++k)
{
m_i1MatrixCodec[k].decode(i); // Decode the chunk
OV_ERROR_UNLESS_KRF(m_iMatrix[k]->getDimensionCount() == 2, "Invalid Input Signal", ErrorType::BadInput);
if (m_i1MatrixCodec[k].isBufferReceived()) // Buffer received
for (uint32_t i = 0; i < boxContext.getInputChunkCount(uint32_t(k + 1)); ++i)
{
Eigen::MatrixXd cov;
MatrixConvert(*m_iMatrix[k], cov);
m_covs[k].push_back(cov);
m_i1MatrixCodec[k].decode(i); // Decode the chunk
OV_ERROR_UNLESS_KRF(m_iMatrix[k]->getDimensionCount() == 2, "Invalid Input Signal", ErrorType::BadInput);
if (m_i1MatrixCodec[k].isBufferReceived()) // Buffer received
{
Eigen::MatrixXd cov;
MatrixConvert(*m_iMatrix[k], cov);
m_covs[k].push_back(cov);
}
}
}
}
return true;
}
//---------------------------------------------------------------------------------------------------
......@@ -154,7 +155,6 @@ bool CBoxAlgorithmMatrixClassifierTrainer::train()
if (m_method == OVP_TypeId_Matrix_Classifier_MDM) { matrixClassifier = new CMatrixClassifierMDM; }
else if (m_method == OVP_TypeId_Matrix_Classifier_MDM_REBIAS) { matrixClassifier = new CMatrixClassifierMDMRebias; }
else if (m_method == OVP_TypeId_Matrix_Classifier_FGMDM_RT) { matrixClassifier = new CMatrixClassifierFgMDMRT; }
else if (m_method == OVP_TypeId_Matrix_Classifier_FGMDM) { matrixClassifier = new CMatrixClassifierFgMDM; }
else { OV_ERROR_UNLESS_KRF(false, "Incorrect Selected Method", ErrorType::BadSetting); }
OV_ERROR_UNLESS_KRF(matrixClassifier->train(m_covs), "Train failed", ErrorType::BadProcessing);
......
......@@ -55,7 +55,7 @@ namespace OpenViBEPlugins
*m_oStimulation = nullptr; // Stimulation sender
uint64_t m_stimulationName = OVTK_StimulationId_Train; // Name of stimulation to check for train lunch
std::vector<uint64_t> m_stimulationClassName; // Name of stimulation to check for each class
bool m_isTrain = false;
//***** Settings *****
OpenViBE::Kernel::ELogLevel m_logLevel = OpenViBE::Kernel::LogLevel_Info; // Log Level
OpenViBE::CIdentifier m_method = OVP_TypeId_Matrix_Classifier_MDM;
......
......@@ -46,7 +46,6 @@
#define OVP_TypeId_Matrix_Classifier_MDM OpenViBE::CIdentifier(0x5261636B, 0x434D444D)
#define OVP_TypeId_Matrix_Classifier_MDM_REBIAS OpenViBE::CIdentifier(0x5261636B, 0x434d4452)
#define OVP_TypeId_Matrix_Classifier_FGMDM_RT OpenViBE::CIdentifier(0x5261636B, 0x43464d52)
#define OVP_TypeId_Matrix_Classifier_FGMDM OpenViBE::CIdentifier(0x5261636B, 0x4346474D)
//---------------------------------------------------------------------------------------------------
// Adaptation List
......@@ -74,8 +73,7 @@
#define NAME_HARM "Harmonic"
#define NAME_ALE "Approximate joint diagonalization based log-Euclidean (ALE)"
#define NAME_WASS "Wasserstein"
#define NAME_MDM "Minimum Distance to Mean"
#define NAME_MDM_REBIAS "Minimum Distance to Mean REBIAS"
#define NAME_FGMDM_RT "Minimum Distance to Mean with geodesic filtering Real Time adaptation assumed"
#define NAME_FGMDM "Minimum Distance to Mean with geodesic filtering (not for online run with adaptation)"
#define NAME_MDM "Minimum Distance to Mean (MDM)"
#define NAME_MDM_REBIAS "Minimum Distance to Mean REBIAS (MDM Rebias)"
#define NAME_FGMDM_RT "Minimum Distance to Mean with geodesic filtering (FgMDM) (Real Time adaptation assumed)"
//---------------------------------------------------------------------------------------------------
......@@ -44,7 +44,6 @@ OVP_Declare_Begin();
rPluginModuleContext.getTypeManager().registerEnumerationEntry(OVP_TypeId_Matrix_Classifier, NAME_MDM, OVP_TypeId_Matrix_Classifier_MDM.toUInteger());
rPluginModuleContext.getTypeManager().registerEnumerationEntry(OVP_TypeId_Matrix_Classifier, NAME_MDM_REBIAS, OVP_TypeId_Matrix_Classifier_MDM_REBIAS.toUInteger());
rPluginModuleContext.getTypeManager().registerEnumerationEntry(OVP_TypeId_Matrix_Classifier, NAME_FGMDM_RT, OVP_TypeId_Matrix_Classifier_FGMDM_RT.toUInteger());
rPluginModuleContext.getTypeManager().registerEnumerationEntry(OVP_TypeId_Matrix_Classifier, NAME_FGMDM, OVP_TypeId_Matrix_Classifier_FGMDM.toUInteger());
// Enumeration Classifier Adaptater
rPluginModuleContext.getTypeManager().registerEnumerationType(OVP_TypeId_Classifier_Adaptation, "Classifier Adaptation");
......
......@@ -46,3 +46,52 @@ SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_CON
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL "${PATH_TEST}/${TEST_NAME}-output.csv")
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
#############
#SET(TEST_NAME Matrix-Classifier-Training)
#ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "${PATH_TEST}/${TEST_NAME}-Model-FgMDM-ref-output.csv")
#ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "${PATH_TEST}/${TEST_NAME}-test.xml")
#############
SET(TEST_NAME Matrix-Classifier-Testing)
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "${PATH_TEST}/${TEST_NAME}-output.csv")
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "${PATH_TEST}/${TEST_NAME}-test.xml")
ADD_TEST(compare_${TEST_NAME} "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "${PATH_TEST}/${TEST_NAME}-output.csv" "${PATH_TEST}/${TEST_NAME}-ref.csv" 0.0001)
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_CONFIG_SUBDIR})
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL "${PATH_TEST}/${TEST_NAME}-output.csv")
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
#############
SET(TEST_NAME Matrix-Classifier-Testing-Supervised)
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "${PATH_TEST}/${TEST_NAME}-output.csv")
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "${PATH_TEST}/${TEST_NAME}-test.xml")
ADD_TEST(compare_${TEST_NAME} "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "${PATH_TEST}/${TEST_NAME}-output.csv" "${PATH_TEST}/${TEST_NAME}-ref.csv" 0.0001)
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_CONFIG_SUBDIR})
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL "${PATH_TEST}/${TEST_NAME}-output.csv")
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
#############
SET(TEST_NAME Matrix-Classifier-Testing-Unsupervised)
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "${PATH_TEST}/${TEST_NAME}-output.csv")
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "${PATH_TEST}/${TEST_NAME}-test.xml")
ADD_TEST(compare_${TEST_NAME} "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "${PATH_TEST}/${TEST_NAME}-output.csv" "${PATH_TEST}/${TEST_NAME}-ref.csv" 0.0001)
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_CONFIG_SUBDIR})
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL "${PATH_TEST}/${TEST_NAME}-output.csv")
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
<Classifier>
<Classifier-data type="Minimum Distance to Mean with geodesic filtering Real Time assumed" class-count="2" metric="Riemann">
<Reference size="3">1.70952664 0.01674082 0.02077766
0.01674082 1.60344581 0.05423902
0.02077766 0.05423902 0.8303257</Reference>
<Weight size="6"> 0.45714834 -0.20916523 0.03361964 -0.30846516 0.14551225 -0.29488776
-0.20916523 0.09570218 -0.01538245 0.14113622 -0.06657818 0.13492396
0.03361964 -0.01538245 0.00247246 -0.02268517 0.01070127 -0.02168666
-0.30846516 0.14113622 -0.02268517 0.20813978 -0.09818576 0.1989783
0.14551225 -0.06657818 0.01070127 -0.09818576 0.04631716 -0.09386402
-0.29488776 0.13492396 -0.02168666 0.1989783 -0.09386402 0.19022007</Weight>
<Class class-id="0" nb-trials="7" size="3" stimulation="OVTK_GDF_Left"> 2.08042432 -0.08968098 0.03145977
-0.08968098 1.41163613 0.09127538
0.03145977 0.09127538 0.734828</Class>
<Class class-id="1" nb-trials="5" size="3" stimulation="OVTK_GDF_Right"> 1.30840283 0.15716713 0.00232698
0.15716713 1.93455782 -0.01963492
0.00232698 -0.01963492 0.98852719</Class>
</Classifier-data>
</Classifier>
<Classifier>
<Classifier-data type="Minimum Distance to Mean with geodesic filtering" class-count="2" metric="Riemann">
<Reference size="3">1.70952664 0.01674082 0.02077766
0.01674082 1.60344581 0.05423902
0.02077766 0.05423902 0.8303257</Reference>
<Weight size="6"> 0.45714834 -0.20916523 0.03361964 -0.30846516 0.14551225 -0.29488776
-0.20916523 0.09570218 -0.01538245 0.14113622 -0.06657818 0.13492396
0.03361964 -0.01538245 0.00247246 -0.02268517 0.01070127 -0.02168666
-0.30846516 0.14113622 -0.02268517 0.20813978 -0.09818576 0.1989783
0.14551225 -0.06657818 0.01070127 -0.09818576 0.04631716 -0.09386402
-0.29488776 0.13492396 -0.02168666 0.1989783 -0.09386402 0.19022007</Weight>
<Class class-id="0" nb-trials="7" size="3" stimulation="OVTK_GDF_Left"> 2.08042432 -0.08968098 0.03145977
-0.08968098 1.41163613 0.09127538
0.03145977 0.09127538 0.734828</Class>
<Class class-id="1" nb-trials="5" size="3" stimulation="OVTK_GDF_Right"> 1.30840283 0.15716713 0.00232698
0.15716713 1.93455782 -0.01963492
0.00232698 -0.01963492 0.98852719</Class>
</Classifier-data>
</Classifier>
<Classifier>
<Classifier-data type="Minimum Distance to Mean REBIAS" class-count="2" metric="Riemann">
<REBIAS nb-classify="0" size="3"> 1.70952217738328 0.016735943232583 0.020785623695383
0.016735943232582 1.60344647358533 0.054241640196169
0.020785623695383 0.054241640196169 0.830327834469631</REBIAS>
<Class class-id="0" nb-trials="7" size="3" stimulation="OVTK_GDF_Left"> 1.12920484889848 -0.103109478655884 -0.005579207794177
-0.103109478655884 0.884890317836479 0.015961516899074
-0.005579207794177 0.015961516899074 0.801503003117589</Class>
<Class class-id="1" nb-trials="5" size="3" stimulation="OVTK_GDF_Right"> 0.855588028031272 0.146119935000422 0.00417588972233
0.146119935000422 1.21289117246009 -0.030535218161296
0.00417588972233 -0.030535218161296 1.36441888848474</Class>
</Classifier-data>
</Classifier>
<Classifier>
<Classifier-data type="Minimum Distance to Mean" class-count="2" metric="Riemann">
<Class class-id="0" nb-trials="7" size="3" stimulation="OVTK_GDF_Left">1.92849739 -0.1538202 0.01072518
-0.1538202 1.41817199 0.06326929
0.01072518 0.06326929 0.6661666</Class>
<Class class-id="1" nb-trials="5" size="3" stimulation="OVTK_GDF_Right">1.46525466 0.258979 0.03170221
0.258979 1.94533383 0.03574208
0.03170221 0.03574208 1.13153112</Class>
</Classifier-data>
</Classifier>
Time:2,End Time,,,Event Id,Event Date,Event Duration
0.0,0.1,1.3146334400,1.4748544800,,,
0.0,0.1,0.5287187180,0.4712812820,,,
0.0,0.1,1.3146294500,1.4748550100,,,
0.0,0.1,0.5287195640,0.4712804360,,,
0.0,0.1,0.0266535124,0.7187078330,,,
0.0,0.1,0.9642408170,0.0357591825,,,
0.5,0.6,0.6051203190,1.0518174000,769:769:769,0.1:0.1:0.1,0.0:0.0:0.0
0.5,0.6,0.6347959770,0.3652040230,,,
0.5,0.6,1.8559665800,1.8412857200,,,
0.5,0.6,0.4980146260,0.5019853740,,,
0.5,0.6,0.0930348106,0.7884208200,,,
0.5,0.6,0.8944532120,0.1055467880,,,
1.0,1.1,0.6321792540,0.8124450270,769:769:769,0.6:0.6:0.6,0.0:0.0:0.0
1.0,1.1,0.5623919230,0.4376080770,,,
1.0,1.1,0.9585767380,0.8417489480,,,
1.0,1.1,0.4675537070,0.5324462930,,,
1.0,1.1,0.2853965160,0.4203266940,,,
1.0,1.1,0.5955970950,0.4044029050,,,
1.5,1.6,1.1148876400,1.8495486800,769:770:769,1.1:1.1:1.1,0.0:0.0:0.0
1.5,1.6,0.6239124350,0.3760875650,,,
1.5,1.6,0.9232580670,1.5992782300,,,
1.5,1.6,0.6339961220,0.3660038780,,,
1.5,1.6,0.8833524220,1.5605359800,,,
1.5,1.6,0.6385463340,0.3614536660,,,
2.0,2.1,0.7163053500,1.0671541400,769:769:769,1.6:1.6:1.6,0.0:0.0:0.0
2.0,2.1,0.5983618610,0.4016381390,,,
2.0,2.1,0.9722936280,0.9418840830,,,
2.0,2.1,0.4920567600,0.5079432400,,,
2.0,2.1,0.0745574184,0.8320457430,,,
2.0,2.1,0.9177617930,0.0822382069,,,
2.5,2.6,0.7055971120,0.3311470390,769:770:769,2.1:2.1:2.1,0.0:0.0:0.0
2.5,2.6,0.3194105690,0.6805894310,,,
2.5,2.6,1.0814342000,0.4657584600,,,
2.5,2.6,0.3010345600,0.6989654400,,,
2.5,2.6,0.5202855000,0.2434159430,,,
2.5,2.6,0.3187318090,0.6812681910,,,
3.0,3.1,0.6840647170,0.4765002040,770:770:770,2.6:2.6:2.6,0.0:0.0:0.0
3.0,3.1,0.4105760870,0.5894239130,,,
3.0,3.1,0.8864879120,0.4773982950,,,
3.0,3.1,0.3500279520,0.6499720480,,,
3.0,3.1,0.4427522710,0.2809272100,,,
3.0,3.1,0.3881928630,0.6118071370,,,
4.0,4.1,0.8454323490,0.7475472960,770:770:770,3.1:3.1:3.1,0.0:0.0:0.0
4.0,4.1,0.4692761130,0.5307238870,,,
4.0,4.1,1.0196263900,0.6934273450,,,
4.0,4.1,0.4047901880,0.5952098120,,,
4.0,4.1,0.5949672960,0.0970870234,,,
4.0,4.1,0.1402881550,0.8597118450,,,
4.5,4.6,0.9511185430,0.3534512730,770:770:770,4.1:4.1:4.1,0.0:0.0:0.0
4.5,4.6,0.2709331980,0.7290668020,,,
4.5,4.6,1.0658717900,0.4466040540,,,
4.5,4.6,0.2952801230,0.7047198770,,,
4.5,4.6,0.8758921420,0.2000189930,,,
4.5,4.6,0.1859066110,0.8140933890,,,
5.0,5.1,1.0673141000,0.6866503320,770:770:770,4.6:4.6:4.6,0.0:0.0:0.0
5.0,5.1,0.3914847520,0.6085152480,,,
5.0,5.1,1.0690575100,0.8035069340,,,
5.0,5.1,0.4290944090,0.5709055910,,,
5.0,5.1,0.7632985570,0.0588512668,,,
5.0,5.1,0.0715821679,0.9284178320,,,
5.5,5.6,0.8565215930,0.4480630630,770:770:770,5.1:5.1:5.1,0.0:0.0:0.0
5.5,5.6,0.3434526540,0.6565473460,,,
5.5,5.6,0.8137482240,0.4779673370,,,
5.5,5.6,0.3700252220,0.6299747780,,,
5.5,5.6,0.5942285370,0.1175751610,,,
5.5,5.6,0.1651791940,0.8348208060,,,
6.0,6.1,0.9215136050,0.5110242990,770:770:770,5.6:5.6:5.6,0.0:0.0:0.0
6.0,6.1,0.3567265460,0.6432734540,,,
6.0,6.1,0.7684979840,0.5332474090,,,
6.0,6.1,0.4096403270,0.5903596730,,,
6.0,6.1,0.6318850810,0.0668547105,,,
6.0,6.1,0.0956789799,0.9043210200,,,
Time:2,End Time,,,Event Id,Event Date,Event Duration
0.0,0.1,1.3146334400,1.4748544800,,,
0.0,0.1,0.5287187180,0.4712812820,,,
0.0,0.1,1.3146294500,1.4748550100,,,
0.0,0.1,0.5287195640,0.4712804360,,,
0.0,0.1,0.0266535124,0.7187078330,,,
0.0,0.1,0.9642408170,0.0357591825,,,
0.5,0.6,0.6051203190,1.0518174,769:769:769,0.1:0.1:0.1,0.0:0.0:0.0
0.5,0.6,0.6347959770,0.3652040230,,,
0.5,0.6,1.8559665800,1.8412857200,,,
0.5,0.6,0.4980146260,0.5019853740,,,
0.5,0.6,0.0930348106,0.7884208200,,,
0.5,0.6,0.8944532120,0.1055467880,,,
1.0,1.1,0.6321792540,0.8124450270,769:769:769,0.6:0.6:0.6,0.0:0.0:0.0
1.0,1.1,0.5623919230,0.4376080770,,,
1.0,1.1,1.0777036900,0.6775882930,,,
1.0,1.1,0.3860259710,0.6139740290,,,
1.0,1.1,0.2853965160,0.4203266940,,,
1.0,1.1,0.5955970950,0.4044029050,,,
1.5,1.6,1.1148876400,1.8495486800,769:770:769,1.1:1.1:1.1,0.0:0.0:0.0
1.5,1.6,0.6239124350,0.3760875650,,,
1.5,1.6,0.9909077590,1.4163996500,,,
1.5,1.6,0.5883750640,0.4116249360,,,
1.5,1.6,0.8833524220,1.5605359800,,,
1.5,1.6,0.6385463340,0.3614536660,,,
2.0,2.1,0.7163053500,1.0671541400,769:769:769,1.6:1.6:1.6,0.0:0.0:0.0
2.0,2.1,0.5983618610,0.4016381390,,,
2.0,2.1,1.1020407600,0.7977806850,,,
2.0,2.1,0.4199240330,0.5800759670,,,
2.0,2.1,0.0745574184,0.8320457430,,,
2.0,2.1,0.9177617930,0.0822382069,,,
2.5,2.6,0.7055971120,0.3311470390,769:770:769,2.1:2.1:2.1,0.0:0.0:0.0
2.5,2.6,0.3194105690,0.6805894310,,,
2.5,2.6,1.2333291500,0.5446470710,,,
2.5,2.6,0.3063297830,0.6936702170,,,
2.5,2.6,0.5202855000,0.2434159430,,,
2.5,2.6,0.3187318090,0.6812681910,,,
3.0,3.1,0.7291623930,0.4486377040,770:770:770,2.6:2.6:2.6,0.0:0.0:0.0
3.0,3.1,0.3809115870,0.6190884130,,,
3.0,3.1,1.1038881500,0.4870000720,,,
3.0,3.1,0.3061183470,0.6938816530,,,
3.0,3.1,0.4827742330,0.2403578860,,,
3.0,3.1,0.3323844700,0.6676155300,,,
4.0,4.1,0.8712459580,0.7861386420,770:770:770,3.1:3.1:3.1,0.0:0.0:0.0
4.0,4.1,0.4743248140,0.5256751860,,,
4.0,4.1,1.0942148800,0.9215912300,,,
4.0,4.1,0.4571824770,0.5428175230,,,
4.0,4.1,0.6666144190,0.0221808587,,,
4.0,4.1,0.0322023966,0.9677976030,,,
4.5,4.6,1.0176349600,0.4395194540,770:770:770,4.1:4.1:4.1,0.0:0.0:0.0
4.5,4.6,0.3016286060,0.6983713940,,,
4.5,4.6,1.2237710000,0.7143241590,,,
4.5,4.6,0.3685702200,0.6314297800,,,
4.5,4.6,0.9475392660,0.2615165950,,,
4.5,4.6,0.2162981900,0.7837018100,,,
5.0,5.1,1.1634605800,0.6232597390,770:770:770,4.6:4.6:4.6,0.0:0.0:0.0
5.0,5.1,0.3488289310,0.6511710690,,,
5.0,5.1,1.3575907900,0.6790908170,,,
5.0,5.1,0.3334300340,0.6665699660,,,
5.0,5.1,0.8349456810,0.1198656110,,,
5.0,5.1,0.1255385350,0.8744614650,,,
5.5,5.6,0.9421094080,0.4225417220,770:770:770,5.1:5.1:5.1,0.0:0.0:0.0
5.5,5.6,0.3096335120,0.6903664880,,,
5.5,5.6,1.0286634000,0.5058234110,,,
5.5,5.6,0.3296368570,0.6703631430,,,
5.5,5.6,0.6658756610,0.0611909701,,,
5.5,5.6,0.0841614337,0.9158385660,,,
6.0,6.1,1.0146267700,0.4726839950,770:770:770,5.6:5.6:5.6,0.0:0.0:0.0
6.0,6.1,0.3178111830,0.6821888170,,,
6.0,6.1,1.0851897200,0.3673935250,,,
6.0,6.1,0.2529242470,0.7470757530,,,
6.0,6.1,0.7035322050,0.0179716106,,,
6.0,6.1,0.0249085455,0.9750914540,,,
Time:3x3,End Time,1:,1:,1:,2:,2:,2:,3:,3:,3:,Event Id,Event Date,Event Duration
0.0,0.1,2.5849288,1.33543611,0.511092833,1.33543611,2.19748746,0.527579698,0.511092833,0.527579698,0.507583739,769,0.0,0.0
0.5,0.6,1.99839975,-0.650968006,-0.150223386,-0.650968006,1.52895167,0.0688523853,-0.150223386,0.0688523853,0.652648582,769,0.5,0.0
1.0,1.1,1.21758058,-0.00,0.013088361,-0.00,1.00554914,0.0104706888,0.013088361,0.0104706888,0.756870279,769,1.0,0.0
1.5,1.6,2.57527815,-0.621023059,-0.153239456,-0.621023059,0.897709368,0.0564566417,-0.153239456,0.0564566417,0.317012482,769,1.5,0.0
2.0,2.1,2.87232755,-0.786745664,-0.0991696216,-0.786745664,1.81451826,-0.0991696216,-0.0991696216,-0.0991696216,0.783154191,769,2.0,0.0
2.5,2.6,1.64826027,-0.00963569008,0.0289070702,-0.00963569008,1.5880372,0.0770855206,0.0289070702,0.0770855206,1.17370253,769,2.5,0.0
3.0,3.1,1.9742694,-0.149321794,0.108597668,-0.149321794,2.11906629,-0.081448251,0.108597668,-0.081448251,1.04666432,769,3.0,0.0
4.0,4.1,1.06313148,0.315509839,0.0893944544,0.315509839,1.33131485,0.00,0.0893944544,0.00,0.705553667,769,4.0,0.0
4.5,4.6,1.18724478,0.490413981,0.0959505616,0.490413981,2.21604802,0.111942322,0.0959505616,0.111942322,0.936707201,770,4.5,0.0
5.0,5.1,1.86743369,0.055816941,0.074422588,0.055816941,2.70096668,-0.148845176,0.074422588,-0.148845176,1.49159963,770,5.0,0.0
5.5,5.6,1.89536719,0.324938579,-0.160114662,0.324938579,2.27210757,0.20720721,-0.160114662,0.20720721,1.21252525,770,5.5,0.0
6.0,6.1,1.60313579,0.00319114656,0.00,0.00319114656,1.6071931,-0.00136763424,0.00,-0.00136763424,1.59967111,770,6.0,0.0
Time:2,End Time,,,Event Id,Event Date,Event Duration
0.0,0.1,1.31463344,1.47485448,,,
0.0,0.1,0.528718718,0.471281282,,,
0.0,0.1,1.31462945,1.47485501,,,
0.0,0.1,0.528719564,0.471280436 ,,,
0.0,0.1,0.0266535124,0.718707833,,,
0.0,0.1,0.964240817,0.0357591825,,,
0.5,0.6,0.464327186,1.0518174,769:769:769,0.1:0.1:0.1,0.0:0.0:0.0
0.5,0.6,0.693744785,0.306255215,,,
0.5,0.6,1.69565638,1.84128572,,,
0.5,0.6,0.520586899,0.479413101 ,,,
0.5,0.6,0.0963664996,0.78842082,,,
0.5,0.6,0.891085126,0.108914874 ,,,
1.0,1.1,0.601429876,0.812445027,769:769:769,0.6:0.6:0.6,0.0:0.0:0.0
1.0,1.1,0.574622992,0.425377008,,,
1.0,1.1,0.985038236,0.841748948,,,
1.0,1.1,0.460781067,0.539218933 ,,,
1.0,1.1,0.271727626,0.420326694,,,
1.0,1.1,0.607360842,0.392639158,,,
1.5,1.6,1.10287315,1.84954868,769:770:769,1.1:1.1:1.1,0.0:0.0:0.0
1.5,1.6,0.626451364,0.373548636,,,
1.5,1.6,0.893165251,1.59927823,,,
1.5,1.6,0.641650751,0.358349249 ,,,
1.5,1.6,0.868481661,1.56053598,,,
1.5,1.6,0.642455598,0.357544402,,,
2.0,2.1,0.626111798,1.06715414,769:769:769,1.6:1.6:1.6,0.0:0.0:0.0
2.0,2.1,0.630234221,0.369765779,,,
2.0,2.1,0.999895118,0.941884083,,,
2.0,2.1,0.485062402,0.514937598 ,,,
2.0,2.1,0.139991423,0.832045743,,,
2.0,2.1,0.855981409,0.144018591,,,
2.5,2.6,0.611997194,0.331147039,769:770:769,2.1:2.1:2.1,0.0:0.0:0.0
2.5,2.6,0.351109647,0.648890353,,,
2.5,2.6,1.13747666,0.46575846,,,
2.5,2.6,0.290511637,0.709488363 ,,,
2.5,2.6,0.448638378,0.243415943,,,
2.5,2.6,0.351729533,0.648270467,,,
3.0,3.1,0.635249935,0.476500204,770:770:770,2.6:2.6:2.6,0.0:0.0:0.0
3.0,3.1,0.428603683,0.571396317,,,
3.0,3.1,1.01155598,0.477398295,,,
3.0,3.1,0.320626566,0.679373434 ,,,
3.0,3.1,0.41112711,0.28092721,,,
3.0,3.1,0.405932312,0.594067688,,,
4.0,4.1,0.845377559,0.747547296,770:770:770,3.1:3.1:3.1,0.0:0.0:0.0
4.0,4.1,0.469292254,0.530707746,,,
4.0,4.1,1.06165617,0.693427345,,,
4.0,4.1,0.395096494,0.604903506 ,,,
4.0,4.1,0.594967297,0.0970870234,,,
4.0,4.1,0.140288154,0.859711846 ,,,
4.5,4.6,0.951091189,0.413321515,770:770:770,4.1:4.1:4.1,0.0:0.0:0.0
4.5,4.6,0.302929981,0.697070019,,,
4.5,4.6,1.17038389,0.490874399,,,
4.5,4.6,0.295483491,0.704516509 ,,,
4.5,4.6,0.875892143,0.183837823,,,
4.5,4.6,0.173476101,0.826523899,,,
5.0,5.1,1.06734674,0.552344615,770:770:770,4.6:4.6:4.6,0.0:0.0:0.0
5.0,5.1,0.341018438,0.658981562,,,
5.0,5.1,1.26460517,0.711483172,,,
5.0,5.1,0.360046237,0.639953763 ,,,
5.0,5.1,0.763298558,0.0712442381,,,
5.0,5.1,0.0853691847,0.914630815,,,
5.5,5.6,0.856501165,0.390553627,770:770:770,5.1:5.1:5.1,0.0:0.0:0.0
5.5,5.6,0.313180808,0.686819192,,,
5.5,5.6,0.958316312,0.443514579,,,
5.5,5.6,0.31638237,0.68361763 ,,,
5.5,5.6,0.594228539,0.0978257816,,,
5.5,5.6,0.14135564,0.85864436 ,,,
6.0,6.1,0.9215399,0.459953689,770:770:770,5.6:5.6:5.6,0.0:0.0:0.0
6.0,6.1,0.332939431,0.667060569,,,
6.0,6.1,0.979165667,0.50648867,,,
6.0,6.1,0.340919592,0.659080408 ,,,
6.0,6.1,0.631885083,0.0601692376,,,
6.0,6.1,0.0869429405,0.913057059,,,
Time:3x3,End Time,1:,1:,1:,2:,2:,2:,3:,3:,3:,Event Id,Event Date,Event Duration
0.0,0.1,2.5849288,1.33543611,0.511092833,1.33543611,2.19748746,0.527579698,0.511092833,0.527579698,0.507583739,,,
0.5,0.6,1.99839975,-0.650968006,-0.150223386,-0.650968006,1.52895167,0.0688523853,-0.150223386,0.0688523853,0.652648582,,,
1.0,1.1,1.21758058,-0.00,0.013088361,-0.00,1.00554914,0.0104706888,0.013088361,0.0104706888,0.756870279,,,
1.5,1.6,2.57527815,-0.621023059,-0.153239456,-0.621023059,0.897709368,0.0564566417,-0.153239456,0.0564566417,0.317012482,,,
2.0,2.1,2.87232755,-0.786745664,-0.0991696216,-0.786745664,1.81451826,-0.0991696216,-0.0991696216,-0.0991696216,0.783154191,,,
2.5,2.6,1.64826027,-0.00963569008,0.0289070702,-0.00963569008,1.5880372,0.0770855206,0.0289070702,0.0770855206,1.17370253,,,
3.0,3.1,1.9742694,-0.149321794,0.108597668,-0.149321794,2.11906629,-0.081448251,0.108597668,-0.081448251,1.04666432,,,
Time:3x3,End Time,1:,1:,1:,2:,2:,2:,3:,3:,3:,Event Id,Event Date,Event Duration
0.0,0.1,1.06313148,0.315509839,0.0893944544,0.315509839,1.33131485,0.00,0.0893944544,0.00,0.705553667,,,
0.5,0.6,1.18724478,0.490413981,0.0959505616,0.490413981,2.21604802,0.111942322,0.0959505616,0.111942322,0.936707201,,,
1.0,1.1,1.86743369,0.055816941,0.074422588,0.055816941,2.70096668,-0.148845176,0.074422588,-0.148845176,1.49159963,,,
1.5,1.6,1.89536719,0.324938579,-0.160114662,0.324938579,2.27210757,0.20720721,-0.160114662,0.20720721,1.21252525,,,
2.0,2.1,1.60313579,0.00319114656,0.00,0.00319114656,1.6071931,-0.00136763424,0.00,-0.00136763424,1.59967111,,,
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment