Face SDK  1.7 Mozart rc
Face Recognition Software Development Kit
face_sdk_tracker.h
Go to the documentation of this file.
1 
4 #ifndef FACE_SDK_TRACKER_H
5 #define FACE_SDK_TRACKER_H
6 
8 #include <face_sdk_base/export.h>
13 #include <face_sdk_tracker/face_recognition.h>
14 
15 namespace face_sdk
16 {
27  {
28  public:
29  virtual ~itracker_events() = default;
30 
38  virtual void on_track_appeared(
39  const std::shared_ptr<face_sdk::video_stream> &stream,
40  const std::shared_ptr<face_sdk::track> &track,
41  const std::shared_ptr<face_sdk::video_frame> &frame,
42  const std::shared_ptr<face_sdk::face> &face) = 0;
43 
49  virtual void on_track_disappeared(
50  const std::shared_ptr<face_sdk::video_stream> &stream,
51  const std::shared_ptr<face_sdk::track> &track) = 0;
52 
60  virtual void on_track_updated(
61  const std::shared_ptr<face_sdk::video_stream> &stream,
62  const std::shared_ptr<face_sdk::track> &track,
63  const std::shared_ptr<face_sdk::video_frame> &frame,
64  const std::shared_ptr<face_sdk::face> &face) = 0;
65 
66  virtual void on_track_best_frame(
67  const std::shared_ptr<face_sdk::video_stream> &stream,
68  const std::shared_ptr<face_sdk::track> &track,
69  const std::shared_ptr<face_sdk::video_frame> &frame,
70  const std::shared_ptr<face_sdk::face> &face) = 0;
71  };
72 
77  {
78  uint32_t version;
79  std::shared_ptr<itracker_events> events_handler;
80  std::shared_ptr<face_sdk::license> license;
81  std::shared_ptr<face_sdk::face_detector> detector;
82  std::shared_ptr<face_sdk::alignment> alignment;
83  std::shared_ptr<face_sdk::face_recognition> face_recognition;
84  float detector_confidence;
85  uint32_t frame_frequency;
86  float rigid_threshold;
87  uint32_t min_detected_scale;
88  float alpha;
89  uint64_t max_track_length;
90 
91  tracker_config(uint32_t _version,
92  const std::shared_ptr<itracker_events> &_events_handler,
93  const std::shared_ptr<face_sdk::license> &_license,
94  const std::shared_ptr<face_sdk::face_detector> &_detector,
95  const std::shared_ptr<face_sdk::alignment> &_alignment,
96  const std::shared_ptr<face_sdk::face_recognition> &_face_recognition,
97  float _detector_confidence,
98  uint32_t _frame_frequency,
99  float _rigid_threshold,
100  uint32_t _min_detected_scale,
101  float _alpha,
102  uint64_t _max_track_length = 20
103  )
104  : version(_version)
105  , events_handler(_events_handler)
106  , license(_license)
107  , detector(_detector)
108  , alignment(_alignment)
109  , face_recognition(_face_recognition)
110  , detector_confidence(_detector_confidence)
111  , frame_frequency(_frame_frequency)
112  , rigid_threshold(_rigid_threshold)
113  , min_detected_scale(_min_detected_scale)
114  , alpha(_alpha)
115  , max_track_length(_max_track_length)
116  {}
117  };
118 
134  class tracker
135  {
136  public:
137 
138  virtual ~tracker() = default;
139 
146  virtual std::shared_ptr<face_sdk::video_stream> make_stream(uint32_t track_id) = 0;
147 
154  virtual void free_stream(const std::shared_ptr<face_sdk::video_stream> &stream) = 0;
155 
160  virtual void commit_frames() = 0;
161 
164  virtual uint32_t version() const = 0;
165  };
166 
174  std::shared_ptr<tracker> FACE_SDK_EXPORT make_tracker(const tracker_config &config);
175 
177 }
178 
179 #endif // FACE_SDK_TRACKER_H
face_sdk::face_recognition
Class used by tracker class to fast-getting the score of the face.
Definition: face_recognition.h:19
face_sdk::track
The class is a track of a person. The class contains a vector of face_sdk::track_item .
Definition: face_sdk_track.h:26
alignment.h
face_sdk::face
The face object. Face object contains information about face bounding box on the image and the origin...
Definition: face.h:28
face_sdk::itracker_events::on_track_disappeared
virtual void on_track_disappeared(const std::shared_ptr< face_sdk::video_stream > &stream, const std::shared_ptr< face_sdk::track > &track)=0
Raises when a person is lost in the stream.
face_sdk::license
The license object. A license object provide information about your limits in face_sdk....
Definition: license.h:23
face_sdk::itracker_events::on_track_appeared
virtual void on_track_appeared(const std::shared_ptr< face_sdk::video_stream > &stream, const std::shared_ptr< face_sdk::track > &track, const std::shared_ptr< face_sdk::video_frame > &frame, const std::shared_ptr< face_sdk::face > &face)=0
Raises when a person has appeared in the stream.
face_sdk::tracker::free_stream
virtual void free_stream(const std::shared_ptr< face_sdk::video_stream > &stream)=0
The function releases stream from tracker object.
face_sdk::alignment
Alignment operation prepares images for further FIR building and age and gender classification.
Definition: alignment.h:30
face_sdk::tracker::make_stream
virtual std::shared_ptr< face_sdk::video_stream > make_stream(uint32_t track_id)=0
The function makes a video stream.
face_detector.h
face_sdk::itracker_events
Callback-interface for handling tracker events.
Definition: face_sdk_tracker.h:26
face_sdk::tracker::commit_frames
virtual void commit_frames()=0
The function processes all pushed frames. All events will be raised.
license.h
face_sdk::itracker_events::on_track_updated
virtual void on_track_updated(const std::shared_ptr< face_sdk::video_stream > &stream, const std::shared_ptr< face_sdk::track > &track, const std::shared_ptr< face_sdk::video_frame > &frame, const std::shared_ptr< face_sdk::face > &face)=0
Raises when the track object has updated.
face_sdk::tracker_config
Structure with for the tracker object used in face_sdk::make_tracker function.
Definition: face_sdk_tracker.h:76
face_sdk::make_tracker
std::shared_ptr< tracker > FACE_SDK_EXPORT make_tracker(const tracker_config &config)
Makes the face_sdk::tracker object with specified configuration.
face_sdk::tracker::version
virtual uint32_t version() const =0
Algorithm version. See Face Tracker versions.
face_sdk_track.h
face_sdk::tracker
Tracker object tracks persons in the video stream and collects faces of the same person in one track.
Definition: face_sdk_tracker.h:134
video_stream.h
export.h