C++ сэмплы
Каталог bin содержит исполняемые файлы сэмплов:
- demo – пример трекинга лиц и оценки лица
- video_recognition_demo – пример идентификации/верификации лиц на видеопотоке с камеры
- 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 – эмоции
- masked face – определение наличия маски на лице
- eyes openness – проверка, закрыты или открыты глаза
Результат запуска demo.exe
В консоли отображаются сообщения об ошибках при их возникновении.
Также Вы можете запустить сэмпл demo.exe
, указав определенные параметры (например, в случае, если у вас есть онлайн-лицензия). Параметры запуска:
capturer_conf
– путь до конфигурационного файла детектора (подробнее о типах конфигурационных файлов см. Класс Capturer)config_dir
– путь до каталога conf/facerecdll_path
– путь до файла библиотекиlibfacerec.so
илиfacerec.dll
license_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.dll
database_dir
– путь до каталога с базой, в котором для каждого человека создан каталог, содержащий его фотографии и текстовый файлname.txt
, содержащий его имя латиницей. Пример базы находится в bin/baseframe_fps_limit
– ограничение FPSfullscreen
– полноэкранный режимlicense_dir
– путь до каталога с лицензией (укажите, если нужно изменить каталог по умолчаниюlicense
)vw_config_file
– имя конфигурационного файлаVideoWorker
method_config
– имя конфигурационного файла распознавателяrecognition_distance_threshold
– порог распознавания (вещественное число)enable_active_liveness
– включить активную (сценарную) проверку принадлежности лица реальному человеку (liveness)
Примеры скриптов запуска:
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 с вебкамеры 0demo_web_active_liveness_v30.sh
– запуск с включенной активной (сценарной) проверкой liveness, методом 9.30 с вебкамеры 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 с вебкамеры 0demo_web_active_liveness_v30.bat
– запуск с включенной активной (сценарной) проверкой liveness, методом 9.30 с вебкамеры 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.