From c761d5445ae184f82ca590171d71f86ad462bbf9 Mon Sep 17 00:00:00 2001 From: Joseph <joseph.larralde@gmail.com> Date: Thu, 23 Nov 2017 11:05:42 +0100 Subject: [PATCH] fixed cmakelists.txt for pipo, added pipo test to rapidMixTest.cpp --- CMakeLists.txt | 20 +++++++--- tests/rapidMixTest.cpp | 87 +++++++++++++++++++++++++----------------- 2 files changed, 65 insertions(+), 42 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a3d0152..9e05388 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,15 +57,23 @@ file(GLOB MAXI_SRC "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/maximilian.cpp file(GLOB MAXI_SRC ${MAXI_SRC} "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/libs/maxiFFT.cpp") file(GLOB MAXI_SRC ${MAXI_SRC} "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/libs/fft.cpp") -#PiPofile +#PiPo file(GLOB_RECURSE PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/sdk/src/*") -file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/*") -list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/wavelet/*") -list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/physical-models/*") -list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/recognition/*") +file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/bayesfilter/src/*") +file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/collection/*") +file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/finitedifferences/*") +file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/util/*") +file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/signal/*") +file(GLOB_RECURSE PIPO_SRC ${PIPO_SRC} "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/statistics/*") +# list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/wavelet/*") +# list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/bindings/*") +# list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/physical-models/*") +# list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/recognition/*") list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/signal/rta_onepole.c") list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/signal/rta_resample.c") list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/src/statistics/rta_cca.c") +# list(REMOVE_ITEM PIPO_SRC "${PROJECT_SOURCE_DIR}/dependencies/pipo/modules/rta/test/*") + # RapidLib file(GLOB RAPIDLIB_SRC "${PROJECT_SOURCE_DIR}/dependencies/RapidLib/src/*.cpp") @@ -80,7 +88,7 @@ file(GLOB JSON_SRC "${PROJECT_SOURCE_DIR}/dependencies/third_party/jsoncpp.cpp") set(RAPIDMIX_FULL_SRC ${RAPIDMIX_SRC} ${GVF_SRC} ${MAXI_SRC} -# ${PIPO_SRC} + ${PIPO_SRC} ${RAPIDLIB_SRC} ${RAPIDLIB_DEP} ${XMM_SRC} diff --git a/tests/rapidMixTest.cpp b/tests/rapidMixTest.cpp index 2286eca..a964f00 100644 --- a/tests/rapidMixTest.cpp +++ b/tests/rapidMixTest.cpp @@ -4,12 +4,12 @@ #include "rapidmix.h" int main() { - + ///////////////////////////////////Test GVF - + rapidmix::gvfTemporalVariation gvf; rapidmix::trainingData myGVFData; - + // Record first gesture myGVFData.startRecording(); myGVFData.addElement({ 4.0, 0.7 }); @@ -19,7 +19,7 @@ int main() { myGVFData.addElement({ 0.4, 1.2 }); myGVFData.addElement({ 0.2, 1.4 }); myGVFData.stopRecording(); - + // Record reverse of first gesture myGVFData.startRecording(); myGVFData.addElement({ 0.2, 1.4 }); @@ -29,101 +29,116 @@ int main() { myGVFData.addElement({ 3.0, 0.8 }); myGVFData.addElement({ 4.0, 0.7 }); myGVFData.stopRecording(); - + // Train std::cout << "gvf train = " << gvf.train(myGVFData) << std::endl; - + std::cout << "gvf passed." << std::endl; - + //////////////////////////////////////Test RapidLib - + rapidmix::staticRegression myNN; rapidmix::trainingData myRLData; - + std::vector<double> input = { 0.2, 0.7 }; std::vector<double> output = { 3.0 }; myRLData.recordSingleElement("label", input, output); - + input = { 2.0, 44.2 }; output = { 20.14 }; myRLData.recordSingleElement("label", input, output); - + std::cout << "staticRegression train = " << myNN.train(myRLData) << std::endl; - + std::vector<double> inputVec = { 1.618, 18.9 }; assert(myNN.run(inputVec)[0] == 12.596715279688549); std::cout << "staticRegression passed." << std::endl; - + //////////////////////////////////////Test XMM - + rapidmix::xmmConfig xcfg; xcfg.relativeRegularization = 0.1; - + rapidmix::trainingData myXmmData; std::vector<double> myXmmInput; std::vector<double> myXmmOutput; - + myXmmData.startRecording("lab1"); myXmmInput = { 0.2, 0.7 }; myXmmData.addElement(myXmmInput, myXmmOutput); myXmmData.stopRecording(); - + myXmmData.startRecording("lab2"); myXmmInput = { 0.8, 0.1 }; myXmmData.addElement(myXmmInput, myXmmOutput); myXmmData.stopRecording(); - + myXmmData.writeJSON("/var/tmp/testTrainingData.json"); - + rapidmix::xmmStaticClassification myGmm(xcfg); - + myGmm.train(myXmmData); - + std::string filepath = "/var/tmp/modelSetDescription"; myGmm.writeJSON(filepath); - + myXmmInput = { 0.2, 0.7 }; - + rapidmix::xmmStaticClassification myGmmFromFile; myGmmFromFile.readJSON(filepath); - + assert(myGmm.run(myXmmInput)[0] == myGmmFromFile.run(myXmmInput)[0]); std::cout << "xmm passed." << std::endl; - + /////////////////////////////////////Test pipo signal processing - - //rapidmix::pipoHost host; - + + rapidmix::signalProcessingHost spHost; + + spHost.setGraph("slice<moments,fft:moments>"); + spHost.setAttr("slice.size", 128); + spHost.setAttr("slice.hop", 64); + + rapidmix::signalAttributes sa; + + spHost.setInputStreamAttributes(sa); + + for (unsigned int i = 0; i < 256; ++i) + { + std::vector<float> f({ 1, 2, 3 }); + spHost.frames(0, 1, &f[0], 1, 1); + } + std::cout << "pipo passed" << std::endl; + /////////////////////////////////////Test rapidStream signal processing - + rapidmix::rapidStream myProcessor(5); //create a processor with a window size of 5 myProcessor.pushToWindow(0.246); myProcessor.pushToWindow(0.44); myProcessor.pushToWindow(-0.228); myProcessor.pushToWindow(0.402); myProcessor.pushToWindow(-0.382); - + assert(myProcessor.maximum() == 0.44); assert(myProcessor.minimum() == -0.382); assert(myProcessor.sum() == 0.478); assert(myProcessor.mean() == 0.09559999999999999); assert(myProcessor.standardDeviation() == 0.33702557766436664); assert(myProcessor.rms() == 0.3503221374677884); - + std::cout << "rapidStream passed." << std::endl; - + /////////////////////////////////////Test Maxi signal processing - + rapidmix::FFT myFFT; myFFT.setup(1024, 512, 265); - + for (int i = 0; i < 1024; ++i) { float input = (i % 256/256.0); myFFT.process(input); } - + assert(myFFT.spectralCentroid() == 3520.84277f); std::cout << "maxi fft passed." << std::endl; - + return 0; } -- GitLab