13#include "enrollment/Export.h"
29 INNO_ENROLLMENT_API
void inno_local_SerializeModalitiesTemplate(
const inno_PrintTemplate* prints,
31 const inno_Template* faces,
33 const inno_Template* irises,
35 inno_AllocateData allocator,
37 ErrorCallbacks errorCallbacks);
38 using inno_PrintTemplateBuilder = void (*)(
void*,
const inno_PrintTemplate&, ErrorCallbacks);
39 using inno_TemplateBuilder = void (*)(
void*,
const inno_Template&);
40 INNO_ENROLLMENT_API
void inno_local_DeserializeModalitiesTemplate(
const unsigned char* serializedData,
41 size_t serializedDataSize,
42 inno_PrintTemplateBuilder printFactory,
44 inno_TemplateBuilder faceFactory,
46 inno_TemplateBuilder irisFactory,
48 ErrorCallbacks errorCallbacks);
54 class ModalitiesTemplate :
public Serializable
61 [[nodiscard]] std::vector<std::shared_ptr<FaceTemplate>>
GetFaceTemplates()
const
69 [[nodiscard]] std::vector<std::shared_ptr<IrisTemplate>>
GetIrisTemplates()
const
77 [[nodiscard]] std::vector<std::shared_ptr<PrintTemplate>>
GetPrintTemplates()
const
88 auto ft = inno_Template::FromTemplates(fs);
89 auto it = inno_Template::FromTemplates(is);
90 auto pt = inno_PrintTemplate::FromTemplates(ps);
92 std::vector<uint8_t> templateData;
93 auto dataAllocator = +[](
void* container,
size_t length) -> uint8_t*
99 std::vector<uint8_t>& vec = *
static_cast<std::vector<uint8_t>*
>(container);
103 inno_local_SerializeModalitiesTemplate(pt.data(),
121 static std::shared_ptr<ModalitiesTemplate>
Create(
const std::vector<uint8_t>& data)
123 return std::shared_ptr<ModalitiesTemplate>(
new ModalitiesTemplate(data));
133 static std::shared_ptr<ModalitiesTemplate>
Create(std::vector<std::shared_ptr<PrintTemplate>> prints,
134 std::vector<std::shared_ptr<FaceTemplate>> faces,
135 std::vector<std::shared_ptr<IrisTemplate>> irises)
137 return std::shared_ptr<ModalitiesTemplate>(
138 new ModalitiesTemplate(std::move(prints), std::move(faces), std::move(irises)));
176 return matcher.
Match(*
this, gallery);
194 std::vector<std::shared_ptr<PrintTemplate>> ps;
195 std::vector<std::shared_ptr<FaceTemplate>> fs;
196 std::vector<std::shared_ptr<IrisTemplate>> is;
201 auto printBuilder = +[](
void* container,
const inno_PrintTemplate& tmpl, ErrorCallbacks err) ->
void
203 ForwardExceptionToCallbacks(err,
206 auto* printContainer =
207 static_cast<std::vector<std::shared_ptr<PrintTemplate>
>*>(container);
208 printContainer->push_back(inno_PrintTemplate::ToTemplate(tmpl));
211 auto faceBuilder = +[](
void* container,
const inno_Template& tmpl) ->
void
213 auto* faceContainer =
static_cast<std::vector<std::shared_ptr<FaceTemplate>
>*>(container);
214 faceContainer->push_back(inno_Template::ToFaceTemplate(tmpl));
216 auto irisBuilder = +[](
void* container,
const inno_Template& tmpl) ->
void
218 auto* irisContainer =
static_cast<std::vector<std::shared_ptr<IrisTemplate>
>*>(container);
219 irisContainer->push_back(inno_Template::ToIrisTemplate(tmpl));
222 inno_local_DeserializeModalitiesTemplate(
223 d.data(), d.size(), printBuilder, &ps, faceBuilder, &fs, irisBuilder, &is, ThrowOnError{});
232 explicit ModalitiesTemplate(std::vector<std::shared_ptr<PrintTemplate>> prints,
233 std::vector<std::shared_ptr<FaceTemplate>> faces,
234 std::vector<std::shared_ptr<IrisTemplate>> irises)
235 : ps(std::move(prints))
236 , fs(std::move(faces))
237 , is(std::move(irises))
ModalitiesICSTemplateDefaultFactory creates biometric representations from all modality templates.
Definition ModalitiesICSTemplateDefaultFactory.h:28
ModalitiesICSTemplateFactory creates biometric representations from all modality templates.
Definition ModalitiesICSTemplateFactory.h:26
virtual std::shared_ptr< ModalitiesICSTemplate > CreateModalitiesICSTemplate(const std::vector< std::shared_ptr< ICSTemplate > > &printTemplates, const std::vector< std::shared_ptr< FaceTemplate > > &faceTemplates, const std::vector< std::shared_ptr< IrisTemplate > > &irisTemplates) const =0
It creates ModalitiesICSTemplate.
It is general matcher for ModalitiesTemplate - Applicant template in serialized form used for biome...
Definition ModalitiesMatcher.h:22
virtual ModalityScore Match(const ModalitiesTemplate &probe, const ModalitiesTemplate &gallery) const =0
Calculates similarity score of probe and gallery template for each modality.
Applicant template in serialized form used for biometric operations.
Definition ModalitiesTemplate.h:54
std::shared_ptr< ModalitiesICSTemplate > ToModalitiesICSTemplate() const
Converts template to Innovatrics template format useful for verification.
Definition ModalitiesTemplate.h:145
std::vector< std::shared_ptr< PrintTemplate > > GetPrintTemplates() const
Provides PrintTemplate objects.
Definition ModalitiesTemplate.h:76
ModalityScore SimilarWith(const ModalitiesTemplate &gallery, const ModalitiesMatcher &matcher) const
It calculates similarity score between this and other applicant template.
Definition ModalitiesTemplate.h:172
static std::shared_ptr< ModalitiesTemplate > Create(std::vector< std::shared_ptr< PrintTemplate > > prints, std::vector< std::shared_ptr< FaceTemplate > > faces, std::vector< std::shared_ptr< IrisTemplate > > irises)
Create ModalitiesTemplate object from templates.
Definition ModalitiesTemplate.h:132
static std::shared_ptr< ModalitiesTemplate > Create(const std::vector< uint8_t > &data)
Create ModalitiesTemplate object from serialized data.
Definition ModalitiesTemplate.h:120
std::vector< std::shared_ptr< FaceTemplate > > GetFaceTemplates() const
Provides FaceTemplate objects.
Definition ModalitiesTemplate.h:60
std::vector< uint8_t > GetModalitiesTemplateData() const
It provides Applicant template data.
Definition ModalitiesTemplate.h:85
std::vector< std::shared_ptr< IrisTemplate > > GetIrisTemplates() const
Provides IrisTemplate objects.
Definition ModalitiesTemplate.h:68
std::shared_ptr< ModalitiesICSTemplate > ToModalitiesICSTemplate(const ModalitiesICSTemplateFactory &factory) const
Converts template to Innovatrics template format useful for verification.
Definition ModalitiesTemplate.h:157
void WriteTo(Writer &w) const override
Write itself into writer.
Definition ModalitiesTemplate.h:178
Contains scores of multiple modalities.
Definition SimilarityScore.h:75
static std::vector< std::shared_ptr< ICSTemplate > > ToICSTemplates(const std::vector< std::shared_ptr< PrintTemplate > > &templates)
Converts a PrintTemplate objects into a ICSTemplate objects.
Definition PrintTemplate.h:38
Provides interface for serialization of all classes.
Definition Writer.h:164
void WriteArray(const char *name, const std::vector< uint8_t > &value)
Serialize bytes from vector.
Definition Writer.h:233