Параметры производительности
В данном пункте используются следующие сокращения:
- FAR (false accept rate) – вероятность ложного сопоставления с объектом в базе.
- TAR (true accept rate) – вероятность корректного сопоставления с объектом в базе.
- FRR (false reject rate) – вероятность ложного отказа в доступе объекту, который есть в базе.
- IR (identification rate) – вероятность идентификации.
Характеристики детекторов
Конфигурационные файлы детекторов
Нажмите, чтобы отобразить перечень конфигурационных файлов и их описание
Файл | Детектор | Набор точек | Углы (roll/yaw/pitch) | Описание и применение |
common_capturer4_fda.xml | lbf | fda | [-30;30][-60;60][-60;60] | Детектор фронтальных лиц. |
common_capturer4_fda_with_angles.xml | lbf | fda | [-90;90][-60;60][-60;60] | Детектор фронтальных лиц. Адаптирован под работу с большим диапазоном углов поворота головы. |
common_capturer4_fda_with_angles_noise.xml | lbf | fda | [-90;90][-60;60][-60;60] | Детектор фронтальных лиц. Адаптирован под работу с большим диапазоном углов поворота головы. Подходит для изображений с высоким уровнем шума. |
common_capturer4_fda_singleface.xml | lbf | fda | [-30;30][-60;60][-60;60] | Детектируется только одно фронтальное лицо. |
common_capturer4_fda_singleface_with_angles.xml | lbf | fda | [-90;90][-75;75][-60;60] | Детектируется только одно фронтальное лицо. Детектор адаптирован под работу с большим диапазоном углов поворота головы. |
common_capturer4_fda_singleface_with_angles_noise.xml | lbf | fda | [-90;90][-75;75][-60;60] | Детектируется только одно фронтальное лицо. Детектор адаптирован под работу с большим диапазоном углов поворота головы. Подходит для изображений с высоким уровнем шума. |
common_capturer4_lbf.xml | lbf | doublelbf | [-30;30][-60;60][-60;60] | Детектор фронтальных лиц. |
common_capturer4_lbf_singleface.xml | lbf | doublelbf | [-30;30][-60;60][-60;60] | Детектируется только одно фронтальное лицо. |
common_capturer4_mesh.xml | lbf | mesh | [-30;30][-60;60][-60;60] | Детектор фронтальных лиц. Позволяет получить 3D маску лица. |
common_capturer4_mesh_with_angles.xml | lbf | mesh | [-90;90][-60;60][-60;60] | Детектор фронтальных лиц. Адаптирован под работу с большим диапазоном углов поворота головы. Позволяет получить 3D маску лица. |
common_capturer4_mesh_with_angles_noise.xml | lbf | mesh | [-90;90][-60;60][-60;60] | Детектор фронтальных лиц. Адаптирован под работу с большим диапазоном углов поворота головы. Подходит для изображений с высоким уровнем шума. Позволяет получить 3D маску лица. |
common_capturer4_mesh_singleface.xml | lbf | mesh | [-30;30][-60;60][-60;60] | Детектируется только одно фронтальное лицо. Позволяет получить 3D маску лица. |
common_capturer4_mesh_singleface_with_angles.xml | lbf | mesh | [-90;90][-75;75][-60;60] | Детектируется только одно фронтальное лицо. Детектор адаптирован под работу с большим диапазоном углов поворота головы. Позволяет получить 3D маску лица. |
common_capturer4_mesh_singleface_with_angles_noise.xml | lbf | mesh | [-90;90][-75;75][-60;60] | Детектируется только одно фронтальное лицо. Детектор адаптирован под работу с большим диапазоном углов поворота головы. подходит для изображений с высоким уровнем шума. Позволяет получить 3D маску лица. |
common_capturer_blf_fda_front.xml | blf | fda | [-70;70][-90;90][-70;70] | Детекция крупных изображений лиц (т.е. лицо занимает большую часть кадра). Подходит для детекции лиц в масках. |
common_capturer_blf_fda_back.xml | blf | fda | [-70;70][-90;90][-70;70] | Детекция нескольких лиц, либо небольших изображений лица. Подходит для детекции лиц в масках. |
common_capturer_blf_fda_auto.xml | blf | fda | [-70;70][-90;90][-70;70] | Детекция лиц разного размера (требуется указать в конфигурационном файле параметры `resolution_width` и `min_face_size`). Подходит для детекции лиц в масках. |
common_capturer_refa_fda_a.xml | refa | fda | [-70;70][-90;90][-70;70] | Детектор лиц, рекомендуемый для использования в экспертных системах. Обеспечивает детекцию лиц с наибольшим покрытием углов поворота и максимальным качеством (в т.ч. в масках). |
common_capturer_uld_fda.xml | uld | fda | [-70;70][-90;90][-70;70] | Детекция лиц разного размера. Подходит для детекции лиц в масках. |
common_video_capturer_fda.xml | lbf | fda | [-30;30][-60;60][-60;60] | Видеотрекер фронтальных лиц (работает только с цветными изображениями). |
common_video_capturer_lbf.xml | lbf | singlelbf | [-30;30][-60;60][-60;60] | Видеотрекер фронтальных лиц (работает только с цветными изображениями). |
common_video_capturer_mesh.xml | lbf | mesh | [-30;30][-60;60][-60;60] | Видеотрекер фронтальных лиц (работает только с цветными изображениями). Позволяет получить 3D маску лица. |
fda_tracker_capturer.xml | lbf | fda | [-30;30][-60;60][-60;60] | Видеотрекер фронтальных лиц. |
fda_tracker_capturer.w.xml | lbf | fda | [-30;30][-60;60][-60;60] | Видеотрекер фронтальных лиц. Предназначен для детекции лиц при низком качестве освещения. Вероятность ложных детекций при этом немного выше. |
fda_tracker_capturer_mesh.xml | lbf | fda | [-30;30][-60;60][-60;60] | Видеотрекер фронтальных лиц. Позволяет получить 3D маску лица. |
fda_tracker_capturer_fake_detector.xml | lbf | fda | [-30;30][-60;60][-60;60] | Детекция происходит быстрее за счет работы одного фиттера (без детектора). Работает только на лицах, занимающих большую часть изображения. |
fda_tracker_capturer_blf.xml | blf | fda | [-30;30][-60;60][-60;60] | Видеотрекер фронтальных лиц. Подходит для детекции лиц в масках. |
fda_tracker_capturer_refa_a.xml | refa | fda | [-70;70][-90;90][-70;70] | Видеотрекер фронтальных лиц. Предназначен для использования в экспертных системах. Обеспечивает детекцию лиц с наибольшим покрытием углов поворота и максимальным качеством (в т.ч. в масках). |
fda_tracker_capturer_uld_fda.xml | uld | fda | [-70;70][-90;90][-70;70] | Видеотрекер фронтальных лиц. Позволяет детектировать лица разного размера. Подходит для детекции лиц в масках. |
manual_capturer_fda.xml | lbf | fda | [-30;30][-60;60][-60;60] | Требует указания точек глаз вручную. На основании точек глаз рассчитываются остальные точки на лице. |
manual_capturer_mesh.xml | lbf | mesh | [-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.xml | 13 | 25 | 34 | 49 | 81 | 103 |
common_capturer4_fda_with_angles.xml | 282 | 387 | 260 | 356 | 273 | 370 |
common_capturer4_mesh.xml | 18 | 47 | 39 | 72 | 87 | 735 |
common_capturer4_mesh_with_angles.xml | 291 | 415 | 268 | 383 | 281 | 398 |
common_capturer_blf_fda_auto.xml | 6-30 | 12-36 | 8-32 | 14-38 | 19-44 | 26-51 |
common_capturer_blf_fda_back.xml | 30 | 36 | 32 | 38 | 44 | 51 |
common_capturer_blf_fda_front.xml | 6 | 12 | 8 | 14 | 19 | 26 |
common_capturer_refa_fda_a.xml | 644 | 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.xml | 16 | - | 51 | - | 123 | - |
common_capturer4_mesh_singleface.xml | 23 | - | 58 | - | 129 | - |
GPU
Конфигурационный файл | Время детекции (мс) | |||||
---|---|---|---|---|---|---|
640x480, 1 лицо | 640x480, 4 лица | 1280x720, 1 лицо | 1280x720, 4 лица | 1920x1080, 1 лицо | 1920x1080, 4 лица | |
common_capturer_blf_fda_auto.xml | 4-5 | 10-12 | 6-8 | 13-14 | 17-20 | 24-27 |
common_capturer_blf_fda_back.xml | 5 | 12 | 8 | 14 | 20 | 27 |
common_capturer_blf_fda_front.xml | 4 | 10 | 6 | 13 | 17 | 24 |
common_capturer_refa_fda_a.xml | 236 | 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.
FAR | 8.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 для различных методов идентификации
FAR | 8.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 |
Тест производительности
Режимы:
- Детекция
- Процессинг
- Тест распознавания 1:1
- Тест распознавания 1:N
- Тест скорости поиска
- Конвертация конфигурационного файла
- Формирование конфигурационного файла
Детекция
В этом режиме программа детектирует лица в базе изображений c id в промежутке [begin_image_id, end_image_id)
. Каждое изображение должно содержать только одно лицо. Изображения, на которых будет детектировано больше одного лица, будут проигнорированы.
Параметры запуска:
mode
– режим программы (detection
)dll_path
– путь до файла библиотекиlibfacerec.so
илиfacerec.dll
sdk_config_dir
– путь до каталога conf/facerecdataset_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.txt \
Результаты детекции: текстовый файл со строками в формате: <image_id> <количество_точек> <задетектированные_точки>
Процессинг
В этом режиме программа создает шаблоны детектированных лиц, обнаруженных на изображениях с id в промежутке [begin_image_id, end_image_id)
.
Параметры запуска:
mode
– режим программы (processing
)dll_path
– путь до файла библиотекиlibfacerec.so
илиfacerec.dll
sdk_config_dir
– путь до каталога conf/facerecdataset_config
– конфигурационный файл базы изображений (см. Конвертация конфигурационного файла)dataset_root_dir
– путь до базы данныхrecognizer_config
– имя конфигурационного файла распознавателяprocessing_result_file
– файл для сохранения результирующих шаблонов[begin_image_id]
– индекс изображения, с которого начинается процессинг (по умолчанию0
)[end_image_id]
– индекс изображения, до которого осуществляется процессинг (по умолчанию обработка выполняется до конца файла)[use_cpu_cores_count]
– количество используемых ядер для процессинга (по умолчанию1
)FILES
– файл(ы) хранящие результат детекции
Пример запуска из каталога 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.txt
Результаты процессинга: бинарный файл, содержащий по одной записи на шаблон; каждая запись содержит 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/facerecdataset_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 шага процессинга)
Пример запуска из каталога 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>
. Этот файл содержит пары изображений, размеченных как принадлежащие разным людям, но имеющие минимальное расстояние между шаблонами. Рекомендуется сгенерировать этот файл с лучшим распознавателем и просмотреть изображения из первых записей, чтобы проверить ошибки разметки набора данных.
Тест распознавания 1:N
В этом режиме программа выполняет тест распознавания 1:N, используя шаблоны, сгенерированные на изображениях из промежутка [begin_image_id, end_image_id)
.
Launch parameters:
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 шага процессинга)
Пример запуска из каталога 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>
Тест скорости поиска
В этом режиме программа выполняет тест скорости поиска, используя шаблоны, которые были сгенерированы в режиме processing
или с помощью утилиты (см. Генератор шаблонов).
Параметры запуска:
mode
– режим программы (search_speed_test
)dll_path
– путь до файла библиотекиlibfacerec.so
илиfacerec.dll
sdk_config_dir
– путь до каталога conf/facerecrecognizer_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
или с помощью утилиты
Пример запуска из каталога bin:
./test_sdk \
--mode search_speed_test \
--dll_path ../lib/libfacerec.so \
--sdk_config_dir ../conf/facerec \
--recognizer_config method6v7_recognizer.xml \
templates.bin
Результаты теста: сообщение с результатами тестирования
Конвертация конфигурационного файла
В этом режиме программа преобразовывает конфигурационный файл формата1 в формат2 (используется в остальных режимах):
- формат1 – текстовый файл со строками вида:
<path/to/person/dir/image_file>
. Изображения с одинаковыми path/to/person/dir принадлежат одному человеку. Изображения для одного человека должны идти подряд.
Пример:
person1_dir/image1
person1_dir/image2
person2_dir/image1
...
- формат2 – текстовый файл по 3 строки на одно изображение (
<person_id> <image_id> <path_to_image>
).
Пример:
person0_id
image0_id
path_to_image0
person0_id
image1_id
path_to_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
Результаты конвертации: конфигурационный файл базы изображений
Формирование конфигурационного файла
Пример создания конфигурационного файла базы данных формата1:
find -type f | sort > ../lfw_simple_format.txt
Пути в конфигурационных файлах должны располагаться относительно директории, передаваемой через параметр dataset_root_dir
Утилиты
Генератор шаблонов
Утилита для создания случайных шаблонов.
Параметры запуска:
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