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

Конфигурация

Значения всех конфигурационных параметров Image API, перечисленных в этом разделе, настраиваются в файле конфигурации ./cfg/image-api.values.yaml.

ВНИМАНИЕ!

После редактирования файла сохраните его и обновите Image API в кластере с помощью команды:

./cli.sh image-api install

Основные настройки

Название поляОписание
image_pull_policyРегулирует политику загрузки из registry образов контейнера для развертывания экземпляра деплоймента Image API.

Доступны следующие значения поля:

  • Always - kubelet (агент узлов в Kubernetes) выполняет загрузку образа из registry.
  • Never - загрузка образа из registry не предусмотрена. Если образ уже присутствует локально, kubelet попытается выполнить запуск контейнера, в противном случае, произойдет сбой загрузки.
  • IfNotPresent - образ загружается только в случае, если отсутствует локально.
processing.services[*].configs[*].use_avx2Использование набора команд AVX2 позволяет ускорить работу рекогнайзеров.
processing.services[*].configs[*].use_cudaОпределяет использование видеокарты сервисом. Доступно в сервисе face-detector-template-extractor.
processing.services.[*].replicasЗначение реплик сервиса.
processing.services[*].configs[*].downscale_ rawsamples_to_preferred_sizeПри включенном поле все сэмплы уменьшаются до предпочтительного размера в целях уменьшения потребления памяти, при этом происходит снижение производительности. Рекомендуется оставить поле отключенным.
processing.enable_ingressВключить проксирование на сервисы image-api через ingress.
processing.enable_resource_managementВключить использования управления ресурсами под (pods) в кластере.
processing.enable_hpaВключить Horizontal Pod Autoscaler для деплойментов. Необходим установленный metric-server.
processing.enable_node_selectorАктивировать использование обозначенных nodeSelector’ов в подах (pods). Необходимые лейблы должны быть назначены нодам кластера с помощью команды:
kubectl label nodes <node_name> type=<type>
  • "type": "processing" - нода для вычислений
  • "type": "generic" - обычная нода

Настройка детекции и распознавания лиц

В сервисах Image API используется набор объектов конфигурации, в которых реализована функциональность Face SDK - набора библиотек для разработки решений по распознаванию лиц:

  • capturer: детекция лиц
  • recognizer: сравнение лиц

Выполнить настройку объекта конфигурации можно в блоке конкретного сервиса в атрибуте configs.

У объекта конфигурации определено 2 поля:

  • name - имя файла конфигурации Face SDK.
  • params - параметры, которые необходимо переопеределить в этой конфигурации.
Настройка детекции
  • processing.services[*].configs[*].capturer.name

В значении поля указывается название файла конфигурации выбранного детектора лиц. При установке Image API по умолчанию используется common_capturer_uld_fda.xml (Файл конфигурации детектора ULD, который может выполнять детекцию лиц разного размера, в том числе лиц в масках).

Этот файл конфигурации можно заменить на другой, специально настроенный под один из сценариев использования: безопасный город, удаленную идентификацию, СКУД (кооперативное / некооперативное распознавание).

Более подробно о детекторах и файлах конфигурации смотрите в документации 3DiVi Face SDK.

примечание

Во всех сервисах, использующих объект capturer, должен быть указан один и тот же файл конфигурации детектора.

Настройка распознавания
  • processing.services[*].configs[*].recognizer.name

В значении поля указывается название файла конфигурации рекогнайзера лиц. В каждом рекогнайзере применяется определенный метод распознавания. Всего в Face SDK предусмотрено несколько методов распознавания, отличающихся по характеристикам качества распознавания и времени работы.

Для Image API можно указать следующие файлы конфигурации рекогнайзеров:

  • method11v1000_recognizer.xml
  • method12v30_recognizer.xml
  • method12v50_recognizer.xml
  • method12v100_recognizer.xml
  • method12v1000_recognizer.xml

Более подробно о рекогнайзерах, методах распознавания и файлах конфигурации рекогнайзеров смотрите в документации 3DiVi Face SDK.

примечание

Во всех сервисах, использующих объект recognizer, должен быть указан один и тот же файл конфигурации рекогнайзера.

Настройка модулей

Модуль - это вариант реализации конкретного сервиса Image API. Например, для сервиса face-detector-liveness-estimator доступны три модуля на выбор:

  • liveness-anti-spoofing
  • quality-liveness-anti-spoofing
  • face-detector-liveness-estimator

Модули liveness-anti-spoofing и face-detector-liveness-estimator отличаются друг от друга алгоритмами определения liveness. В модуле quality-liveness-anti-spoofing дополнительно перед расчётом liveness выполняется оценка качества изображения, при этом порог качества (threshold) (значение по умолчанию - 30) позволяет исключить из пайплайна обработки изображения с недостаточным качеством.

Для смены модуля найдите в файле ./cfg/image-api.values.yaml конфиг интересующего сервиса в processing.services и поменяйте в нем значение поля module.

Пример конфига сервиса quality-assessment-estimator:

quality-assessment-estimator:
…………
module: quality-assessment-estimator
…………

Перечень доступных модулей для каждого сервиса Image API:

СервисМодули
face-detector-face-fitter
  • face-detector-face-fitter - стандартный модуль
body-detector
  • body-detector - стандартный модуль
age-estimator
  • age-estimator - стандартный модуль
emotion-estimator
  • emotion-estimator - стандартный модуль
gender-estimator
  • gender-estimator - стандартный модуль
mask-estimator
  • mask-estimator - стандартный модуль
face-detector-liveness-estimator
  • face-detector-liveness-estimator - стандартный модуль
  • liveness-anti-spoofing - более медленный, но более точный модуль
  • quality-liveness-anti-spoofing - модуль liveness-anti-spoofing с дополнительной проверкой качества перед вычислением liveness
verify-matcher
  • verify-matcher - стандартный модуль
face-detector-template-extractor
  • face-detector-template-extractor - стандартный модуль
quality-assessment-estimator
  • quality-assessment-estimator - стандартный модуль
template-extractor
  • template-extractor - стандартный модуль
liveness-estimator
  • liveness-estimator - стандартный модуль

Масштабирование

В случае, когда нагрузка возрастает, для стабилизации работы Image API предусмотрено масштабирование деплойментов, описанных в пункте Установка Image API в кластер в ручном режиме:

Для масштабирования установленного релиза необходимо выполнить следующую команду:

kubectl scale deployment <deployment_name> --replicas <count>

где <deployment_name> - наименование деплоймента (например, face-detector-face-fitter-dep), а <count> - количество реплик деплоймента (pods).

Для сохранения состояния масштабирования необходимо установить значение replicas под ключом интересующего сервиса в processing.services в файле ./cfg/image-api.values.yaml и перезапустить развертывание командой:

./cli.sh image-api install