Перейти к основному содержимому
Версия: 3.16.0

Параметры производительности

В данном пункте используются следующие сокращения:

  • FAR (false accept rate) – вероятность ложного сопоставления с объектом в базе.
  • TAR (true accept rate) – вероятность корректного сопоставления с объектом в базе.
  • FRR (false reject rate) – вероятность ложного отказа в доступе объекту, который есть в базе.
  • IR (identification rate) – вероятность идентификации.

Характеристики детекторов

Конфигурационные файлы детекторов

Нажмите, чтобы отобразить перечень конфигурационных файлов и их описание
ФайлДетекторНабор точекУглы (roll/yaw/pitch)Описание и применение
common_capturer4_fda.xmllbffda[-30;30][-60;60][-60;60]Детектор фронтальных лиц.
common_capturer4_fda_with_angles.xmllbffda[-90;90][-60;60][-60;60]Детектор фронтальных лиц. Адаптирован под работу с большим диапазоном углов поворота головы.
common_capturer4_fda_with_angles_noise.xmllbffda[-90;90][-60;60][-60;60]Детектор фронтальных лиц. Адаптирован под работу с большим диапазоном углов поворота головы. Подходит для изображений с высоким уровнем шума.
common_capturer4_fda_singleface.xmllbffda[-30;30][-60;60][-60;60]Детектируется только одно фронтальное лицо.
common_capturer4_fda_singleface_with_angles.xmllbffda[-90;90][-75;75][-60;60]Детектируется только одно фронтальное лицо. Детектор адаптирован под работу с большим диапазоном углов поворота головы.
common_capturer4_fda_singleface_with_angles_noise.xmllbffda[-90;90][-75;75][-60;60]Детектируется только одно фронтальное лицо. Детектор адаптирован под работу с большим диапазоном углов поворота головы. Подходит для изображений с высоким уровнем шума.
common_capturer4_lbf.xmllbfdoublelbf[-30;30][-60;60][-60;60]Детектор фронтальных лиц.
common_capturer4_lbf_singleface.xmllbfdoublelbf[-30;30][-60;60][-60;60]Детектируется только одно фронтальное лицо.
common_capturer4_mesh.xmllbfmesh[-30;30][-60;60][-60;60]Детектор фронтальных лиц. Позволяет получить 3D маску лица.
common_capturer4_mesh_with_angles.xmllbfmesh[-90;90][-60;60][-60;60]Детектор фронтальных лиц. Адаптирован под работу с большим диапазоном углов поворота головы. Позволяет получить 3D маску лица.
common_capturer4_mesh_with_angles_noise.xmllbfmesh[-90;90][-60;60][-60;60]Детектор фронтальных лиц. Адаптирован под работу с большим диапазоном углов поворота головы. Подходит для изображений с высоким уровнем шума. Позволяет получить 3D маску лица.
common_capturer4_mesh_singleface.xmllbfmesh[-30;30][-60;60][-60;60]Детектируется только одно фронтальное лицо. Позволяет получить 3D маску лица.
common_capturer4_mesh_singleface_with_angles.xmllbfmesh[-90;90][-75;75][-60;60]Детектируется только одно фронтальное лицо. Детектор адаптирован под работу с большим диапазоном углов поворота головы. Позволяет получить 3D маску лица.
common_capturer4_mesh_singleface_with_angles_noise.xmllbfmesh[-90;90][-75;75][-60;60]Детектируется только одно фронтальное лицо. Детектор адаптирован под работу с большим диапазоном углов поворота головы. подходит для изображений с высоким уровнем шума. Позволяет получить 3D маску лица.
common_capturer_blf_fda_front.xmlblffda[-70;70][-90;90][-70;70]Детекция крупных изображений лиц (т.е. лицо занимает большую часть кадра). Подходит для детекции лиц в масках.
common_capturer_blf_fda_back.xmlblffda[-70;70][-90;90][-70;70]Детекция нескольких лиц, либо небольших изображений лица. Подходит для детекции лиц в масках.
common_capturer_blf_fda_auto.xmlblffda[-70;70][-90;90][-70;70]Детекция лиц разного размера (требуется указать в конфигурационном файле параметры `resolution_width` и `min_face_size`). Подходит для детекции лиц в масках.
common_capturer_refa_fda_a.xmlrefafda[-70;70][-90;90][-70;70]Детектор лиц, рекомендуемый для использования в экспертных системах. Обеспечивает детекцию лиц с наибольшим покрытием углов поворота и максимальным качеством (в т.ч. в масках).
common_capturer_uld_fda.xmluldfda[-70;70][-90;90][-70;70]Детекция лиц разного размера. Подходит для детекции лиц в масках.
common_video_capturer_fda.xmllbffda[-30;30][-60;60][-60;60]Видеотрекер фронтальных лиц (работает только с цветными изображениями).
common_video_capturer_lbf.xmllbfsinglelbf[-30;30][-60;60][-60;60]Видеотрекер фронтальных лиц (работает только с цветными изображениями).
common_video_capturer_mesh.xmllbfmesh[-30;30][-60;60][-60;60]Видеотрекер фронтальных лиц (работает только с цветными изображениями). Позволяет получить 3D маску лица.
fda_tracker_capturer.xmllbffda[-30;30][-60;60][-60;60]Видеотрекер фронтальных лиц.
fda_tracker_capturer.w.xmllbffda[-30;30][-60;60][-60;60]Видеотрекер фронтальных лиц. Предназначен для детекции лиц при низком качестве освещения. Вероятность ложных детекций при этом немного выше.
fda_tracker_capturer_mesh.xmllbffda[-30;30][-60;60][-60;60]Видеотрекер фронтальных лиц. Позволяет получить 3D маску лица.
fda_tracker_capturer_fake_detector.xmllbffda[-30;30][-60;60][-60;60]Детекция происходит быстрее за счет работы одного фиттера (без детектора). Работает только на лицах, занимающих большую часть изображения.
fda_tracker_capturer_blf.xmlblffda[-30;30][-60;60][-60;60]Видеотрекер фронтальных лиц. Подходит для детекции лиц в масках.
fda_tracker_capturer_refa_a.xmlrefafda[-70;70][-90;90][-70;70]Видеотрекер фронтальных лиц. Предназначен для использования в экспертных системах. Обеспечивает детекцию лиц с наибольшим покрытием углов поворота и максимальным качеством (в т.ч. в масках).
fda_tracker_capturer_uld_fda.xmluldfda[-70;70][-90;90][-70;70]Видеотрекер фронтальных лиц. Позволяет детектировать лица разного размера. Подходит для детекции лиц в масках.
manual_capturer_fda.xmllbffda[-30;30][-60;60][-60;60]Требует указания точек глаз вручную. На основании точек глаз рассчитываются остальные точки на лице.
manual_capturer_mesh.xmllbfmesh[-30;30][-60;60][-60;60]Требует указания точек глаз вручную. На основании точек глаз рассчитываются остальные точки на лице. Позволяет получить 3D маску лица.

Временные характеристики

Core i7 4.5 ГГц (1 ядро)

Конфигурационный файлВремя детекции (мс)
640x480, 1 лицо640x480, 4 лица1280x720, 1 лицо1280x720, 4 лица1920x1080, 1 лицо1920x1080, 4 лица
common_capturer4_fda.xml13 25 34 49 81 103
common_capturer4_fda_with_angles.xml282 387 260 356 273 370
common_capturer4_mesh.xml18 47 39 72 87 735
common_capturer4_mesh_with_angles.xml291 415 268 383 281 398
common_capturer_blf_fda_auto.xml6-30 12-36 8-32 14-38 19-44 26-51
common_capturer_blf_fda_back.xml30 36 32 38 44 51
common_capturer_blf_fda_front.xml6 12 8 14 19 26
common_capturer_refa_fda_a.xml644 650 512 518 580 586
common_capturer_uld_fda.xml (min_size=150)12 18 13 19 21 28
common_capturer_uld_fda.xml (min_size=90)58 70 60 73 77 91
common_capturer_uld_fda.xml (min_size=50)253 272 253 273 281 302
common_capturer4_fda_singleface.xml16 - 51 - 123 -
common_capturer4_mesh_singleface.xml23 - 58 - 129 -

GPU

Конфигурационный файлВремя детекции (мс)
640x480, 1 лицо640x480, 4 лица1280x720, 1 лицо1280x720, 4 лица1920x1080, 1 лицо1920x1080, 4 лица
common_capturer_blf_fda_auto.xml4-5 10-12 6-8 13-14 17-20 24-27
common_capturer_blf_fda_back.xml5 12 8 14 20 27
common_capturer_blf_fda_front.xml4 10 6 13 17 24
common_capturer_refa_fda_a.xml236 240 229 235 170 176
common_capturer_uld_fda.xml (min_size=150)4 10 5 11 13 20
common_capturer_uld_fda.xml (min_size=90)14 21 17 23 26 34
common_capturer_uld_fda.xml (min_size=50)27 34 27 35 47 49

Примечание: Время работы может значительно меняться в зависимости от содержания изображения.

Характеристики идентификации

Временные характеристики для Core i7 4.5 ГГц*

Метод распознаванияСоздание шаблона (мс)Идентификация 1:N с ускорением (мс)Верификация 1:1 (мс)
N = 104 N = 106 N = 107
6.7 40 (45**) 0.25 12.1 126 0.04
7.7 170 (180**) 0.25 12.1 126 0.04
8.7 20 (20**) 0.25 12.1 126 0.04
9.30 30 0.18 12.0 117 0.04
9.300 260 (125***) 0.18 12.0 117 0.04
9.1000 730 (305***) 0.18 12.0 117 0.04
9.30mask 20 0.18 12.0 117 0.04
9.300mask 160 (79***) 0.18 12.0 117 0.04
9.1000mask 290 (144***) 0.18 12.0 117 0.04
10.30 24 (16***) 0.18 12.0 117 0.04
10.100 40 (24***) 0.18 12.0 117 0.04
10.1000 690 (355***) 0.18 12.0 117 0.04
11.1000 865 (425***) 0.22 15.0 151 0.04

* – характеристики указаны для одного ядра процессора
** – время создания шаблона при параметре processing_less_memory_consumption с установленным значением true при вызове метода FacerecService.createRecognizer для создания распознавателя.
*** – время создания шаблона с использованием инструкций AVX2 (см. Идентификация лиц).

Примечания:

  • Время ускоренного поиска приведено для k=1, при больших значениях k время будет увеличиваться до времени поиска без ускорения.
  • Ускоренный поиск реализован только для методов распознавания 6.5, 6.6, 6.7, 7.3, 7.6, 7.7, 8.6, 8.7, 9.30, 9.300, 9.1000, 10v30, 10v100, 10v1000, 11v1000.
  • Для достижения этих скоростей шаблоны в индексе дожны быть расположены в порядке их создания (через метод Recognizer.processing или Recognizer.loadTemplate).
  • Для достижения более высоких скоростей вы можете использовать GPU (см. Использование GPU).

Характеристики памяти

Метод распознаванияРазмер сериализованного шаблона (Байт)Размер шаблона в оперативной памяти (Байт)Потребление памяти* (МБ)
6.7 536 636 105 (85**)
7.7 536 636 195 (163**)
8.7 536 636 52 (40**)
9.30 280 380 155
9.300 280 380 210
9.1000 280 380 290
10.30 280 380 160
10.100 280 380 180
10.1000 280 380 270
11.1000 296 396 480

* – количество используемой памяти не зависит от количества созданных объектов Recognizer этого метода.
** – потребление памяти при параметре processing_less_memory_consumption с установленным значением true при вызове метода FacerecService.createRecognizer для создания распознавателя.

ROC-кривая на расширенном тесте LFW

В данном тесте набор mismatch-пар был увеличен, также были исправлены ошибки LFW для точных измерений при низких значениях FAR.

FAR8.7 TAR (%)6.7 TAR (%)7.7 TAR (%)9.30 TAR (%)9.300 TAR (%)9.1000 TAR (%)10.30 TAR (%)10.100 TAR (%)10.1000 TAR (%)11.1000 TAR (%)
1e-4 97.3 99.0 99.3 97.3 99.5 99.6 98.0 99.3 99.7 99.7
1e-5 93.8 97.5 98.5 94.7 99.0 99.0 98.0 99.1 99.7 99.6
1e-6 88.9 94.8 96.9 90.8 98.0 98.5 95.7 98.3 99.5 99.6
Нажмите, чтобы развернуть таблицу со всеми значениями FAR и TAR для различных методов идентификации
FAR8.7 TAR (%)6.7 TAR (%)7.7 TAR (%)9.30 TAR (%)9.300 TAR (%)9.1000 TAR (%)10.30 TAR (%)10.100 TAR (%)10.1000 TAR (%)11.1000 TAR (%)
1e-2 99.6 99.7 99.8 99.5 99.7 99.8 99.7 99.8 99.8 99.8
9e-3 99.6 99.7 99.7 99.5 99.7 99.8 99.7 99.8 99.8 99.8
8e-3 99.6 99.7 99.7 99.4 99.7 99.8 99.7 99.8 99.8 99.8
7e-3 99.5 99.7 99.7 99.4 99.7 99.8 99.7 99.8 99.8 99.8
6e-3 99.5 99.7 99.7 99.4 99.7 99.8 99.7 99.8 99.8 99.8
5e-3 99.5 99.7 99.7 99.3 99.7 99.7 99.7 99.8 99.8 99.8
4e-3 99.4 99.7 99.7 99.3 99.7 99.7 99.7 99.7 99.8 99.8
3e-3 99.3 99.6 99.7 99.2 99.7 99.7 99.6 99.7 99.8 99.8
2e-3 99.2 99.6 99.6 99.1 99.7 99.7 99.5 99.7 99.8 99.8
1e-3 98.8 99.5 99.6 98.7 99.7 99.7 99.5 99.7 99.8 99.8
9e-4 98.7 99.4 99.6 98.6 99.7 99.7 99.4 99.7 99.8 99.8
8e-4 98.7 99.4 99.5 98.6 99.7 99.7 99.4 99.6 99.8 99.8
7e-4 98.7 99.4 99.5 98.5 99.7 99.6 99.3 99.6 99.8 99.8
6e-4 98.6 99.4 99.5 98.5 99.7 99.6 99.3 99.6 99.8 99.8
5e-4 98.5 99.4 99.5 98.5 99.7 99.6 99.2 99.6 99.8 99.8
4e-4 98.4 99.4 99.5 98.3 99.7 99.6 99.2 99.6 99.8 99.8
3e-4 98.2 99.2 99.5 98.1 99.6 99.6 99.2 99.5 99.7 99.8
2e-4 98.0 99.2 99.4 97.7 99.6 99.6 99.1 99.4 99.7 99.8
1e-4 97.3 99.0 99.3 97.3 99.5 99.6 99.0 99.4 99.7 99.7
9e-5 97.3 99.0 99.2 97.3 99.5 99.6 99.0 99.4 99.7 99.7
8e-5 97.2 99.0 99.2 97.2 99.5 99.6 99.0 99.4 99.7 99.7
7e-5 97.1 98.9 99.2 97.1 99.5 99.6 99.0 99.4 99.7 99.7
6e-5 96.9 98.8 99.1 96.9 99.5 99.6 98.9 99.3 99.7 99.7
5e-5 96.6 98.7 99.0 96.6 99.4 99.5 98.8 99.3 99.7 99.7
4e-5 96.3 98.5 99.0 96.5 99.3 99.5 98.8 99.3 99.7 99.7
3e-5 95.8 98.5 98.9 96.3 99.3 99.3 98.6 99.3 99.7 99.7
2e-5 95.0 98.1 98.8 95.8 99.2 99.2 98.5 99.2 99.7 99.7
1e-5 93.8 97.5 98.5 94.7 99.0 99.0 98.0 99.1 99.7 99.6
9e-6 93.7 97.4 98.5 94.6 99.0 99.0 98.0 99.1 99.6 99.6
8e-6 93.4 97.3 98.4 94.4 98.9 99.0 97.8 99.1 99.6 99.6
7e-6 93.2 97.2 98.4 94.2 98.9 99.0 97.7 99.0 99.6 99.6
6e-6 93.0 97.0 98.2 93.9 98.9 99.0 97.6 99.0 99.6 99.6
5e-6 92.7 96.8 98.2 93.7 98.9 98.9 97.3 99.0 99.6 99.6
4e-6 91.9 96.7 98.0 93.1 98.9 98.9 96.9 98.9 99.5 99.6
3e-6 91.1 96.4 97.8 92.8 98.7 98.8 96.7 98.8 99.5 99.6
2e-6 90.0 96.0 97.3 92.1 98.4 98.8 96.2 98.6 99.5 99.6
1e-6 88.9 94.8 96.9 90.8 98.0 98.5 95.7 98.3 99.4 99.6
9e-7 88.6 94.3 96.7 90.6 98.0 98.5 95.4 98.2 99.4 99.6
8e-7 87.7 94.1 96.3 90.4 97.9 98.4 95.2 98.2 99.4 99.6
7e-7 87.6 93.8 96.1 89.7 97.8 98.3 94.7 97.9 99.4 99.6
6e-7 87.1 93.7 96.0 89.3 97.6 98.2 94.4 97.8 99.4 99.6
5e-7 86.4 93.4 95.7 89.1 97.4 98.1 94.0 97.0 99.4 99.6
4e-7 86.0 93.1 95.6 88.1 97.3 98.0 93.3 96.7 99.3 99.5
3e-7 84.7 92.3 95.5 87.8 95.6 97.9 93.2 96.3 99.2 99.5
2e-7 83.2 91.4 92.4 86.9 94.7 97.7 90.2 94.8 99.0 99.5
1e-7 81.5 88.9 90.6 85.6 89.6 97.3 87.4 91.2 95.4 99.2

Тест производительности

Режимы:

Создание конфигурационного файла базы данных

  • Конфигурационный файл базы данных – текстовый файл по 3 строки на каждое изображение (<person_id> <image_id> <path_to_image>).

Пример:

person0_id
image0_id
path_to_image0
person0_id
image1_id
path_to_image1
...

Пример создания конфигурационного файла базы данных:

Создание списка файлов изображений
find -type f | sort > ../lfw_simple_format.txt

Пути в конфигурационных файлах должны располагаться относительно директории, передаваемой через параметр dataset_root_dir

  • lfw_simple_format.txt – текстовый файл со строками вида: <path/to/person/dir/image_file>. Изображения с одинаковыми path/to/person/dir принадлежат одному человеку. Изображения для одного человека должны идти подряд (см. Формирование конфигурационного файла).

Пример:

person1_dir/image1
person1_dir/image2
person2_dir/image1
...
Конвертация списка в конфигурационный файл

В этом режиме программа преобразовывает файл-список в формат конфигурационного файла базы данных (используется в остальных режимах):

Параметры запуска:

  • mode – режим программы (convert_config_format)
  • result_dataset_config – конфигурационный файл базы изображений
  • FILE – один файл с данными в формате1

Пример запуска:

./test_sdk \
--mode convert_config_format \
--result_dataset_config dataset_config.txt \
lfw_simple_format.txt

Результаты конвертации: конфигурационный файл базы изображений

Детекция

В этом режиме программа детектирует лица в базе изображений c id в промежутке [begin_image_id, end_image_id). Каждое изображение должно содержать только одно лицо. Изображения, на которых будет детектировано больше одного лица, будут проигнорированы.
Примечание: при использовании GPU рекомендуется проводить не более одного любого теста одновременно.

ВНИМАНИЕ

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

Параметры запуска:

  • mode – режим программы (detection)
  • dll_path – путь до файла библиотеки libfacerec.so или facerec.dll
  • sdk_config_dir – путь до каталога conf/facerec
  • dataset_config – конфигурационный файл базы изображений (см. Создание конфигурационного файла)
  • capturer_config – имя конфигурационного файла детектора
  • dataset_root_dir – путь до базы данных
  • detection_result_file – файл для хранения результатов детекции
  • [begin_image_id] – индекс изображения, с которого начинается детекция (по умолчанию 0)
  • [end_image_id] – индекс изображения, до которого осуществляется детекция (по умолчанию выполняется обработка до конца файла)
  • [use_cpu_cores_count] – количество используемых ядер для детекции (по умолчанию 1)

Пример запуска из каталога bin:

./test_sdk \
--mode detection \
--dll_path ../lib/libfacerec.so \
--sdk_config_dir ../conf/facerec \
--capturer_config common_capturer4_lbf.xml \
--dataset_config dataset_config.txt \
--dataset_root_dir /path/to/data \
--detection_result_file \
detection_result.bin

Результаты детекции: текстовый файл со строками в формате: <image_id> <количество_точек> <задетектированные_точки>

Процессинг

В этом режиме программа создает шаблоны детектированных лиц, обнаруженных на изображениях с id в промежутке [begin_image_id, end_image_id).

ВНИМАНИЕ

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

Параметры запуска:

  • mode – режим программы (processing)
  • dll_path – путь до файла библиотеки libfacerec.so или facerec.dll
  • sdk_config_dir – путь до каталога conf/facerec
  • dataset_config – конфигурационный файл базы изображений (см. Создание конфигурационного файла)
  • dataset_root_dir – путь до базы данных
  • recognizer_config – имя конфигурационного файла распознавателя
  • processing_result_file – файл для сохранения результирующих шаблонов
  • [begin_image_id] – индекс изображения, с которого начинается процессинг (по умолчанию 0)
  • [end_image_id] – индекс изображения, до которого осуществляется процессинг (по умолчанию обработка выполняется до конца файла)
  • [use_cpu_cores_count] – количество используемых ядер для процессинга (по умолчанию 1)
  • FILES – файл(ы) хранящие результат детекции

Примечание: пробная лицензия позволяет запустить тест только при [use_cpu_cores_count] 1.

Пример запуска из каталога bin:

./test_sdk \
--mode processing \
--dll_path ../lib/libfacerec.so \
--sdk_config_dir ../conf/facerec \
--dataset_config dataset_config.txt \
--dataset_root_dir /path/to/data \
--recognizer_config method6v7_recognizer.xml \
--processing_result_file ./templates_6v7.bin \
detection_result.bin

Результаты процессинга: бинарный файл, содержащий по одной записи на шаблон; каждая запись содержит 64-битное беззнаковое целое число (image_id) и шаблон.

Тест распознавания 1:1

В этом режиме программа выполняет тест распознавания 1:1, используя шаблоны, сгенерированные на изображениях из промежутка [begin_image_id, end_image_id).

ВНИМАНИЕ

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

Параметры запуска:

  • mode – режим программы (recognition_test_11)
  • dll_path – путь до файла библиотеки libfacerec.so или facerec.dll
  • sdk_config_dir – путь до каталога conf/facerec
  • dataset_config – конфигурационный файл базы изображений (см. Создание конфигурационного файла)
  • recognizer_config – имя конфигурационного файла распознавателя
  • result_roc_file – файл для сохранения ROC-кривой
  • result_closest_mismatches_file – файл для сохранения ближайших ложных пар
  • [begin_image_id] – индекс первого изображения, используемого в тесте (по умолчанию 0)
  • [end_image_id] – индекс первого изображения после begin_image_id, не используемого в тесте (по умолчанию используются все начиная с begin_image_id до конца файла)
  • [use_cpu_cores_count] – количество используемых ядер для теста (по умолчанию 1)
  • FILES – файл(ы) с шаблонами (результаты c шага процессинга)

Примечание: пробная лицензия позволяет запустить тест только при [use_cpu_cores_count] 1.

Пример запуска из каталога bin:

./test_sdk \
--mode recognition_test_11 \
--dll_path ../lib/libfacerec.so \
--sdk_config_dir ../conf/facerec \
--dataset_config dataset_config.txt \
--recognizer_config method6v7_recognizer.xml \
--result_roc_file ./roc11_6v7.txt \
--result_closest_mismatches_file ./closest_mismatches_file.txt \
templates_6v7.bin

Результаты теста:

  • result_roc_file – текстовый файл с ROC-кривой; строка файла описывает точку кривой в формате: <far> <tar> <distance>
  • result_closest_mismatches_file – текстовый файл со строками вида: <distance> <image_id1> <image_id2> <path_to_image1> <path_to_image2>. Этот файл содержит пары изображений, размеченных как принадлежащие разным людям, но имеющие минимальное расстояние между шаблонами. Рекомендуется сгенерировать этот файл с лучшим распознавателем и просмотреть изображения из первых записей, чтобы проверить ошибки разметки набора данных.
Построение ROC-кривой

Для построения ROC кривой необходимо запустить утилиту draw_roc_curves (см. Построение ROC-кривой)

Тест распознавания 1:N

В этом режиме программа выполняет тест распознавания 1:N, используя шаблоны, сгенерированные на изображениях из промежутка [begin_image_id, end_image_id).

ВНИМАНИЕ

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

Параметры запуска:

  • mode – режим программы (recognition_test_1N)
  • dll_path – путь до файла библиотеки libfacerec.so или facerec.dll
  • sdk_config_dir – путь до каталога conf/facerec
  • dataset_config – конфигурационный файл базы изображений (см. Создание конфигурационного файла)
  • recognizer_config – имя конфигурационного файла распознавателя
  • result_roc_file – файл для сохранения ROC-кривой
  • [begin_image_id] – индекс первого изображения, используемого в тесте (по умолчанию 0)
  • [end_image_id] – индекс первого изображения после begin_image_id, не используемого в тесте (по умолчанию используются все начиная с begin_image_id до конца файла)
  • [use_cpu_cores_count] – количество используемых ядер для теста (по умолчанию 1)
  • [acceleration] – тип ускорения поиска (по умолчанию 0):
    • 0 – поиск с помощью pbio::Recognizer::search с типом ускорения pbio::Recognizer::SearchAccelerationType::NO_SEARCH_ACCELERATION
    • 1 – поиск с помощью pbio::Recognizer::search с типом ускорения pbio::Recognizer::SearchAccelerationType::SEARCH_ACCELERATION_1
    • -1 – поиск с помощью pbio::Recognizer::verifyMatch в один поток (не зависит от search_threads_count)
  • FILES – файл(ы) с шаблонами (результаты c шага процессинга)

Примечание: пробная лицензия позволяет запустить тест только при [use_cpu_cores_count] 1. Кроме того, может потребоваться указать такое значение параметра [end_image_id], при котором "gallery_templates size" не превышает 1000 (выводится в консоль после запуска теста).

Пример запуска из каталога bin:

./test_sdk \
--mode recognition_test_1N \
--dll_path ../lib/libfacerec.so \
--sdk_config_dir ../conf/facerec \
--dataset_config dataset_config.txt \
--recognizer_config method6v7_recognizer.xml \
--result_roc_file ./roc1N_6v7.txt \
--acceleration 1 \
templates_6v7.bin

Результат теста: текстовый файл с ROC-кривой; строка файла описывает точку кривой в формате: <far> <tar> <distance>

Построение ROC-кривой

Для построения ROC кривой необходимо запустить утилиту draw_roc_curves (см. Построение ROC-кривой)

Тест скорости поиска

В этом режиме программа выполняет тест скорости поиска, используя шаблоны, которые были сгенерированы в режиме processing или с помощью утилиты (см. Генератор шаблонов).

Параметры запуска:

  • mode – режим программы (search_speed_test)
  • dll_path – путь до файла библиотеки libfacerec.so или facerec.dll
  • sdk_config_dir – путь до каталога conf/facerec
  • recognizer_config – имя конфигурационного файла распознавателя
  • [templates_count] – количество используемых шаблонов (по умолчанию обработка выполняется до конца файла)
  • [queries_count] – количество запросов (по умолчанию 1)
  • [query_k_nearest] – количество ближайших шаблонов для поиска (по умолчанию 1)
  • [search_threads_count] – количество потоков, используемых во время поиска (по умолчанию 1)
  • [acceleration] – тип ускорения поиска (по умолчанию 0):
    • 0 – поиск с помощью pbio::Recognizer::search с типом ускорения pbio::Recognizer::SearchAccelerationType::NO_SEARCH_ACCELERATION
    • 1 – поиск с помощью pbio::Recognizer::search с типом ускорения pbio::Recognizer::SearchAccelerationType::SEARCH_ACCELERATION_1
    • -1 – поиск с помощью pbio::Recognizer::verifyMatch в один поток (не зависит от search_threads_count)
  • FILES – файл(ы) с шаблонами, полученными из режима processing или с помощью утилиты

Примечание: если используется пробная лицензия, значение параметра [templates_count] не может превышать 1000.

Пример запуска из каталога bin:

./test_sdk \
--mode search_speed_test \
--dll_path ../lib/libfacerec.so \
--sdk_config_dir ../conf/facerec \
--recognizer_config method6v7_recognizer.xml \
templates_6v7.bin

Результаты теста: сообщение с результатами тестирования

Утилиты

Генератор шаблонов

Утилита для создания случайных шаблонов.

Параметры запуска:

  • recognizer_version – версия распознавателя (необходимо выбрать одну из [11v1000, 10v30, 10v100, 10v1000, 9v30, 9v300, 9v1000, 8v7, 8v6, 7v7, 7v6, 7v3, 7v2, 7, 6v7, 6v6, 6v5, 6v4, 6v3, 6v2, 6])
  • templates_count – генерируемое количество шаблонов
  • result_file – бинарный файл, в который сохраняются сгенерированные шаблоны

Пример запуска:

./template_generator \
6v7 \
100000 \
random_templates.bin

Результаты работы утилиты: бинарный файл со случайными шаблонами, такого же формата, как и в режиме processing

Исходный код: examples/cpp/test_sdk

Построение ROC-кривой

Утилита для построения ROC-кривой по полному набору точек.

ВНИМАНИЕ
  • Перед запуском программы, необходимо установить пакет matplotlib:
    pip3 install matplotlib
  • Для запуска требуется версия Python 3

Параметры запуска:

  • rocs_folder – путь до папки где хранятся файлы с вычисленным набором точек для ROC кривой
  • roc_points_files – имена файлов для которых необходимо построить кривую(возможно указывать несколько файлов). Наименование файла будет отоборажаться как имя ROC-кривой на графике

Пример запуска:

python3 ./draw_roc_curves.py \
./base_roc \
roc11_11v1000.txt \
roc11_10v100.txt \
roc11_10v30.txt \
roc11_9v300.txt

Исходный код: examples/python/draw_roc_curves.py