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

Public Types | Public Member Functions | List of all members
fsdk::IDetector Struct Referenceabstract
Human and Face detectors

face detector interface. More...

`#include <IDetector.h>`

Inheritance diagram for fsdk::IDetector:

## Public Types
using | FaceBatchFuture = vlc::future< IFaceDetectionBatchPtr >
| Common alias for IDetector asynchronous interface.

## Public Member Functions
virtual ResultValue< FSDKError, Ref< IFaceDetectionBatch > > | detect (Span< const Image > images, Span< const Rect > ROIs, uint32_t perImageNum, DetectionType type=DT_BBOX) noexcept=0
| Detect faces and their parameters on multiple images. More...
virtual ResultValue< FSDKError, Face > | detectOne (const Image &image, const Rect &rect, DetectionType type=DT_BBOX) noexcept=0
| Light function to get just one best detection from single input image. More...
virtual ResultValue< FSDKError, Ref< IFaceDetectionBatch > > | redetect (Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, DetectionType type=DT_BBOX) noexcept=0
| Batched redetect faces on multiple images. based on the detection results for the previous frames. More...
virtual ResultValue< FSDKError, Ref< IFaceDetectionBatch > > | redetect (Span< const Image > images, Span< Span< const Detection >> detections, DetectionType type=DT_BBOX) noexcept=0
| Batched redetect faces on multiple images. based on the detection results for the previous frames. More...
virtual ResultValue< FSDKError, Face > | redetectOne (const Image &image, const Detection &detection, DetectionType type=DT_BBOX) noexcept=0
| Redetect face. More...
virtual void | setDetectionComparer (DetectionComparerType comparerType) noexcept=0
| Set detection comparer from SDK defined list. More...
virtual void | setCustomDetectionComparer (const IDetectionComparer *comparer) noexcept=0
| Set custom detection comparer object. More...
virtual Result< FSDKError > | validate (Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0
| Validate input of multiple frames in a single function call. More...
virtual Result< FSDKError > | validate (Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> outErrors) const noexcept=0
| Validate input of multiple frames in a single function call. More...
virtual Result< FSDKError > | validate (Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, Span< Result< FSDKError >> outErrors) const noexcept=0
| Validate input of multiple frames in a single function call. More...
virtual FaceBatchFuture | detectAsync (Span< const Image > images, Span< const Rect > rectangles, uint32_t perImageNum, DetectionType type=DT_BBOX) const =0
| Asynchronously detect faces and their parameters on multiple images. More...
virtual FaceBatchFuture | redetectAsync (Span< const Image > images, IFaceDetectionBatchPtr detectionBatch, DetectionType type=DT_BBOX) const =0
| Asynchronously redetect faces on multiple images. based on the detection results for the previous frames. 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

face detector interface.

## Member Function Documentation

## ◆ detect()

virtual ResultValue<FSDKError, Ref<IFaceDetectionBatch> > fsdk::IDetector::detect | ( | Span< const Image > | images,
|  | Span< const Rect > | ROIs,
|  | uint32_t | perImageNum,
|  | DetectionType | type = `DT_BBOX`
| ) |  |
| pure virtualnoexcept

Detect faces and their parameters on multiple images.

Parameters

  [in] | images | span of source images.
  [in] | rectangles | input rectangles of interest (ROI) span.
  [in] | perImageNum | the max number of detections per input image.
  [in] | type | type of the detection.

Returns
  ResultValue with error code and IFaceDetectionBatch object.

See also
  Ref, Span, Image, Rect, DetectionType, IFaceDetectionBatch, ResultValue and FSDKError for details.

Note
  images format must be R8G8B8,

See also
  Format.

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

## ◆ detectAsync()

virtual FaceBatchFuture fsdk::IDetector::detectAsync | ( | Span< const Image > | images,
|  | Span< const Rect > | rectangles,
|  | uint32_t | perImageNum,
|  | DetectionType | type = `DT_BBOX`
| ) |  | const
| pure virtual

Asynchronously detect faces and their parameters on multiple images.

Parameters

  [in] | images | span of source images.
  [in] | rectangles | input rectangles of interest (ROI) span.
  [in] | perImageNum | the max number of detections per input image.
  [in] | type | type of the detection.

Returns
  Future with IFaceDetectionBatch object.

See also
  Ref, Span, Image, Rect, DetectionType, IFaceDetectionBatch vlc::future for details.

Note
  images 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.

## ◆ detectOne()

virtual ResultValue<FSDKError, Face> fsdk::IDetector::detectOne | ( | const Image & | image,
|  | const Rect & | rect,
|  | DetectionType | type = `DT_BBOX`
| ) |  |
| pure virtualnoexcept

Light function to get just one best detection from single input image.

Parameters

  [in] | image | source image.
  [in] | rect | rectangle of interest in the image.
  [in] | type | type of detection: BBox, 5landmarks or 68landmarks.

Returns
  ResultValue with error code and a Face object (detection bbox, landmarks, etc).

See also
  Face, Image, Rect, DetectionType, ResultValue and FSDKError for details.

Note
  image format must be R8G8B8,

See also
  Format.

## ◆ redetect() [1/2]

virtual ResultValue<FSDKError, Ref<IFaceDetectionBatch> > fsdk::IDetector::redetect | ( | Span< const Image > | images,
|  | Ref< IFaceDetectionBatch > | detectionBatch,
|  | DetectionType | type = `DT_BBOX`
| ) |  |
| pure virtualnoexcept

Batched redetect faces on multiple images. based on the detection results for the previous frames.

Parameters

  [in] | images | span of source images.
  [in] | detectionBatch | result of detection on the previous frames - Ref with an IFaceDetectionBatch object.
  [in] | type | type of redetection.

Returns
  ResultValue with error code and IFaceDetectionBatch object.

See also
  Ref, Span, Image, DetectionType, IFaceDetectionBatch, ResultValue and FSDKError for details.

Note
  images format must be R8G8B8,

See also
  Format.

Note
  all spans should be based on user owned continuous collections.
  images span should be the same size with detectionBatch size.
  In case if some face from the input detectionBatch was not found the corresponding detection in the output IFaceDetectionBatch object will be invalid.

## ◆ redetect() [2/2]

virtual ResultValue<FSDKError, Ref<IFaceDetectionBatch> > fsdk::IDetector::redetect | ( | Span< const Image > | images,
|  | Span< Span< const Detection >> | detections,
|  | DetectionType | type = `DT_BBOX`
| ) |  |
| pure virtualnoexcept

Batched redetect faces on multiple images. based on the detection results for the previous frames.

Parameters

  [in] | images | span of source images.
  [in] | detections | span of detection coordinates in corresponding source images space from the previous frames. It is a two dimensional Span. There is one Span of the rectangles for each image.
  [in] | type | type of redetection.

Returns
  ResultValue with error code and IFaceDetectionBatch object.

See also
  Ref, Span, Image, DetectionType, Detection, IFaceDetectionBatch, ResultValue and FSDKError for details.

Note
  images format must be R8G8B8,

See also
  Format.

Note
  all spans should be based on user owned continuous collections.
  all spans should be equal size.
  If for some of the input detections the redetected face will not be found the appropriate detection in the IFaceDetectionBatch object will be invalid.

## ◆ redetectAsync()

virtual FaceBatchFuture fsdk::IDetector::redetectAsync | ( | Span< const Image > | images,
|  | IFaceDetectionBatchPtr | detectionBatch,
|  | DetectionType | type = `DT_BBOX`
| ) |  | const
| pure virtual

Asynchronously redetect faces on multiple images. based on the detection results for the previous frames.

Parameters

  [in] | images | span of source images.
  [in] | detectionBatch | result of detection on the previous frames - Ref with an IFaceDetectionBatch object.
  [in] | type | type of redetection.

Returns
  Future with IFaceDetectionBatch object.

See also
  Ref, Span, Image, DetectionType, IFaceDetectionBatch and vlc::future for details.

Note
  images format must be R8G8B8,

See also
  Format.

Note
  all spans should be based on user owned continuous collections.
  images span should be the same size with detectionBatch size.
  In case if some face from the input detectionBatch was not found the corresponding detection in the output IFaceDetectionBatch object will be invalid.
  this method is experimental and interface may be changed in the future.
  this method is not marked as noexcept and may throw an exception.

## ◆ redetectOne()

virtual ResultValue<FSDKError, Face> fsdk::IDetector::redetectOne | ( | const Image & | image,
|  | const Detection & | detection,
|  | DetectionType | type = `DT_BBOX`
| ) |  |
| pure virtualnoexcept

Redetect face.

Parameters

  [in] | image | source image. Format must be R8G8B8.
  [in] | detection | detection coordinates in image space from the previous frame to make redetect.
  [in] | type | type of detection: BBox, 5landmarks or 68landmarks.

Returns
  ResultValue with error code and Face.

See also
  Face, Image, DetectionType, Detection, ResultValue and FSDKError for details.

Note
  image format must be R8G8B8,

See also
  Format.

## ◆ setCustomDetectionComparer()

virtual void fsdk::IDetector::setCustomDetectionComparer | ( | const IDetectionComparer * | comparer | ) |
| pure virtualnoexcept

Set custom detection comparer object.

Parameters

  [in] | comparer | pointer to user defined comparer object.

See also
  IDetectionComparer for details.

Note
  Client code still owns comparer object

## ◆ setDetectionComparer()

virtual void fsdk::IDetector::setDetectionComparer | ( | DetectionComparerType | comparerType | ) |
| pure virtualnoexcept

Set detection comparer from SDK defined list.

Parameters

  [in] | comparerType | type of the comparer for detections.

See also
  DetectionComparerType for details.

## ◆ validate() [1/3]

virtual Result<FSDKError> fsdk::IDetector::validate | ( | Span< const Image > | images,
|  | Span< Span< const Detection >> | detections,
|  | Span< Span< Result< FSDKError >>> | errors
| ) |  | const
| pure virtualnoexcept

Validate input of multiple frames in a single function call.

Parameters

  [in] | images | span of source images.
  [in] | detections | span of detection coordinates in corresponding source images space from the previous frames. It is a two dimensional Span. There is one Span of Detections for each image.
  [out] | errors | output span of errors for each image. It is a two dimensional Span. There is one Span of the errors for each image.

Returns
  Result with error code.

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

Note
  images format must be R8G8B8,

See also
  Format.

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

## ◆ validate() [2/3]

virtual Result<FSDKError> fsdk::IDetector::validate | ( | Span< const Image > | images,
|  | Span< const Rect > | rects,
|  | uint32_t | detectionPerImageNum,
|  | Span< Result< FSDKError >> | outErrors
| ) |  | const
| pure virtualnoexcept

Validate input of multiple frames in a single function call.

Parameters

  [in] | images | span of source images.
  [in] | rects | span of rectangle coordinates of corresponding source images.
  [in] | detectionPerImageNum | max number of detections per input image.
  [out] | errors | output span of errors for each image.

Returns
  Result with error code.

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

Note
  images format must be R8G8B8,

See also
  Format.

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

## ◆ validate() [3/3]

virtual Result<FSDKError> fsdk::IDetector::validate | ( | Span< const Image > | images,
|  | Ref< IFaceDetectionBatch > | detectionBatch,
|  | Span< Result< FSDKError >> | outErrors
| ) |  | const
| pure virtualnoexcept

Validate input of multiple frames in a single function call.

Parameters

  [in] | images | span of source images.
  [in] | detectionBatch | result of detection on the previous frames - Ref with an IFaceDetectionBatch object.
  [out] | errors | output span of errors for each image.

Returns
  Result with error code.

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

Note
  images 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/IDetector.h