4 #ifndef FACE_SDK_TRACKER_H 5 #define FACE_SDK_TRACKER_H 9 #include <face_sdk_alignment/alignment.h> 11 #include <face_sdk_base/license.h> 12 #include <face_sdk_base/video_stream.h> 13 #include <face_sdk_face_detector/face_detector.h> 15 #include <face_sdk_tracker/face_recognition.h> 16 #include <face_sdk_tracker/face_sdk_track.h> 42 const std::shared_ptr<face_sdk::video_stream> &stream,
43 const std::shared_ptr<face_sdk::track> &
track,
44 const std::shared_ptr<face_sdk::video_frame> &frame,
45 const std::shared_ptr<face_sdk::face> &
face) = 0;
53 const std::shared_ptr<face_sdk::video_stream> &stream,
54 const std::shared_ptr<face_sdk::track> &
track) = 0;
64 const std::shared_ptr<face_sdk::video_stream> &stream,
65 const std::shared_ptr<face_sdk::track> &
track,
66 const std::shared_ptr<face_sdk::video_frame> &frame,
67 const std::shared_ptr<face_sdk::face> &
face) = 0;
77 const std::shared_ptr<face_sdk::video_stream> &stream,
78 const std::shared_ptr<face_sdk::track> &
track,
79 const std::shared_ptr<face_sdk::video_frame> &frame,
80 const std::shared_ptr<face_sdk::face> &
face) = 0;
90 const std::shared_ptr<face_sdk::video_stream> &stream,
91 const std::shared_ptr<face_sdk::video_frame> &frame) = 0;
100 std::shared_ptr<itracker_events> events_handler;
101 std::shared_ptr<face_sdk::license>
license;
102 std::shared_ptr<face_sdk::face_detector> detector;
103 std::shared_ptr<face_sdk::alignment>
alignment;
105 float detector_confidence;
106 uint32_t frame_frequency;
107 float rigid_threshold;
108 uint32_t min_detected_scale;
110 uint64_t max_track_length;
113 const std::shared_ptr<itracker_events> &_events_handler,
114 const std::shared_ptr<face_sdk::license> &_license,
115 const std::shared_ptr<face_sdk::face_detector> &_detector,
116 const std::shared_ptr<face_sdk::alignment> &_alignment,
117 const std::shared_ptr<face_sdk::face_recognition> &_face_recognition,
118 float _detector_confidence,
119 uint32_t _frame_frequency,
120 float _rigid_threshold,
121 uint32_t _min_detected_scale,
123 uint64_t _max_track_length = 20
126 , events_handler(_events_handler)
128 , detector(_detector)
131 , detector_confidence(_detector_confidence)
132 , frame_frequency(_frame_frequency)
133 , rigid_threshold(_rigid_threshold)
134 , min_detected_scale(_min_detected_scale)
136 , max_track_length(_max_track_length)
167 virtual std::shared_ptr<face_sdk::video_stream>
make_stream(uint32_t stream_id) = 0;
175 virtual void free_stream(
const std::shared_ptr<face_sdk::video_stream> &stream) = 0;
185 virtual uint32_t
version()
const = 0;
200 #endif // FACE_SDK_TRACKER_H The class is a track of a person. The class contains a vector of face_sdk::track_item.
Definition: face_sdk_track.h:26
std::shared_ptr< tracker > make_tracker(const tracker_config &config)
Makes the face_sdk::tracker object with specified configuration.
virtual std::shared_ptr< face_sdk::video_stream > make_stream(uint32_t stream_id)=0
The function makes a video stream.
virtual void commit_frames() noexcept=0
The function processes all pushed frames. All events will be raised.
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.
virtual void on_frame_process_error(const face_sdk::exception &exc, const std::shared_ptr< face_sdk::video_stream > &stream, const std::shared_ptr< face_sdk::video_frame > &frame)=0
Raises when failed to process frame in stream.
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.
Tracker object tracks persons in the video stream and collects faces of the same person in one track...
Definition: face_sdk_tracker.h:155
The face object. Face object contains information about face bounding box on the image and the origin...
Definition: face.h:37
Definition: alignment_info.h:8
virtual void on_track_best_frame(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 find new best face.
virtual uint32_t version() const =0
Algorithm version. See Face Tracker versions.
virtual void free_stream(const std::shared_ptr< face_sdk::video_stream > &stream)=0
The function releases stream from tracker object.
Base FaceSDK exception class. Almost all exceptions that FaceSDK throws are inherits this class...
Definition: exception.h:56
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.
The license object. A license object provides information about your limits in face_sdk. See Licensing.
Definition: license.h:26
Alignment operation prepares images for further FIR building and age and gender classification.
Definition: alignment.h:31
Callback-interface for handling tracker events.
Definition: face_sdk_tracker.h:29
Class used by tracker class to get the score of the face.
Definition: face_recognition.h:19
Structure with parameters for the tracker object used in face_sdk::make_tracker() function...
Definition: face_sdk_tracker.h:97