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

Интерфейсный объект для создания и сравнения шаблонов. Подробнее...

#include <Recognizer.h>

Классы

struct  MatchResult
 Результат сравнения шаблонов. Подробнее...
 
struct  SearchResult
 Результат поиска запросного шаблона (Template) в индексе (TemplatesIndex). Подробнее...
 

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

enum  SearchAccelerationType { NO_SEARCH_ACCELERATION = 0, SEARCH_ACCELERATION_1 = 1 }
 Типы ускорения поиска. Подробнее...
 
typedef LightSmartPtr
< Recognizer >::tPtr 
Ptr
 Псевдоним для типа умного указателя на Recognizer.
 

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

std::string getMethodName () const
 Получить имя метода. Потокобезопасный. Подробнее...
 
MatchResult getROCCurvePointByDistanceThreshold (const double distance_threshold) const
 Получить точку на ROC-кривой с заданным порогом расстояния. Потокобезопасный. Подробнее...
 
MatchResult getROCCurvePointByFAR (const double desired_far) const
 Получить точку на ROC-кривой с заданным false acceptance rate (FAR). Потокобезопасный. Подробнее...
 
MatchResult getROCCurvePointByFRR (const double desired_frr) const
 Получить точку на ROC-кривой с заданным false rejection rate (FRR). Потокобезопасный. Подробнее...
 
MatchResult getROCCurvePointByScoreThreshold (const double score_threshold) const
 Получить точку на ROC-кривой с заданным порогом значения сходства. Потокобезопасный. Подробнее...
 
Template::Ptr processing (const RawSample &sample) const
 Создать шаблон. Подробнее...
 
Template::Ptr loadTemplate (std::istream &binary_stream) const
 Загрузить шаблон. Формат платформонезависимый. Загружать можно только шаблоны, созданные этим же методом (т.е. с таким же конфигурационным файлом). Подробнее...
 
Template::Ptr loadTemplate (pbio::stl_wraps::WrapIStream &binary_stream) const
 Загрузить шаблон. Формат платформонезависимый. Загружать можно только шаблоны, созданные этим же методом (т.е. с таким же конфигурационным файлом). Подробнее...
 
Template::Ptr loadTemplate (const void *const data, const int size) const
 Загрузить шаблон. Формат платформонезависимый. Загружать можно только шаблоны, созданные этим же методом (т.е. с таким же конфигурационным файлом). Подробнее...
 
MatchResult verifyMatch (const Template &template1, const Template &template2) const
 Сравнить два шаблона. Порядок шаблонов не важен. Сравнивать можно только шаблоны, созданные этим же методом (т.е. с таким же конфигурационным файлом). Подробнее...
 
TemplatesIndex::Ptr createIndex (const std::vector< pbio::Template::Ptr > &templates, const int search_threads_count=1, const int reserve_queries_count=0) const
 Создать индекс (TemplatesIndex) для выполнения быстрого поиска. Суммарный размер всех индексов ограничен лицензией. Подробнее...
 
std::vector< SearchResultsearch (const pbio::Template &query_template, const pbio::TemplatesIndex &templates_index, const size_t k, const SearchAccelerationType acceleration=SEARCH_ACCELERATION_1) const
 Поиск k ближайших шаблонов в индексе. Время поиска зависит от значения k и от размеров индекса. Подробнее...
 
std::vector< std::vector
< SearchResult > > 
search (const std::vector< pbio::Template::Ptr > &queries_templates, const pbio::TemplatesIndex &templates_index, const size_t k, const SearchAccelerationType acceleration=SEARCH_ACCELERATION_1) const
 Поиск k ближайших шаблонов в индексе. Время поиска зависит от значения k и от размеров индекса. Подробнее...
 
std::vector< size_t > chooseRepresentativeTemplatesSet (const size_t set_size, const std::vector< pbio::Template::Ptr > &templates, const std::vector< size_t > &inviolable_templates_indexes=std::vector< size_t >())
 Выбрать набор шаблонов, представляющий оригинальные шаблоны наилучшим образом. Подробнее...
 

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

Интерфейсный объект для создания и сравнения шаблонов.

Перечисления

Типы ускорения поиска.

Элементы перечислений
NO_SEARCH_ACCELERATION 

Без ускорения, стандартный линейный поиск. Результат идентичен N вызовам Recognizer::verifyMatch.

SEARCH_ACCELERATION_1 

Эвристически ускоренный линейный поиск. Эвристика уменьшает TAR (true acceptance rate) на тесте 1:N не более чем на 0.1%.

Методы

std::vector< size_t > Recognizer::chooseRepresentativeTemplatesSet ( const size_t  set_size,
const std::vector< pbio::Template::Ptr > &  templates,
const std::vector< size_t > &  inviolable_templates_indexes = std::vector<size_t>() 
)
inline

Выбрать набор шаблонов, представляющий оригинальные шаблоны наилучшим образом.

Аргументы
[in]set_sizeТребуемый размер набора.
[in]templatesОригинальные шаблоны.
[in]inviolable_templates_indexesИндексы шаблонов, которых необходимо включить в набор.
Возвращает
Индексы шаблонов, составляющих результирующий набор.
TemplatesIndex::Ptr Recognizer::createIndex ( const std::vector< pbio::Template::Ptr > &  templates,
const int  search_threads_count = 1,
const int  reserve_queries_count = 0 
) const
inline

Создать индекс (TemplatesIndex) для выполнения быстрого поиска. Суммарный размер всех индексов ограничен лицензией.

Аргументы
[in]templatesВектор шаблонов для построения индекса.
[in]search_threads_countКоличество потоков для использования во время поиска в этом индексе.
[in]reserve_queries_countЦелое число, передаваемое в метод TemplatesIndex::reserveSearchMemory, вызванный от созданного индекса.
Возвращает
Созданный индекс.
std::string Recognizer::getMethodName ( ) const
inline

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

Возвращает
Имя метода.
Recognizer::MatchResult Recognizer::getROCCurvePointByDistanceThreshold ( const double  distance_threshold) const
inline

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

Возвращает
Точка на ROC-кривой в виде структуры MatchResult.
Recognizer::MatchResult Recognizer::getROCCurvePointByFAR ( const double  desired_far) const
inline

Получить точку на ROC-кривой с заданным false acceptance rate (FAR). Потокобезопасный.

Возвращает
Точка на ROC-кривой в виде структуры MatchResult.
Recognizer::MatchResult Recognizer::getROCCurvePointByFRR ( const double  desired_frr) const
inline

Получить точку на ROC-кривой с заданным false rejection rate (FRR). Потокобезопасный.

Возвращает
Точка на ROC-кривой в виде структуры MatchResult.
Recognizer::MatchResult Recognizer::getROCCurvePointByScoreThreshold ( const double  score_threshold) const
inline

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

Возвращает
Точка на ROC-кривой в виде структуры MatchResult.
Template::Ptr Recognizer::loadTemplate ( std::istream &  binary_stream) const
inline

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

Аргументы
[in]binary_streamОбъект потока. Поток файла (std::ifstream) необходимо открывать с флагом std::ios_base::binary.
Возвращает
Загруженный шаблон.
Template::Ptr Recognizer::loadTemplate ( pbio::stl_wraps::WrapIStream &  binary_stream) const
inline

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

Аргументы
[in]binary_streamОбъект потока. Поток файла (std::ifstream) необходимо открывать с флагом std::ios_base::binary.
Возвращает
Загруженный шаблон.
Template::Ptr Recognizer::loadTemplate ( const void *const  data,
const int  size 
) const
inline

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

Аргументы
[in]dataБуфер данных.
[in]sizeРазмер буфера (в байтах).
Возвращает
Загруженный шаблон.
Template::Ptr Recognizer::processing ( const RawSample sample) const
inline

Создать шаблон.

Аргументы
[in]sampleОбразец лица. На данный момент все методы могут работать только с фронтальными образцами.
Возвращает
Созданный шаблон.
std::vector< Recognizer::SearchResult > Recognizer::search ( const pbio::Template query_template,
const pbio::TemplatesIndex templates_index,
const size_t  k,
const SearchAccelerationType  acceleration = SEARCH_ACCELERATION_1 
) const
inline

Поиск k ближайших шаблонов в индексе. Время поиска зависит от значения k и от размеров индекса.

Аргументы
[in]query_templateЗапросный шаблон.
[in]templates_indexИндекс для поиска.
[in]kКоличество ближайших шаблонов для поиска.
[in]accelerationТип ускорения поиска.
Возвращает
Вектор с min(k, templates_index.size()) элементами в порядке возрастания расстояния до запросного шаблона.
std::vector< std::vector< Recognizer::SearchResult > > Recognizer::search ( const std::vector< pbio::Template::Ptr > &  queries_templates,
const pbio::TemplatesIndex templates_index,
const size_t  k,
const SearchAccelerationType  acceleration = SEARCH_ACCELERATION_1 
) const
inline

Поиск k ближайших шаблонов в индексе. Время поиска зависит от значения k и от размеров индекса.

Аргументы
[in]queries_templatesВектор запросных шаблонов.
[in]templates_indexИндекс для поиска.
[in]kКоличество ближайших шаблонов для поиска.
[in]accelerationТип ускорения поиска.
Возвращает
Вектор с queries_templates.size() элементами, каждый из которых является вектором с min(k, templates_index.size()) элементами в порядке возрастания расстояния до запросного шаблона.
Recognizer::MatchResult Recognizer::verifyMatch ( const Template template1,
const Template template2 
) const
inline

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

Аргументы
[in]template1Шаблон, созданный таким же методом.
[in]template2Шаблон, созданный таким же методом.
Возвращает
Результат сравнения.