Face Engine SDK  5.17.0
A face detection, recognition and tracking engine.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
IHumanFaceDetector.h
1 #pragma once
2 
3 #include <fsdk/FSDKError.h>
4 #include <fsdk/IHumanFaceBatch.h>
5 
6 #include <fsdk/IRefCounted.h>
7 #include <fsdk/Types/Detection.h>
8 #include <fsdk/Types/Image.h>
9 #include <fsdk/Types/Ref.h>
10 #include <fsdk/Types/ResultValue.h>
11 #include <fsdk/Types/Span.h>
12 
13 #include <fsdk/vlc/future.h>
14 
15 namespace fsdk {
16 
17 #ifndef DOXYGEN_SHOULD_SKIP_THIS
18  DECLARE_SMARTPTR(IHumanFaceDetector);
19 #endif
20 
30  HFDT_BBOX = 0,
31  HFDT_ASSOC = 1<<0,
32  HFDT_ALL = 0xffff
33  };
34 
39 
52  detect(
53  Span<const Image> images,
54  Span<const Rect> rects,
56 
68  virtual Result<FSDKError>
69  validate(
70  Span<const Image> images,
71  Span<const Rect> rects,
72  Span<Result<FSDKError>> errors) const noexcept = 0;
73 
77  using HumanFaceBatchFuture = vlc::future<IHumanFaceBatchPtr>;
78 
94  Span<const Image> images,
95  Span<const Rect> rectangles,
97  };
98 
99  /*
100  Implementation details.
101  */
103  return static_cast<HumanFaceDetectionType>(static_cast<int>(a) | static_cast<int>(b));
104  }
105 
106  /*
107  Implementation details.
108  */
109  inline bool operator&(HumanFaceDetectionType lhs, HumanFaceDetectionType rhs) {
110  return static_cast<int>(lhs) & static_cast<int>(rhs);
111  }
112 
115 } // 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
Get bounding boxes of faces and humans.
virtual Result< FSDKError > validate(Span< const Image > images, Span< const Rect > rects, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
Common SDK error codes.
Base strong reference counted object interface.
Definition: IRefCounted.h:37
virtual HumanFaceBatchFuture detectAsync(Span< const Image > images, Span< const Rect > rectangles, HumanFaceDetectionType type=HumanFaceDetectionType::HFDT_ALL) const =0
Asynchronously detect of faces and human bodies.
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:21
HumanFaceDetectionType
Detection type enumeration for IHumanFaceDetector.
Definition: IHumanFaceDetector.h:29
Get bounding boxes of faces and humans with associations.
vlc::future< IHumanFaceBatchPtr > HumanFaceBatchFuture
Common aliases for IDetector asynchronous interface.
Definition: IHumanFaceDetector.h:77
Human and face detector interface.
Definition: IHumanFaceDetector.h:38
virtual ResultValue< FSDKError, IHumanFaceBatchPtr > detect(Span< const Image > images, Span< const Rect > rects, HumanFaceDetectionType type=HumanFaceDetectionType::HFDT_ALL) const noexcept=0
Batched detect of faces and human bodies.
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
Reference counted object interface.