12#include "enrollment/Export.h"
23#include <unordered_map>
48 const std::vector<std::shared_ptr<PrintTemplate>>& probe,
49 const std::vector<std::shared_ptr<PrintTemplate>>& gallery)
const final
51 log.LogInfo(
"Matching embedding probe %v and gallery %v", probe, gallery);
57 constexpr Position Unknown = -1;
59 std::unordered_map<Position, PrintSimilarityScore> scoreOnPosition;
61 for (
const auto& pe : probeEmbeddings)
67 std::optional<Position> probePos;
68 if (pe->IsEmbeddingTemplateBiometricPositionKnown())
70 probePos =
static_cast<Position
>(pe->GetEmbeddingTemplateBiometricPosition());
72 for (
const auto& ge : galleryEmbeddings)
78 std::optional<Position> galleryPos;
79 if (ge->IsEmbeddingTemplateBiometricPositionKnown())
81 galleryPos =
static_cast<Position
>(ge->GetEmbeddingTemplateBiometricPosition());
83 const bool probeIsUnknown = !probePos.has_value();
84 const bool galleryIsUnknown = !galleryPos.has_value();
85 if (probeIsUnknown || galleryIsUnknown || probePos == galleryPos)
88 const auto p = probePos.value_or(Unknown);
89 scoreOnPosition[p] = std::max(scoreOnPosition[p], s);
94 for (
const auto& [_, score] : scoreOnPosition)
99 if (!scoreOnPosition.empty())
105 log.LogInfo(
"Matching embedding probe %v and gallery %v with score %d", probe, gallery, averageScore);
129 , exec(std::move(executor))
145 std::shared_ptr<MultiModalityExecutor> exec;
EmbeddingVerifyMatcher is template matcher that uses Innovatrics proprietary verification algorithm.
Definition EmbeddingVerifyMatcher.h:34
Holds instance of Logger.
Definition Logger.h:275
Holds instance of MultiModalityExecutor.
Definition MultiModalityExecutor.h:434
Interface for library logging.
Definition Logger.h:45
ModalitiesEmbeddingVerifyMatcher is template matcher that uses Innovatrics proprietary verification a...
Definition ModalitiesEmbeddingVerifyMatcher.h:34
PrintSimilarityScore MatchPrints(const std::vector< std::shared_ptr< PrintTemplate > > &probe, const std::vector< std::shared_ptr< PrintTemplate > > &gallery) const final
Calculates prints similarity score of probe and gallery that contains only embedding prints.
Definition ModalitiesEmbeddingVerifyMatcher.h:46
ModalitiesEmbeddingVerifyMatcher(std::shared_ptr< MultiModalityExecutor > executor)
Constructor with custom executor.
Definition ModalitiesEmbeddingVerifyMatcher.h:126
ModalitiesEmbeddingVerifyMatcher()
Constructor with default logger and executor GlobalMultiModalityExecutor is used to execute matching.
Definition ModalitiesEmbeddingVerifyMatcher.h:114
ModalitiesVerifyMatcher()
Constructor with default Config GlobalMultiModalityExecutor is used to execute matching.
Definition ModalitiesVerifyMatcher.h:258
Null argument is not allowed.
Definition EnrollmentException.h:156
static std::vector< std::shared_ptr< EmbeddingTemplate > > ToEmbeddingTemplates(const std::vector< std::shared_ptr< PrintTemplate > > &templates)
Converts a PrintTemplate objects into an EmbeddingTemplate objects.
Definition PrintTemplate.h:58
unsigned int PrintSimilarityScore
It is similarity score between print Templates.
Definition SimilarityScore.h:28