Настройка сервиса#
Самостоятельно настройте 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= |
Режим:
По умолчанию: production |
host= |
IP адрес, на котором будет запущен сервис. По умолчанию: 0.0.0.0 |
port= |
Порт, на котором будет запущен сервис. По умолчанию: 8321 |
logLevel= |
Уровень логирования. Доступные значения:
По умолчанию: 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= |
Наличие очков. Доступные значения:
По умолчанию: |
livenessScore=; livenessQualityScore= |
Пороговые значения результата проверки OneShot Liveness, при котором человек будет считаться «живым» По умолчанию: 0.5; 0.5 |
multifacePolicy= |
Политика выбора лица для проверки Liveness. Доступные значения:
По умолчанию: 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 По умолчанию: |
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. Для корректной работы могут потребоваться следущие настройки и плагинов:
По умолчанию: 1 |
MIDDLEWARES.WS.VideoRedis |
|
isEnabled= |
Плагин для отправки кадров сессии в Redis. По умолчанию: 0 |
args.connectionString= |
Строка подключения к Redis По умолчанию: |
args.queueName= |
Имя очереди Redis для работы с видео По умолчанию: default |
args.resultTtl= |
Как долго в Redis хранится информация об успешности задач и их результатах 500s |
args.failureTtl= |
Как долго в Redis хранится информация о неуспешных задачах По умолчанию: 1y |
args.sessionTimeout= |
Количество секунд для старта сборки видео после завершения сессии при отсутствии бестшота По умолчанию: 300 |
args.workerTask= |
Имя задачи, которую запустит lunapassworker при получении задачи на сборку видео По умолчанию: task.run |
args.framesLimit= |
Ограничение на максимальное количество кадров в видео.
По умолчанию: 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