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

- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
IPPEEstimator.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 #include <algorithm>
9
10 namespace fsdk {
11
12 #ifndef DOXYGEN_SHOULD_SKIP_THIS
13 DECLARE_SMARTPTR(IPPEEstimator);
14 #endif
15
24 struct OnePPEEstimation {
25 float positive = 0.0f;
26 float negative = 0.0f;
27 float unknown = 0.0f;
28
29 enum class PPEState : uint8_t {
30 Positive,
31 Negative,
32 Unknown,
33 Count
34 };
35
39 inline PPEState getPredominantState();
40 };
41 using PPEState = OnePPEEstimation::PPEState;
42
51 struct PPEEstimation {
52 OnePPEEstimation helmetEstimation;
53 OnePPEEstimation hoodEstimation;
54 OnePPEEstimation vestEstimation;
55 OnePPEEstimation glovesEstimation;
56 };
57
62 struct IPPEEstimator : IRefCounted {
69 virtual ResultValue<FSDKError, PPEEstimation>
70 estimate(
71 const Image& image,
72 const Detection& detection) const noexcept = 0;
73 };
74
75 PPEState OnePPEEstimation::getPredominantState() {
76 float* arr = &this->positive;
77 return static_cast<PPEState>(
78 std::distance(arr, std::max_element(arr, arr + static_cast<int>(PPEState::Count)))
79 );
80 }
81 } // namespace fsdk
DECLARE_SMARTPTR
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
fsdk::OnePPEEstimation
Personal Protection Equipment estimation structure (a.k.a. PPE) This structure contains prediction sc...
Definition: IPPEEstimator.h:24
fsdk::IPPEEstimator
Personal Protection Equipment estimator interface.
Definition: IPPEEstimator.h:62
Types.h
Common data types and structures.
fsdk::IPPEEstimator::estimate
virtual ResultValue< FSDKError, PPEEstimation > estimate(const Image &image, const Detection &detection) const noexcept=0
estimate PPE.
IObject.h
Object system types and interfaces.
fsdk::OnePPEEstimation::PPEState::Positive
person is wearing specific personal equipment;
FSDKError.h
Common SDK error codes.
fsdk::IRefCounted
Base strong reference counted object interface.
Definition: IRefCounted.h:36
fsdk::OnePPEEstimation::PPEState
PPEState
Definition: IPPEEstimator.h:29
fsdk::ResultValue
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:21
fsdk::OnePPEEstimation::PPEState::Negative
person isn&#39;t wearing specific personal equipment;
fsdk::Image
Image.
Definition: Image.h:37
fsdk::OnePPEEstimation::PPEState::Unknown
it&#39;s hard to tell wether person wears specific personal equipment.
fsdk::OnePPEEstimation::getPredominantState
PPEState getPredominantState()
returns predominant personal equipment state
Definition: IPPEEstimator.h:75
fsdk::OnePPEEstimation::PPEState::Count
state count
fsdk::Detection
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
fsdk::PPEEstimation
Personal Protection Equipment output structure. This structure aggregates multiple PPE attributes pre...
Definition: IPPEEstimator.h:51