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

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

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

ВНИМАНИЕ!

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

./cli.sh image-api install

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

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

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

  • Alwayskubelet (агент узлов в 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: объект, используемый для сравнения лиц.
  • block: блок обработки:
    • AGE_ESTIMATOR: блок оценки возраста.
    • EMOTION_ESTIMATOR: блок оценки эмоций.
    • GENDER_ESTIMATOR: блок оценки пола.
    • LIVENESS_ESTIMATOR: блок оценки Liveness.
    • MASK_ESTIMATOR: блок детекции маски.
    • QUALITY_ASSESSMENT_ESTIMATOR: блок оценки качества изображения.

Настроить объект и/или блок обработки можно в разделе конкретного сервиса в атрибуте configs.

Поля объекта:

  • name — имя файла конфигурации Face SDK.
  • params — параметры, которые необходимо переопеределить в этой конфигурации.

Поля блока обработки:

  • unit_type — название блока обработки, например, AGE_ESTIMATOR.
  • modification — модификация блока обработки.
  • version — версия блока обработки.

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

Настройка детекции лиц
  • 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. Например, для сервиса liveness-estimator доступны следующие модули:

  • liveness-estimator
  • spoofing-estimator

Для смены модуля найдите в файле ./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 — стандартный модуль
verify-matcher
  • verify-matcher — стандартный модуль
face-detector-template-extractor
  • face-detector-template-extractor — стандартный модуль
quality-assessment-estimator
  • quality-assessment-estimator — стандартный модуль
template-extractor
  • template-extractor — стандартный модуль
liveness-estimator
  • spoofing-estimator — стандартный модуль оценки Liveness (нацелен на точное распознавание атак)
  • liveness-estimator — модуль оценки Liveness

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

В случае когда нагрузка возрастает, для стабилизации работы 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