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

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/facerec
  • dll_path – путь до файла библиотеки libfacerec.so или facerec.dll
  • license_dir – путь до каталога с лицензией; укажите, если нужно изменить каталог по умолчанию license

Исходный код: demo.cpp

Для сборки требуется библиотека OpenCV.

video_recognition_demo

Программа является примером использования pbio::VideoWorker и демонстрирует трекинг и идентификацию/верификацию лиц на нескольких видеопотоках. Также она позволяет проверить работу активной (сценарной) проверки принадлежности лица реальному человеку.

Для быстрого запуска сэмпла с параметрами по умолчанию и проверки распознавания лиц на Windows:

  1. Создайте базу, которая будет использоваться при поиске лиц. Чтобы создать базу, перейдите в папку bin/base и создайте новую папку, например, person0. Поместите в папку фотографию человека, которого нужно найти в базе, а также создайте файл name.txt, который должен находиться в этой же папке и содержать имя человека, написанное латиницей в одну строку.

Содержимое папки bin/base/person0

  1. Зайдите в папку 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

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

Результат запуска C++ video_recognition_demo

Также Вы можете запустить сэмпл video_recognition_demo, указав определенные параметры (например, в случае, если у вас есть онлайн-лицензия).

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

  • один или несколько источников, каждый источник - это число (номер вебкамеры) либо текст (URL видеопотока либо путь до видеофайла);
  • и далее в произвольном порядке именованные параметры:
    • config_dir – путь до каталога conf/facerec
    • dll_path – путь до файла библиотеки libfacerec.so или facerec.dll
    • database_dir – путь до каталога с базой, в котором для каждого человека создан каталог, содержащий его фотографии и текстовый файл name.txt, содержащий его имя латиницей. Пример базы находится в bin/base
    • frame_fps_limit – ограничение FPS
    • fullscreen – полноэкранный режим
    • license_dir – путь до каталога с лицензией (укажите, если нужно изменить каталог по умолчанию license)
    • vw_config_file – имя конфигурационного файла VideoWorker
    • method_config – имя конфигурационного файла распознавателя
    • recognition_far_threshold – порог распознавания (вещественное число)
    • enable_active_liveness – включить активную (сценарную) проверку принадлежности лица реальному человеку (liveness)

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

  • Linux:

    • demo_web_m_last_v30.sh – запуск методом 9.30 с вебкамеры 0
    • demo_web_m_last_v300.sh – запуск методом 9.300 с вебкамеры 0
    • demo_web_m_last_v1000.sh – запуск методом 9.1000 с вебкамеры 0
    • demo_web_m6v7.sh – запуск методом 6.7 с вебкамеры 0
    • demo_web_active_liveness_v30.sh – запуск с включенной активной (сценарной) проверкой liveness, методом 9.30 с вебкамеры 0
  • Windows:

    • demo_web_m_last_v30.bat – запуск методом 9.30 с вебкамеры 0
    • demo_web_m_last_v300.bat – запуск методом 9.300 с вебкамеры 0
    • demo_web_m_last_v1000.bat – запуск методом 9.1000 с вебкамеры 0
    • demo_web_m6v7.bat – запуск методом 6.7 с вебкамеры 0
    • demo_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 identify set1 set1/list.txt templates.bin
  • Windows: test_identify facerec.dll ../conf/facerec method9v300_recognizer.xml identify set1 set1/list.txt templates.bin

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

  • Linux: ./test_identify ../lib/libfacerec.so ../conf/facerec method9v300_recognizer.xml enroll set2/01100.jpg templates.bin
  • Windows: test_identify facerec.dll ../conf/facerec method9v300_recognizer.xml enroll 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.