Face Engine SDK  4.9.0
A face detection, recognition and tracking engine.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
IFaceEngine.h
1 
8 #pragma once
9 
30 #include "Version.h"
31 #include "IObject.h"
32 #include "ISettingsProvider.h"
33 #include "IEstimator.h"
34 #include "IDetector.h"
35 #include "IDescriptor.h"
36 #include "IWarper.h"
37 #include "IHumanWarper.h"
38 #include "IIndex.h"
39 #include "IAsyncContext.h"
40 #include "ILicense.h"
41 #include "Types/FaceEngineEdition.h"
42 
44 namespace fsdk {
45 
46 #ifndef DOXYGEN_SHOULD_SKIP_THIS
47  DECLARE_SMARTPTR(IFaceEngine);
48 #endif
49 
60 
67  virtual IDetector* createDetector(
69  RecognitionMode mode = RecognitionMode::RM_RGB) noexcept = 0;
70 
75  virtual IHumanDetector* createHumanDetector() noexcept = 0;
76 
81  virtual IHeadPoseEstimator* createHeadPoseEstimator() noexcept = 0;
82 
87  virtual IOverlapEstimator* createOverlapEstimator() noexcept = 0;
88 
93  virtual IChildEstimator* createChildEstimator() noexcept = 0;
94 
99  virtual IAGSEstimator* createAGSEstimator() noexcept = 0;
100 
106 
111  virtual IAttributeEstimator* createAttributeEstimator() noexcept = 0;
112 
117  virtual IQualityEstimator* createQualityEstimator() noexcept = 0;
118 
123  virtual IBlackWhiteEstimator* createBlackWhiteEstimator() noexcept = 0;
124 
129  virtual ILivenessDepthEstimator* createDepthEstimator() noexcept = 0;
130 
135  virtual ILivenessIREstimator* createIREstimator() noexcept = 0;
136 
141  virtual ISmileEstimator* createSmileEstimator() noexcept = 0;
142 
147  virtual IMouthEstimator* createMouthEstimator() noexcept = 0;
148 
153  virtual IMedicalMaskEstimator* createMedicalMaskEstimator() noexcept = 0;
154 
160 
166  virtual ILivenessFlowEstimator* createFaceFlowEstimator() noexcept = 0;
167 
173  virtual ILivenessRGBMEstimator* createLivenessRGBMEstimator() noexcept = 0;
174 
180  virtual ILivenessFPREstimator* createLivenessFPREstimator() noexcept = 0;
181 
188 
193  virtual IEmotionsEstimator* createEmotionsEstimator() noexcept = 0;
194 
201 
206  virtual IGlassesEstimator* createGlassesEstimator() noexcept = 0;
207 
213 
219 
224  virtual IFacialHairEstimator* createFacialHairEstimator() noexcept = 0;
225 
230  virtual IHeadWearEstimator* createHeadWearEstimator() noexcept = 0;
231 
239  virtual IDescriptor* createDescriptor(uint32_t version = 0) noexcept = 0;
240 
247  virtual IDescriptor* createDescriptor(fsdk::IArchive* archive, uint32_t flags = 0) noexcept = 0;
248 
258  virtual IDescriptorBatch* createDescriptorBatch(int32_t size, uint32_t version = 0) noexcept = 0;
259 
267  virtual IDescriptorExtractor* createExtractor(uint32_t version = 0) noexcept = 0;
268 
276  virtual IDescriptorMatcher* createMatcher(uint32_t version = 0) noexcept = 0;
277 
287  const size_t capacity = 0,
288  uint32_t version = 0) noexcept = 0;
289 
298  const char* indexPath) noexcept = 0;
299 
308  const char* indexPath) noexcept = 0;
309 
314  virtual IWarper* createWarper() noexcept = 0;
315 
320  virtual IHumanWarper* createHumanWarper() noexcept = 0;
321 
327  virtual IAsyncContext* createAsyncContext(const int8_t threadCount) noexcept = 0;
328 
336  virtual FaceEngineEdition getFaceEngineEdition() const noexcept = 0;
337 
342  virtual void setDataDirectory(const char* path) noexcept = 0;
343 
349  virtual const char* getDataDirectory() const noexcept = 0;
350 
355  virtual void setSettingsProvider(ISettingsProvider* provider) noexcept = 0;
356 
361  virtual void setRuntimeSettingsProvider(ISettingsProvider* provider) noexcept = 0;
362 
367  virtual ISettingsProvider* getSettingsProvider() const noexcept = 0;
368 
373  virtual ISettingsProvider* getRuntimeSettingsProvider() const noexcept = 0;
374 
379  virtual ILicense* getLicense() const noexcept = 0;
380  };
381 
388  FSDK_API bool activateLicense(ILicense* license, const char* configPath) noexcept;
389 
396  FSDK_API bool activateLicense(ILicense* license, fsdk::ISettingsProvider* settings) noexcept;
397 
406  const char* dataPath = nullptr,
407  const char* configPath = nullptr,
408  const char* runtimePath = nullptr) noexcept;
409 
415  FSDK_API ISettingsProvider* createSettingsProvider(const char* path) noexcept;
416 
419 }
FPR Liveness estimator interface.
Definition: ILivenessFPREstimator.h:33
virtual IEyeEstimator * createEyeEstimator(RecognitionMode mode=RecognitionMode::RM_RGB) noexcept=0
Creates Eye estimator.
virtual IBestShotQualityEstimator * createBestShotQualityEstimator() noexcept=0
Creates BestShotQuality estimator.
virtual IHeadPoseEstimator * createHeadPoseEstimator() noexcept=0
Creates Head pose estimator.
#define FSDK_API
Dummy.
Definition: Def.h:27
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
Smile estimator interface.
Definition: ISmileEstimator.h:33
virtual IMouthEstimator * createMouthEstimator() noexcept=0
Creates Mouth estimator.
Infra red liveness estimator interface.
Definition: ILivenessIREstimator.h:27
Default detector cpecified in config file;.
Definition: IDetector.h:45
virtual ResultValue< FSDKError, IDynamicIndex * > loadDynamicIndex(const char *indexPath) noexcept=0
Loads dynamic index.
Image and landmarks warping.
Gaze estimator interface.
Definition: IGazeEstimator.h:32
virtual ISmileEstimator * createSmileEstimator() noexcept=0
Creates Smile estimator.
virtual IAsyncContext * createAsyncContext(const int8_t threadCount) noexcept=0
Creates async context.
virtual ISettingsProvider * getSettingsProvider() const noexcept=0
Gets settings provider.
BestShot and Quality estimator interface.
Definition: IBestShotQualityEstimator.h:20
Image and human landmarks warping.
HeadWear estimator interface.
Definition: IHeadWearEstimator.h:96
virtual IChildEstimator * createChildEstimator() noexcept=0
Creates Child estimator.
Descriptor batch interface.
Definition: IDescriptor.h:130
virtual ILivenessFlowEstimator * createFaceFlowEstimator() noexcept=0
Creates Liveness flow estimator.
Object system types and interfaces.
Face detection area warper interface.
Definition: IWarper.h:41
virtual IDescriptorBatch * createDescriptorBatch(int32_t size, uint32_t version=0) noexcept=0
Creates Batch of descriptors.
Liveness flow estimator interface.
Definition: ILivenessFlowEstimator.h:21
License objects interface.
Definition: ILicense.h:34
virtual ILivenessIREstimator * createIREstimator() noexcept=0
Creates Liveness Infrared estimator.
CredibilityCheck estimator interface.
Definition: ICredibilityCheckEstimator.h:38
FSDK_API bool activateLicense(ILicense *license, const char *configPath) noexcept
Makes License activation with some platform specific manner. Network connection is required...
virtual IIndexBuilder * createIndexBuilder(const size_t capacity=0, uint32_t version=0) noexcept=0
Creates index builder.
virtual ILicense * getLicense() const noexcept=0
Get current License object, which was set for FaceEngine object.
virtual ICredibilityCheckEstimator * createCredibilityCheckEstimator() noexcept=0
Creates CredibilityCheck estimator.
virtual ILivenessFlyingFacesEstimator * createLivenessFlyingFacesEstimator() noexcept=0
Creates LivenessFlyingFaces estimator.
virtual void setSettingsProvider(ISettingsProvider *provider) noexcept=0
Sets settings provider.
Root LUNA SDK object interface.
Definition: IFaceEngine.h:59
Base strong reference counted object interface.
Definition: IRefCounted.h:36
human body detector interface.
Definition: IDetector.h:237
Interface for running tasks asynchronously.
Definition: IAsyncContext.h:24
virtual ResultValue< FSDKError, IDenseIndex * > loadDenseIndex(const char *indexPath) noexcept=0
Loads dense index.
Emotions estimator interface.
Definition: IEmotionsEstimator.h:60
Descriptor matcher interface.
Definition: IDescriptor.h:407
SDK version information routines.
virtual IHeadWearEstimator * createHeadWearEstimator() noexcept=0
Creates HeadWear estimator.
Overlap estimator interface.
Definition: IOverlapEstimator.h:27
virtual IDetector * createDetector(ObjectDetectorClassType type=FACE_DET_DEFAULT, RecognitionMode mode=RecognitionMode::RM_RGB) noexcept=0
Creates a detector of given type.
Image analysis and attribute estimation interfaces.
face detector interface.
Definition: IDetector.h:115
virtual IDescriptorMatcher * createMatcher(uint32_t version=0) noexcept=0
Creates descriptor matcher.
MedicalMask estimator interface.
Definition: IMedicalMaskEstimator.h:95
virtual IHumanDetector * createHumanDetector() noexcept=0
Creates a human detector.
RGBM Liveness estimator interface.
Definition: ILivenessRGBMEstimator.h:28
Descriptor extractor and matcher interfaces.
virtual IQualityEstimator * createQualityEstimator() noexcept=0
Creates Quality estimator.
virtual IDescriptorExtractor * createExtractor(uint32_t version=0) noexcept=0
Creates descriptor extractor.
virtual ISettingsProvider * getRuntimeSettingsProvider() const noexcept=0
Gets runtime settings provider.
Glasses estimator interface.
Definition: IGlassesEstimator.h:33
virtual IDescriptor * createDescriptor(uint32_t version=0) noexcept=0
Creates Descriptor.
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:21
Face detector interfaces.
virtual ILivenessFPREstimator * createLivenessFPREstimator() noexcept=0
Creates LivenessFPR estimator.
Mouth estimator interface.
Definition: IMouthEstimator.h:34
Descriptor extractor interface.
Definition: IDescriptor.h:291
Eye estimator interface.
Definition: IEyeEstimator.h:86
Async context interface.
FSDK_API ISettingsProvider * createSettingsProvider(const char *path) noexcept
Create a settings provider.
virtual IOverlapEstimator * createOverlapEstimator() noexcept=0
Creates Overlap estimator.
virtual void setRuntimeSettingsProvider(ISettingsProvider *provider) noexcept=0
Sets runtime settings provider.
virtual IMedicalMaskEstimator * createMedicalMaskEstimator() noexcept=0
Creates MedicalMask estimator.
virtual IGazeEstimator * createGazeEstimator(RecognitionMode mode=RecognitionMode::RM_RGB) noexcept=0
Creates Gaze estimator.
Depth estimator interface.
Definition: ILivenessDepthEstimator.h:45
virtual ILivenessDepthEstimator * createDepthEstimator() noexcept=0
Creates Liveness Depth estimator.
virtual ILivenessRGBMEstimator * createLivenessRGBMEstimator() noexcept=0
Creates Liveness RGBM estimator.
virtual IBlackWhiteEstimator * createBlackWhiteEstimator() noexcept=0
Creates Black/White estimator.
Approximate Garbage Score estimator interface.
Definition: IAGSEstimator.h:18
Descriptor interface.
Definition: IDescriptor.h:82
virtual const char * getDataDirectory() const noexcept=0
Gets data directory.
Head And Shoulders estimator interface.
Definition: IHeadAndShouldersLivenessEstimator.h:18
ObjectDetectorClassType
Object detector type enumeration.
Definition: IDetector.h:44
virtual IHeadAndShouldersLivenessEstimator * createHeadAndShouldersLivenessEstimator() noexcept=0
Creates HeadAndShouldersLiveness estimator.
Human detection area warper interface.
Definition: IHumanWarper.h:24
virtual IHumanWarper * createHumanWarper() noexcept=0
Creates human warper.
virtual IGlassesEstimator * createGlassesEstimator() noexcept=0
Creates Glasses estimator.
Archive interface.
Definition: IObject.h:37
Grayscale image estimator interface.
Definition: IBlackWhiteEstimator.h:19
virtual FaceEngineEdition getFaceEngineEdition() const noexcept=0
Get LUNA SDK ditribution edition.
virtual IFacialHairEstimator * createFacialHairEstimator() noexcept=0
Creates FacialHair estimator.
Flying Faces Liveness estimator interface.
Definition: ILivenessFlyingFacesEstimator.h:29
FacialHair estimator interface.
Definition: IFacialHairEstimator.h:109
Settings provider interface.
RecognitionMode
Recognition mode structure. Determines which recognition mode to use.
Definition: IDetector.h:30
virtual IAGSEstimator * createAGSEstimator() noexcept=0
Creates AGS estimator.
FSDK_API IFaceEngine * createFaceEngine(const char *dataPath=nullptr, const char *configPath=nullptr, const char *runtimePath=nullptr) noexcept
Create the LUNA SDK root object.
Head pose angles estimator interface.
Definition: IHeadPoseEstimator.h:48
Child estimator interface.
Definition: IChildEstimator.h:27
virtual IEmotionsEstimator * createEmotionsEstimator() noexcept=0
Creates Emotions estimator.
RGB image processing mode.
Definition: IDetector.h:31
Index builder interface.
Definition: IIndex.h:211
virtual IWarper * createWarper() noexcept=0
Creates warper.
virtual void setDataDirectory(const char *path) noexcept=0
Sets data directory.
Image quality estimator interface.
Definition: IQualityEstimator.h:77
virtual IAttributeEstimator * createAttributeEstimator() noexcept=0
Creates Attribute estimator.
SDK settings provider interface.
Definition: ISettingsProvider.h:31