Конфигурация
Значения всех конфигурационных параметров Image API, перечисленных в этом разделе, настраиваются в файле конфигурации ./cfg/image-api.values.yaml.
После редактирования файла сохраните его и обновите Image API в кластере с помощью команды:
./cli.sh image-api install
Основные настройки
Название поля | Описание |
image_pull_policy | Регулирует политику загрузки из registry образов контейнера для развертывания экземпляра деплоймента Image API. Доступны следующие значения поля:
|
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). Необходимые лейблы должны быть назначены нодам кластера с помощью команды:
|
Настройка детекции и распознавания лиц
В сервисах 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 |
|
body-detector |
|
age-estimator |
|
emotion-estimator |
|
gender-estimator |
|
mask-estimator |
|
face-detector-liveness-estimator |
|
verify-matcher |
|
face-detector-template-extractor |
|
quality-assessment-estimator |
|
template-extractor |
|
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