C++ сэмплы
Каталог bin содержит исполняемые файлы сэмплов:
- demo – пример трекинга лиц и оценки лица
- video_recognition_demo – пример использования
pbio::VideoWorker - test_calibration – пример калибровки камеры
- test_filecap – пример детекции лиц, сохранения и загрузки сэмлов
- test_facecut – пример детекции и обрезки лиц, а также оценки качества изображения лица, пола и возраста
- test_identify – пример создания, сохранения, загрузки и сравнения шаблонов
- test_videocap – пример трекинга лиц и оценки принадлежности лица реальному человеку
demo
Программа демонстрирует трекинг, детекцию и обрезку лиц, определение антропометрических точек и углов, а также оценку качества лица, определение пола и возраста, эмоций, принадлежности лица живому человеку (анализ цветного изображения с камеры).
Для быстрого запуска сэмпла с параметрами по умолчанию на Windows зайдите в папку bin и двойным левым щелчком мыши запустите программу demo.exe.

Расположение C++ demo
В левой части окна программы расположены компоненты Face SDK, которые можно включать/выключать левым щелчком мыши:
- rectangles – ограничивающий прямоугольник лица
- angles – углы поворота головы
- quality – качество изображения
- liveness – принадлежность лица реальному человеку
- age and gender – возраст и пол
- base cut, full cut, token cut – тип обрезки лица (базовый, полный фронтальный ТИЛ, условно-фронтальный ТИЛ)
- points – антропометрические точки
- face quality – качество изображения лица
- angles vectors – векторы углов
- emotions – эмоции

Результат запуска demo.exe
В консоли отображаются сообщения об ошибках при их возникновении.
Также Вы можете запустить сэмпл demo.exe, указав определенные параметры (например, в случае, если у вас есть онлайн-лицензия). Параметры запуска:
capturer_conf– путь до конфигурационного файла детектора (подробнее о типах конфигурационных файлов см. Класс Capturer)config_dir– путь до каталога conf/facerecdll_path– путь до файла библиотекиlibfacerec.soилиfacerec.dlllicense_dir– путь до каталога с лицензией; укажите, если нужно изменить каталог по умолчаниюlicense
Исходный код: demo.cpp
Для сборки требуется библиотека OpenCV.
video_recognition_demo
Программа является примером использования pbio::VideoWorker и демонстрирует трекинг и идентификацию лиц на нескольких видеопотоках.
Для быстрого запуска сэмпла с параметрами по умолчанию и проверки распознавания лиц на Windows:
- Создайте базу, которая будет использоваться при поиске лиц. Чтобы создать базу, перейдите в папку bin/base и создайте новую папку, например, person0. Поместите в папку фотографию человека, которого нужно найти в базе, а также создайте файл
name.txt, который должен находиться в этой же папке и содержать имя человека латинскими буквами.

Содержимое папки bin/base/person0
- Зайдите в папку bin и двойным левым щелчком мыши запустите скрипт
demo_web_m_last_v30.bat,demo_web_m_last_v300.bat,demo_web_m_last_v1000.batилиdemo_web_m6v7.bat. Не имеет принципиального значения, каким скриптом Вы запускаете данный сэмпл, поскольку они различаются только методом распознавания (9.30, 9.300, 9.1000 и 6.7 соответственно, более подробную информацию о методах см. в пункте Идентификация лиц).

Расположение C++ video_recognition_demo
- Результаты трекинга и идентификации отображаются в окнах (по одному на каждый источник). Найденные лица выделяются зеленым кругом. В правой верхней части окна отображаются результаты распознавания: слева – найденное лицо на видео, справа – лицо из базы и имя.

Результат запуска C++ video_recognition_demo
Также Вы можете запустить сэмпл video_recognition_demo, указав определенные параметры (например, в случае, если у вас есть онлайн-лицензия).
Параметры запуска:
- один или несколько источников, каждый источник - это число (номер вебкамеры) либо текст (URL видеопотока либо путь до видеофайла);
- и далее в произвольном порядке именованные параметры:
config_dir– путь до каталога conf/facerecdll_path– путь до файла библиотекиlibfacerec.soилиfacerec.dlldatabase_dir– путь до каталога с базой, в котором для каждого человека создан каталог, содержащий его фотографии и текстовый файлname.txt, содержащий его имя латиницей. Пример базы находится в bin/baseframe_fps_limit– ограничение FPSfullscreen– полноэкранный режимlicense_dir– путь до каталога с лицензией (укажите, если нужно изменить каталог по умолчаниюlicense)vw_config_file– имя конфигурационного файлаVideoWorkermethod_config– имя конфигурационного файла распознавателяrecognition_distance_threshold– порог распознавания (вещественное число)
Примеры скриптов запуска:
Linux:
demo_web_m_last_v30.sh– запуск методом 9.30 с вебкамеры 0demo_web_m_last_v300.sh– запуск методом 9.300 с вебкамеры 0demo_web_m_last_v1000.sh– запуск методом 9.1000 с вебкамеры 0demo_web_m6v7.sh– запуск методом 6.7 с вебкамеры 0
Windows:
demo_web_m_last_v30.bat– запуск методом 9.30 с вебкамеры 0demo_web_m_last_v300.bat– запуск методом 9.300 с вебкамеры 0demo_web_m_last_v1000.bat– запуск методом 9.1000 с вебкамеры 0demo_web_m6v7.bat– запуск методом 6.7 с вебкамеры 0
В консоли отображается статус загрузки базы и сообщения об ошибках при их возникновении.
Исходный код: examples/cpp/video_recognition_demo
Для сборки требуются библиотеки OpenCV и boost.
test_calibration
Программа для калибровки камеры, пример использования объекта pbio::CameraCalibrator.
Программа работает в двух режимах:
calibrate– провести процесс калибровкиview– просмотреть результат коррекции дисторции по результатам калибровки
Параметры запуска в режиме calibrate:
- путь до файла библиотеки
libfacerec.soилиfacerec.dll - путь до каталога conf/facerec
- id вебкамеры или url видеопотока
- желаемая ширина кадра
- желаемая высота кадра
calibrate- тип калибровочного шаблона (
acircles,circlesилиchessboard) - ширина калибровочного шаблона
- высота калибровочного шаблона
- путь до файла, в котором нужно сохранить откалиброванные параметры
Пример запуска из каталога bin в режиме calibrate:
- Linux:
./test_calibration ../lib/libfacerec.so ../conf/facerec/ 0 640 480 calibrate acircles 4 11 ./camparam.bin - Windows:
test_calibration facerec.dll ../conf/facerec/ 0 640 480 calibrate acircles 4 11 ./camparam.bin
Для проведения калибровки необходимо распечатать калибровочный шаблон (см. Калибровка камеры и коррекция дисторсии) и закрепить его на плоской поверхности, желательно черной. Рекомендуется использовать шаблон asymmetric circles grid. Затем перемещайте калибровочный шаблон или камеру, чтобы снять шаблон в различных позах и ориентациях. Программа выводит оценку покрытия пространства позиций и ориентаций шаблонов и выдает подсказку необходимой позиции шаблона. Затем нажмите клавишу с для калибровки. Это может занять около минуты, в это время работа программы приостанавливается.
В случае успешной калибровки программа выведет ошибку репроекции и выполнит коррекцию дисторсии кадров. Используйте клавиши q и w для изменения параметра коррекции дисторсии alpha. Нажмите клавишу s для сохранения откалиброванных параметров или снимите больше кадров и выполните калибровку ещё раз.
Параметры запуска в режиме view:
- путь до файла библиотеки
libfacerec.soилиfacerec.dll - путь до каталога conf/facerec
- id вебкамеры или url видеопотока
- желаемая ширина кадра
- желаемая высота кадра
view- путь до файла, в котором были сохранены откалиброванные параметры
Пример запуска из каталога bin в режиме view:
- Linux:
./test_calibration ../lib/libfacerec.so ../conf/facerec/ 0 640 480 view ./camparam.bin - Windows:
test_calibration facerec.dll ../conf/facerec/ 0 640 480 view ./camparam.bin
Используйте клавиши q и w для изменения параметра корректировки дисторсии alpha.
Исходный код: test_calibration.cpp
Для сборки требуется библиотека OpenCV.
test_filecap
Программа демонстрирует детекцию лиц, сохранение и загрузку pbio::RawSample.
Параметры запуска:
- путь до файла библиотеки
libfacerec.soилиfacerec.dll - путь до каталога conf/facerec
- имя конфигурационного файла детектора
- пути до входных изображений
Пример запуска из каталога bin:
- Linux:
./test_filecap ../lib/libfacerec.so ../conf/facerec common_capturer4.xml set1/01100.jpg - Windows:
test_filecap facerec.dll ../conf/facerec common_capturer4.xml set1/01100.jpg
Результат детекции лиц на изображении отображается в окне. В консоли отображаются координаты и ориентации найденных лиц, а также пути, по которым сохраняются сэмплы. Сообщения об ошибках в случае их возникновения также отображаются в консоли.
Исходный код: test_filecap.cpp
Для сборки требуется библиотека OpenCV.
test_facecut
Программа демонстрирует детекцию и обрезку лиц, а также оценку качества изображения, пола и возраста.
Параметры запуска:
- путь до файла библиотеки
libfacerec.soилиfacerec.dll - путь до каталога conf/facerec
- пути до входных изображений
Пример запуска из каталога bin:
- Linux:
./test_facecut ../lib/libfacerec.so ../conf/facerec set1/01100.jpg - Windows:
test_facecut facerec.dll ../conf/facerec set1/01100.jpg
Результаты детекции, координаты найденных лиц, определенное качество, эмоции, пол и возраст, а также пути, по которым сохраняются обрезанные изображения, отображаются в консоли. Сообщения об ошибках в случае их возникновения также отображаются в консоли.
Исходный код: test_facecut.cpp
Для сборки не требуется дополнительных библиотек.
test_identify
Программа демонстрирует создание, сохранение, загрузку и сравнение шаблонов.
Программа работает в трех режимах:
- enrollment – детекция лиц и создание шаблонов по группе изображений и сохранение полученных шаблонов в файл
- identifying – детекция лица на одном изображении, создание шаблона и сравнение полученного шаблона с группой шаблонов, созданных в режиме enrollment
- verify – детекция лиц и создание шаблонов на паре изображений и сравнение полученных двух шаблонов
Параметры запуска в режиме enrollment:
- путь до файла библиотеки
libfacerec.soилиfacerec.dll - путь до каталога conf/facerec
- имя конфигурационного файла распознавателя
enroll- путь до каталога с изображениями (например каталог bin/set1)
- путь до текстового файла содержащего списк имен файлов изображений (например bin/set1/list.txt)
- путь для сохранения шаблонов в файл
Параметры запуска в режиме identifying:
- путь до файла библиотеки
libfacerec.soилиfacerec.dll - путь до каталога conf/facerec
- имя конфигурационного файла распознавателя
identify- путь до файла изображения
- путь до файла с шаблонами, созданного в режиме
enrollment
Параметры запуска в режиме verify:
- путь до файла библиотеки
libfacerec.soилиfacerec.dll - путь до каталога conf/facerec
- имя конфигурационного файла распознавателя
verify- путь до первого файла изображения
- путь до второго файла изображения
Пример запуска из каталога bin в режиме identifying:
- Linux:
./test_identify ../lib/libfacerec.so ../conf/facerec method9v300_recognizer.xml enroll set1 set1/list.txt templates.bin - Windows:
test_identify facerec.dll ../conf/facerec method9v300_recognizer.xml enroll set1 set1/list.txt templates.bin
Пример запуска из каталога bin в режиме enrollment:
- Linux:
./test_identify ../lib/libfacerec.so ../conf/facerec method9v300_recognizer.xml identify set2/01100.jpg templates.bin - Windows:
test_identify facerec.dll ../conf/facerec method9v300_recognizer.xml identify set2/01100.jpg templates.bin
Пример запуска из каталога bin в режиме verify:
- Linux:
./test_identify ../lib/libfacerec.so ../conf/facerec method9v300_recognizer.xml verify set1/01100.jpg set2/01100.jpg - Windows:
test_identify facerec.dll ../conf/facerec method9v300_recognizer.xml verify set1/01100.jpg set2/01100.jpg
Статус обработки, результаты сравнений и сообщения об ошибках (в случае их возникновения) отображаются в консоли.
Исходный код: test_identify.cpp
Для сборки не требуется дополнительных библиотек.
test_videocap
Программа демонстрирует трекинг лиц и оценку принадлежности лица реальному человеку.
Параметры запуска:
- путь до файла библиотеки
libfacerec.soилиfacerec.dll - путь до каталога conf/facerec
Пример запуска из каталога bin:
- Linux:
./test_videocap ../lib/libfacerec.so ../conf/facerec - Windows:
test_videocap facerec.dll ../conf/facerec
Результаты трекинга и определения принадлежности лица реальному человеку отображаются в окне. Сообщения об ошибках в случае их возникновения также отображаются в консоли.
Исходный код: test_videocap.cpp
Для сборки требуется библиотека OpenCV.