Face Engine SDK  5.10.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 
29 #include "Log.h"
30 #include "Version.h"
31 #include "IObject.h"
32 #include "ISettingsProvider.h"
33 #include "IEstimator.h"
34 #include "IDetector.h"
35 #include "IFaceLandmarksDetector.h"
36 #include "IDescriptor.h"
37 #include "IWarper.h"
38 #include "IHumanDetector.h"
39 #include "IHumanFaceDetector.h"
40 #include "IHumanWarper.h"
41 #include "IIndex.h"
42 #include "IAsyncContext.h"
43 #include "ILicense.h"
44 #include "LaunchOptions.h"
45 #include "Exception.h"
46 #include "Types/FaceEngineEdition.h"
47 
49 namespace fsdk {
50 
51 #ifndef DOXYGEN_SHOULD_SKIP_THIS
52  DECLARE_SMARTPTR(IFaceEngine);
53 #endif
54 
65 
77  const LaunchOptions* launchOptions = nullptr) noexcept = 0;
78 
88  const LaunchOptions* launchOptions = nullptr) noexcept = 0;
89 
90 
92  createOrientationEstimator(
93  const LaunchOptions* launchOptions = nullptr
94  ) noexcept = 0;
95 
102  virtual ResultValue<FSDKError, IHumanDetectorPtr> createHumanDetector(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
103 
110  virtual ResultValue<FSDKError, IHumanFaceDetectorPtr> createHumanFaceDetector(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
111 
118  virtual ResultValue<FSDKError, IHeadPoseEstimatorPtr> createHeadPoseEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
119 
126  virtual ResultValue<FSDKError, IOverlapEstimatorPtr> createOverlapEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
127 
134  virtual ResultValue<FSDKError, IChildEstimatorPtr> createChildEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
135 
142  virtual ResultValue<FSDKError, IAGSEstimatorPtr> createAGSEstimator(const LaunchOptions* options = nullptr) noexcept = 0;
143 
151 
158  virtual ResultValue<FSDKError, IAttributeEstimatorPtr> createAttributeEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
159 
166  virtual ResultValue<FSDKError, IHumanAttributeEstimatorPtr> createHumanAttributeEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
167 
174  virtual ResultValue<FSDKError, IQualityEstimatorPtr> createQualityEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
175 
182  virtual ResultValue<FSDKError, IBlackWhiteEstimatorPtr> createBlackWhiteEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
183 
190  virtual ResultValue<FSDKError, ILivenessDepthEstimatorPtr> createDepthEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
191 
198  virtual ResultValue<FSDKError, ILivenessIREstimatorPtr> createIREstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
199 
207 
214  virtual ResultValue<FSDKError, IMouthEstimatorPtr> createMouthEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
215 
222  virtual ResultValue<FSDKError, IMedicalMaskEstimatorPtr> createMedicalMaskEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
223 
231 
238  virtual ResultValue<FSDKError, ILivenessFPREstimatorPtr> createLivenessFPREstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
239 
247  virtual ResultValue<FSDKError, ILivenessFlowEstimatorPtr> createFaceFlowEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
248 
256  virtual ResultValue<FSDKError, ILivenessRGBMEstimatorPtr> createLivenessRGBMEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
257 
265  virtual ResultValue<FSDKError, IEyeEstimatorPtr> createEyeEstimator(SensorType mode = SensorType::Visible, const LaunchOptions* launchOptions = nullptr) noexcept = 0;
266 
273  virtual ResultValue<FSDKError, IEmotionsEstimatorPtr> createEmotionsEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
274 
282  virtual ResultValue<FSDKError, IGazeEstimatorPtr> createGazeEstimator(SensorType mode = SensorType::Visible, const LaunchOptions* launchOptions = nullptr) noexcept = 0;
283 
290  virtual ResultValue<FSDKError, IGlassesEstimatorPtr> createGlassesEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
291 
299 
307 
314  virtual ResultValue<FSDKError, IHeadWearEstimatorPtr> createHeadWearEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
315 
322  virtual ResultValue<FSDKError, IFacialHairEstimatorPtr> createFacialHairEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
323 
330  virtual ResultValue<FSDKError, IFishEyeEstimatorPtr> createFishEyeEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
331 
338  virtual ResultValue<FSDKError, INaturalLightEstimatorPtr> createNaturalLightEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
339 
347 
354  virtual ResultValue<FSDKError, IPortraitStyleEstimatorPtr> createPortraitStyleEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
355 
362  virtual ResultValue<FSDKError, IBackgroundEstimatorPtr> createBackgroundEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
363 
370  virtual ResultValue<FSDKError, IRedEyeEstimatorPtr> createRedEyeEstimator(const LaunchOptions* launchOptions = nullptr) noexcept = 0;
371 
379 
388  virtual ResultValue<FSDKError, IDescriptorPtr> createDescriptor(uint32_t version = 0) noexcept = 0;
389 
397  virtual ResultValue<FSDKError, IDescriptorPtr> createDescriptor(IArchive* archive, uint32_t flags = 0) noexcept = 0;
398 
408  virtual ResultValue<FSDKError, IDescriptorBatchPtr> createDescriptorBatch(int32_t size, uint32_t version = 0) noexcept = 0;
409 
419  virtual ResultValue<FSDKError, IDescriptorExtractorPtr> createExtractor(uint32_t version = 0, const LaunchOptions* launchOptions = nullptr) noexcept = 0;
420 
430  virtual ResultValue<FSDKError, IDescriptorMatcherPtr> createMatcher(uint32_t version = 0) noexcept = 0;
431 
440  const size_t capacity = 0,
441  uint32_t version = 0) noexcept = 0;
442 
451  const char* indexPath) noexcept = 0;
452 
461  const char* indexPath) noexcept = 0;
462 
468  virtual ResultValue<FSDKError, IWarperPtr> createWarper() noexcept = 0;
469 
476 
483  virtual ResultValue<FSDKError, IAsyncContextPtr> createAsyncContext(const int8_t threadCount) noexcept = 0;
484 
492  virtual FaceEngineEdition getFaceEngineEdition() const noexcept = 0;
493 
498  virtual void setDataDirectory(const char* path) noexcept = 0;
499 
505  virtual const char* getDataDirectory() const noexcept = 0;
506 
511  virtual void setSettingsProvider(ISettingsProvider* provider) noexcept = 0;
512 
517  virtual void setRuntimeSettingsProvider(ISettingsProvider* provider) noexcept = 0;
518 
523  virtual ISettingsProvider* getSettingsProvider() const noexcept = 0;
524 
529  virtual ISettingsProvider* getRuntimeSettingsProvider() const noexcept = 0;
530 
535  virtual ILicense* getLicense() const noexcept = 0;
536  };
537 
544  FSDK_API Result<FSDKError> activateLicense(ILicense* license, const char* configPath) noexcept;
545 
553 
566  const char* dataPath = nullptr,
567  const char* configPath = nullptr,
568  const char* runtimePath = nullptr) noexcept;
569 
575  FSDK_API ResultValue<FSDKError, ISettingsProviderPtr> createSettingsProvider(const char* path) noexcept;
576 
583  FSDK_API ResultValue<FSDKError, ISettingsProviderPtr> createSettingsProviderFromString(
584  const char* content) noexcept;
585 
586 
589 }
virtual ResultValue< FSDKError, IHeadWearEstimatorPtr > createHeadWearEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates HeadWear estimator.
virtual ResultValue< FSDKError, IWarperPtr > createWarper() noexcept=0
Creates warper.
virtual ResultValue< FSDKError, IHumanDetectorPtr > createHumanDetector(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates a human detector.
virtual ResultValue< FSDKError, IPortraitStyleEstimatorPtr > createPortraitStyleEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates PortraitStyle estimator.
virtual ResultValue< FSDKError, IHeadAndShouldersLivenessEstimatorPtr > createHeadAndShouldersLivenessEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates HeadAndShouldersLiveness estimator.
virtual ResultValue< FSDKError, IAGSEstimatorPtr > createAGSEstimator(const LaunchOptions *options=nullptr) noexcept=0
Creates AGS estimator.
virtual ResultValue< FSDKError, IFacialHairEstimatorPtr > createFacialHairEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates FacialHair estimator.
virtual ResultValue< FSDKError, ILivenessDepthEstimatorPtr > createDepthEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Liveness Depth estimator.
#define FSDK_API
Dummy.
Definition: Def.h:27
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
LaunchOptions struct configures inference options on per-estimator/detector basis, giving user fine grained control over cpu/gpu utilisation.
Definition: LaunchOptions.h:35
virtual ResultValue< FSDKError, IFishEyeEstimatorPtr > createFishEyeEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates FishEye estimator.
Default detector cpecified in config file.
Definition: IDetector.h:45
Image and landmarks warping.
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
virtual ResultValue< FSDKError, IHeadPoseEstimatorPtr > createHeadPoseEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Head pose estimator.
virtual ResultValue< FSDKError, IDescriptorBatchPtr > createDescriptorBatch(int32_t size, uint32_t version=0) noexcept=0
Creates Batch of descriptors.
virtual ResultValue< FSDKError, ILivenessFlyingFacesEstimatorPtr > createLivenessFlyingFacesEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates LivenessFlyingFaces estimator.
virtual ResultValue< FSDKError, IFaceLandmarksDetectorPtr > createFaceLandmarksDetector(SensorType mode=SensorType::Visible, const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates a face landmark detector.
virtual ResultValue< FSDKError, ICredibilityCheckEstimatorPtr > createCredibilityCheckEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates CredibilityCheck estimator.
virtual ResultValue< FSDKError, IRedEyeEstimatorPtr > createRedEyeEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Red Eye estimator.
virtual ResultValue< FSDKError, IMouthEstimatorPtr > createMouthEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Mouth estimator.
virtual ResultValue< FSDKError, ILivenessOneShotRGBEstimatorPtr > createLivenessOneShotRGBEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Liveness OneShot estimator.
virtual ISettingsProvider * getSettingsProvider() const noexcept=0
Gets settings provider.
Image warping base on Human detection.
virtual ResultValue< FSDKError, IEyeBrowEstimatorPtr > createEyeBrowEstimator(const LaunchOptions *LaunchOptions=nullptr) noexcept=0
Creates EyeBrow estimator .
virtual ResultValue< FSDKError, IPPEEstimatorPtr > createPPEEstimator(const LaunchOptions *LaunchOptions=nullptr) noexcept=0
Creates Personal Protection Equipment (PPE) estimator.
virtual ResultValue< FSDKError, IHumanWarperPtr > createHumanWarper() noexcept=0
Creates human warper.
FSDK_API Result< FSDKError > activateLicense(ILicense *license, const char *configPath) noexcept
Makes License activation with some platform specific manner. Network connection is required...
Object system types and interfaces.
virtual ResultValue< FSDKError, IDescriptorMatcherPtr > createMatcher(uint32_t version=0) noexcept=0
Creates descriptor matcher.
License objects interface.
Definition: ILicense.h:38
virtual ResultValue< FSDKError, IGlassesEstimatorPtr > createGlassesEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Glasses estimator.
FSDK_API ResultValue< FSDKError, ISettingsProviderPtr > createSettingsProviderFromString(const char *content) noexcept
Creates a settings provider from the xml-formatted string.
virtual ResultValue< FSDKError, IBestShotQualityEstimatorPtr > createBestShotQualityEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates BestShotQuality estimator.
virtual ILicense * getLicense() const noexcept=0
Get current License object, which was set for FaceEngine object.
virtual void setSettingsProvider(ISettingsProvider *provider) noexcept=0
Sets settings provider.
Root LUNA SDK object interface.
Definition: IFaceEngine.h:64
Base strong reference counted object interface.
Definition: IRefCounted.h:36
virtual ResultValue< FSDKError, IHumanFaceDetectorPtr > createHumanFaceDetector(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates a HumanFace detector, which detects humans, faces and associations between them...
virtual ResultValue< FSDKError, IIndexBuilderPtr > createIndexBuilder(const size_t capacity=0, uint32_t version=0) noexcept=0
Creates index builder.
SDK version information routines.
Log interfaces.
Image analysis and attribute estimation interfaces.
FSDK_API ResultValue< FSDKError, IFaceEnginePtr > createFaceEngine(const char *dataPath=nullptr, const char *configPath=nullptr, const char *runtimePath=nullptr) noexcept
Create the LUNA SDK root object.
SensorType
Sensor type structure. Determines which type of camera sensor is used to perform face recognition...
Definition: IDetector.h:30
virtual ResultValue< FSDKError, IDescriptorExtractorPtr > createExtractor(uint32_t version=0, const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates descriptor extractor.
Descriptor extractor and matcher interfaces.
virtual ResultValue< FSDKError, ILivenessRGBMEstimatorPtr > createLivenessRGBMEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Liveness RGBM estimator.
virtual ResultValue< FSDKError, IGazeEstimatorPtr > createGazeEstimator(SensorType mode=SensorType::Visible, const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Gaze estimator.
virtual ResultValue< FSDKError, IDescriptorPtr > createDescriptor(uint32_t version=0) noexcept=0
Creates Descriptor.
virtual ISettingsProvider * getRuntimeSettingsProvider() const noexcept=0
Gets runtime settings provider.
virtual ResultValue< FSDKError, IOverlapEstimatorPtr > createOverlapEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Overlap estimator.
virtual ResultValue< FSDKError, IDenseIndexPtr > loadDenseIndex(const char *indexPath) noexcept=0
Loads dense index.
virtual ResultValue< FSDKError, ILivenessFPREstimatorPtr > createLivenessFPREstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates LivenessFPR estimator.
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
Face detector interfaces.
Visible sensor type.
virtual ResultValue< FSDKError, IDetectorPtr > createDetector(ObjectDetectorClassType type=FACE_DET_DEFAULT, SensorType mode=SensorType::Visible, const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates a detector of a given type.
virtual ResultValue< FSDKError, IEmotionsEstimatorPtr > createEmotionsEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Emotions estimator.
virtual ResultValue< FSDKError, ILivenessFlowEstimatorPtr > createFaceFlowEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Liveness flow estimator.
Async context interface.
virtual ResultValue< FSDKError, IDynamicIndexPtr > loadDynamicIndex(const char *indexPath) noexcept=0
Loads dynamic index.
virtual ResultValue< FSDKError, INaturalLightEstimatorPtr > createNaturalLightEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates NaturalLight estimator.
virtual void setRuntimeSettingsProvider(ISettingsProvider *provider) noexcept=0
Sets runtime settings provider.
virtual ResultValue< FSDKError, IQualityEstimatorPtr > createQualityEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Quality estimator.
virtual ResultValue< FSDKError, IMedicalMaskEstimatorPtr > createMedicalMaskEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates MedicalMask estimator.
virtual const char * getDataDirectory() const noexcept=0
Gets data directory.
virtual ResultValue< FSDKError, IEyeEstimatorPtr > createEyeEstimator(SensorType mode=SensorType::Visible, const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Eye estimator.
virtual ResultValue< FSDKError, IAsyncContextPtr > createAsyncContext(const int8_t threadCount) noexcept=0
Creates async context.
ObjectDetectorClassType
Object detector type enumeration.
Definition: IDetector.h:44
Archive interface.
Definition: IObject.h:37
virtual FaceEngineEdition getFaceEngineEdition() const noexcept=0
Get LUNA SDK ditribution edition.
FSDKError
Common SDK error codes.
Definition: FSDKError.h:17
virtual ResultValue< FSDKError, IBackgroundEstimatorPtr > createBackgroundEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Background estimator.
virtual ResultValue< FSDKError, ILivenessIREstimatorPtr > createIREstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Liveness Infrared estimator.
Settings provider interface.
FSDK_API ResultValue< FSDKError, ISettingsProviderPtr > createSettingsProvider(const char *path) noexcept
Creates a settings provider.
virtual ResultValue< FSDKError, IBlackWhiteEstimatorPtr > createBlackWhiteEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates BlackWhite estimator.
virtual void setDataDirectory(const char *path) noexcept=0
Sets data directory.
virtual ResultValue< FSDKError, IChildEstimatorPtr > createChildEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Child estimator.
virtual ResultValue< FSDKError, IAttributeEstimatorPtr > createAttributeEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates Attribute estimator.
virtual ResultValue< FSDKError, IHumanAttributeEstimatorPtr > createHumanAttributeEstimator(const LaunchOptions *launchOptions=nullptr) noexcept=0
Creates HumanAttribute estimator.
SDK settings provider interface.
Definition: ISettingsProvider.h:32