Face Engine SDK  4.6.0
A face detection, recognition and tracking engine.
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 
66  virtual IDetector* createDetector(
68  RecognitionMode mode = RecognitionMode::RM_RGB) noexcept = 0;
69 
74  virtual IHumanDetector* createHumanDetector() noexcept = 0;
75 
80  virtual IHeadPoseEstimator* createHeadPoseEstimator() noexcept = 0;
81 
86  virtual IOverlapEstimator* createOverlapEstimator() noexcept = 0;
87 
92  virtual IChildEstimator* createChildEstimator() noexcept = 0;
93 
98  virtual IAGSEstimator* createAGSEstimator() noexcept = 0;
99 
105 
110  virtual IAttributeEstimator* createAttributeEstimator() noexcept = 0;
111 
116  virtual IQualityEstimator* createQualityEstimator() noexcept = 0;
117 
122  virtual IBlackWhiteEstimator* createBlackWhiteEstimator() noexcept = 0;
123 
128  virtual ILivenessDepthEstimator* createDepthEstimator() noexcept = 0;
129 
134  virtual ILivenessIREstimator* createIREstimator() noexcept = 0;
135 
140  virtual ISmileEstimator* createSmileEstimator() noexcept = 0;
141 
146  virtual IMouthEstimator* createMouthEstimator() noexcept = 0;
147 
152  virtual IMedicalMaskEstimator* createMedicalMaskEstimator() noexcept = 0;
153 
159 
165  virtual ILivenessFlowEstimator* createFaceFlowEstimator() noexcept = 0;
166 
172  virtual ILivenessRGBMEstimator* createLivenessRGBMEstimator() noexcept = 0;
173 
179  virtual ILivenessFPREstimator* createLivenessFPREstimator() noexcept = 0;
180 
186 
191  virtual IEmotionsEstimator* createEmotionsEstimator() noexcept = 0;
192 
198 
203  virtual IGlassesEstimator* createGlassesEstimator() noexcept = 0;
204 
210 
216 
221  virtual IFacialHairEstimator* createFacialHairEstimator() noexcept = 0;
222 
230  virtual IDescriptor* createDescriptor(uint32_t version = 0) noexcept = 0;
231 
238  virtual IDescriptor* createDescriptor(fsdk::IArchive* archive, uint32_t flags = 0) noexcept = 0;
239 
249  virtual IDescriptorBatch* createDescriptorBatch(int32_t size, uint32_t version = 0) noexcept = 0;
250 
258  virtual IDescriptorExtractor* createExtractor(uint32_t version = 0) noexcept = 0;
259 
267  virtual IDescriptorMatcher* createMatcher(uint32_t version = 0) noexcept = 0;
268 
278  const size_t capacity = 0,
279  uint32_t version = 0) noexcept = 0;
280 
289  const char* indexPath) noexcept = 0;
290 
299  const char* indexPath) noexcept = 0;
300 
305  virtual IWarper* createWarper() noexcept = 0;
306 
311  virtual IHumanWarper* createHumanWarper() noexcept = 0;
312 
318  virtual IAsyncContext* createAsyncContext(const int8_t threadCount) noexcept = 0;
319 
327  virtual FaceEngineEdition getFaceEngineEdition() const noexcept = 0;
328 
333  virtual void setDataDirectory(const char* path) noexcept = 0;
334 
340  virtual const char* getDataDirectory() const noexcept = 0;
341 
346  virtual void setSettingsProvider(ISettingsProvider* provider) noexcept = 0;
347 
352  virtual void setRuntimeSettingsProvider(ISettingsProvider* provider) noexcept = 0;
353 
358  virtual ISettingsProvider* getSettingsProvider() const noexcept = 0;
359 
364  virtual ISettingsProvider* getRuntimeSettingsProvider() const noexcept = 0;
365 
370  virtual ILicense* getLicense() const noexcept = 0;
371  };
372 
379  FSDK_API bool activateLicense(ILicense* license, const char* configPath) noexcept;
380 
387  FSDK_API bool activateLicense(ILicense* license, fsdk::ISettingsProvider* settings) noexcept;
388 
397  const char* dataPath = nullptr,
398  const char* configPath = nullptr,
399  const char* runtimePath = nullptr) noexcept;
400 
406  FSDK_API ISettingsProvider* createSettingsProvider(const char* path) noexcept;
407 
410 }
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.
SDK namespace.
Definition: IAGSEstimator.h:8
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.
Face image attribute estimator interface.
Definition: IAttributeEstimator.h:56
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.
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:33
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.
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:70
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:48
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