Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
rapid-mix
RAPID-MIX_API
Commits
b591064d
Commit
b591064d
authored
Dec 01, 2017
by
mzed
Browse files
getters for gvf
parent
c5735b8f
Changes
5
Show whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
b591064d
...
@@ -89,7 +89,7 @@ set(RAPIDMIX_FULL_SRC ${RAPIDMIX_SRC}
...
@@ -89,7 +89,7 @@ set(RAPIDMIX_FULL_SRC ${RAPIDMIX_SRC}
${
JSON_SRC
}
${
JSON_SRC
}
)
)
add_library
(
RAPID-MIX_API
${
RAPIDMIX_FULL_SRC
}
)
add_library
(
RAPID-MIX_API
SHARED
${
RAPIDMIX_FULL_SRC
}
)
add_executable
(
rapidmixTest tests/rapidMixTest.cpp
)
add_executable
(
rapidmixTest tests/rapidMixTest.cpp
)
...
...
src/machineLearning/rapidGVF/rapidGVF.cpp
View file @
b591064d
...
@@ -78,9 +78,25 @@ std::vector<double> rapidGVF::run(const std::vector<double> &inputVector){
...
@@ -78,9 +78,25 @@ std::vector<double> rapidGVF::run(const std::vector<double> &inputVector){
output
.
push_back
(
this
->
outcomes
.
likeliestGesture
);
output
.
push_back
(
this
->
outcomes
.
likeliestGesture
);
output
.
insert
(
output
.
end
(),
this
->
outcomes
.
likelihoods
.
begin
(),
this
->
outcomes
.
likelihoods
.
end
());
output
.
insert
(
output
.
end
(),
this
->
outcomes
.
likelihoods
.
begin
(),
this
->
outcomes
.
likelihoods
.
end
());
output
.
insert
(
output
.
end
(),
this
->
outcomes
.
alignments
.
begin
(),
this
->
outcomes
.
alignments
.
end
());
output
.
insert
(
output
.
end
(),
this
->
outcomes
.
alignments
.
begin
(),
this
->
outcomes
.
alignments
.
end
());
// output.insert(output.end(), this->outcomes.dynamics.begin(), this->outcomes.dynamics.end());
// output.insert(output.end(), this->outcomes.scalings.begin(), this->outcomes.scalings.end());
// output.insert(output.end(), this->outcomes.rotations.begin(), this->outcomes.rotations.end());
//
return
output
;
return
output
;
}
}
const
std
::
vector
<
float
>
rapidGVF
::
getLikelihoods
()
{
return
outcomes
.
likelihoods
;
};
const
std
::
vector
<
float
>
rapidGVF
::
getAlignments
()
{
return
outcomes
.
alignments
;
};
const
std
::
vector
<
std
::
vector
<
float
>
>
*
rapidGVF
::
getDynamics
()
{
return
&
outcomes
.
dynamics
;
};
const
std
::
vector
<
std
::
vector
<
float
>
>
*
rapidGVF
::
getScalings
()
{
return
&
outcomes
.
scalings
;
};
const
std
::
vector
<
std
::
vector
<
float
>
>
*
rapidGVF
::
getRotations
()
{
return
&
outcomes
.
rotations
;
};
src/machineLearning/rapidGVF/rapidGVF.h
View file @
b591064d
...
@@ -28,6 +28,12 @@ public:
...
@@ -28,6 +28,12 @@ public:
std
::
vector
<
double
>
run
(
const
std
::
vector
<
double
>
&
inputVector
);
std
::
vector
<
double
>
run
(
const
std
::
vector
<
double
>
&
inputVector
);
//TODO: needs a "reset" message
//TODO: needs a "reset" message
const
std
::
vector
<
float
>
getLikelihoods
();
const
std
::
vector
<
float
>
getAlignments
();
const
std
::
vector
<
std
::
vector
<
float
>
>
*
getDynamics
();
const
std
::
vector
<
std
::
vector
<
float
>
>
*
getScalings
();
const
std
::
vector
<
std
::
vector
<
float
>
>
*
getRotations
();
protected:
protected:
GVF
*
gvf
;
GVF
*
gvf
;
GVFGesture
currentGesture
;
GVFGesture
currentGesture
;
...
...
tests/src/test_gvf.cpp
View file @
b591064d
...
@@ -64,12 +64,12 @@ TEST_CASE( "Tests default GVFGesture ctor.", "[GVF]" ) {
...
@@ -64,12 +64,12 @@ TEST_CASE( "Tests default GVFGesture ctor.", "[GVF]" ) {
gvf
->
update
(
gesture
.
getLastObservation
());
gvf
->
update
(
gesture
.
getLastObservation
());
}
}
// float phase = gvf->getOutcomes().estimations[0].alignment;
// float phase = gvf->getOutcomes().estimations[0].alignment;
// float speed = gvf->getOutcomes().estimations[0].dynamics[0];
// float speed = gvf->getOutcomes().estimations[0].dynamics[0];
//
//
// getDynamicsVariance();
// getDynamicsVariance();
// getScalingsVariance();
// getScalingsVariance();
// getRotationsVariance();
// getRotationsVariance();
REQUIRE
(
gvf
!=
NULL
);
REQUIRE
(
gvf
!=
NULL
);
...
@@ -144,11 +144,11 @@ SCENARIO("Test GVF Regression", "[machineLearning]")
...
@@ -144,11 +144,11 @@ SCENARIO("Test GVF Regression", "[machineLearning]")
// The assumtion for the test is that the outcome of the last segment of the test gesture must converge
// The assumtion for the test is that the outcome of the last segment of the test gesture must converge
REQUIRE
(
outcomes
[
0
]
==
0
);
// outcomes[0] - likeliestGesture must be equal to first gesture '0'
REQUIRE
(
outcomes
[
0
]
==
0
);
// outcomes[0] - likeliestGesture must be equal to first gesture '0'
REQUIRE
(
outcomes
[
1
]
>
0.5
);
// outcomes[1] - likelihood gesture '0' must be greater than 50%
REQUIRE
(
gvf
.
getLikelihoods
()[
0
]
>
0.5
);
// outcomes[1] - likelihood gesture '0' must be greater than 50%
REQUIRE
(
outcomes
[
2
]
<
0.5
);
// outcomes[2] - likelihood gesture '1' must be lesser than 50%
REQUIRE
(
gvf
.
getLikelihoods
()[
1
]
<
0.5
);
// outcomes[2] - likelihood gesture '1' must be lesser than 50%
//
REQUIRE(
outcomes[3
] < 0.5); // outcomes[3] - alignment gesture '0' must be lesser than 50%
REQUIRE
(
gvf
.
getAlignments
()[
0
]
<
0.5
);
// outcomes[3] - alignment gesture '0' must be lesser than 50%
// REQUIRE(outcomes[4] < 0.5); // outcomes[4] - alignment gesture '1' must be lesser than 50%
// REQUIRE(outcomes[4] < 0.5); // outcomes[4] - alignment gesture '1' must be lesser than 50%
}
}
}
WHEN
(
"when gvf is trained with two gestures"
)
WHEN
(
"when gvf is trained with two gestures"
)
...
@@ -167,4 +167,5 @@ SCENARIO("Test GVF Regression", "[machineLearning]")
...
@@ -167,4 +167,5 @@ SCENARIO("Test GVF Regression", "[machineLearning]")
}
}
}
}
}
}
}
}
}
tests/test_project.xcodeproj/project.pbxproj
View file @
b591064d
...
@@ -66,6 +66,10 @@
...
@@ -66,6 +66,10 @@
319C94BB1FC5C1200055BE40
/* rta_int.c in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
319C940E1FC49C990055BE40
/* rta_int.c */
;
};
319C94BB1FC5C1200055BE40
/* rta_int.c in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
319C940E1FC49C990055BE40
/* rta_int.c */
;
};
319C94BC1FC5C1200055BE40
/* rta_util.c in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
319C94141FC49C990055BE40
/* rta_util.c */
;
};
319C94BC1FC5C1200055BE40
/* rta_util.c in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
319C94141FC49C990055BE40
/* rta_util.c */
;
};
31A8F1971F4ECF3300CA8CEC
/* rapidXMM.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
31A8F1941F4ECD1200CA8CEC
/* rapidXMM.cpp */
;
};
31A8F1971F4ECF3300CA8CEC
/* rapidXMM.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
31A8F1941F4ECD1200CA8CEC
/* rapidXMM.cpp */
;
};
BE0AC6251FD17669008056E6
/* BayesianFilter.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
319C93ED1FC49B5C0055BE40
/* BayesianFilter.cpp */
;
};
BE0AC6261FD1766D008056E6
/* filter_utilities.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
319C93EF1FC49B5C0055BE40
/* filter_utilities.cpp */
;
};
BE0AC6271FD1768D008056E6
/* BayesianFilter.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
319C93ED1FC49B5C0055BE40
/* BayesianFilter.cpp */
;
};
BE0AC6281FD17690008056E6
/* filter_utilities.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
319C93EF1FC49B5C0055BE40
/* filter_utilities.cpp */
;
};
BE5733061F505ECC0063F4D1
/* machineLearning.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
BE2C5EBE1ED8459300E9FAFA
/* machineLearning.cpp */
;
};
BE5733061F505ECC0063F4D1
/* machineLearning.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
BE2C5EBE1ED8459300E9FAFA
/* machineLearning.cpp */
;
};
BE5733071F505F190063F4D1
/* rapidGVF.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0BE2E7351EE56F4F00722712
/* rapidGVF.cpp */
;
};
BE5733071F505F190063F4D1
/* rapidGVF.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0BE2E7351EE56F4F00722712
/* rapidGVF.cpp */
;
};
BE5733081F505F310063F4D1
/* GVF.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0BE2E72F1EE56E6D00722712
/* GVF.cpp */
;
};
BE5733081F505F310063F4D1
/* GVF.cpp in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
0BE2E72F1EE56E6D00722712
/* GVF.cpp */
;
};
...
@@ -1235,6 +1239,8 @@
...
@@ -1235,6 +1239,8 @@
0BA41BAD1EE6E0ED00B74667
/* trainingData.cpp in Sources */
,
0BA41BAD1EE6E0ED00B74667
/* trainingData.cpp in Sources */
,
BE5733061F505ECC0063F4D1
/* machineLearning.cpp in Sources */
,
BE5733061F505ECC0063F4D1
/* machineLearning.cpp in Sources */
,
BE5733111F505FDC0063F4D1
/* libsvm.cpp in Sources */
,
BE5733111F505FDC0063F4D1
/* libsvm.cpp in Sources */
,
BE0AC6271FD1768D008056E6
/* BayesianFilter.cpp in Sources */
,
BE0AC6281FD17690008056E6
/* filter_utilities.cpp in Sources */
,
);
);
runOnlyForDeploymentPostprocessing
=
0
;
runOnlyForDeploymentPostprocessing
=
0
;
};
};
...
@@ -1299,6 +1305,8 @@
...
@@ -1299,6 +1305,8 @@
BE9286491EF015AE006847CF
/* test_signalProcessing.cpp in Sources */
,
BE9286491EF015AE006847CF
/* test_signalProcessing.cpp in Sources */
,
BEA7B71E1EDD963E0003E84B
/* maximilian.cpp in Sources */
,
BEA7B71E1EDD963E0003E84B
/* maximilian.cpp in Sources */
,
BE92864D1EF01622006847CF
/* rapidStream.cpp in Sources */
,
BE92864D1EF01622006847CF
/* rapidStream.cpp in Sources */
,
BE0AC6251FD17669008056E6
/* BayesianFilter.cpp in Sources */
,
BE0AC6261FD1766D008056E6
/* filter_utilities.cpp in Sources */
,
);
);
runOnlyForDeploymentPostprocessing
=
0
;
runOnlyForDeploymentPostprocessing
=
0
;
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment