BestShotMobile
Bestshot making and liveness checking library
 All Classes Functions Variables
IBestShotMobile.h
1 #pragma once
2 
3 #include <bsmobile/BestShotMobileDefs.h>
4 
5 #include <fsdk/FaceEngine.h>
6 #include <tsdk/ITrackEngine.h>
7 
8 namespace mobile {
9 
13  enum class LivenessType {
15  None = 0,
16  Online = 1,
17  Offline = 2,
18  Offline_OSL = 3
19  };
20 
23  enum class LivenessState {
24  Alive,
25  Fake,
26  None,
27  NotReady,
28  BadHeadPose,
29  BadQuality,
30  FaceNotFound,
31  FaceTooClose,
32  FaceCloseToBorder,
33  FaceTooSmall,
34  TooManyFaces,
35  Timeout,
36  CriticalError
37  };
38 
41  enum class BestShotState {
42  Ok,
43  BadQuality,
44  BadHeadPose,
45  Error
46  };
47 
48  struct BestShotInfo {
50  BestShotState state{};
51 
53  fsdk::Image image;
55  fsdk::Detection detection;
57  fsdk::Landmarks5 landmarks;
58 
61  fsdk::HeadPoseEstimation headPoseEstimation{};
64  float agsEstimation{};
65 
67  tsdk::FrameId frameIndex{};
69  tsdk::TrackId trackId{};
70  };
71 
79  BESTSHOT_MOBILE_API virtual void bestShot(const BestShotInfo& bestShotInfo) = 0;
80 
87  BESTSHOT_MOBILE_API virtual void
88  liveness(LivenessState livenessState, const BestShotInfo& bestShotInfo) = 0;
89 
94  BESTSHOT_MOBILE_API virtual void trackEnd(const tsdk::TrackId& trackId) = 0;
95  };
96 
101 
102  virtual ~IBestShotMobile() = default;
103 
118  BESTSHOT_MOBILE_API virtual bool pushFrame(const fsdk::Image& frame, uint32_t frameId) = 0;
119 
123  BESTSHOT_MOBILE_API virtual void setBestShotMobileObserver(IBestShotMobileObserver* observer) = 0;
124 
131  BESTSHOT_MOBILE_API virtual void join() = 0;
132 
137  BESTSHOT_MOBILE_API virtual LivenessType getLivenessType() = 0;
138  };
139 
146  IBestShotMobile* createBestShotMobile(
147  fsdk::FaceEngineType* faceEngine,
148  tsdk::ITrackEngine* trackEngine,
149  fsdk::ISettingsProvider* settings);
150 
157  IBestShotMobile* createBestShotMobile(
158  fsdk::FaceEngineType* faceEngine,
159  tsdk::ITrackEngine* trackEngine,
160  const char* configPath);
161 
162 } // namespace mobile
fsdk::Landmarks5 landmarks
Face landmarks.
Definition: IBestShotMobile.h:57
virtual BESTSHOT_MOBILE_API void setBestShotMobileObserver(IBestShotMobileObserver *observer)=0
Sets a bestshot observer.
fsdk::Detection detection
Detection with face.
Definition: IBestShotMobile.h:55
virtual BESTSHOT_MOBILE_API void bestShot(const BestShotInfo &bestShotInfo)=0
Bestshot notification.
tsdk::TrackId trackId
Index of the track.
Definition: IBestShotMobile.h:69
virtual BESTSHOT_MOBILE_API LivenessType getLivenessType()=0
Returns current liveness type.
virtual BESTSHOT_MOBILE_API void trackEnd(const tsdk::TrackId &trackId)=0
End of a track notification.
tsdk::FrameId frameIndex
Index of the frame.
Definition: IBestShotMobile.h:67
fsdk::HeadPoseEstimation headPoseEstimation
Definition: IBestShotMobile.h:61
BestShotState state
State of this frame.
Definition: IBestShotMobile.h:50
virtual BESTSHOT_MOBILE_API void liveness(LivenessState livenessState, const BestShotInfo &bestShotInfo)=0
Liveness check notification.
virtual BESTSHOT_MOBILE_API bool pushFrame(const fsdk::Image &frame, uint32_t frameId)=0
Pushes a single frame to the buffer.
IBestShotMobile interface class.
Definition: IBestShotMobile.h:100
Definition: IBestShotMobile.h:72
float agsEstimation
Definition: IBestShotMobile.h:64
Definition: IBestShotMobile.h:48
virtual BESTSHOT_MOBILE_API void join()=0
Blocks current thread until all frames in this Stream will be handled and all callbacks will be execu...
fsdk::Image image
Source image.
Definition: IBestShotMobile.h:53