Face Engine SDK  5.21.0
A face detection, recognition and tracking engine.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
IBestShotQualityEstimator.h
1 #pragma once
2 #include <fsdk/Estimators/IHeadPoseEstimator.h>
3 
4 #include <fsdk/IObject.h>
5 #include <fsdk/FSDKError.h>
6 #include <fsdk/Optional.h>
7 #include <fsdk/Types.h>
8 #include <fsdk/vlc/future.h>
9 #include <vector>
10 
11 namespace fsdk {
12 
13 #ifndef DOXYGEN_SHOULD_SKIP_THIS
14  DECLARE_SMARTPTR(IBestShotQualityEstimator);
15 #endif
16 
33  estimateAGS = 1 << 0,
34  estimateHeadPose = 1 << 1,
35  estimateAll = 0xffff
36  };
37 
42  Optional<HeadPoseEstimation> headPose;
43  Optional<float> ags;
44  };
45 
58  const Image& image,
59  const Detection& detection,
60  const EstimationRequest request,
61  EstimationResult& result) const noexcept = 0;
62 
78  Span<const Image> images,
79  Span<const Detection> detections,
80  const EstimationRequest request,
81  Span<EstimationResult> results) const noexcept = 0;
82 
86  using EstimationBatch = std::vector<EstimationResult>;
87  using EstimationBatchFuture = vlc::future<EstimationBatch>;
103  virtual EstimationBatchFuture estimateAsync(
104  Span<const Image> images,
105  Span<const Detection> detections,
106  const EstimationRequest request) const = 0;
107 
121  virtual Result<FSDKError> validate(
122  Span<const Image> images,
123  Span<const Detection> detections,
124  const EstimationRequest request,
125  Span<Result<FSDKError>> errors) const noexcept = 0;
126  };
127 
128  /*
129  Implementation details.
130  */
135  static_cast<int>(first) | static_cast<int>(second));
136  }
137 
139 } // namespace fsdk
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:56
A structure that encapsulates an action result enumeration.
Definition: Result.h:27
Common data types and structures.
virtual Result< FSDKError > validate(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
BestShotQuality estimator interface.
Definition: IBestShotQualityEstimator.h:27
EstimationRequest
EstimationRequest lists all possible estimation attributes that BestShotQuality estimator is able to ...
Definition: IBestShotQualityEstimator.h:32
Object system types and interfaces.
BestShotQualityEstimator output structure.
Definition: IBestShotQualityEstimator.h:41
virtual EstimationBatchFuture estimateAsync(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request) const =0
Asynchronously estimate unified AGS and HeadPose attributes of multiple frames in a single estimate f...
Common SDK error codes.
virtual Result< FSDKError > estimate(const Image &image, const Detection &detection, const EstimationRequest request, EstimationResult &result) const noexcept=0
Estimate unified AGS and HeadPose attributes.
Base strong reference counted object interface.
Definition: IRefCounted.h:37
Make full estimation (all attributes)
Definition: IBestShotQualityEstimator.h:35
Estimate HeadPose.
Definition: IBestShotQualityEstimator.h:34
Image.
Definition: Image.h:38
Optional< float > ags
AGS estimation if was requested, empty otherwise.
Definition: IBestShotQualityEstimator.h:43
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
Estimate AGS.
Definition: IBestShotQualityEstimator.h:33
std::vector< EstimationResult > EstimationBatch
Common aliases for BestShotQuality asynchronous interface.
Definition: IBestShotQualityEstimator.h:86
Optional< HeadPoseEstimation > headPose
HeadPose estimation if was requested, empty otherwise.
Definition: IBestShotQualityEstimator.h:42