Настройки, задаваемые в сервисе LUNA Configurator#
В сервисе LUNA Configurator хранятся общие настройки для:
Для подробной информации о взаимодействии сервиса LUNA Configurator и FaceStream см. в разделе "Использование FaceStream с LUNA Configurator".
Настройки FaceStream#
Конфигурирование параметров FaceStream осуществляется с помощью редактирования параметров в секции "FACE_STREAM_CONFIG" в сервисе Configurator (см. раздел "Использование FaceStream с Configurator");
Также можно настроить FaceStream с помощью редактирования конфигурационного файла "fs3Config.conf" в режиме работы без сервиса Configurator (см. раздел "Использование FaceStream с конфигурационными файлами").
Далее приведены настройки, разбитые на логические блоки в зависимости от основных выполняемых блоком функций.
logging#
Секция с настройками логирования работы приложения. Она отвечает за вывод сообщений об ошибках или о текущем состоянии приложения.
severity#
Severity – параметр определяет информацию, которую пользователь хочет получать в логах. Доступны следующие фильтры информации:
0 – выводить всю информацию, 1 – выводить только предупреждения системы, 2 – выводить только ошибки.
tags#
Теги позволяют получить информацию о процессе обработки кадров и возникающих ошибках только для интересующих процессов FaceStream.
Данный параметр позволяет перечислить теги, которые связаны с логированием соответствующей информации. Если тег не указан, то соответствующая информация не логируется.
Информация по указанным тегам выводится в соответствии со значением параметра severity.
Текст логов содержит соответствующий тег. Его можно использовать для фильтрации логов.
Ошибки пишутся в лог всегда, для них не нужно задавать дополнительные теги.
Описание тегов
Тег | Описание |
---|---|
streams | Информация, связанная с работой сервиса LUNA Streams |
common | Общая информация |
ffmpeg | Информация о работе библиотеки FFMPEG |
liveness | Информация, связанная с проверкой наличия живого человека в кадре (секция «liveness): достаточно ли информации о проверке liveness и проходит ли кадр проверку liveness |
primary-track | Информация о главном треке (секция «primary_track_policy): прошёл ли кадр указанные пороги и какой трек является главным |
bestshot | Информация, связанная с выбором лучшего кадра: информация о появлении лучшего кадра, его смене, отправке лучшего кадра |
angles | Информация о фильтрации по углам наклона головы |
ags | Информация, связанная с оценкой качества кадров для дальнейшей обработки с помощью LUNA PLATFORM |
mouth-occlusion | Информация о перекрытии лица в кадре |
statistics | Информация о производительности, количестве обрабатываемых кадров в секунду и количестве пропущенных кадров |
http_api | Информация об API запросах, отправленных в FaceStream, и получаемых ответах |
client | Информация об отправке запросов в LUNA PLATFORM и полученных ответах |
json | Информация об обработке параметров из конфигурационных файлов и сервиса Configurator |
debug | Отладочная информация. Следует использовать данный тег только при отладке, а не при эксплуатации FS, т. к. выводится большое количество отладочной информации |
estimator | Информация о статистике выполненных оценок. |
Тег "estimator"
При включении тега "estimator" в логах FaceStream возвращается информация по размеру батчей, с которыми вызывались эстиматоры. Пример содержимого логов с включенным тегом "estimator":
[I0609 15:48:03.779697 65 EstimatorStatistic.cpp:85] [estimator] Batch statistic for estimator HeadPoseEstimator
Total calls: 1311 total time: 191 ms.
sz cnt
1 1311 (100.00%)
2 0 (0.00%)
3 0 (0.00%)
...
16 0 (0.00%)
В данном случае, статистика показывает следующее:
- всего было сделано 1311 вызова к эстиматору "HeadPoseEstimator", на которые ушло 191 миллисекунд;
- все вызовы (1311) были обработаны индивидуально, каждый в своем батче размером 1;
- батчи с размерами от 2 до 16 не были использованы.
Если эстиматоры не вызывались, то в логах FaceStream не будет выведено никакой информации.
mode#
Mode – параметр задаёт режим логирования приложения: файл или консоль. Существует три режима:
- "l2c" – выводить информацию только в консоль,
- "l2f" – выводить информацию только в файл,
- "l2b" – выводить информацию в оба места.
В режиме работы FaceStream с конфигурационными файлами можно настроить директорию для сохранения логов при выводе информации в файл с помощью параметра запуска --log-dir
.
sending#
Данный раздел описывает настройку отправки готовых портретов в виде HTTP-запросов из FaceStream во внешние сервисы.
request_type#
Данный параметр используется только для работы с лицами.
Данный параметр определяет тип запроса для отправки портретов во внешние сервисы. Поддерживаются 2 типа запросов:
- "jpeg" используется для отправки биометрических образцов в VisionLabs LUNA PLATFORM;
- "json" может использоваться для отправки портретов в сторонние пользовательские сервисы для дальнейшей обработки.
Подробное описание запросов см. в таблице.
Запросы
Формат | Тип запроса | Заголовки авторизации | Тело |
---|---|---|---|
JSON | PUT | Authorization: Basic, login/password(Base64) | Media type: application/json ; frame – исходный кадр в Base64 (если установлен параметр send_source_frame); data – портрет в Base64; identification – значение параметра Cid. Пример JSON: {frame":"","data":"image_in_base_64","identification":"camera_1"} |
JPEG | POST | Authorization: Basic, login/password(Base64) или X-Auth-Token: 11c59254-e83f-41a3-b0eb-28fae998f271(UUID4) | Media type: image/jpeg |
request_timeout_ms#
Данный параметр задает таймаут отправки и получения событий из/в LUNA PLATFORM в миллисекундах.
Значение по умолчанию — 30 секунд (30000 миллисекунд).
portrait_type#
Данный параметр используется только для работы с лицами.
Данный параметр определяет формат, в котором изображение детектированного лица отправляется во внешний сервис. Возможные значения:
- "warp" – использовать биометрический образец, трансформированный под определённые требования;
- "gost" – не использовать трансформацию, вырезать детекцию из исходного кадра с учетом отступов.
- "crop" – использовать область, расширенную и обрезанную вокруг обнаруженного объекта.
Формат warp
Характеристики биометрического образца:
- имеет размер 250х250 пикселей;
- лицо отцентрировано на изображении;
- лицо повернуто так, чтобы условная линия, соединяющая уголки глаз, была приближена к горизонтальной.
Такой формат изображения при использовании совместно с LUNA PLATFORM дает следующие преимущества:
- постоянный предсказуемый минимальный объем данных для передачи по сети;
- фазы детектирования лица в LUNA PLATFORM автоматически отключаются для таких изображений, что приводит к значительному снижению времени обработки запроса.
Формат crop
Crop-изображение это фрагмент изображения, полученный путём расширения и обрезки области вокруг обнаруженного объекта. Расширение области определяется новым параметром "crop_factor", увеличивающим размеры исходного прямоугольника, содержащего объект. Максимальный размер обрезанного изображения контролируется параметром новым параметром "max_crop_size", ограничивающим наибольшую сторону области. Если размер фрагмента превышает заданный параметр, то фрагмент будет масштабирован пропорционально по обеим координатам до нужного размера. Crop-изображение позволяет захватить больше контекста и детализации вокруг объекта по сравнению с биометрическим образцом.
Это позволяет более гибко управлять обработкой изображений. Отправка Crop-изображений имеет несколько ключевых преимуществ относительно других форматов:
- вместе с Crop-изображением передаются координаты лица как на Crop-изображении, так и на исходном изображении. Это позволяет избежать повторного запуска детектора лиц, обеспечивая наличие лица на изображении и экономя вычислительные ресурсы.
- Crop-изображение содержит больше контекста и деталей вокруг лица, что позволяет оценивать различные параметры, которые невозможно оценить на биометрическом образце. Например, эстимация Deepfake, Liveness и др., могут быть выполнены с большей точностью.
- сторонние сервисы и алгоритмы распознавания лиц часто работают лучше с Crop-изображениями, чем с биометрическими образцами. Это связано с тем, что Crop-изображения содержат больше информации и контекста, что улучшает точность распознавания и анализа.
crop_factor#
Коэффициент увеличения размеров исходного прямоугольника, содержащего объект.
Этот параметр определяет, насколько шире и выше будет область обрезки по сравнению с исходным размером. Например, при "crop_factor" равном 2.2 размеры области обрезки будут увеличены в 2.2 раза по сравнению с исходными размерами. Это позволяет захватить больше контекста вокруг обнаруженного объекта.
max_crop_size#
Максимальный размер обрезанного изображения.
Этот параметр ограничивает наибольшую сторону области обрезки, чтобы она не превышала заданное значение. Если обрезанное изображение превышает "max_crop_size", оно будет масштабировано до допустимого размера, сохраняя пропорции. Это гарантирует, что обрезанные изображения не будут слишком большими и остаются в пределах заданных размеров.
send_source_frame#
Данный параметр позволяет отправить исходный кадр, на котором было детектировано лицо или тело.
Исходный кадр можно сохранять как в бакет сервиса LUNA Image Store, так и в ресурс "/images" сервиса LUNA API. Способ сохранения исходного кадра задается с помощью указания соответствующего адреса в параметре "frame_store".
Для коллекции лучших снимков ("face_bestshots_to_send" или "body_bestshots_to_send" > 1) отправляется только один исходный кадр, который определяется FaceStream как лучший из всех лучших снимков. Например, если значение настройки "number_of_bestshots_to_send" = 3, то в LP будет отправлено три лучших снимка и только один исходный кадр, который будет автоматически выбран из трех лучших снимков.
Если предполагается сохранять исходный кадр в бакет сервиса LUNA Image Store, то кадр будет отправлен в LP за некоторое время до отправки лучшего снимка. Сначала он сохраняется в БД LUNA Events и ему назначается уникальный идентификатор, который хранится в поле "image_origin" таблицы "face_detect_result"/"body_detect_result". Далее в LP отправляется лучший снимок и генерируется событие, где в поле "image_origin" указывается ID исходного кадра, взятого из БД LUNA Events.
Пример из тела ответа события об успешном сохранении в бакет:
"events": [
detections": [
"image_origin": "/1/buckets/source-images/images/83c383d8-8af4-406c-8ff8-76eb389e61c8"
Если предполагается сохранять исходный кадр в ресурс "/images", то кадр будет отправлен вместе с лучшим снимком с помощью схемы "multipart/form-data" запроса на генерацию события LUNA PLATFORM.
Пример из тела ответа события об успешном сохранении в ресурс "/images" сервиса LUNA API:
"events": [
detections": [
"image_origin": "/6/images/19c5c40a-04e4-4f2b-811c-0f3bb0003359"
Если же в поле "image_origin" содержится адрес вида "/6/samples/faces/c93f39f1-809c-4583-b386-c166cecac333", то это значит, что речь идет об адресе сохранения лучшего снимка, а не исходного изображения.
size_source_frame#
Параметр изменяет ширину исходного кадра до заданного значения. Допустимый диапазон — [0...1024]. Значение "0" означает, что ширина не будет меняться. Дробная часть задаваемого числа игнорируется.
FaceStream отправляет в LUNA PLATFORM заголовок X-Luna-Meta-rescale
, который содержит коэффициент масштабирования исходного изображения в форме числа с плавающей запятой.
Коэффициент масштабирования позволяет вычислить реальные координаты отмасштабированного исходного изображения. Для этого необходимо разделить размер полученного изображения на полученный коэффициент масштабирования.
Примечание. Реальный размер рассчитывается с абсолютной погрешностью менее 1 / (2 * коэффициент масштабирования).
Например, полученное изображение имеет размер 200x113, а коэффициент масштабирования равен 0.104399, тогда реальный размер исходного изображения равен 1916x1082 (200/0.104399=1916, 113/0.104399=1082).
Коэффициент масштабирования можно найти в LUNA PLATFORM:
- в заголовке ответа на запрос "get image" к сервису LUNA API. Запрос должен быть выполнен с параметром запроса
with_meta = 1
- в файле "image_id.meta.json", расположенном рядом с исходным изображением в бакете исходных изображений хранилища LUNA Image Store
Заголовок X-Luna-Meta-rescale
отправляется только если включена отправка исходного кадра (параметр send_source_frame = 1
). В обработчике LUNA PLATFORM также должна быть включена политика сохранения исходного изображения.
Если для исходного кадра не выставлено масштабирование (параметр size_source_frame = 0
), то значение заголовка ответа X-Luna-Meta-rescale
будет равно 1.
detection_path_length#
Данный параметр используется только для работы с телами.
Данный параметр устанавливает максимальное количество детекций для параметра "minimal_body_track_length_to_send".
Максимальное количество детекций не может превышать 100. Если детекций больше 100, то алгоритм FaceStream удалит лишние детекции с некоторым шагом.
minimal_body_track_length_to_send#
Данный параметр используется только для работы с телами.
Данный параметр позволяет вместе с лучшими снимками отправлять заданное количество детекций с координатами тела человека — x, y, width и height (см. запрос "save event" в спецификации OpenAPI LUNA PLATFORM). По наборам детекций тела человека можно определить его путь.
Детекция, у которой есть лучший снимок обязательна к отправке.
Если количество детекций меньше заданного значения, то эти детекции не будут отправлены. Например, если количество детекций равно "3", а значение "minimal_body_track_length_to_send" равно "4", то детекции не будут отправлены и в логах FaceStream отобразится следующее сообщение:
Track is too short and will not be sent. Length 3 < 4
Если значение параметра равно "0", то количество детекций будет равно количеству лучших снимков.
async_requests#
Данный параметр позволяет указать, как следует выполнять запросы в LUNA PLATFORM – асинхронно или синхронно.
По умолчанию выставлен асинхронный режим, при котором все запросы в LUNA PLATFORM выполняются параллельно.
aggregate_attr_requests#
Данный параметр позволяет включать агрегацию лучших кадров для получения одного биометрического шаблона в LUNA PLATFORM.
Агрегация выполняется, если отправляется больше одного лучшего кадра. Количество кадров для отправки задаётся параметром "face_bestshots_to_send" или "body_bestshots_to_send".
Точность распознавания лиц и тел при использовании агрегированного биометрического шаблона выше.
jpeg_quality_level#
Качество JPEG для отправки исходных кадров:
- 'best' — сжатие изображения не выполняется
- 'good' — 75% исходного качества изображения
- 'normal' — 50% исходного качества изображения
- 'average' — 25% исходного качества изображения
- 'bad' — 10% исходного качества изображения
Качество 'best' выставлено по умолчанию.
Отправка изображений в высоком качестве может влиять на скорость обработки кадров.
lunaplatform#
Данный раздел описывает настройки подключения к LUNA PLATFORM (сервису API) для последующей обработки данных, отправляемых FaceStream.
origin#
Адрес и порт сервера, где запущен сервис LUNA API.
api_version#
В параметре задаётся версия API сервиса LUNA API. На настоящий момент поддерживается 6 версия API.
lunastreams#
Данный раздел описывает настройку отправки готовых портретов в виде HTTP-запросов из FaceStream в сервис LUNA Streams.
См. подробную информацию о работе LUNA Streams с FaceStream в разделе "Взаимодействие FaceStream с LUNA Streams".
origin#
Адрес и порт сервера, где запущен сервис LUNA Streams.
api_version#
В параметре задаётся версия API сервиса LUNA Streams. На настоящий момент поддерживается две версии API - "1" и "2".
По умолчанию используется версия "1".
Актуальную версию API всегда можно найти в документации сервиса LUNA Streams.
max_number_streams#
В параметре задаётся верхняя граница количества потоков FS. Значение должно быть больше 0.
request_stream_period#
В параметре задаётся временной промежуток между запросами на получение новых потоков из LUNA Streams в диапазоне от 0.1 до 3600 секунд.
Значение по умолчанию — 1 секунда.
send_feedback_period#
В параметре задаётся временной промежуток между отправкой отчётов об обработанных потоках в LUNA Streams в диапазоне от 1.0 до 3600 секунд.
Значение по умолчанию — 5 секунд.
Значение данного параметра не должно превышать значение параметра "STREAM_STATUS_OBSOLETING_PERIOD", задаваемого в настройках сервиса LUNA Streams.
max_feedback_delay#
Параметр задаёт максимальную задержку отправки отчёта в диапазоне от 1.0 до 3600 секунд. Если отчёт не был отправлен за данное время, то FaceStream остановит обработку текущих потоков.
Значение данного параметра не должно быть меньше, чем значение параметра "send_feedback_period" и не должно превышать значение параметра "STREAM_STATUS_OBSOLETING_PERIOD", задаваемого в настройках сервиса LUNA Streams.
Значение по умолчанию — 10 секунд.
performance#
stream_images_buffer_max_size#
Параметр задаёт максимальный размер буфера изображений для одного потока.
При увеличении значения параметра повышается производительность FaceStream. Чем выше заданное значение, тем больше памяти требуется для работы.
Параметр рекомендуется выставить равным 40 при работе с GPU, если достаточно памяти GPU.
enable_gpu_processing#
Параметр позволяет включить использование GPU вместо CPU для вычислений.
Использование GPU позволяет ускорить вычисления, но при этом увеличивается потребление оперативной памяти.
Вычисления с использованием видеокарты поддерживаются только для детектора FaceDetV3. См. параметр "defaultDetectorType" в настройках FaceEngine ("faceengine.conf").
convert_full_frame#
Если данный параметр включён, то кадр сразу конвертируется в RGB изображение необходимого размера после декодирования. При этом получается изображение лучшего качества, но снижается скорость обработки кадров.
Если параметр выключен, то масштабирование изображения выполняется в зависимости от настроек TrackEngine (стандартное поведение для релизов 3.2.4 и более ранних).
Параметр аналогичен параметру frame_processing_mode, но задаётся сразу для всех экземпляров FaceStream.
fps_floor#
Параметр предназначен для управления количеством анализируемых кадров в видеопотоке, что позволяет уменьшить нагрузку на систему за счет пропуска некоторых кадров. Это может быть полезно, когда необходимо снизить требования к вычислительным ресурсам, сохраняя при этом приемлемую точность анализа.
Количество пропущенных кадров рассчитывается как разница между частотой кадров видео потока и значением "fps_floor". Пропущенные кадры распределяются равномерно в течение каждой секунды.
Если значение "fps_floor" равно нулю или отрицательное, FaceStream проигнорирует настройку, и количество обрабатываемых кадров останется неизменным.
Например, при значении "fps_floor" = 15 для видеопотока с частотой 25 fps FaceStream будет пропускать 10 кадров в секунду (25 - 15). Эти 10 кадров будут равномерно распределены по времени, чтобы сохранить целостность воспроизведения видео и избежать резких скачков.
monitoring#
В данной группе параметров задаются настройки мониторинга.
storage_type#
Данный параметр позволяет выбрать тип хранения данных для мониторинга. На данный момент можно использовать только базу данных Influx.
send_data#
Данный параметр включает отправку мониторинга. По умолчанию отключен.
organization#
Данный параметр задает рабочую область InfluxDB 2.x.
Рабочая область задается с помощью передачи соответствующего аргумента при старте контейнера InfluxDB.
bucket#
Данный параметр задает бакет InfluxDB 2.x.
Бакет задается с помощью передачи соответствующего аргумента при старте контейнера InfluxDB. Его можно также создать с помощью пользовательского интерфейса Influx.
token#
Параметр задаёт токен аутентификации InfluxDB 2.x.
Токен задается с помощью передачи соответствующего аргумента при старте контейнера InfluxDB.
origin#
Параметр задаёт IP-адрес и порт сервера с InfluxDB 2.x.
По умолчанию используется адрес "127.0.0.1". Такой адрес означает, что будет использоваться InfluxDB 2.x, расположенный на сервере с LUNA Configurator. Если InfluxDB 2.x находится на ином сервере, то в данном параметре нужно указать корректный IP-адрес InfluxDB 2.x.
"origin": "http://127.0.0.1:8086/"
flushing_period#
Параметр задаёт частоту отправки данных мониторинга в InfluxDB (в секундах).
По умолчанию используется 1 секунда.
Настройки TrackEngine#
Данный раздел описывает параметры TrackEngine, которые используются для настройки FaceStream.
Конфигурирование параметров TrackEngine осуществляется с помощью редактирования параметров в секции "TRACK_ENGINE_CONFIG" в сервисе Configurator (см. раздел "Использование FaceStream с Configurator").
Также можно настроить TrackEngine с помощью конфигурационного файла "trackengine.conf" в режиме работы без сервиса Configurator (см. раздел "Использование FaceStream с конфигурационными файлами").
use-face-detector и use-body-detector#
Данные параметры позволяют включать и отключать выполнение детекций лиц и тел. Можно включить одновременную детекцию.
См. раздел "Совместный режим детектирования лиц и тел" для более подробной информации.
Необходимо помнить, что для успешной смены детекции нужно задать соответствующие настройки FaceStream и настройки источников потоков.
<!-- use-face-detector: Flag to use or not face detection -->
<param name="use-face-detector" type="Value::Int1" x="1" />
<!-- use-body-detector: Flag to use or not body detection -->
<param name="use-body-detector" type="Value::Int1" x="0" />
detector-step#
Параметр "detector-step" позволяет указать количество кадров, на которых будет выполняться редетекция лица или тела в заданной области до выполнения детекции лица или тела. Редетекция требует меньше ресурсов, но объект может быть потерян при задании большого количества кадров для редетекции.
<!-- detector-step: The count of frames between frames with full detection, [0 .. 30] ('7' by default). -->
<param name="detector-step" type="Value::Int1" x="7" />
detector-scaling#
Параметр "detector-scaling" позволяет масштабировать кадр перед обработкой. Размер кадра для масштабирования задается в параметре "scale-result-size".
См. подробную информацию о масштабировании в разделе "Масштабирование кадра".
<!-- detector-scaling: Scale frame before detection for performance reasons, [0, 1] ('0' by default). -->
<param name="detector-scaling" type="Value::Int1" x="0" />
scale-result-size#
Параметр "scale-result-size" задаёт максимальный размер кадра после масштабирования по наибольшей из сторон кадра.
Для работы данного параметра необходимо включить параметр "detector-scaling".
Если исходный кадр имел размер 1920 на 1080 и значение "scale-result-size" равно 640, то FaceStream будет обрабатывать кадр размером 640 на 360. Для подбора оптимального значения "scale-result-size" следует постепенно уменьшать масштаб кадра и проверять, происходит ли на кадре детектирование лиц или тел. Следует выставить минимальный размер изображения, при котором все объекты в интересующей области детектируются.
Если кадр был обрезан с помощью параметра "roi", то масштабирование будет применено к этому уменьшенному кадру. В этом случае значение "scale-result-size" следует задавать в зависимости от наибольшей стороны области ROI.
На изображениях ниже приведены примеры детекций для кадра разрешением 1920x1080 и для того же кадра после его масштабирования до разрешения 960x640. Шесть лиц найдено на изображении с разрешением 1920x1080.
Три лица найдено после масштабирования изображения до разрешения 960x640. Лица на заднем плане меньше по размеру и имеют низкое качество.
Чем меньше разрешение кадра, тем меньше потребляется ресурсов.
При работе с телами данный параметр работает аналогичным образом.
<!-- scale-result-size: If scaling is enable, frame will be scaled to this size in pixels (by the max dimension — width or height).
Upper scaling is not possible. ('640 by default') -->
<param name="scale-result-size" type="Value::Int1" x="640" />
skip-frames#
Данный параметр используется только для работы с лицами.
Параметр "skip-frames" задаёт количество кадров, в течение которых система будет ожидать повторного появления объекта в области, где он исчез.
Обратите внимание, что слишком большие значения могут вести к уменьшению производительности.
<!-- skip-frames: If track wasn't updated by detect/redetect for this number of frames, then track is finished ('36' by default). -->
<!-- note: very high values may lead to performance degradation. Parameter doesn't affect on human tracking. -->
<param name="skip-frames" type="Value::Int1" x="36" />
frg-subtractor#
При включении параметра "frg-subtractor" включается режим учёта перемещений в кадре. Последующая детекция лица или тела будет выполняться не на всём кадре, а только в областях с движением.
Определение областей с движением выполняется после масштабирования кадра.
Включение параметра "frg-subtractor" увеличивает производительность работы FaceStream.
<!-- frg-subtractor: Use foreground subtractor for filter of frames, [0, 1] ('1' by default). -->
<param name="frg-subtractor" type="Value::Int1" x="1" />
frg-regions-alignment#
Параметр "frg-regions-alignment" позволяет задать выравнивание для областей с движением.
<!-- frg-regions-alignment: frg regions alignment. Useful for detector better batching utilization. -->
<!-- 0 or negative values mean using non aligned regions, (0 by default). -->
<param name="frg-regions-alignment" type="Value::Int1" x="0" />
frg-regions-square-alignment#
При включённом параметре "frg-regions-square-alignment" ширина и высота области с движением всегда будут равны.
<!-- align frg regions to rect with equal sides (max side choosen). See frg-regions-alignment, [0, 1] ('1' by default). -->
<param name="frg-regions-square-alignment" type="Value::Int1" x="1" />
batched-processing#
Параметр "batched-processing" включает пакетную обработку кадров.
При работе с несколькими камерами, с каждой камеры собирается по кадру. После чего происходит обработка данного пакета кадров.
Если параметр отключён, то кадры обрабатываются один за другим.
При использовании режима пакетной обработки увеличивается задержка перед обработкой, но при этом сама обработка выполняется быстрее.
Рекомендуется включать параметр и при использовании GPU, и при использовании CPU.
<!-- batched-processing: Process streams frames in batch or separately, [0, 1] ('1' by default). -->
<param name="batched-processing" type="Value::Int1" x="1" />
min-frames-batch-size#
Параметр "min-frames-batch-size" задаёт минимальное количество кадров, которое следует накопить со всех камер перед обработкой.
Рекомендуется выставлять значение параметра "min-frames-batch-size" равным количеству подключённых потоков при использовании GPU.
Рекомендуется выставлять значение параметра "min-frames-batch-size" равным "2" при использовании CPU.
<!-- min-frames-batch-size: stream frames min batch size value to process, ('0' by default). -->
<!-- higher values lead to higher processing latency but increase throughput and device utilization. -->
<!-- zero/negative values disable this feature, so any stream frames will be processed if they are available -->
<!-- note: this parameter should be regulated with 'max-frames-batch-gather-timeout' (see below) -->
<param name="min-frames-batch-size" type="Value::Int1" x="0" />
max-frames-batch-gather-timeout#
Параметр "max-frames-batch-gather-timeout" задаёт время между обработкой пакетов кадров.
Если обработка одного кадра укладывается в указанное время и остается дополнительный запас, то FaceStream ожидает дополнительные кадры, чтобы повысить утилизацию GPU.
Если "max-frames-batch-gather-timeout" равен 20 мс, то за это время обрабатывается предыдущий пакет и собирается новый пакет. Через 20 мс начинается следующая обработка, даже если не удалось собрать число кадров равное "min-frames-batch-size". Следующая обработка кадров не может начаться до окончания обработки предыдущего пакета кадров.
Если он равен "0", то нет задержки на наполнение пакета кадрами, а обработка происходит непрерывно и "min-frames-batch-size" игнорируется.
Рекомендуется выставлять значение параметра "max-frames-batch-gather-timeout" равным "0" и при использовании GPU, и при использовании CPU.
<!-- max-frames-batch-gather-timeout: max available timeout to gather next stream frames batch (see 'min-frames-batch-size') from last processing begin time point (measured in ms), ('-1' by default). -->
<!-- negative values disable this feature (no timeout, so only stream frames batches with size no less than 'min-frames-batch-size' value will be processed) -->
<!-- note: this parameter is complementary to 'min-frames-batch-size' and controls min average fps of stream frames batches processing -->
<param name="max-frames-batch-gather-timeout" type="Value::Int1" x="-1" />
Настройки LUNA Streams#
Данный раздел описывает параметры сервиса LUNA Streams, задаваемые в сервисе LUNA Configurator.
LUNA_STREAMS_DB#
db_type#
Параметр задает тип базы данных. Доступны следующие типы:
- "postgres" — тип базы данных PostgreSQL
- "oracle" — тип базы данных Oracle
Формат задания настройки — string
.
Значение по умолчанию — postgres
.
db_host#
Параметр задает имя сервера (хост) базы данных.
Формат задания настройки — string
.
Значение по умолчанию — 127.0.0.1
.
db_port#
Параметр задает порт базы данных.
Порт по умолчанию для типа "postgres" — 5432
.
Порт по умолчанию для типа "oracle" — 1521
.
Формат задания настройки — string
.
Значение по умолчанию — 5432
.
db_user#
Параметр задает имя пользователя базы данных.
Формат задания настройки — string
.
Значение по умолчанию — luna
.
db_password#
Параметр задает имя пользователя базы данных.
Формат задания настройки — string
.
Значение по умолчанию — luna
.
db_name#
Параметр задает имя базы данных для типа "postgres" или имя SID для типа "oracle" .
Формат задания настройки — string
.
Значение по умолчанию — luna_streams
.
db_settings > connection_pool_size#
Параметр задает размер пула соединений к БД.
Формат задания настройки — string
.
Значение по умолчанию — 10
.
dsn#
Параметр задает строку подключения DSN для соединения с БД.
Формат задания настройки — string
.
DSN — это строка подключения, которая идентифицирует и указывает на источник данных (базу данных), к которому нужно установить соединение.
В строке DSN могут задаваться такие настройки, как множественные хосты, аутентификационные данные, порт и другие параметры.
Настройки зависят от типа БД. Множественные хосты поддерживаются только с PostgreSQL.
По умолчанию параметр "dsn" не отображается во вкладке "Settings" в Configurator. Проверить список всех доступных параметров для группы настроек можно на вкладке "Limitations".
Пример:
{
"dsn": "luna:luna@postgres01:5432,postgres02:5432/luna_streams?some_option=some_value"
"db_settings": {
"connection_pool_size": 5
}
}
Здесь:
- "luna:luna" — имя пользователя и пароль для подключения к PostgreSQL;
- "@postgres01:5432,postgres02:5432" — список хостов и портов, разделенных запятыми. Это означает, что сервис будет пытаться подключиться к первому хосту ("postgres01") на порту 5432. Если это не удастся, она попытается подключиться ко второму хосту ("postgres02") также на порту 5432;
- "/luna_streams" — БД сервиса Streams;
- "?some_option=some_value" — опциональные параметры для подключения.
При необходимости можно комбинировать строку DSN и классические настройки, однако строка DSN является более приоритетной. Можно частично заполнить строку DSN (например, "postgres01,postgres02/luna_streams"), и тогда недостающие параметры будут заполнены из значений параметров "db_host", "db_port", "db_name", "db_user" и "db_password".
При запуске сервис создаст пул подключений к одному из доступных хостов DSN. В случае возникновения проблем с установлением соединения после нескольких неудачных попыток, сервис снова попытается настроить пул подключений к любому из доступных хостов DSN.
LUNA_LICENSES_ADDRESS#
Данная группа параметров задаёт настройки подключения к сервису LUNA Licenses.
origin#
Параметр задаёт протокол, IP адрес и порт сервиса LUNA Licenses.
IP адрес "127.0.0.1" означает, что будет использоваться сервис LUNA Licenses, расположенный на сервере с LUNA Configurator. Если сервис находится на ином сервере, то в данном параметре нужно указать корректный IP адрес сервера с запущенным сервисом LUNA Licenses.
Формат задания настройки — string
.
Значение по умолчанию — http://127.0.0.1:5120
.
api_version#
Параметр задаёт версию API сервиса LUNA Licenses. Доступная версия API — "1".
Формат задания настройки — integer
.
Значение по умолчанию — 1
.
LUNA_STREAMS_LOGGER#
Данная группа параметров задает настройки логирования сервиса Streams.
log_level#
Параметр задает уровень отладочной печати, по приоритету: "ERROR", "WARNING", "INFO", "DEBUG".
Формат задания настройки — string
.
Значение по умолчанию — INFO
.
log_time#
Параметр задает формат времени, используемый в записях лога. Доступны следующие значения:
- "LOCAL" — отображает местное время системы, на которой выполняется запись логов;
- "UTC" — отображает координированное всемирное время, которое является стандартом времени и не зависит от местной временной зоны или сезонных изменений времени.
Формат задания настройки — string
.
Значение по умолчанию — LOCAL
.
log_to_stdout#
Параметр позволяет отправлять логи в стандартный вывод (stdout).
Формат задания настройки — boolean
.
Значение по умолчанию — true
log_to_file#
Параметр позволяет сохранять логи в файл. Директория с файлами логов указывается в параметре "folder_with_logs".
Формат задания настройки — boolean
.
Значение по умолчанию — false
.
folder_with_logs#
Параметр задает директорию, в которой хранятся логи. Относительный путь начинается с каталога с приложением.
Для использования данного параметра требуется включить параметр "log_to_file".
Формат задания настройки — string
.
Значение по умолчанию — ./
Пример:
"folder_with_logs": "/srv/logs"
max_log_file_size#
Параметр задает максимальный размер файла лога в МБ перед выполнением его ротации (0 — не использовать ротацию).
Для использования данного параметра требуется включить параметр "log_to_file".
Формат задания настройки — integer
.
Значение по умолчанию — 1024
multiline_stack_trace#
Параметр включает многострочную трассировку стека в логах. Когда параметр включен, информация о стеке вызовов записывается в логах так, что каждый фрейм стека помещается на отдельной строке, что улучшает читаемость. Если параметр выключен, информация о стеке вызовов записывается на одной строке, что может сделать логи менее удобными для анализа.
Формат задания настройки — boolean
.
Значение по умолчанию — true
.
format#
Параметр определяет формат выводимых логов. Доступны следующие значения:
- "default" — стандартный формат вывода логов LUNA PLATFORM
- "json" — вывод логов в формате json
- "ecs" — вывод логов в формате ECS (Elastic Common Schema)
При использовании значения "ecs" будут использоваться следующие поля:
- "http.response.status_code" — содержит код состояния ответа HTTP (200, 404, 500 и т.д.);
- "http.response.execution_time" — содержит информацию о времени, затраченном на выполнение запроса и получение ответа;
- "http.request.method" — содержит метод HTTP-запроса (GET, POST, PUT и т.д.);
- "url.path" — содержит путь в URL-адресе запроса;
- "error.code" — содержит код ошибки, если запрос завершается с ошибкой.
Формат задания настройки — string
.
Значение по умолчанию — default
.
LUNA_MONITORING#
Данная группа параметров задает настройки мониторинга.
См. подробную информацию о мониторинге в разделе "Мониторинг".
storage_type#
Тип хранилища для хранения данных мониторинга.
В настоящее время доступно только БД Influx.
Формат задания настройки — string
.
Значение по умолчанию — influx
.
send_data_for_monitoring#
Параметр позволяет включить или отключить отправку данных для мониторинга в InfluxDB.
Формат задания настройки — integer
.
Значение по умолчанию — 1
.
use_ssl#
Параметр позволяет использовать HTTPS для подключения к InfluxDB.
Формат задания настройки — integer
.
Значение по умолчанию — 0
.
organization#
Параметр задает рабочую область InfluxDB 2.x.
Формат задания настройки — string
.
Значение по умолчанию — luna
.
token#
Параметр задает аутентификации InfluxDB 2.x.
Формат задания настройки — string
.
bucket#
Параметр задаёт имя бакета InfluxDB 2.x.
Формат задания настройки — string
.
Значение по умолчанию — luna_monitoring
.
host#
Параметр задаёт IP-адрес InfluxDB.
Формат задания настройки — string
.
Значение по умолчанию — 127.0.0.1
.
port#
Параметр задаёт порт InfluxDB.
Формат задания настройки — string
.
Значение по умолчанию — 8086
.
flushing_period#
Параметр задает частоту отправки данных мониторинга в InfluxDB.
Формат задания настройки — integer
(секунды).
Значение по умолчанию — 1
.
Группа параметров LUNA_SERVICE_METRICS#
Данная группа параметров включает и настраивает сбор метрик в формате Prometheus.
См. подробную информацию о мониторинге в разделе "Мониторинг".
enabled#
Параметр включает сбор метрик.
Если сбор метрик отключен, то запрос к ресурсу /metrics
вернет соответствующее сообщение.
Формат задания настройки — boolean
.
Значение по умолчанию — false
.
metrics_format#
Параметр задает формат метрик.
На данный момент поддерживается только формат Prometheus.
См. официальную документацию Prometheus для более подробной информации.
Формат задания настройки — string
.
Значение по умолчанию — prometheus
.
extra_labels#
Параметр задает пользовательские типы лейблов.
Формат задания настройки — label_name=label_value
.
Значение по умолчанию не задано.
LUNA_STREAMS_HTTP_SETTINGS#
В данной группе параметров содержатся настройки, отвечающие за обработку HTTP-подключений. См. подробную информацию по следующей ссылке: https://sanic.dev/en/guide/deployment/configuration.html#builtin-values
request_timeout#
Параметр задает продолжительность времени между моментом, когда новое открытое TCP-соединение передается на сервер, и моментом, когда получен весь HTTP-запрос.
Формат задания настройки — integer
(секунды).
Значение по умолчанию — 60
.
response_timeout#
Параметр задает продолжительность времени между моментом, когда сервер передает HTTP-запрос приложению, и моментом, когда HTTP-ответ отправляется клиенту.
Формат задания настройки — integer
(секунды).
Значение по умолчанию — 600
.
request_max_size#
Параметр задает максимальный размер запроса.
Формат задания настройки — integer
(байты).
Значение по умолчанию — 1073741824
.
keep_alive_timeout#
Параметр задает тайм-аут поддержания активности HTTP.
Формат задания настройки — integer
(секунды).
Значение по умолчанию — 15
.
LUNA_STREAMS_LOGS_CLEAR_INTERVAL#
В данной группе параметров содержатся настройки, отвечающие автоматическое удаление логов потоков. .
Автоматическое удаление логов помогает очистить таблицу "log" базы данных LUNA Streams от большого количества ненужных логов.
См. подробное описание с примерами в разделе "Автоматическое удаление логов потоков".
active#
Параметр включает или отключает автоматическое удаление логов.
Формат задания настройки — boolean
.
Значение по умолчанию — 0
.
interval#
Параметр задает интервал удаления логов. Логи, старше чем данный интервал, будут удалены.
Интервал должен задаваться в паре с типом интервала. Например, "3" (интервал) + день (тип интервала).
Формат задания настройки — integer
.
Значение по умолчанию — 7
.
interval_type#
Параметр задает один из следующих типов интервала:
- "weeks" (недели);
- "days" (дни);
- "hours" (часы);
- "minutes" (минуты);
- "seconds" (секунды).
Тип интервала должен задаваться в паре с интервалом. Например, "3" (интервал) + день (тип интервала).
Формат задания настройки — string
.
Значение по умолчанию — days
.
check_interval#
Параметр задает частоту проверки логов на удаление в секундах.
Формат задания настройки — integer
.
Значение по умолчанию — 180
.
Прочие#
stream_worker_async_lock_timeout#
Параметр задаёт тайм-аут экземпляра LUNA Streams для блокировки строки в таблице базы данных. Значение данной настройки необходимо увеличить если статусы потоков не обновляются, что может быть обусловлено медленным соединением от сервиса к базе данных.
Формат задания настройки — number
(секунды в диапазоне (0, 1]).
Значение по умолчанию — 0.1
.
stream_status_obsoleting_period#
Параметр задаёт период устаревания состояния потока. За данный период времени "рабочий процесс" FaceStream должен передать отчёт в LUNA Streams. В противном случае статус потока будет изменен на "restart", а запоздалый отчёт будет отвергнут.
Формат задания настройки — number
(секунды в диапазоне (0, 86400]).
Значение по умолчанию — 20
.
luna_streams_active_plugins#
Параметр задаёт список активных плагинов (см. информацию о работе плагинов в руководстве администратора LUNA PLATFORM 5).
Формат задания настройки — array > string
.
Значение по умолчанию — []
.
storage_time#
Параметр задаёт формат времени, используемый для записей в базе данных. Доступны следующие значения:
- "LOCAL" — отображает местное время системы, на которой выполняется запись логов;
- "UTC" — отображает координированное всемирное время, которое является стандартом времени и не зависит от местной временной зоны или сезонных изменений времени.
Формат задания настройки — string
.
Значение по умолчанию — LOCAL
.