3DiVi Face SDK  3.20.0
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Свойства Группы
Класс pbio::VideoWorker

VideoWorker - интерфейсный объект для трекинга, обработки и распознавания лиц на нескольких видеопотоках. Рекомендуется использовать VideoWorker вместо Capturer для детекции лиц на видеопотоках. Если при создании VideoWorker указаны параметры matching_thread=0 и processing_thread=0, то потребляется обычная лицензия Capturer. Подробнее...

#include <VideoWorker.h>

Классы

struct  DatabaseElement
 Элемент базы. Если имеется несколько шаблонов для одного человека, нужно создать по одному элементу для каждого шаблона с одинаковыми person_id, но разными element_id. Подробнее...
 
struct  MatchFoundCallbackData
 Данные MatchFound коллбэка. Подробнее...
 
struct  Params
 Параметры конструктора VideoWorker. Подробнее...
 
struct  SearchResult
 Результат поиска шаблона (для VideoWorker::MatchFoundCallbackFuncU). Подробнее...
 
struct  StiPersonOutdatedCallbackData
 Данные StiPersonOutdated коллбэка. Подробнее...
 
struct  TemplateCreatedCallbackData
 Данные TemplateCreated коллбэка. Подробнее...
 
struct  TrackingCallbackData
 Данные Tracking коллбэка. Подробнее...
 
struct  TrackingLostCallbackData
 Данные TrackingLost коллбэка. Подробнее...
 

Открытые типы

typedef LightSmartPtr
< VideoWorker >::tPtr 
Ptr
 Псевдоним для типа умного указателя на VideoWorker.
 
typedef void(* TrackingCallbackFunc )(const int stream_id, const int frame_id, const std::vector< RawSample::Ptr > &samples, const std::vector< bool > &samples_weak, const std::vector< float > &samples_quality, void *const userdata)
 Тип функции коллбэка трекинга (Tracking). Подробнее...
 
typedef void(* TrackingCallbackU )(const TrackingCallbackData &data, void *const userdata)
 Тип функции коллбэка трекинга (Tracking). Этот коллбэк вызывается каждый раз, когда кадр был обработан трекером. Tracking коллбэк будет вызван с frame_id = X не раньше, чем VideoWorker::addVideoFrame вернет значение X + N - 1, где N - значение, которое вернул VideoWorker::getTrackingConveyorSize. Подробнее...
 
typedef void(* TrackingCallbackFuncU )(const TrackingCallbackData &data, void *const userdata)
 Тип функции коллбэка трекинга (Tracking). Подробнее...
 
typedef void(* TemplateCreatedCallbackFunc )(const int stream_id, const int frame_id, const RawSample::Ptr &sample, const float quality, const Template::Ptr &templ, void *const userdata)
 Тип функции коллбэка создания шаблона (TemplateCreated). Подробнее...
 
typedef void(* TemplateCreatedCallbackU )(const TemplateCreatedCallbackData &data, void *const userdata)
 Тип функции коллбэка создания шаблона (TemplateCreated). Подробнее...
 
typedef void(* TemplateCreatedCallbackFuncU )(const TemplateCreatedCallbackData &data, void *const userdata)
 Тип функции коллбэка создания шаблона (TemplateCreated). Подробнее...
 
typedef void(* MatchFoundCallbackFunc )(const int stream_id, const int frame_id, const uint64_t person_id, const uint64_t element_id, const RawSample::Ptr &sample, const float quality, const Template::Ptr &templ, const Recognizer::MatchResult match_result, void *const userdata)
 Тип функции коллбэка распознавания (MatchFound). Подробнее...
 
typedef void(* MatchFoundCallbackFuncExt )(const int stream_id, const int frame_id, const RawSample::Ptr &sample, const float quality, const Template::Ptr &templ, const std::vector< SearchResult > &search_result, void *const userdata)
 Тип функции коллбэка распознавания (MatchFound). Подробнее...
 
typedef void(* MatchFoundCallbackU )(const MatchFoundCallbackData &data, void *const userdata)
 Тип функции коллбэка распознавания (MatchFound). Подробнее...
 
typedef void(* MatchFoundCallbackFuncU )(const MatchFoundCallbackData &data, void *const userdata)
 Тип функции коллбэка распознавания (MatchFound). Подробнее...
 
typedef void(* TrackingLostCallbackFunc )(const int stream_id, const int first_frame_id, const int last_frame_id, const float best_quality, const int best_quality_frame_id, const RawSample::Ptr &best_quality_sample, const Template::Ptr &best_quality_templ, void *const userdata)
 Тип функции коллбэка потери трекинга лица (TrackingLost) (например, когда человек вышел из кадра). Подробнее...
 
typedef void(* TrackingLostCallbackU )(const TrackingLostCallbackData &data, void *const userdata)
 Тип функции коллбэка потери трекинга лица (TrackingLost) (например, когда человек вышел из кадра). Подробнее...
 
typedef void(* TrackingLostCallbackFuncU )(const TrackingLostCallbackData &data, void *const userdata)
 Тип функции коллбэка потери трекинга лица (TrackingLost) (например, когда человек вышел из кадра). Подробнее...
 
typedef void(* StiPersonOutdatedCallbackU )(const StiPersonOutdatedCallbackData &data, void *const userdata)
 Тип функции коллбэка StiPersonOutdated. Подробнее...
 

Открытые члены

std::string getMethodName () const
 Получить имя метода используемого распознавателя. Потокобезопасный. Подробнее...
 
int getStreamsCount () const
 Получить количество видеопотоков. Потокобезопасный. Подробнее...
 
int getTrackingConveyorSize (const int stream_id) const
 Получить размер N конвейера трекинга. Tracking коллбэк будет вызван с frame_id = X не раньше, чем VideoWorker::addVideoFrame вернет значение X + N - 1, где N - значение, которое вернул VideoWorker::getTrackingConveyorSize. Потокобезопасный. Подробнее...
 
void setDatabase (const std::vector< DatabaseElement > &elements, const Recognizer::SearchAccelerationType acceleration=Recognizer::SEARCH_ACCELERATION_1)
 Задать / заменить базу (можно вызывать в любое время). Доступно только при ненулевом количестве потоков сравнения (matching_threads_count). Потокобезопасный. Подробнее...
 
int addVideoFrame (const RawImage frame, const int stream_id, const uint64_t timestamp_microsec=uint64_t(-1))
 Подать новый кадр определенного видеопотока. Результаты трекинга и распознавания будут возвращаться асинхронно в коллбэках Tracking, MatchFound и TrackingLost. Потокобезопасный. Подробнее...
 
void addDepthFrame (const DepthMapRaw &depth_frame, const int stream_id, const uint64_t timestamp_microsec)
 Подать кадр определенного видеопотока c данными глубины. Потокобезопасный. Подробнее...
 
void addIRFrame (const IRFrameRaw &ir_frame, const int stream_id, const uint64_t timestamp_microsec)
 Подать кадр определенного видеопотока c инфракрасными данными. Потокобезопасный. Подробнее...
 
void resetTrackerOnStream (const int stream_id)
 Сбросить состояние трекера для указанного видеопотока. Потокобезопасный. Подробнее...
 
int resetStream (const int stream_id)
 Сбросить состояние работы для указанного видеопотока. В процессе происходит ожидание выполняющихся в данный момент коллбэков, поэтому не синхронизируйте вызов resetStream с кодом внутри коллбэков, иначе возможен deadlock. После возврата управления от resetStream не будет вызвано ни одного коллбэка, относящегося к предыдущим кадрам или трекам. Необходимо освободить память, выделенную для треков, track_id которых меньше возвращенного значения, так как для треков, удаленных в процессе этого сброса, TrackingLost коллбэк вызван не будет. Потокобезопасный. Подробнее...
 
void checkExceptions ()
 Исключения, выброшенные в коллбэках и внутренних потоках, будут выброшены повторно при вызове данного метода. Потокобезопасный.
 
int addTrackingCallback (const TrackingCallbackFunc callback, void *const userdata)
 Добавить обработчик события трекинга (Tracking). Потокобезопасный. Подробнее...
 
int addTrackingCallbackU (const TrackingCallbackU callback, void *const userdata)
 Добавить обработчик события трекинга (Tracking). Потокобезопасный. Подробнее...
 
int addTemplateCreatedCallback (const TemplateCreatedCallbackFunc callback, void *const userdata)
 Добавить обработчик события создания шаблона (TemplateCreated). Потокобезопасный. Подробнее...
 
int addTemplateCreatedCallbackU (const TemplateCreatedCallbackU callback, void *const userdata)
 Добавить обработчик события создания шаблона (TemplateCreated). Потокобезопасный. Подробнее...
 
int addMatchFoundCallback (const MatchFoundCallbackFunc callback, void *const userdata)
 Добавить обработчик события распознавания (MatchFound). Потокобезопасный. Подробнее...
 
int addMatchFoundCallbackExt (const MatchFoundCallbackFuncExt callback, void *const userdata)
 Добавить обработчик события распознавания (MatchFound). Потокобезопасный. Подробнее...
 
int addMatchFoundCallbackU (const MatchFoundCallbackU callback, void *const userdata)
 Добавить обработчик события распознавания (MatchFound). Потокобезопасный. Подробнее...
 
int addStiPersonOutdatedCallbackU (const StiPersonOutdatedCallbackU callback, void *const userdata)
 Добавить обработчик события StiPersonOutdated. Потокобезопасный. Подробнее...
 
int addTrackingLostCallback (const TrackingLostCallbackFunc callback, void *const userdata)
 Добавить обработчик события потери трекинга лица (TrackingLost). Потокобезопасный. Подробнее...
 
int addTrackingLostCallbackU (const TrackingLostCallbackU callback, void *const userdata)
 Добавить обработчик события потери трекинга лица (TrackingLost). Потокобезопасный. Подробнее...
 
void removeTrackingCallback (const int callback_id)
 Удалить обработчик события трекинга (Tracking). Потокобезопасный. Подробнее...
 
void removeTemplateCreatedCallback (const int callback_id)
 Удалить обработчик события создания шаблона (TemplateCreated). Потокобезопасный. Подробнее...
 
void removeMatchFoundCallback (const int callback_id)
 Удалить обработчик события распознавания (MatchFound). Потокобезопасный. Подробнее...
 
void removeStiPersonOutdatedCallback (const int callback_id)
 Удалить обработчик события StiPersonOutdated. Потокобезопасный. Подробнее...
 
void removeTrackingLostCallback (const int callback_id)
 Удалить обработчик события потери трекинга лица (TrackingLost). Потокобезопасный. Подробнее...
 
void disableProcessingOnStream (const int stream_id)
 Отключить генерацию шаблонов для данного потока. Соответственно, сравнения также остановятся. Потокобезопасный. Подробнее...
 
void enableProcessingOnStream (const int stream_id)
 Включить генерацию шаблонов для данного потока. Соответственно, сравнения также возобновятся. Потокобезопасный. Подробнее...
 
void disableAgeGenderEstimationOnStream (const int stream_id)
 Отключить определение пола и возраста для данного потока. Потокобезопасный. Подробнее...
 
void enableAgeGenderEstimationOnStream (const int stream_id)
 Включить определение пола и возраста для данного потока. Потокобезопасный. Подробнее...
 
void disableEmotionsEstimationOnStream (const int stream_id)
 Отключить определение эмоций для данного потока. Потокобезопасный. Подробнее...
 
void enableEmotionsEstimationOnStream (const int stream_id)
 Включить определение эмоций для данного потока. Потокобезопасный. Подробнее...
 
template<typename T >
int addTrackingCallbackU (T *functor)
 
template<typename T >
int addTemplateCreatedCallbackU (T *functor)
 
template<typename T >
int addMatchFoundCallbackU (T *functor)
 
template<typename T >
int addStiPersonOutdatedCallbackU (T *functor)
 
template<typename T >
int addTrackingLostCallbackU (T *functor)
 

Статические открытые данные

static const uint64_t MATCH_NOT_FOUND_ID = (uint64_t) (-1)
 Специальное значение для параметров person_id и element_id в MatchFoundCallback.
 

Подробное описание

VideoWorker - интерфейсный объект для трекинга, обработки и распознавания лиц на нескольких видеопотоках. Рекомендуется использовать VideoWorker вместо Capturer для детекции лиц на видеопотоках. Если при создании VideoWorker указаны параметры matching_thread=0 и processing_thread=0, то потребляется обычная лицензия Capturer.

Определения типов

typedef void(* pbio::VideoWorker::MatchFoundCallbackFunc)(const int stream_id, const int frame_id, const uint64_t person_id, const uint64_t element_id, const RawSample::Ptr &sample, const float quality, const Template::Ptr &templ, const Recognizer::MatchResult match_result, void *const userdata)

Тип функции коллбэка распознавания (MatchFound).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::MatchFoundCallbackU)
Аргументы
[in]stream_idсм. описание в VideoWorker::MatchFoundCallbackData
[in]frame_idсм. описание в VideoWorker::MatchFoundCallbackData
[in]person_idсм. search_results в VideoWorker::MatchFoundCallbackData
[in]element_idсм. search_results в VideoWorker::MatchFoundCallbackData
[in]sampleсм. описание в VideoWorker::MatchFoundCallbackData
[in]qualityсм. описание в VideoWorker::MatchFoundCallbackData
[in]templсм. описание в VideoWorker::MatchFoundCallbackData
[in]match_resultсм. search_results в VideoWorker::MatchFoundCallbackData
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addMatchFoundCallback.
typedef void(* pbio::VideoWorker::MatchFoundCallbackFuncExt)(const int stream_id, const int frame_id, const RawSample::Ptr &sample, const float quality, const Template::Ptr &templ, const std::vector< SearchResult > &search_result, void *const userdata)

Тип функции коллбэка распознавания (MatchFound).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::MatchFoundCallbackU)

Аналогичен VideoWorker::MatchFoundCallbackFunc, но возвращает все элементы с расстоянием меньше distance_threshold (но не более k ближайших элементов; величина k установлена в конфигурационном файле под тегом search_k).

При вызове после N последовательных несовпадений первый элемент в search_result будет иметь нулевое расстояние, а person_id и element_id равны VideoWorker::MATCH_NOT_FOUND_ID.

typedef void(* pbio::VideoWorker::MatchFoundCallbackFuncU)(const MatchFoundCallbackData &data, void *const userdata)

Тип функции коллбэка распознавания (MatchFound).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::MatchFoundCallbackU)
typedef void(* pbio::VideoWorker::MatchFoundCallbackU)(const MatchFoundCallbackData &data, void *const userdata)

Тип функции коллбэка распознавания (MatchFound).

Когда для отслеживаемого лица создается шаблон, он сравнивается с каждым шаблоном из базы, и если расстояние до ближайшего элемента оказывается меньше порога distance_threshold, указанного в этом элементе, то фиксируется совпадение.

MatchFoundCallbackData::search_results содержит все элементы с расстоянием меньше distance_threshold (но не более k ближайших элементов; величина k установлена в конфигурационном файле под тегом search_k).

Этот коллбэк вызывается после N последовательных совпадений с элементами, относящимися к одному и тому же человеку.

Число N может быть задано в конфигурационном файле в тэге <consecutive_match_count_for_match_found_callback>.

Гарантируется, что этот коллбэк будет вызван после как минимум одного Tracking коллбэка и перед TrackingLost коллбэком с тем же stream_id и track_id (track_id = sample->getID()).

Также, установив значение ‘1’ для тэга <not_found_match_found_callback> можно включить вызов этого коллбэка после N последовательных несовпадений (т.е. когда ближайший элемент оказывается дальше его порога distance_threshold). В этом случае match_result первого элемента в MatchFoundCallbackData::search_results будет с нулевым расстоянием, а person_id и element_id будут равны VideoWorker::MATCH_NOT_FOUND_ID.

Аргументы
[in]dataДанные MatchFound коллбэка.
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addMatchFoundCallbackU.
typedef void(* pbio::VideoWorker::StiPersonOutdatedCallbackU)(const StiPersonOutdatedCallbackData &data, void *const userdata)

Тип функции коллбэка StiPersonOutdated.

Аргументы
[in]dataДанные StiPersonOutdated коллбэка.
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addStiPersonOutdatedCallbackU.
typedef void(* pbio::VideoWorker::TemplateCreatedCallbackFunc)(const int stream_id, const int frame_id, const RawSample::Ptr &sample, const float quality, const Template::Ptr &templ, void *const userdata)

Тип функции коллбэка создания шаблона (TemplateCreated).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::TemplateCreatedCallbackU)
Аргументы
[in]stream_idсм. описание в VideoWorker::TemplateCreatedCallbackData
[in]frame_idсм. описание в VideoWorker::TemplateCreatedCallbackData
[in]sampleсм. описание в VideoWorker::TemplateCreatedCallbackData
[in]qualityсм. описание в VideoWorker::TemplateCreatedCallbackData
[in]templсм. описание в VideoWorker::TemplateCreatedCallbackData
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addTemplateCreatedCallback.
typedef void(* pbio::VideoWorker::TemplateCreatedCallbackFuncU)(const TemplateCreatedCallbackData &data, void *const userdata)

Тип функции коллбэка создания шаблона (TemplateCreated).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::TemplateCreatedCallbackU)
typedef void(* pbio::VideoWorker::TemplateCreatedCallbackU)(const TemplateCreatedCallbackData &data, void *const userdata)

Тип функции коллбэка создания шаблона (TemplateCreated).

Этот коллбэк вызывается каждый раз, когда в VideoWorker создается шаблон.

Гарантируется, что этот коллбэк будет вызван после как минимум одного Tracking коллбэка и перед TrackingLost коллбэком с тем же stream_id и track_id (track_id = sample->getID()).

Аргументы
[in]dataДанные TemplateCreated коллбэка.
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addTemplateCreatedCallbackU.
typedef void(* pbio::VideoWorker::TrackingCallbackFunc)(const int stream_id, const int frame_id, const std::vector< RawSample::Ptr > &samples, const std::vector< bool > &samples_weak, const std::vector< float > &samples_quality, void *const userdata)

Тип функции коллбэка трекинга (Tracking).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::TrackingCallbackU)
Аргументы
[in]stream_idсм. описание в VideoWorker::TrackingCallbackData
[in]frame_idсм. описание в VideoWorker::TrackingCallbackData
[in]samplesсм. описание в VideoWorker::TrackingCallbackData
[in]samples_weakсм. описание в VideoWorker::TrackingCallbackData
[in]samples_qualityсм. описание в VideoWorker::TrackingCallbackData
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addTrackingCallback.
typedef void(* pbio::VideoWorker::TrackingCallbackFuncU)(const TrackingCallbackData &data, void *const userdata)

Тип функции коллбэка трекинга (Tracking).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::TrackingCallbackU)
typedef void(* pbio::VideoWorker::TrackingCallbackU)(const TrackingCallbackData &data, void *const userdata)

Тип функции коллбэка трекинга (Tracking). Этот коллбэк вызывается каждый раз, когда кадр был обработан трекером. Tracking коллбэк будет вызван с frame_id = X не раньше, чем VideoWorker::addVideoFrame вернет значение X + N - 1, где N - значение, которое вернул VideoWorker::getTrackingConveyorSize.

Tracking коллбэки с одинаковым stream_id вызываются в порядке возрастания значения frame_id. Поэтому если вы получили коллбэк со значениями stream_id=2 и frame_id=102 сразу после коллбэка со значениями stream_id=2 и frame_id=100, значит, кадр со значением frame_id=101 был пропущен для видеопотока 2.

Аргументы
[in]dataДанные Tracking коллбэка.
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addTrackingCallbackU.
typedef void(* pbio::VideoWorker::TrackingLostCallbackFunc)(const int stream_id, const int first_frame_id, const int last_frame_id, const float best_quality, const int best_quality_frame_id, const RawSample::Ptr &best_quality_sample, const Template::Ptr &best_quality_templ, void *const userdata)

Тип функции коллбэка потери трекинга лица (TrackingLost) (например, когда человек вышел из кадра).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::TrackingLostCallbackU).
Аргументы
[in]stream_idсм. описание в VideoWorker::TrackingLostCallbackData.
[in]first_frame_idсм. описание в VideoWorker::TrackingLostCallbackData.
[in]last_frame_idсм. описание в VideoWorker::TrackingLostCallbackData.
[in]best_qualityсм. описание в VideoWorker::TrackingLostCallbackData.
[in]best_quality_frame_idсм. описание в VideoWorker::TrackingLostCallbackData.
[in]best_quality_sampleсм. описание в VideoWorker::TrackingLostCallbackData.
[in]best_quality_templсм. описание в VideoWorker::TrackingLostCallbackData.
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addTrackingLostCallback.
typedef void(* pbio::VideoWorker::TrackingLostCallbackFuncU)(const TrackingLostCallbackData &data, void *const userdata)

Тип функции коллбэка потери трекинга лица (TrackingLost) (например, когда человек вышел из кадра).

Предупреждения
Это устаревшая версия (см. новую VideoWorker::TrackingLostCallbackU).
typedef void(* pbio::VideoWorker::TrackingLostCallbackU)(const TrackingLostCallbackData &data, void *const userdata)

Тип функции коллбэка потери трекинга лица (TrackingLost) (например, когда человек вышел из кадра).

Гарантируется, что этот коллбэк будет последним для пары <stream_id, track_id> (track_id равен sample.getID() для сэмпла в любом VideoWorker коллбэке).

Т.е. после него ни один Tracking, MatchFound или TrackingLost коллбэк для видеопотока stream_id не может содержать сэмпла с этим же track_id.

Также гарантируется, что для каждой пары <stream_id, track_id>, которая была упомянута в Tracking коллбэке, будет только один TrackingLost коллбэк.

Аргументы
[in]dataДанные TrackingLost коллбэка.
[in]userdataУказатель на данные, поданные пользователем при вызове метода VideoWorker::addTrackingLostCallbackU.

Методы

void pbio::VideoWorker::addDepthFrame ( const DepthMapRaw depth_frame,
const int  stream_id,
const uint64_t  timestamp_microsec 
)
inline

Подать кадр определенного видеопотока c данными глубины. Потокобезопасный.

Аргументы
[in]depth_frameКадр глубины (DepthMapRaw).
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
[in]timestamp_microsecВременная метка кадра в микросекундах
void pbio::VideoWorker::addIRFrame ( const IRFrameRaw ir_frame,
const int  stream_id,
const uint64_t  timestamp_microsec 
)
inline

Подать кадр определенного видеопотока c инфракрасными данными. Потокобезопасный.

Аргументы
[in]ir_frameИнфракрасный кадр (IRFrameRaw).
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
[in]timestamp_microsecВременная метка кадра в микросекундах
int pbio::VideoWorker::addMatchFoundCallback ( const MatchFoundCallbackFunc  callback,
void *const  userdata 
)
inline

Добавить обработчик события распознавания (MatchFound). Потокобезопасный.

Предупреждения
Это устаревшая версия (см. новую VideoWorker::addMatchFoundCallbackU)
Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeMatchFoundCallback, чтобы отписаться.
int pbio::VideoWorker::addMatchFoundCallbackExt ( const MatchFoundCallbackFuncExt  callback,
void *const  userdata 
)
inline

Добавить обработчик события распознавания (MatchFound). Потокобезопасный.

Предупреждения
Это устаревшая версия (см. новую VideoWorker::addMatchFoundCallbackU)
Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeMatchFoundCallback, чтобы отписаться.
int pbio::VideoWorker::addMatchFoundCallbackU ( const MatchFoundCallbackU  callback,
void *const  userdata 
)
inline

Добавить обработчик события распознавания (MatchFound). Потокобезопасный.

Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeMatchFoundCallback, чтобы отписаться.
int pbio::VideoWorker::addStiPersonOutdatedCallbackU ( const StiPersonOutdatedCallbackU  callback,
void *const  userdata 
)
inline

Добавить обработчик события StiPersonOutdated. Потокобезопасный.

Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Чтобы отписаться, передайте его в VideoWorker::removeStiPersonOutdatedCallback.
int pbio::VideoWorker::addTemplateCreatedCallback ( const TemplateCreatedCallbackFunc  callback,
void *const  userdata 
)
inline

Добавить обработчик события создания шаблона (TemplateCreated). Потокобезопасный.

Предупреждения
Это устаревшая версия (см. новую VideoWorker::addTemplateCreatedCallbackU)
Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeTemplateCreatedCallback, чтобы отписаться.
int pbio::VideoWorker::addTemplateCreatedCallbackU ( const TemplateCreatedCallbackU  callback,
void *const  userdata 
)
inline

Добавить обработчик события создания шаблона (TemplateCreated). Потокобезопасный.

Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeTemplateCreatedCallback, чтобы отписаться.
int pbio::VideoWorker::addTrackingCallback ( const TrackingCallbackFunc  callback,
void *const  userdata 
)
inline

Добавить обработчик события трекинга (Tracking). Потокобезопасный.

Предупреждения
Это устаревшая версия (см. новую VideoWorker::addTrackingCallbackU)
Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeTrackingCallback, чтобы отписаться.
int pbio::VideoWorker::addTrackingCallbackU ( const TrackingCallbackU  callback,
void *const  userdata 
)
inline

Добавить обработчик события трекинга (Tracking). Потокобезопасный.

Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeTrackingCallback, чтобы отписаться.
int pbio::VideoWorker::addTrackingLostCallback ( const TrackingLostCallbackFunc  callback,
void *const  userdata 
)
inline

Добавить обработчик события потери трекинга лица (TrackingLost). Потокобезопасный.

Предупреждения
Это устаревшая версия (см. новую VideoWorker::addTrackingLostCallbackU)
Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeTrackingLostCallback, чтобы отписаться.
int pbio::VideoWorker::addTrackingLostCallbackU ( const TrackingLostCallbackU  callback,
void *const  userdata 
)
inline

Добавить обработчик события потери трекинга лица (TrackingLost). Потокобезопасный.

Аргументы
[in]callbackФункция коллбэка.
[in]userdataЛюбой указатель. При вызове коллбэка он будет передан через аргумент userdata.
Возвращает
Целочисленный идентификатор коллбэка. Используйте его для передачи в VideoWorker::removeTrackingLostCallback, чтобы отписаться.
int pbio::VideoWorker::addVideoFrame ( const RawImage  frame,
const int  stream_id,
const uint64_t  timestamp_microsec = uint64_t(-1) 
)
inline

Подать новый кадр определенного видеопотока. Результаты трекинга и распознавания будут возвращаться асинхронно в коллбэках Tracking, MatchFound и TrackingLost. Потокобезопасный.

Аргументы
[in]frameИзображение кадра. Допустимы только цветные изображения (т.е. IRawImage::FORMAT_RGB, IRawImage::FORMAT_BGR, IRawImage::FORMAT_YUV_NV21 и IRawImage::FORMAT_YUV_NV12).
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
[in]timestamp_microsecВременная метка кадра в микросекундах
Возвращает
Целочисленный идентификатор кадра, уникальный для этого видеопотока, который будет использоваться в коллбэках для обозначения этого кадра.
void pbio::VideoWorker::disableAgeGenderEstimationOnStream ( const int  stream_id)
inline

Отключить определение пола и возраста для данного потока. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
void pbio::VideoWorker::disableEmotionsEstimationOnStream ( const int  stream_id)
inline

Отключить определение эмоций для данного потока. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
void pbio::VideoWorker::disableProcessingOnStream ( const int  stream_id)
inline

Отключить генерацию шаблонов для данного потока. Соответственно, сравнения также остановятся. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
void pbio::VideoWorker::enableAgeGenderEstimationOnStream ( const int  stream_id)
inline

Включить определение пола и возраста для данного потока. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
void pbio::VideoWorker::enableEmotionsEstimationOnStream ( const int  stream_id)
inline

Включить определение эмоций для данного потока. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
void pbio::VideoWorker::enableProcessingOnStream ( const int  stream_id)
inline

Включить генерацию шаблонов для данного потока. Соответственно, сравнения также возобновятся. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
std::string pbio::VideoWorker::getMethodName ( ) const
inline

Получить имя метода используемого распознавателя. Потокобезопасный.

Возвращает
Имя метода.
int pbio::VideoWorker::getStreamsCount ( ) const
inline

Получить количество видеопотоков. Потокобезопасный.

Возвращает
Количество видеопотоков.
int pbio::VideoWorker::getTrackingConveyorSize ( const int  stream_id) const
inline

Получить размер N конвейера трекинга. Tracking коллбэк будет вызван с frame_id = X не раньше, чем VideoWorker::addVideoFrame вернет значение X + N - 1, где N - значение, которое вернул VideoWorker::getTrackingConveyorSize. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
Возвращает
Размер конвейера трекинга.
void pbio::VideoWorker::removeMatchFoundCallback ( const int  callback_id)
inline

Удалить обработчик события распознавания (MatchFound). Потокобезопасный.

Аргументы
[in]callback_idИдентификатор коллбэка, полученный от VideoWorker::addMatchFoundCallback или VideoWorker::addMatchFoundCallbackExt.
void pbio::VideoWorker::removeStiPersonOutdatedCallback ( const int  callback_id)
inline

Удалить обработчик события StiPersonOutdated. Потокобезопасный.

Аргументы
[in]callback_idЦелочисленный идентификатор коллбэка, полученный от VideoWorker::addStiPersonOutdatedCallbackU.
void pbio::VideoWorker::removeTemplateCreatedCallback ( const int  callback_id)
inline

Удалить обработчик события создания шаблона (TemplateCreated). Потокобезопасный.

Аргументы
[in]callback_idИдентификатор коллбэка, полученный от VideoWorker::addTemplateCreatedCallback.
void pbio::VideoWorker::removeTrackingCallback ( const int  callback_id)
inline

Удалить обработчик события трекинга (Tracking). Потокобезопасный.

Аргументы
[in]callback_idИдентификатор коллбэка, полученный от VideoWorker::addTrackingCallback.
void pbio::VideoWorker::removeTrackingLostCallback ( const int  callback_id)
inline

Удалить обработчик события потери трекинга лица (TrackingLost). Потокобезопасный.

Аргументы
[in]callback_idИдентификатор коллбэка, полученный от VideoWorker::addTrackingLostCallback.
int pbio::VideoWorker::resetStream ( const int  stream_id)
inline

Сбросить состояние работы для указанного видеопотока. В процессе происходит ожидание выполняющихся в данный момент коллбэков, поэтому не синхронизируйте вызов resetStream с кодом внутри коллбэков, иначе возможен deadlock. После возврата управления от resetStream не будет вызвано ни одного коллбэка, относящегося к предыдущим кадрам или трекам. Необходимо освободить память, выделенную для треков, track_id которых меньше возвращенного значения, так как для треков, удаленных в процессе этого сброса, TrackingLost коллбэк вызван не будет. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
Возвращает
Целое число track_id_threshold, означающее, что все удаленные в ходе resetStream треки имели track_id < track_id_threshold, а все новые треки будут иметь track_id >= track_id_threshold.
void pbio::VideoWorker::resetTrackerOnStream ( const int  stream_id)
inline

Сбросить состояние трекера для указанного видеопотока. Потокобезопасный.

Аргументы
[in]stream_idЦелочисленный идентификатор видеопотока (0 <= stream_id < streams_count).
void pbio::VideoWorker::setDatabase ( const std::vector< DatabaseElement > &  elements,
const Recognizer::SearchAccelerationType  acceleration = Recognizer::SEARCH_ACCELERATION_1 
)
inline

Задать / заменить базу (можно вызывать в любое время). Доступно только при ненулевом количестве потоков сравнения (matching_threads_count). Потокобезопасный.

Аргументы
[in]elementsВектор элементов базы.
[in]accelerationТип ускорения поиска.