Перейти к содержанию

Настройка сервиса#

Самостоятельно настройте Selinux и Firewall, чтобы они не блокировали работу сервиса.

Перейдите в директорию /lunapassapi:

cd /var/lib/luna-pass/current/lunapassapi

В конфигурационные файлы lunapassapi.config.toml, lunapassvideo.config.toml, lunapassvideo.task.py внесите необходимые настройки, соответствующие актуальным параметрам LUNA SDK и представленные в Таблице 12.

Таблица 12. Параметры конфигурации LUNA PASS

Параметр

Описание

Параметры конфигурации LUNA PASS

env=

Режим:

  • development — режим отладки со всеми данными;

  • production — основной режим работы со скрытием чувствительных данных.

По умолчанию: production

host=

IP адрес, на котором будет запущен сервис.

По умолчанию: 0.0.0.0

port=

Порт, на котором будет запущен сервис.

По умолчанию: 8321

logLevel=

Уровень логирования.

Доступные значения:

  • 0 — запись только ошибок;

  • 1 — запись ошибок и информационных сообщений;

  • 2 — запись ошибок, информационных сообщений и отладочной информации

По умолчанию: 1

Параметры конфигурации FACEENGINE

sdkBindingsPath=

Путь к Python bindings.

По умолчанию: /fsdk/pythonBindings/build

sdkDataPath=

Путь к каталогу данных

По умолчанию: /fsdk/data

sdkLicensePath=

Путь к файлу лицензии.

По умолчанию: /fsdk/data/license.conf

Параметры конфигурации LUNA_PASS.JWT

algorithm=

Алгоритм шифрования успешного кадра.

По умолчанию: HS256

key=

Секрет шифрования успешного кадра.

По умолчанию: secret

Параметры конфигурации LIVENESS

maxAttempts=

Максимальное количество кадров, пришедших в рамках 1 сессии.

При превышении значения отправляется текущий кадр как есть и соединение прерывается.

В случае отсутствия значения кадры проверяются до тех пор, пока не будет успешно пройденного Liveness

По умолчанию: -1

maxLivenessAttempts=

Максимальное количество кадров, дошедших до проверки Liveness.

При превышении значения отправляется текущий кадр как есть и соединение прерывается.

В случае отсутствия значения кадры проверяются до тех пор, пока не будет успешно пройденного Liveness

По умолчанию: -1

Пороги проверки LIVENESS.THRESHOLDS

blur=

Смазанность фотоизображения

По умолчанию: 0.61

light=

Засвеченность фотоизображения

По умолчанию: 0.57

dark=

Затемненность фотоизображения

По умолчанию: 0.5

illumination=

Равномерность освещения изображения, 0 – равномерно, 1 – есть пересветы

По умолчанию: 0.1

specularity=

Наличие бликов на изображении, 0 – бликов нет, 1 – есть блики.

По умолчанию: 0.1

ags=

Прогнозная оценка того, насколько поступившее изображение подойдёт для последующего сравнения

По умолчанию: 0.8

Параметры кадра (соотношения кадра и лица)

frameMargin=

Отступ от границ кадра

По умолчанию: 10

Параметры лица

faceWidth=

Ширина рамки лица

По умолчанию: 200

faceHeight=

Высота рамки лица

По умолчанию: 200

yaw=

Поворот вокруг вертикальной оси головы

По умолчанию: 20

pitch=

Поворот вокруг поперечной оси головы

По умолчанию: 20

roll=

Поворот вокруг продольной оси головы

По умолчанию: 20

mouth=

Требуемая точность оценки статуса рта

По умолчанию: 0.4

glasses=

Наличие очков. Доступные значения:

  • GlassesEstimation.NoGlasses — очки отсутствуют;

  • GlassesEstimation.EyeGlasses — очки;

  • GlassesEstimation.SunGlasses — солнцезащитные очки;

По умолчанию: ['GlassesEstimation.NoGlasses', 'GlassesEstimation.EyeGlasses']

livenessScore=; livenessQualityScore=

Пороговые значения результата проверки OneShot Liveness, при котором человек будет считаться «живым»

По умолчанию: 0.5; 0.5

multifacePolicy=

Политика выбора лица для проверки Liveness. Доступные значения:

  • 0 — допустимо отправить только одно лицо с кадра;

  • 1 — отправляется самое крупное лицо в кадре;

  • 2 — отправляется самое близкое к центру лицо в кадре;

По умолчанию: 0

Параметры конфигурации плагинов запросов

Плагин MIDDLEWARES.REQUEST.BasicAuth

isEnabled=

BASIC авторизация

По умолчанию: 0

args.username=

Логин для Basic Auth

По умолчанию: -

args.password=

Пароль для Basic Auth

По умолчанию: -

args.origin=

ORIGIN заголовок для защиты от Cross-Site WebSocket Hijacking.

Может представлять собой ip-адрес сервера при доступе по ip-адресу или домен при доступе по доменному имени

По умолчанию: -

Плагин MIDDLEWARES.WS.FileLogger

isEnabled=

Сохраняет в файл все входящие фотографии и результаты их эстимации в рамках одной сессии

По умолчанию: 0

args.path=

Путь для сохранения файловых логов

По умолчанию: './LOGS'

Плагин MIDDLEWARES.WS.Bestshot

isEnabled=

Выбор наилучшего кадра по оценке liveness из присланных на проверку.

В качестве наилучшего кадра может использоваться только кадр, дошедщий до проверки liveness, и с оценкой качества liveness выше LIVENESS.THRESHOLDS.livenessQualityScore

По умолчанию: 0

Плагин MIDDLEWARES.WS.Luna3DescriptorQualityCheck

isEnabled

Проверка качества фотографии с заданным порогом во внешней системе LUNA PLATFORM версии 3.

Данный плагин должен располагаться после плагина bestshot в случае его использования

По умолчанию: 0

args.connectionString=

Адрес подключения к LUNA3 API

По умолчанию: <http://127.0.0.1:5000>

args.authToken=

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

По умолчанию: -

args.descriptor QualityThreshold=

Порог качества дескриптора (quality threshold)

По умолчанию: -

Плагин MIDDLEWARES.WS.AggregateLiveness

isEnabled=

Агрегация liveness по N кадрам

По умолчанию: 0

args.framesCount=

Количество кадров, по которым необходимо агрегировать

По умолчанию: 3

Плагин MIDDLEWARES.WS.ActiveLiveness

isEnabled=

Активный Liveness

По умолчанию: 0

args.cooldownFramesCount=

Минимальное количество кадров, после прохождения активного Liveness

По умолчанию: 0

args.interactionsCount=

Количество используемых взаимодействий с пользователем, максимальное количество — 5

По умолчанию: 2

args.acceptOneEyed=

Разрешить прохождение взаимодействия с пользователем с одним глазом при моргании

По умолчанию: 0

args.yawStartDeg=

Начальный угол поворота, при котором возможно начать взаимодействие на повороты головы

По умолчанию: 10

args.yawThresholdDeg=

Порог угла поворота, при котором взаимодействие на повороты головы считается выполненным

По умолчанию: 20

args.pitchStartDeg=

Начальный угол запрокидывания головы, при котором возможно начать взаимодействие на запрокидывание головы

По умолчанию: 10

args.pitchThresholdDeg=

Порог угла запрокидывания головы, при котором взаимодействие на запрокидывание головы считается выполненным

По умолчанию: 20

Плагин MIDDLEWARES.WS.Result

isEnabled=

Результирующий плагин, используется при включенных bestshot, aggregate_liveness, luna3_descriptor_quality_check или их комбинации.

На основе данных других плагинов принимает решение о результате прохождения liveness.

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

  • IDDLEWARES.WS.aggregate_liveness.framesCount — при включенном плагине aggregate_liveness;

  • LUNA_PASS.maxLivenessAttempts — при ограничении количества дошедших до этапа проверки liveness кадров.

По умолчанию: 1

MIDDLEWARES.WS.VideoRedis

isEnabled=

Плагин для отправки кадров сессии в Redis.

По умолчанию: 0

args.connectionString=

Строка подключения к Redis

По умолчанию: redis://127.0.0.1:6379

args.queueName=

Имя очереди Redis для работы с видео

По умолчанию: default

args.resultTtl=

Как долго в Redis хранится информация об успешности задач и их результатах 500s

args.failureTtl=

Как долго в Redis хранится информация о неуспешных задачах

По умолчанию: 1y

args.sessionTimeout=

Количество секунд для старта сборки видео после завершения сессии при отсутствии бестшота

По умолчанию: 300

args.workerTask=

Имя задачи, которую запустит lunapassworker при получении задачи на сборку видео

По умолчанию: task.run

args.framesLimit=

Ограничение на максимальное количество кадров в видео.

  • При значении 0 ограничение не применяется.

  • При значениях больше 0 для видео берётся последние n кадров

По умолчанию: 0

* Пути указаны из директории LUNA SDK.

Установка зависимостей#

Установка зависимостей LUNA PASS API при наличии доступа в Интернет#

Для корректной установки зависимостей сервиса в системе должны быть установлены пакеты gcc, python3-devel.

Перейдите в директорию /lunapassapi.

Установите системные пакеты, если они ещё не установлены:

yum install -y gcc python3-devel

Выполните следующие действия.

1․ Перейдите в директорию модуля:

cd /var/lib/luna-pass/current/lunapassapi

2․ Создайте виртуальное окружение:

python3.9 -m venv venv

3․ Активируйте виртуальное окружение:

source venv/bin/activate

4․ Запустите установку зависимостей Python:

pip3.6 install -r requirements.txt

5․ Деактивируйте виртуальную среду:

deactivate

Установка зависимостей LUNA PASS API при отсутствии доступа в Интернет#

Предварительно на машине с доступом в Интернет необходимо скачать необходимые для работы сервиса пакеты под целевую платформу, где будет разворачиваться сервис.

Все действия проводятся в директории /lunapassapi.

1․ Создайте виртуальное окружение:

python3.9 -m venv venv

2․ Активируйте виртуальное окружение:

source venv/bin/activate

3․ Скачайте необходимые для работы сервиса пакеты. Целевая платформа указывается в ключе --platform, в данном случае показан пример для сбора зависимостей для платформы CentOS:

pip download -d ./packs/ -r requirements.txt --platform=linux_x86_64 --python-version=3.9 --no-deps --prefer-binary

4․ Деактивируйте виртуальную среду:

deactivate

После получения всех необходимых зависимостей, которые будут располагаться в директории /lunapassapi/packs, перенесите директорию /packs на целевую платформу. После переноса произведите установку.

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

5․ Перейдите в директорию модуля:

cd /var/lib/luna-pass/current/lunapassapi

6․ Активируйте виртуальное окружение:

source venv/bin/activate

7․ Установите все необходимые зависимости из локальной директории:

pip install -r requirements.txt --no-index --find-links=packs

Сервисные файлы LUNA PASS#

Для сервиса в поставке присутствует unit-файл. Следует скопировать этот файл в директорию /system для запуска сервиса после установки. Выполните следующие действия.

1․ Скопируйте файлы сервисов из комплекта поставки в системную директорию:

cp /var/lib/luna-pass/current/extras/systemd/lunapassapi.service /etc/systemd/system/

2․ Перезагрузите системные сервисы:

systemctl daemon-reload

Запуск LUNA PASS#

Запустите сервис LUNA PASS API и добавьте в автозагрузку.

systemctl start lunapassapi.service

systemctl enable lunapassapi.service