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

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

Descriptor extractor interface. More...

`#include <IDescriptor.h>`

Inheritance diagram for fsdk::IDescriptorExtractor:

## Public Types
using | FutureResult = vlc::future< float >
| Common aliases for BestShotQuality asynchronous interface.

## Public Member Functions
virtual ResultValue< FSDKError, float > | extractFromWarpedImage (const Image &warp, IDescriptor *descriptor) const noexcept=0
| Extract descriptor from a warped image. More...
virtual ResultValue< FSDKError, float > | extractFromWarpedImageBatch (Span< const Image > warps, IDescriptorBatch *descriptorBatch, IDescriptor *aggregation, Span< float > garbageScoreBatch) const noexcept=0
| Extract batch of descriptors from a batch of images and perform aggregation. More...
virtual Result< FSDKError > | extractFromWarpedImageBatch (Span< const Image > warps, IDescriptorBatch *descriptorBatch, Span< float > garbageScoreBatch) const noexcept=0
| Extract batch of descriptors from a batch of images. More...
virtual Result< FSDKError > | validate (Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0
| Validate input of multiple frames in a single function call. More...
virtual uint32_t | getModelVersion () const noexcept=0
| Get algorithm model version this extractor works with. More...
virtual DescriptorType | getDescriptorType () const noexcept=0
| Get type of descriptor this extractor works with. More...
virtual FutureResult | extractFromWarpedImageBatchAsync (Span< const Image > warps, IDescriptorBatch *descriptorBatch, IDescriptor *aggregation, Span< float > garbageScoreBatch) const =0
| Asynchronously extract batch of descriptors from a batch of images. More...
Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t | retain () noexcept=0
| Increase strong reference count. More...
virtual int32_t | retainLocked () noexcept=0
| Increase strong reference count thread safely. 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 extractor interface.

Extracts face descriptors from images. The descriptors can be later used for face matching.

## Member Function Documentation

## ◆ extractFromWarpedImage()

virtual ResultValue<FSDKError, float> fsdk::IDescriptorExtractor::extractFromWarpedImage | ( | const Image & | warp,
|  | IDescriptor * | descriptor
| ) |  | const
| pure virtual noexcept

Extract descriptor from a warped image.

Parameters

  [in] | warp | image with warped face or human warp.

Note
  Warp should be a valid 250x250 image in R8G8B8 format for DT_FACE descriptor type.
  Warp should be a valid 128x256 image in R8G8B8 format for DT_HUMAN descriptor type.

Parameters

  [out] | descriptor | descriptor to fill with data.

Returns
  ResultValue with error code and score of descriptor normalized in range [0, 1] 1 - face on the input warp; 0 - garbage on the input warp.

Note
  human descriptor does not support garbage score, 1.0 will be returned.

See also
  Image, IDescriptor, ResultValue and FSDKError for details.

Note
  warp format must be R8G8B8,

See also
  Format.

## ◆ extractFromWarpedImageBatch() [1/2]

virtual ResultValue<FSDKError, float> fsdk::IDescriptorExtractor::extractFromWarpedImageBatch | ( | Span< const Image > | warps,
|  | IDescriptorBatch * | descriptorBatch,
|  | IDescriptor * | aggregation,
|  | Span< float > | garbageScoreBatch
| ) |  | const
| pure virtual noexcept

Extract batch of descriptors from a batch of images and perform aggregation.

Parameters

  [in] | warps | span of images with warped faces or human warps.

Note
  Warps should be in R8G8B8 format, with size 250x250 for DT_FACE descriptor type.
  Warps should be in R8G8B8 format, with size 128x256 for DT_HUMAN descriptor type.

Parameters

  [out] | descriptorBatch | descriptor batch to fill with data.

Note
  DT_HUMAN descriptor does not support garbage score.

Parameters

  [out] | aggregation | descriptor with aggregation based on descriptor batch.
  [out] | garbageScoreBatch | span of descriptor scores normalized in range [0, 1] 1 - face on the input warp; 0 - garbage on the input warp.

Note
  human descriptor does not support garbage score, 1.0 will be returned.

Returns
  ResultValue with error code and aggregated garbage score.

See also
  Span, Image, IDescriptor, IDescriptorBatch, ResultValue and FSDKError for details.

Note
  warps format must be R8G8B8,

See also
  Format.

Note
  all spans should be based on user owned continuous collections.
  all spans should be equal size.

## ◆ extractFromWarpedImageBatch() [2/2]

virtual Result<FSDKError> fsdk::IDescriptorExtractor::extractFromWarpedImageBatch | ( | Span< const Image > | warps,
|  | IDescriptorBatch * | descriptorBatch,
|  | Span< float > | garbageScoreBatch
| ) |  | const
| pure virtual noexcept

Extract batch of descriptors from a batch of images.

Parameters

  [in] | warps | span of images with warped faces or human warps.

Note
  Warps should be in R8G8B8 format, with size 250x250 for DT_FACE descriptor type.
  Warps should be in R8G8B8 format, with size 128x256 for DT_HUMAN descriptor type.

Parameters

  [out] | descriptorBatch | descriptor batch to fill with data.
  [out] | garbageScoreBatch | span of descriptor scores normalized in range [0, 1] 1 - face on the input warp; 0 - garbage on the input warp. DT_HUMAN descriptor does not support garbage score. In a case of DT_HUMAN descriptor, you'll get batch filled by 1.0.

Returns
  Result with error code.

See also
  Span, Image, IDescriptorBatch, Result and FSDKError for details.

Note
  warps format must be R8G8B8,

See also
  Format.

Note
  all spans should be based on user owned continuous collections.
  all spans should be equal size.

## ◆ extractFromWarpedImageBatchAsync()

virtual FutureResult fsdk::IDescriptorExtractor::extractFromWarpedImageBatchAsync | ( | Span< const Image > | warps,
|  | IDescriptorBatch * | descriptorBatch,
|  | IDescriptor * | aggregation,
|  | Span< float > | garbageScoreBatch
| ) |  | const
| pure virtual

Asynchronously extract batch of descriptors from a batch of images.

Parameters

  [in] | warps | span of images with warped faces or human warps.

Note
  Warps should be in R8G8B8 format, with size 250x250 for DT_FACE descriptor type.
  Warps should be in R8G8B8 format, with size 128x256 for DT_HUMAN descriptor type.

Parameters

  [out] | descriptorBatch | descriptor batch to fill with data.
  [out] | aggregation | descriptor with aggregation based on descriptor batch.
  [out] | garbageScoreBatch | span of descriptor scores normalized in range [0, 1] 1 - face on the input warp; 0 - garbage on the input warp. DT_HUMAN descriptor does not support garbage score. In a case of DT_HUMAN descriptor, you'll get batch filled by 1.0.

Returns
  Result with error code and aggregated garbage score.

See also
  Span, Image, IDescriptorBatch, Result and FSDKError for details.

Note
  warps format must be R8G8B8,

See also
  Format.

Note
  all spans should be based on user owned continuous collections.
  all spans should be equal size.
  this method is experimental and interface may be changed in the future.
  this method is not marked as noexcept and may throw an exception.

## ◆ getDescriptorType()

virtual DescriptorType fsdk::IDescriptorExtractor::getDescriptorType | ( |  | ) | const
| pure virtual noexcept

Get type of descriptor this extractor works with.

Returns
  type as enum

See also
  DescriptorType.

## ◆ getModelVersion()

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

Get algorithm model version this extractor works with.

Returns
  Version as integral number.

## ◆ validate()

virtual Result<FSDKError> fsdk::IDescriptorExtractor::validate | ( | Span< const Image > | warps,
|  | Span< Result< FSDKError >> | errors
| ) |  | const
| pure virtual noexcept

Validate input of multiple frames in a single function call.

Parameters

  [in] | warps | span of images with warped faces or human warps.
  [out] | errors | output span of errors for each image.

Returns
  Result with error code.

See also
  Span, Image, Result and FSDKError for details.

Note
  warps format must be R8G8B8,

See also
  Format.

Note
  all spans should be based on user owned continuous collections.
  all spans should be equal size.

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

- include/fsdk/IDescriptor.h