NDArraySimilarity.cpp
Go to the documentation of this file.
1 #include "NDArraySimilarity.h"
2 
3 #include <cmath>
4 
6 
7 #include "../../cosine.h"
8 #include "chernoff.h"
9 #include "mae.h"
10 #include "mse.h"
11 
13 {
14 
15 
16  double
18  {
19  switch (type)
20  {
21  case Type::MSE:
22  //ARMARX_INFO << "Calculate MSE";
24  case Type::MAE:
26  case Type::CHERNOFF:
28  case Type::COSINE:
30  default:
32  << "Trying to calculate similarity with unspecified similarity measurement";
33  return -1;
34  }
35  }
36 
37  std::string
39  {
40  switch (t)
41  {
42  case MSE:
43  return "MSE";
44  case MAE:
45  return "MAE";
46  case CHERNOFF:
47  return "Chernoff";
48  case COSINE:
49  return "Cosine";
50  default:
51  return "No similarity type information";
52  }
53  }
54 
55  double
56  NDArraySimilarity::calculate_similarity_multi(std::vector<data::NDArrayPtr> images,
58  Type type)
59  {
60  double sim = 0;
61  for (auto& image : images)
62  {
63  //ARMARX_INFO << "Before calculation";
64  sim += calculate_similarity(image, p, type);
65  //ARMARX_INFO << "Sim is currently: " << sim;
66  }
67  return sim /
68  (images.size() +
69  1); // to average it over the distances, makes it easier to find good parameters
70  }
71 
72 } // namespace armarx::aron::similarity
armarx::aron::similarity::NDArraySimilarity::CHERNOFF
@ CHERNOFF
Definition: NDArraySimilarity.h:14
mse.h
armarx::aron::similarity::mse::compute_similarity
double compute_similarity(const aron::data::NDArrayPtr p1, const aron::data::NDArrayPtr p2)
Definition: mse.cpp:12
armarx::aron::similarity
Definition: cosine.cpp:9
armarx::aron::data::NDArrayPtr
std::shared_ptr< NDArray > NDArrayPtr
Definition: NDArray.h:46
armarx::aron::similarity::FloatSimilarity::MAE
@ MAE
Definition: FloatSimilarity.h:13
armarx::aron::similarity::chernoff::compute_similarity
double compute_similarity(const aron::data::NDArrayPtr p1, const aron::data::NDArrayPtr p2)
Definition: chernoff.cpp:14
armarx::aron::similarity::NDArraySimilarity::COSINE
@ COSINE
Definition: NDArraySimilarity.h:15
armarx::aron::similarity::NDArraySimilarity::to_string
std::string to_string(Type t)
Definition: NDArraySimilarity.cpp:38
armarx::aron::similarity::FloatSimilarity::MSE
@ MSE
Definition: FloatSimilarity.h:12
mae.h
armarx::aron::similarity::cosine::compute_similarity
double compute_similarity(const aron::data::NDArrayPtr p1, const aron::data::NDArrayPtr p2)
Definition: cosine.cpp:12
armarx::aron::similarity::NDArraySimilarity::calculate_similarity_multi
double calculate_similarity_multi(std::vector< armarx::aron::data::NDArrayPtr > images, armarx::aron::data::NDArrayPtr p, Type type)
calculate_similarity_multi compares the image p with all images from the images vector,...
Definition: NDArraySimilarity.cpp:56
armarx::aron::similarity::FloatSimilarity::calculate_similarity
double calculate_similarity(armarx::aron::data::FloatPtr f1, armarx::aron::data::FloatPtr f2, Type t)
Definition: FloatSimilarity.cpp:11
NDArraySimilarity.h
Logging.h
ARMARX_WARNING
#define ARMARX_WARNING
Definition: Logging.h:193
chernoff.h
armarx::aron::similarity::NDArraySimilarity::Type
Type
Definition: NDArraySimilarity.h:10
armarx::aron::similarity::NDArraySimilarity::calculate_similarity
double calculate_similarity(armarx::aron::data::NDArrayPtr p1, armarx::aron::data::NDArrayPtr p2, Type type)
Definition: NDArraySimilarity.cpp:17
armarx::aron::similarity::mae::compute_similarity
double compute_similarity(const data::NDArrayPtr p1, const data::NDArrayPtr p2)
Definition: mae.cpp:7