Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Michal Balážia
GaitRecognition
Commits
acab277e
Commit
acab277e
authored
Jun 13, 2018
by
Michal Balazia
Browse files
distance map
parent
07d6abac
Changes
40
Show whitespace changes
Inline
Side-by-side
lib/libsvm.jar
deleted
100644 → 0
View file @
07d6abac
File deleted
src/algorithms/Classifier1NNNareshKumarMS.java
View file @
acab277e
package
algorithms
;
package
algorithms
;
import
Jama.EigenvalueDecomposition
;
import
Jama.Matrix
;
import
objects.Template
;
public
class
Classifier1NNNareshKumarMS
extends
Classifier
{
public
class
Classifier1NNNareshKumarMS
extends
Classifier
{
public
Classifier1NNNareshKumarMS
()
{
public
Classifier1NNNareshKumarMS
()
{
...
@@ -11,39 +7,4 @@ public class Classifier1NNNareshKumarMS extends Classifier {
...
@@ -11,39 +7,4 @@ public class Classifier1NNNareshKumarMS extends Classifier {
decision
.
setDistanceTemplates
(
new
DistanceTemplatesNareshKumarMS
());
decision
.
setDistanceTemplates
(
new
DistanceTemplatesNareshKumarMS
());
setDecision
(
decision
);
setDecision
(
decision
);
}
}
public
final
class
DistanceTemplatesNareshKumarMS
extends
DistanceTemplates
{
public
DistanceTemplatesNareshKumarMS
()
{
}
@Override
public
String
getDescription
()
{
return
"NareshKumarMS"
;
}
@Override
public
double
getDistance
(
Template
template1
,
Template
template2
)
{
double
sum
=
0.0
;
double
[]
generalizedEigenvalues
=
new
EigenvalueDecomposition
(
getCovarianceMatrix
(
template2
).
inverse
().
times
(
getCovarianceMatrix
(
template1
))).
getRealEigenvalues
();
for
(
int
l
=
0
;
l
<
generalizedEigenvalues
.
length
;
l
++)
{
sum
+=
Math
.
pow
(
Math
.
log
(
Math
.
abs
(
generalizedEigenvalues
[
l
])),
2
);
}
return
Math
.
sqrt
(
sum
);
}
private
Matrix
getCovarianceMatrix
(
Template
template
)
{
Matrix
matrix
=
template
.
getMatrix
();
int
rows
=
matrix
.
getRowDimension
();
int
columns
=
matrix
.
getColumnDimension
();
Matrix
covarianceMatrix
=
new
Matrix
(
columns
,
columns
);
for
(
int
r
=
0
;
r
<
rows
;
r
++)
{
Matrix
d
=
matrix
.
getMatrix
(
r
,
r
,
0
,
columns
-
1
);
Matrix
u
=
getDistanceTemplatesMatrix
().
getMatrix
(
r
,
r
,
0
,
columns
-
1
);
Matrix
diff
=
d
.
minus
(
u
);
covarianceMatrix
.
plusEquals
((
diff
.
transpose
().
times
(
diff
)).
times
((
double
)
1
/
(
rows
-
1
)));
}
return
covarianceMatrix
;
}
}
}
}
src/algorithms/ClassifierTransform1NNMMCMahalanobis.java
View file @
acab277e
...
@@ -39,8 +39,15 @@ public class ClassifierTransform1NNMMCMahalanobis extends ClassifierTransform {
...
@@ -39,8 +39,15 @@ public class ClassifierTransform1NNMMCMahalanobis extends ClassifierTransform {
double
[]
column
=
(
getMeanMatrix
(
samplesOfClass
).
minus
(
meanSampleMatrix
)).
times
(
Math
.
sqrt
((
double
)
samplesOfClass
.
size
()
/
numberOfSamples
)).
getColumnPackedCopy
();
double
[]
column
=
(
getMeanMatrix
(
samplesOfClass
).
minus
(
meanSampleMatrix
)).
times
(
Math
.
sqrt
((
double
)
samplesOfClass
.
size
()
/
numberOfSamples
)).
getColumnPackedCopy
();
Upsilon
.
setMatrix
(
0
,
dimension
-
1
,
c
,
c
,
new
Matrix
(
column
,
column
.
length
));
Upsilon
.
setMatrix
(
0
,
dimension
-
1
,
c
,
c
,
new
Matrix
(
column
,
column
.
length
));
}
}
SingularValueDecomposition
svdChi
=
new
SingularValueDecomposition
(
Chi
);
SingularValueDecomposition
svdChi
;
Matrix
Omega
=
svdChi
.
getU
();
Matrix
Omega
;
if
(
dimension
<
numberOfSamples
)
{
svdChi
=
new
SingularValueDecomposition
(
Chi
.
transpose
());
Omega
=
svdChi
.
getV
().
transpose
();
}
else
{
svdChi
=
new
SingularValueDecomposition
(
Chi
);
Omega
=
svdChi
.
getU
();
}
Matrix
ThetaInverseSquareRoot
=
svdChi
.
getS
();
Matrix
ThetaInverseSquareRoot
=
svdChi
.
getS
();
int
dim
=
Math
.
min
(
ThetaInverseSquareRoot
.
getRowDimension
(),
ThetaInverseSquareRoot
.
getColumnDimension
());
int
dim
=
Math
.
min
(
ThetaInverseSquareRoot
.
getRowDimension
(),
ThetaInverseSquareRoot
.
getColumnDimension
());
for
(
int
d
=
0
;
d
<
dim
;
d
++)
{
for
(
int
d
=
0
;
d
<
dim
;
d
++)
{
...
...
src/algorithms/Cluster
ing
.java
→
src/algorithms/Cluster
er
.java
View file @
acab277e
...
@@ -3,9 +3,9 @@ package algorithms;
...
@@ -3,9 +3,9 @@ package algorithms;
import
java.util.List
;
import
java.util.List
;
import
objects.Template
;
import
objects.Template
;
public
abstract
class
Cluster
ing
extends
Retriever
{
public
abstract
class
Cluster
er
extends
Retriever
{
public
Cluster
ing
()
{
public
Cluster
er
()
{
}
}
public
abstract
List
<
List
<
Template
>>
cluster
(
List
<
Template
>
templatesGallery
);
public
abstract
List
<
List
<
Template
>>
cluster
(
List
<
Template
>
templatesGallery
);
...
...
src/algorithms/Cluster
ing
AgglomerativeHierarchical.java
→
src/algorithms/Cluster
er
AgglomerativeHierarchical.java
View file @
acab277e
...
@@ -4,17 +4,17 @@ import java.util.ArrayList;
...
@@ -4,17 +4,17 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
objects.Template
;
import
objects.Template
;
public
class
Cluster
ing
AgglomerativeHierarchical
extends
Cluster
ing
{
public
class
Cluster
er
AgglomerativeHierarchical
extends
Cluster
er
{
private
final
int
k
;
private
final
int
k
;
private
final
double
d
;
private
final
double
d
;
public
Cluster
ing
AgglomerativeHierarchical
(
int
k
)
{
public
Cluster
er
AgglomerativeHierarchical
(
int
k
)
{
this
.
k
=
k
;
this
.
k
=
k
;
this
.
d
=
Double
.
MAX_VALUE
;
this
.
d
=
Double
.
MAX_VALUE
;
}
}
public
Cluster
ing
AgglomerativeHierarchical
(
double
d
)
{
public
Cluster
er
AgglomerativeHierarchical
(
double
d
)
{
this
.
k
=
Integer
.
MAX_VALUE
;
this
.
k
=
Integer
.
MAX_VALUE
;
this
.
d
=
d
;
this
.
d
=
d
;
}
}
...
...
src/algorithms/Cluster
ing
Kmeans.java
→
src/algorithms/Cluster
er
Kmeans.java
View file @
acab277e
...
@@ -5,11 +5,11 @@ import java.util.List;
...
@@ -5,11 +5,11 @@ import java.util.List;
import
java.util.Random
;
import
java.util.Random
;
import
objects.Template
;
import
objects.Template
;
public
class
Cluster
ing
Kmeans
extends
Cluster
ing
{
public
class
Cluster
er
Kmeans
extends
Cluster
er
{
private
final
int
k
;
private
final
int
k
;
public
Cluster
ing
Kmeans
(
int
k
)
{
public
Cluster
er
Kmeans
(
int
k
)
{
this
.
k
=
k
;
this
.
k
=
k
;
}
}
...
...
src/algorithms/Decision.java
View file @
acab277e
...
@@ -7,9 +7,6 @@ public abstract class Decision extends Retriever {
...
@@ -7,9 +7,6 @@ public abstract class Decision extends Retriever {
private
List
gallery
;
private
List
gallery
;
public
Decision
()
{
}
public
List
getGallery
()
{
public
List
getGallery
()
{
return
gallery
;
return
gallery
;
}
}
...
...
src/algorithms/DecisionRandom.java
View file @
acab277e
package
algorithms
;
package
algorithms
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Random
;
import
java.util.Random
;
import
objects.Template
;
import
objects.Template
;
...
@@ -14,16 +13,12 @@ public class DecisionRandom extends Decision {
...
@@ -14,16 +13,12 @@ public class DecisionRandom extends Decision {
@Override
@Override
public
void
importGallery
(
List
<
Template
>
templatesGallery
)
{
public
void
importGallery
(
List
<
Template
>
templatesGallery
)
{
List
<
String
>
gallery
=
new
ArrayList
();
setGallery
(
templatesGallery
);
for
(
Template
template
:
templatesGallery
)
{
gallery
.
add
(
template
.
getSubject
());
}
setGallery
(
gallery
);
}
}
@Override
@Override
public
String
decide
(
Template
templateProbe
)
{
public
String
decide
(
Template
templateProbe
)
{
List
<
String
>
gallery
=
getGallery
();
List
<
Template
>
gallery
=
getGallery
();
return
gallery
.
get
(
new
Random
().
nextInt
(
gallery
.
size
()))
;
return
gallery
.
get
(
new
Random
().
nextInt
(
gallery
.
size
()))
.
getSubject
();
}
}
}
}
src/algorithms/DecisionSVM.java
deleted
100644 → 0
View file @
07d6abac
package
algorithms
;
import
java.util.List
;
import
libsvm.svm
;
import
libsvm.svm_model
;
import
libsvm.svm_node
;
import
libsvm.svm_parameter
;
import
libsvm.svm_problem
;
import
objects.Template
;
public
class
DecisionSVM
extends
Decision
{
@Override
public
String
getDescription
()
{
return
"SVM"
;
}
@Override
public
void
importGallery
(
List
<
Template
>
templatesGallery
)
{
setGallery
(
templatesGallery
);
}
@Override
public
String
decide
(
Template
templateProbe
)
{
svm
svm
=
new
svm
();
svm_model
svm_model
=
new
svm_model
();
svm_problem
svm_problem
=
new
svm_problem
();
return
""
;
}
double
[][]
train
=
new
double
[
1000
][];
double
[][]
test
=
new
double
[
10
][];
private
svm_model
svmTrain
()
{
svm_problem
prob
=
new
svm_problem
();
int
dataCount
=
train
.
length
;
prob
.
y
=
new
double
[
dataCount
];
prob
.
l
=
dataCount
;
prob
.
x
=
new
svm_node
[
dataCount
][];
for
(
int
i
=
0
;
i
<
dataCount
;
i
++)
{
double
[]
features
=
train
[
i
];
prob
.
x
[
i
]
=
new
svm_node
[
features
.
length
-
1
];
for
(
int
j
=
1
;
j
<
features
.
length
;
j
++)
{
svm_node
node
=
new
svm_node
();
node
.
index
=
j
;
node
.
value
=
features
[
j
];
prob
.
x
[
i
][
j
-
1
]
=
node
;
}
prob
.
y
[
i
]
=
features
[
0
];
}
svm_parameter
param
=
new
svm_parameter
();
param
.
probability
=
1
;
param
.
gamma
=
0.5
;
param
.
nu
=
0.5
;
param
.
C
=
1
;
param
.
svm_type
=
svm_parameter
.
C_SVC
;
param
.
kernel_type
=
svm_parameter
.
LINEAR
;
param
.
cache_size
=
20000
;
param
.
eps
=
0.001
;
svm_model
model
=
svm
.
svm_train
(
prob
,
param
);
return
model
;
}
}
src/algorithms/DistanceTemplates.java
View file @
acab277e
package
algorithms
;
package
algorithms
;
import
Jama.Matrix
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
objects.Template
;
import
objects.Template
;
public
abstract
class
DistanceTemplates
implements
Serializable
{
public
abstract
class
DistanceTemplates
implements
Serializable
{
private
Matrix
distanceTemplatesMatrix
;
public
DistanceTemplates
()
{
}
public
Matrix
getDistanceTemplatesMatrix
()
{
return
distanceTemplatesMatrix
;
}
public
void
setDistanceTemplatesMatrix
(
Matrix
distanceTemplatesMatrix
)
{
this
.
distanceTemplatesMatrix
=
distanceTemplatesMatrix
;
}
public
abstract
String
getDescription
();
public
abstract
String
getDescription
();
public
abstract
double
getDistance
(
Template
template1
,
Template
template2
);
public
abstract
double
getDistance
(
Template
template1
,
Template
template2
);
...
...
src/algorithms/DistanceTemplatesMahalanobis.java
View file @
acab277e
...
@@ -5,9 +5,15 @@ import objects.Template;
...
@@ -5,9 +5,15 @@ import objects.Template;
public
final
class
DistanceTemplatesMahalanobis
extends
DistanceTemplates
{
public
final
class
DistanceTemplatesMahalanobis
extends
DistanceTemplates
{
private
Matrix
totalScatterMatrix
;
public
DistanceTemplatesMahalanobis
()
{
public
DistanceTemplatesMahalanobis
()
{
}
}
public
void
setTotalScatterMatrix
(
Matrix
totalScatterMatrix
)
{
this
.
totalScatterMatrix
=
totalScatterMatrix
;
}
@Override
@Override
public
String
getDescription
()
{
public
String
getDescription
()
{
return
"Mahalanobis"
;
return
"Mahalanobis"
;
...
@@ -16,6 +22,6 @@ public final class DistanceTemplatesMahalanobis extends DistanceTemplates {
...
@@ -16,6 +22,6 @@ public final class DistanceTemplatesMahalanobis extends DistanceTemplates {
@Override
@Override
public
double
getDistance
(
Template
template1
,
Template
template2
)
{
public
double
getDistance
(
Template
template1
,
Template
template2
)
{
Matrix
diff
=
template1
.
getMatrix
().
minus
(
template2
.
getMatrix
());
Matrix
diff
=
template1
.
getMatrix
().
minus
(
template2
.
getMatrix
());
return
Math
.
sqrt
(
diff
.
transpose
().
times
(
getDistanceTempla
te
s
Matrix
()
).
times
(
diff
).
get
(
0
,
0
));
return
Math
.
sqrt
(
diff
.
transpose
().
times
(
totalScat
te
r
Matrix
).
times
(
diff
).
get
(
0
,
0
));
}
}
}
}
src/algorithms/DistanceTemplatesNareshKumarMS.java
0 → 100644
View file @
acab277e
package
algorithms
;
import
Jama.EigenvalueDecomposition
;
import
Jama.Matrix
;
import
objects.Template
;
public
final
class
DistanceTemplatesNareshKumarMS
extends
DistanceTemplates
{
private
Matrix
meanMatrix
;
public
DistanceTemplatesNareshKumarMS
()
{
}
public
void
setMeanMatrix
(
Matrix
meanMatrix
)
{
this
.
meanMatrix
=
meanMatrix
;
}
@Override
public
String
getDescription
()
{
return
"NareshKumarMS"
;
}
@Override
public
double
getDistance
(
Template
template1
,
Template
template2
)
{
double
sum
=
0.0
;
double
[]
generalizedEigenvalues
=
new
EigenvalueDecomposition
(
getCovarianceMatrix
(
template2
).
inverse
().
times
(
getCovarianceMatrix
(
template1
))).
getRealEigenvalues
();
for
(
int
l
=
0
;
l
<
generalizedEigenvalues
.
length
;
l
++)
{
sum
+=
Math
.
pow
(
Math
.
log
(
Math
.
abs
(
generalizedEigenvalues
[
l
])),
2
);
}
return
Math
.
sqrt
(
sum
);
}
private
Matrix
getCovarianceMatrix
(
Template
template
)
{
Matrix
matrix
=
template
.
getMatrix
();
int
rows
=
matrix
.
getRowDimension
();
int
columns
=
matrix
.
getColumnDimension
();
Matrix
covarianceMatrix
=
new
Matrix
(
columns
,
columns
);
for
(
int
r
=
0
;
r
<
rows
;
r
++)
{
Matrix
d
=
matrix
.
getMatrix
(
r
,
r
,
0
,
columns
-
1
);
Matrix
u
=
meanMatrix
.
getMatrix
(
r
,
r
,
0
,
columns
-
1
);
Matrix
diff
=
d
.
minus
(
u
);
covarianceMatrix
.
plusEquals
((
diff
.
transpose
().
times
(
diff
)).
times
((
double
)
1
/
(
rows
-
1
)));
}
return
covarianceMatrix
;
}
}
src/
method
s/Method.java
→
src/
algorithm
s/Method.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
Jama.Matrix
;
import
Jama.Matrix
;
import
algorithms.Classifier
;
import
executor.MotionLoader
;
import
algorithms.MotionLoader
;
import
java.io.File
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.FileOutputStream
;
import
java.io.FileWriter
;
import
java.io.FileWriter
;
...
...
src/
method
s/MethodAhmedF.java
→
src/
algorithm
s/MethodAhmedF.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
executor.MotionLoaderJointCoordinates
;
import
algorithms.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
objects.Feature
;
import
objects.Feature
;
...
...
src/
method
s/MethodAhmedM.java
→
src/
algorithm
s/MethodAhmedM.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
executor.MotionLoaderJointCoordinates
;
import
algorithms.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
objects.Axis
;
import
objects.Axis
;
...
...
src/
method
s/MethodAliS.java
→
src/
algorithm
s/MethodAliS.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
executor.MotionLoaderJointCoordinates
;
import
algorithms.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
objects.Feature
;
import
objects.Feature
;
...
...
src/
method
s/MethodAnderssonVO.java
→
src/
algorithm
s/MethodAnderssonVO.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
executor.MotionLoaderJointCoordinates
;
import
algorithms.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
objects.Axis
;
import
objects.Axis
;
...
...
src/
method
s/MethodBallA.java
→
src/
algorithm
s/MethodBallA.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
executor.MotionLoaderJointCoordinates
;
import
algorithms.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
objects.Axis
;
import
objects.Axis
;
...
...
src/
method
s/MethodDikovskiB.java
→
src/
algorithm
s/MethodDikovskiB.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
executor.MotionLoaderJointCoordinates
;
import
algorithms.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
objects.Axis
;
import
objects.Axis
;
...
...
src/
method
s/MethodJiangS.java
→
src/
algorithm
s/MethodJiangS.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
executor.MotionLoaderJointCoordinates
;
import
algorithms.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
objects.Axis
;
import
objects.Axis
;
import
objects.Feature
;
import
objects.Feature
;
import
objects.Motion
;
import
objects.Motion
;
import
objects.MotionJointCoordinates
;
import
objects.MotionJointCoordinates
;
import
objects.Sample
;
public
class
MethodJiangS
extends
Method
{
public
class
MethodJiangS
extends
Method
{
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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