Interface for feature extraction implemented by participant.
More...
#include <e1n.h>
|
| struct | Compatibility |
| | Information used by the NIST testing apparatus to help efficiently test this implementation. More...
|
| |
Interface for feature extraction implemented by participant.
Definition at line 73 of file e1n.h.
◆ ExtractionInterface()
| FRIF::Evaluations::Exemplar1N::ExtractionInterface::ExtractionInterface |
( |
| ) |
|
|
default |
◆ ~ExtractionInterface()
| FRIF::Evaluations::Exemplar1N::ExtractionInterface::~ExtractionInterface |
( |
| ) |
|
|
virtualdefault |
◆ createTemplate()
| virtual std::tuple< ReturnStatus, std::optional< CreateTemplateResult > > FRIF::Evaluations::Exemplar1N::ExtractionInterface::createTemplate |
( |
const TemplateType | templateType, |
|
|
const std::string & | identifier, |
|
|
const std::vector< Sample > & | samples ) const |
|
pure virtual |
Extract features from one or more images and encode them into a template.
- Parameters
-
| templateType | Where this template will be used in the future. |
| identifier | Unique identifier used to identify the returned template in future search operations (e.g., SubjectCandidate::identifier and SubjectPositionCandidate::identifier). |
| samples | One or more biometric samples to be considered and encoded into a template. |
- Returns
- A tuple containing a ReturnStatus on if the operation succeeded, and a CreateTemplateResult that contains a single template representative of samples when information was able to be extracted.
- Note
- If an implementation cannot extract information but did not encounter any errors, a ReturnStatus with Result::Success and no CreateTemplateResult would be expected.
-
The value of the returned CreateTemplateResult::data will only be recorded if ReturnStatus::result is ReturnStatus::Result::Success. On ReturnStatus::Result::Failure or when the optional CreateTemplateResult tuple member is std::nullopt, subsequent searches will automatically increase false negative identification rate and a zero-length template will be provided to ExtractionInterface::createReferenceDatabase.
-
This method must return in <=
N * M milliseconds for each element of samples, on average, as measured on a fixed subset of data, where
N
- 3000 for exemplar images
- 1500 for feature sets
M
- 1 for single fingers
- 2 for two-finger simultaneous captures
- 4 for four-finger simultaneous captures
- 8 for half palm and joint regions
- 16 for full palm
-
If
samples contained RightThumb, and LeftFour, the time requirement would be <= 15s (i.e., <= ((3000 * 1) + (3000 * 4)) milliseconds).
-
This method shall not spawn threads.
◆ extractTemplateData()
Extract information contained within a template.
- Parameters
-
- Returns
- A optional with no value if not implemented (as noted in Compatibility::supportsTemplateIntrospection), or a ReturnStatus and one or more TemplateData describing the contents of CreateTemplateResult::data from
templateResult otherwise. If CreateTemplateResult::data contains information separated by position (e.g., when provided a multi-position image) or multiple views of the same image (e.g., a compact and verbose template), there may be multiple TemplateData returned.
- Attention
- Be sure to note if this method is supported (i.e., if this method returns something other than
std::nullopt) by setting Compatibility::supportsTemplateIntrospection to true.
- Note
- You must implement this method to compile, but providing the requested information is optional. If provided, information may help in debugging as well as inform future NIST research.
-
NIST will attempt to filter out information provided in createTemplate(). If possible, do not return information that was provided in createTemplate(). For instance, if Minutia was provided, EFS::minutiae should be left
std::nullopt. However, if you discovered different Minutia, they should be returned.
-
This method shall return in <= 500 milliseconds.
-
This method shall not spawn threads.
◆ createReferenceDatabase()
| virtual ReturnStatus FRIF::Evaluations::Exemplar1N::ExtractionInterface::createReferenceDatabase |
( |
const TemplateArchive & | referenceTemplates, |
|
|
const std::filesystem::path & | databaseDirectory, |
|
|
const uint64_t | maxSize ) const |
|
pure virtual |
Create a reference database on the file system.
- Parameters
-
| referenceTemplates | One or more templates returned from createTemplate() with a templateType of TemplateType::Reference. |
| databaseDirectory | Entry to a read/write directory where the reference database shall be written. |
| maxSize | The maximum number of bytes of storage available to write. |
- Returns
- Information about the result of executing the method.
- Attention
- Implementations must, at a minimum, copy the files pointed to by
referenceTemplates to use SearchInterface. The files pointed to by referenceTemplates will not exist when SearchInterface is instantiated.
-
Implementations may not write more than 1000 total files.
-
Writing many files is detrimental to the performance of the file system during this evaluation. It is strongly encouraged to write a small number of large files to store the reference database. NIST reserves the right to reject the implementation based on the file system requirements of the reference database scheme employed.
- Note
- This method may use more than one thread.
-
maxSize is not necessarily the amount of RAM that will be available to SearchInterface to load the database. That value will be provided at search time as input to SearchInterface::load.
-
This method must return in <= 5 milliseconds * the number of lines in TemplateArchive::manifest.
◆ getImplementation()
| static std::shared_ptr< ExtractionInterface > FRIF::Evaluations::Exemplar1N::ExtractionInterface::getImplementation |
( |
const std::filesystem::path & | configurationDirectory | ) |
|
|
static |
Obtain a managed pointer to an object implementing ExtractionInterface.
- Parameters
-
| configurationDirectory | Read-only directory populated with configuration files provided by participant. |
- Returns
- Shared pointer to an instance of ExtractionInterface containing the participant's code to perform extraction operations.
- Note
- A possible implementation might be:
return (std::make_shared<ExtractionImplementation>(
configurationDirectory));
-
This method shall return in <= 5 seconds.
-
This method shall not spawn threads.
◆ getProductIdentifier()
| static std::optional< ProductIdentifier > FRIF::Evaluations::Exemplar1N::ExtractionInterface::getProductIdentifier |
( |
| ) |
|
|
static |
Obtain identification and version information for the extraction portion of this submission.
- Returns
- ProductIdentifier populated with information used to identify the feature extraction algorithms in reports.
- Note
- This method shall return instantly.
-
This method shall not spawn threads.
◆ getCompatibility()
| static Compatibility FRIF::Evaluations::Exemplar1N::ExtractionInterface::getCompatibility |
( |
| ) |
|
|
static |
Obtain information about API feature and version compatibility of this implementation.
- Returns
- Compatibility populated with information used to help efficiently run the evaluation of this implementation.
- Note
- This method shall return instantly.
-
This method shall not spawn threads.
The documentation for this class was generated from the following files: