| Face Engine SDK 5.2.0 A face detection, recognition and tracking engine.

Public Member Functions | List of all members
fsdk::IDescriptorMatcher Struct Referenceabstract
Descriptor extractor

Descriptor matcher interface. More...

`#include <IDescriptor.h>`

Inheritance diagram for fsdk::IDescriptorMatcher:

## Public Member Functions
virtual ResultValue< FSDKError, MatchingResult > | match (const IDescriptor *first, const IDescriptor *second) noexcept=0
| Match descriptors 1:1. More...
virtual Result< FSDKError > | match (const IDescriptor *reference, const IDescriptorBatch *candidates, Span< MatchingResult > results) noexcept=0
| Match descriptors 1:M. More...
virtual uint32_t | getModelVersion () const noexcept=0
| Get algorithm model version this matcher works with. More...
virtual Result< FSDKError > | calcSimilarity (Span< MatchingResult > distances) const noexcept=0
| Calculates similarity based on distance. More...
virtual Result< FSDKError > | calcDistance (Span< MatchingResult > similarities) const noexcept=0
| Calculates distance from similarity. More...
Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t | retain () noexcept=0
| Increase strong reference count. More...
virtual int32_t | release () noexcept=0
| Decrease strong reference count. More...
virtual int32_t | getRefCount () const noexcept=0
| Get actual strong reference count. More...
virtual int32_t | retainWeak () noexcept=0
| Increase weak reference count. More...
virtual int32_t | releaseWeak () noexcept=0
| Decrease weak reference count. More...
virtual int32_t | getWeakRefCount () const noexcept=0
| Get actual weak reference count. More...

## Detailed Description

Descriptor matcher interface.

Matches descriptors 1:1 and 1:M (

See also
  IDescriptor and IDescriptorBatch interfaces).

As a result of the matching process the calling site gets a MatchingResult (or several of them in case of 1:M matching). The MatchingResult structure contains distance and similarity metrics.

Distance is measured in abstract units and tends to 0 for similar descriptors and to infinity for different ones. Similarity is the opposite metric and shows probability of two descriptors belonging to the same person; therfore it is normalized to [0..1] range.

See also
  MatchingResult for details.

## Member Function Documentation

## ◆ calcDistance()

virtual Result<FSDKError> fsdk::IDescriptorMatcher::calcDistance | ( | Span< MatchingResult > | similarities | ) | const
| pure virtual noexcept

Calculates distance from similarity.

The method gets similarity from `similarities`[i].similarity and assignes the result to `similarities`[i].distance.

Parameters

  [in] | similarities | is a mutable array of matching results with calculated similarity.

Returns
  Result with error specified by FSDKError.

See also
  Result and FSDKError.

## ◆ calcSimilarity()

virtual Result<FSDKError> fsdk::IDescriptorMatcher::calcSimilarity | ( | Span< MatchingResult > | distances | ) | const
| pure virtual noexcept

Calculates similarity based on distance.

The method gets distance from `distances`[i].distances. and assignes the result to `distances`[i].similarity.

Parameters

  [in] | dinstances | is a mutable array of matching results with calculated distances.

Returns
  Result with error specified by FSDKError.

See also
  Result and FSDKError.

## ◆ getModelVersion()

virtual uint32_t fsdk::IDescriptorMatcher::getModelVersion | ( |  | ) | const
| pure virtual noexcept

Get algorithm model version this matcher works with.

Returns
  Version as integral number.

## ◆ match() [1/2]

virtual ResultValue< FSDKError, MatchingResult> fsdk::IDescriptorMatcher::match | ( | const IDescriptor * | first,
|  | const IDescriptor * | second
| ) |  |
| pure virtual noexcept

Match descriptors 1:1.

Parameters

  first | first descriptor.
  second | second descriptor.

Returns
  ResultValue with error code specified by FSDKError and matching result.

See also
  ResulValue and FSDKError.

## ◆ match() [2/2]

virtual Result<FSDKError> fsdk::IDescriptorMatcher::match | ( | const IDescriptor * | reference,
|  | const IDescriptorBatch * | candidates,
|  | Span< MatchingResult > | results
| ) |  |
| pure virtual noexcept

Match descriptors 1:M.

Matches a reference descriptor to a batch of candidate descriptors. The results are layed out in the same order as the candidate descriptors in the batch.

Parameters

  [in] | reference | the reference descriptor.
  [in] | candidates | the candidate descriptor batch to match with the reference.
  [in] | [out] | results matchig result array.

Note
  Length of `results` must be at least the same as the length of the candidates batch.

See also
  IDescriptorBatch::getMaxCount().

Returns
  Result with error specified by FSDKError.

See also
  Result and FSDKError.

The documentation for this struct was generated from the following file:

- fsdk.framework/Headers/IDescriptor.h