Перейти к основному содержимому
Version: 3.16.1 (последняя)

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

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

  • 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

Последнее обновление