Face Engine SDK  5.8.0
A face detection, recognition and tracking engine.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
IEyeEstimator.h
1 #pragma once
2 
3 #include <fsdk/IObject.h>
4 #include <fsdk/FSDKError.h>
5 #include <fsdk/Optional.h>
6 #include <fsdk/Types.h>
7 
8 namespace fsdk {
9 
10 #ifndef DOXYGEN_SHOULD_SKIP_THIS
11  DECLARE_SMARTPTR(IEyeEstimator);
12 #endif
13 
18  struct EyesEstimation {
22  struct EyeAttributes {
26  enum class State : uint8_t {
27  Closed,
28  Open,
29  Occluded
30  };
31 
32  static constexpr uint64_t irisLandmarksCount = 32;
33  static constexpr uint64_t eyelidLandmarksCount = 6;
34 
37 
40 
42 
45  };
46 
49  };
50 
51 
57  struct EyesRects {
58  Rect leftEyeRect;
59  Rect rightEyeRect;
60  };
61 
62  EyesRects
63  cropByLandmarks5(
64  const Image& warp,
65  const Landmarks5& landmarks5
66  );
67 
69  cropByLandmarks68(
70  const Image& warp,
71  const Landmarks68& landmarks68
72  );
73  };
74 
75 
100  virtual Result<FSDKError>
101  estimate(
102  const Image& warp,
103  const EyeCropper::EyesRects& eyeRects,
104  EyesEstimation& eyesEstimation) const noexcept = 0;
105 
120  virtual Result<FSDKError>
121  estimate(
122  Span<const Image> warps,
124  Span<EyesEstimation> eyesEstimations) const noexcept = 0;
125 
137  virtual Result<FSDKError>
138  validate(
139  Span<const Image> warps,
141  Span<Result<FSDKError>> errors) const noexcept = 0;
142  };
143 
144 } // namespace fsdk
#define FSDK_API
Dummy.
Definition: Def.h:27
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
Common data types and structures.
Object system types and interfaces.
EyeAttributes leftEye
Left eye attributes.
Definition: IEyeEstimator.h:47
Common SDK error codes.
Eyes estimation output.
Definition: IEyeEstimator.h:18
Definition: IEyeEstimator.h:57
Base strong reference counted object interface.
Definition: IRefCounted.h:36
State
Enumeration of possible eye states.
Definition: IEyeEstimator.h:26
Eyes attribute structure.
Definition: IEyeEstimator.h:22
static constexpr uint64_t irisLandmarksCount
Iris landmarks amount.
Definition: IEyeEstimator.h:32
Eye estimator interface.
Definition: IEyeEstimator.h:85
Image.
Definition: Image.h:38
EyelidLandmarks eyelid
Eyelid landmarks.
Definition: IEyeEstimator.h:44
Eye is blocked by something not transparent, or landmark passed to estimator doesn&#39;t point to an eye...
EyeCropper is a helper structure for IEyeEstimator interface Methods of this structure crop an input ...
Definition: IEyeEstimator.h:56
IrisLandmarks iris
Iris landmarks.
Definition: IEyeEstimator.h:43
State state
State of an eye.
Definition: IEyeEstimator.h:41
virtual Result< FSDKError > validate(Span< const Image > warps, Span< const EyeCropper::EyesRects > eyeRects, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
EyeAttributes rightEye
Right eye attributes.
Definition: IEyeEstimator.h:48
static constexpr uint64_t eyelidLandmarksCount
Eyelid landmarks amount.
Definition: IEyeEstimator.h:33
virtual Result< FSDKError > estimate(const Image &warp, const EyeCropper::EyesRects &eyeRects, EyesEstimation &eyesEstimation) const noexcept=0
Estimate the attributes.