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

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

#import <VideoWorker.h>

Методы экземпляра

(int) - addTrackingCallbackU::
 Добавить обработчик события трекинга (Tracking). Потокобезопасный. Подробнее...
 
(int) - addMatchFoundCallbackU::
 Добавить обработчик события распознавания (MatchFound). Потокобезопасный. Подробнее...
 
(void) - addHandlerCallback:
 Добавить обработчик события. Потокобезопасный. Подробнее...
 
(int) - addVideoFrame::
 Подать новый кадр определенного видеопотока. Результаты трекинга и распознавания будут возвращаться асинхронно в коллбэках Tracking, MatchFound и TrackingLost. Потокобезопасный. Подробнее...
 
(void) - setDatabase:
 Задать / заменить базу (можно вызывать в любое время). Доступно только при ненулевом количестве потоков сравнения (matching_threads_count). Потокобезопасный. Подробнее...
 
(void) - enableProcessingOnStream:
 Включить генерацию шаблонов для данного потока. Соответственно, сравнения также возобновятся. Потокобезопасный. Подробнее...
 
(void) - disableProcessingOnStream:
 Отключить генерацию шаблонов для данного потока. Соответственно, сравнения также остановятся. Потокобезопасный. Подробнее...
 
(void) - resetStream:
 Сбросить состояние работы для указанного видеопотока. В процессе происходит ожидание выполняющихся в данный момент коллбэков, поэтому не синхронизируйте вызов resetStream с кодом внутри коллбэков, иначе возможен deadlock. После возврата управления от resetStream не будет вызвано ни одного коллбэка, относящегося к предыдущим кадрам или трекам. Необходимо освободить память, выделенную для треков, track_id которых меньше возвращенного значения, так как для треков, удаленных в процессе этого сброса, TrackingLost коллбэк вызван не будет. Потокобезопасный. Подробнее...
 

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

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

Документация метода

- (void) addHandlerCallback: (CallbackHandler *_Nonnull)  handler

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

Аргументы
[in]handlerУказатель на пользовательский класс унаследованного от CallbackHandler.
- (int) addMatchFoundCallbackU: (const void *_Nonnull)  callback
: (void *_Nonnull const)  userdata 

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

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

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

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

Подать новый кадр определенного видеопотока. Результаты трекинга и распознавания будут возвращаться асинхронно в коллбэках 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) disableProcessingOnStream: (const int)  stream_id

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

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

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

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

Сбросить состояние работы для указанного видеопотока. В процессе происходит ожидание выполняющихся в данный момент коллбэков, поэтому не синхронизируйте вызов 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) setDatabase: (NSArray< DatabaseElement * > *_Nonnull)  elements

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

Аргументы
[in]elementsВектор элементов базы.