Face Engine SDK 5.25.0
A face detection, recognition and tracking engine.
Loading...
Searching...
No Matches
IFaceOcclusionEstimator.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
8namespace fsdk {
9
10#ifndef DOXYGEN_SHOULD_SKIP_THIS
11 DECLARE_SMARTPTR(IFaceOcclusionEstimator);
12#endif
13
23 enum class FaceOcclusionType : uint8_t {
24 Forehead = 0,
25 LeftEye,
26 RightEye,
27 Nose,
28 Mouth,
29 LowerFace,
30 Count
31 };
32
37 enum class FaceOcclusionState : uint8_t {
38 NotOccluded = 0,
39 Occluded,
40 Count
41 };
42
52
54 float typeScores[static_cast<uint8_t>(FaceOcclusionType::Count)];
55
61 inline float getScore(FaceOcclusionType type) const {
62 return typeScores[static_cast<uint8_t>(type)];
63 }
64
71 return states[static_cast<uint8_t>(type)];
72 }
73
74 FaceOcclusionState overallOcclusionState;
75 float overallOcclusionScore;
76 float hairOcclusionScore;
77 };
78
93 estimate(const Image& warp, const Landmarks5& landmarks5) const noexcept = 0;
94
108 Span<const Image> warps,
109 Span<const Landmarks5> landmarks,
110 Span<FaceOcclusionEstimation> faceOcclusionEstimations) const noexcept = 0;
111
124 Span<const Image> warps,
125 Span<const Landmarks5> landmarks,
126 Span<Result<FSDKError>> errors) const noexcept = 0;
127 };
128
130} // namespace fsdk
Span. @detail Not owning data view. It incapsulated pointer to the continuous array with one or more ...
Definition Span.h:14
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition Def.h:56
FaceOcclusionState
FaceOcclusionState enum. This enum contains all possible facial occlusion states.
Definition IFaceOcclusionEstimator.h:37
FaceOcclusionType
FaceOcclusionType enum. This enum contains all possible facial occlusion types.
Definition IFaceOcclusionEstimator.h:23
@ Occluded
Face is occluded.
@ NotOccluded
Face is not occluded.
@ LowerFace
Lower part of the face (chin, mouth, etc.)
@ Count
Total number of occlusion types.
SDK namespace.
Definition IAGSEstimator.h:8
FaceOcclusionEstimation structure. This structure is used to check for occlusions in various parts of...
Definition IFaceOcclusionEstimator.h:50
FaceOcclusionState getState(FaceOcclusionType type) const
Returns the occlusion state.
Definition IFaceOcclusionEstimator.h:70
float getScore(FaceOcclusionType type) const
Returns the occlusion score for the required facial zone.
Definition IFaceOcclusionEstimator.h:61
FaceOcclusionState states[static_cast< uint8_t >(FaceOcclusionType::Count)]
occlusion states
Definition IFaceOcclusionEstimator.h:51
FaceOcclusion estimator interface.
Definition IFaceOcclusionEstimator.h:83
virtual Result< FSDKError > estimate(Span< const Image > warps, Span< const Landmarks5 > landmarks, Span< FaceOcclusionEstimation > faceOcclusionEstimations) const noexcept=0
This structure is used to check for occlusions in various parts of the face (such as the lower face,...
virtual ResultValue< FSDKError, FaceOcclusionEstimation > estimate(const Image &warp, const Landmarks5 &landmarks5) const noexcept=0
Checks whether persons face is occluded or not.
virtual Result< FSDKError > validate(Span< const Image > warps, Span< const Landmarks5 > landmarks, Span< Result< FSDKError > > errors) const noexcept=0
Validate input of multiple frames in a single function call.
Base strong reference counted object interface.
Definition IRefCounted.h:37
Image.
Definition Image.h:38
Face landmarks template structure.
Definition Landmarks.h:23
A structure that encapsulates an action result enumeration.
Definition Result.h:27
Addon for Result to output some value aside the result. Specialization for copiable types.
Definition ResultValue.h:21