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

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
36 using IrisLandmarks = Landmarks<irisLandmarksCount>;
37
39 using EyelidLandmarks = Landmarks<eyelidLandmarksCount>;
40
41 State state;
42
43 IrisLandmarks iris;
44 EyelidLandmarks eyelid;
45 };
46
47 EyeAttributes leftEye;
48 EyeAttributes rightEye;
49 };
50
51
56 struct FSDK_API EyeCropper {
57
58 struct EyesRects {
59 fsdk::Rect leftEyeRect;
60 fsdk::Rect rightEyeRect;
61 };
62
63 EyesRects
64 cropByLandmarks5(
65 const fsdk::Image& warp,
66 const fsdk::Landmarks5& landmarks5
67 );
68
69 EyeCropper::EyesRects
70 cropByLandmarks68(
71 const fsdk::Image& warp,
72 const fsdk::Landmarks68& landmarks68
73 );
74 };
75
76
86 struct IEyeEstimator : IRefCounted {
98 virtual Result<FSDKError>
99 FSDK_DEPRECATED("estimate by landmarks5 is deprecated since v.3.6.0, use estimate(const Image& warp,"
100 "const EyeCropper::EyesRects& eyeRects,EyesEstimation& eyesEstimation) instead")
101 estimate(
102 const Image& warp,
103 const Landmarks5& landmarks5,
104 EyesEstimation& eyesEstimation) const noexcept = 0;
105
117 virtual Result<FSDKError>
118 FSDK_DEPRECATED("estimate by landmarks68 is deprecated since v.3.6.0, use estimate(const Image& warp,"
119 "const EyeCropper::EyesRects& eyeRects, EyesEstimation& eyesEstimation) instead")
120 estimate(
121 const Image& warp,
122 const Landmarks68& landmarks68,
123 EyesEstimation& eyesEstimation) const noexcept = 0;
124
136 virtual Result<FSDKError>
137 estimate(
138 const Image& warp,
139 const EyeCropper::EyesRects& eyeRects,
140 EyesEstimation& eyesEstimation) const noexcept = 0;
141
154 virtual Result<FSDKError>
155 estimate(
156 const Image warps[],
157 const EyeCropper::EyesRects eyeRects[],
158 const uint32_t batchSize,
159 EyesEstimation eyesEstimations[]) const noexcept = 0;
160 };
161
162 } // namespace fsdk
FSDK_API
#define FSDK_API
Dummy.
Definition: Def.h:27
DECLARE_SMARTPTR
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
fsdk
SDK namespace.
Definition: IAGSEstimator.h:8
fsdk::Result< FSDKError >
Types.h
Common data types and structures.
fsdk::Landmarks< irisLandmarksCount >
fsdk::EyesEstimation::EyeAttributes::State::Open
Eye is open.
IObject.h
Object system types and interfaces.
fsdk::EyesEstimation::leftEye
EyeAttributes leftEye
Left eye attributes.
Definition: IEyeEstimator.h:47
FSDKError.h
Common SDK error codes.
fsdk::EyesEstimation
Eyes estimation output.
Definition: IEyeEstimator.h:18
fsdk::EyeCropper::EyesRects
Definition: IEyeEstimator.h:58
fsdk::IRefCounted
Base strong reference counted object interface.
Definition: IRefCounted.h:36
fsdk::EyesEstimation::EyeAttributes::State
State
Enumeration of possible eye states.
Definition: IEyeEstimator.h:26
fsdk::EyesEstimation::EyeAttributes
Eyes attribute structure.
Definition: IEyeEstimator.h:22
fsdk::EyesEstimation::EyeAttributes::irisLandmarksCount
static constexpr uint64_t irisLandmarksCount
Iris landmarks amount.
Definition: IEyeEstimator.h:32
fsdk::IEyeEstimator
Eye estimator interface.
Definition: IEyeEstimator.h:86
fsdk::IEyeEstimator::FSDK_DEPRECATED
virtual Result< FSDKError > FSDK_DEPRECATED("estimate by landmarks5 is deprecated since v.3.6.0, use estimate(const Image& warp," "const EyeCropper::EyesRects& eyeRects,EyesEstimation& eyesEstimation) instead") estimate(const Image &warp
Estimate the attributes.
fsdk::Image
Image.
Definition: Image.h:38
fsdk::EyesEstimation::EyeAttributes::eyelid
EyelidLandmarks eyelid
Eyelid landmarks.
Definition: IEyeEstimator.h:44
fsdk::EyesEstimation::EyeAttributes::State::Occluded
Eye is blocked by something not transparent, or landmark passed to estimator doesn&#39;t point to an eye...
fsdk::BaseRect< int >
fsdk::EyeCropper
EyeCropper is a helper structure for IEyeEstimator interface Methods of this structure crop an input ...
Definition: IEyeEstimator.h:56
fsdk::EyesEstimation::EyeAttributes::iris
IrisLandmarks iris
Iris landmarks.
Definition: IEyeEstimator.h:43
fsdk::EyesEstimation::EyeAttributes::State::Closed
Eye is closed.
fsdk::EyesEstimation::EyeAttributes::state
State state
State of an eye.
Definition: IEyeEstimator.h:41
fsdk::EyesEstimation::rightEye
EyeAttributes rightEye
Right eye attributes.
Definition: IEyeEstimator.h:48
fsdk::EyesEstimation::EyeAttributes::eyelidLandmarksCount
static constexpr uint64_t eyelidLandmarksCount
Eyelid landmarks amount.
Definition: IEyeEstimator.h:33
fsdk::IEyeEstimator::estimate
virtual Result< FSDKError > estimate(const Image &warp, const EyeCropper::EyesRects &eyeRects, EyesEstimation &eyesEstimation) const noexcept=0
Estimate the attributes.