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

# v.5.152.0

Изменения

- FSDK был обновлен до версии `5.34.0`.

  В данной версии изменено значение по умолчанию для параметра `numThreads` в настройках Runtime: теперь по умолчанию используется значение `4` (ранее было `-1`).

  Также добавлены рекомендации по настройке данного параметра. См. подробное описание numThreads.

- Уменьшено потребление памяти при обработке видеопотоков на GPU.

- Для мониторинга FaceStream в ресурс `/metric` добавлена Prometheus-метрика `SkippedByDecoder_count` типа "счетчик" для подсчета количества кадров, пропущенных из-за недостаточной пропускной способности декодера.

- Сокращено потребление `RAM` и `VRAM` за счет оптимизации внутренних очередей.

Исправленные ошибки

- Исправлена ошибка таймаута при выполнении запроса "get live preview".

  Ранее при просмотре видеопотока в реальном времени более 5 минут соединение обрывалось. Теперь просмотр возможен без ограничения по времени.

# v.5.134.0

Изменения

- Улучшена производительность системы за счет внутренних оптимизаций.

# v.5.130.0

Изменения

- Обновлено описание настроек, задаваемых в сервисе LUNA Configurator. Теперь настройки содержат более полную информацию об их назначении, допустимых значениях и влиянии на работу системы.

- Добавлена поддержка отправки данных мониторинга в `ClickHouse`.

  Теперь для FaceStream и LUNA Streams поддерживается отправка данных мониторинга в ClickHouse — высокопроизводительную, столбцовую систему управления базами данных.

  В отличие от InfluxDB, где данные делятся на теги и поля, ClickHouse использует единую табличную структуру с поддержкой `JSON` формата. Каждая запись представляет собой строку таблицы, где:

  - поле `time` — временная метка создания записи;
  - поле `data` — JSON-объект, объединяющий все данные (включая то, что в InfluxDB хранилось бы как теги или поля).

  Примечание. На текущий момент в FaceStream и LUNA Streams по умолчанию используется InfluxDB (в будущих версиях ClickHouse станет БД мониторинга по умолчанию, т.к. превосходит InfluxDB по скорости обработки сложных запросов и аналитическим возможностям, особенно в условиях высоких нагрузок).

  Для подробной информации см. раздел "Мониторинг".

- В запросы "get streams" и "get streams V2" добавлен query-параметр `order_column`, который позволяет настроить сортировку потоков по следующим критериям:

  - `name` — названию потока (по алфавиту)
  - `create_time` — дате создания потока

  Для управления направлением сортировки используется параметр order с возможными значениями: `asc` — по возрастанию, `desc` — по убыванию.

  Примечание. По умолчанию результаты сортируются в порядке появления потоков в базе данных. Если указаны фильтры по диапазону ID потока (`stream_id__gte` или `stream_id__lt`), сортировка будет выполнена по ID потока, а параметры `order_column` и `order` игнорируются.

# v.5.122.0

Изменения

- FSDK был обновлен до версии 5.30.1.

- Добавлен параметр `useInt8` в группу параметров `HumanFaceDetector` для включения квантованной версии совместного детектора лиц и тел.

  Квантованный детектор работает быстрее за счёт использования 8-битных вычислений (INT8), что снижает нагрузку на CPU. Работает только для обнаружения тел. По умолчанию опция выключена.

  См. настройки "HumanFaceDetector".

# v.5.115.0

Изменения

- Добавлена поддержка библиотеки для конвертации цветового пространства, что ускоряет обработку видео и повышает производительность.

- Оптимизирована обработка видеопотоков на GPU.

  Теперь при включенном `GPU`, если формат видеопотока не поддерживается аппаратным декодером, то декодирование выполняется на `CPU` с последующей загрузкой кадров в видеопамять (`vRAM`).

- Добавлены расширенные возможности логирования для библиотеки `FFmpeg`. Это позволяет управлять записями логов от `FFmpeg` с использованием тега `ffmpeg` и параметра `severity` для регулирования уровня детализации (см. описание параметра в руководстве администратора).

# v.5.110.0

Изменения

- FSDK был обновлен до версии 5.27.0.

В данной версии:

- обновлен совместный детектор лиц и тел до версии 2. Повышена точность работы детектора, а также увеличена скорость его работы;

- обновлена логика работы `strictlyMinSize`. Теперь в параметре можно указать минимальный размер лица, при котором будет выполняться детекция лиц.

- Для мониторинга FaceStream в ресурс `/metric` добавлены Prometheus-метрики типа "счетчик":

- `TotalSkips_count` — общее количество пропущенных кадров в видеопотоке;

- `SkippedOOM_count` — количество кадров, пропущенных из-за нехватки памяти (Out Of Memory);
- `SkippedInvalid_count` — количество кадров, пропущенных из-за невалидного качества изображения;
- `SkippedPerf_count` — количество кадров, пропущенных преднамеренно (для оптимизации производительности);

Теперь для каждого видеопотока доступна статистика по пропущенным кадрам с указанием причин.

- Для мониторинга FaceStream в ресурс `/metric` добавлена Prometheus-метрика `Frames_count` типа "счетчик" для подсчета общего количества обработанных кадров видеопотока.

- В сервис LUNA Configurator добавлена поддержка настроек `RUNTIME_CONFIG` и `FACEENGINE_CONFIG`.

Теперь параметры среды выполнения (Runtime) и FaceEngine можно задавать не только в конфигурационных файлах `faceengine.conf` и `runtime.conf`, но и через пользовательский интерфейс сервиса LUNA Configurator. В сервисе LUNA Configurator можно настроить только основные пользовательские параметры. Для более тонкой настройки следует использовать конфигурационные файлы.

Важно! Параметры могут быть заданы двумя способами одновременно. В случае совпадения параметров приоритет имеет значение, указанное в сервисе Configurator.

- В контейнер FaceStream добавлены новые переменные окружения `FACE_STREAM_CONFIG_TAG`, `TRACK_ENGINE_CONFIG_TAG`, `FACEENGINE_CONFIG_TAG`, `RUNTIME_CONFIG_TAG`.

С их помощью можно указать теги для соответствующих настроек из конфигуратора. FaceStream теперь автоматически перезапускается при любых изменениях в указанных разделах конфигуратора, применяя новые значения.

Также была удалена переменная окружения `CONFIGS_ID` и его сокращенная версия `Cid`.

- Добавлена поддержка алгоритма трекинга `HS`, обеспечивающего отслеживание для трех сценариев: лица, тела, лица + тела.

Новый алгоритм улучшает качество трекинга — теперь, если человека временно перекрывает другой человек или объект, это не приводит к прерыванию трека. Это уменьшает количество дублей с одним и тем же человеком.

Теперь `HS` используется по умолчанию, однако прежний алгоритм `vlTracker` остаётся доступным.

- В контейнере сервиса LUNA Streams обновлена версия Python до 3.13.

Поддержка более старых версий Python прекращена.

- База данных `Oracle` больше не поддерживается в сервисе LUNA Streams.

- Теперь для загрузки настроек FaceStream в сервис Configurator применяется единый механизм миграции конфигураций — такой же, как и для LUNA Streams.

Все настройки FaceStream будут удалены из конфигуратора во время понижения версии (downgrade).

См. раздел Загрузка настроек в LUNA Configurator.

Исправленные ошибки

- Исправлена ​​ошибка привязки пользователя базы данных к схеме при создании базы данных LUNA Streams.

Теперь при указании пользовательской схемы через переменную `LUNA_PG_SCHEMA` все таблицы создаются в указанной схеме. Ранее они по ошибке размещались в схеме `Public`.

# v.5.95.0

Изменения

- Изменена процедура генерации запроса к ресурсу "/stream_events" для обнаружения человека.

  Теперь детекции лица и тела на одном кадре объединяются в одну запись. Если для обоих обнаружений требуется исходный кадр, он будет добавлен в запрос только один раз, что оптимизирует передачу данных.

- Добавлена возможность напрямую использовать сервис LUNA Handlers для хранения событий.

  Это изменение упрощает процесс сохранения событий, устраняя необходимость промежуточного обращения к сервису LUNA API, что повышает эффективность работы системы.

  Чтобы сохранять события напрямую через LUNA Handlers, необходимо в секции "lunaplatform" группы настроек FaceStream указать параметры `origin` и `api_version` сервиса LUNA Handlers.

- В лог FaceStream добавлена новая строка, содержащая идентификатор трека и идентификатор потока.

  Пример добавленной строки:

      [I1226 19:04:15.037923 524519 FaceBestShotHandler.cpp:79] [streams] Track [6414eceb-fa5c-417e-8dec-763000000000] in stream [ff68e601-08e1-42cd-9751-deb737e79929] is added

  + Автоматическое удаление логов теперь включено по умолчанию в группе параметров `LUNA_STREAMS_LOGS_CLEAR_INTERVAL`.

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

  См. раздел "Автоматическое удаление логов потоков".

Исправленные ошибки

- Добавлена проверка формата цветности видеопотока.

  Теперь система проверяет, соответствует ли видео формату `YUV420`, который является единственным поддерживаемым. В случае несоответствия в лог выводится удобочитаемое сообщение об ошибке.

  Ранее отсутствие такой проверки могло приводить к сбоям при обработке видео с неподдерживаемым форматом цветности.

- Исправлено появление ошибки `Internal server error` при создании потока с типом `images` и отсутствующим параметром `mask`.

  См. запрос "create stream v2".

- Из скрипта инициализации базы данных LUNA Streams (`base_scripts/db_create.py`) удалена жесткая привязка логина `luna` и пароля `luna` для авторизации к БД PostgreSQL.

  Это приводило к невозможности разворачивания сервиса LUNA Streams если логин и пароль к БД отличались от вышеуказанных.

# v.5.89.0

Изменения

- Версия SDK обновлена до v.5.23.4.

- В секцию "performance" настроек FaceStream добавлен параметр "mixed_decode", определяющий процент потоков, которые могут быть декодированы на CPU.

  Параметр может принимать значения в интервале от 0 до 100.

- В секцию "performance" настроек FaceStream добавлен параметр "enable_hibernation", переводящий FaceStream в режим гибернации при отсутствии детекций.

  В режиме гибернации:

  - Декодируются только ключевые кадры, что снижает нагрузку на систему при низком уровне активности в стриме.
  - При появлении хотя бы одной детекции на ключевом кадре FaceStream "просыпается" и начинает обрабатывать все кадры, как в стандартном режиме.
  - Режим рекомендуется для камер с низким количеством детекций за единицу времени. В противном случае эта функция будет бесполезна — FS будет оставаться в состоянии бодрствования все время.

- Улучшено логирование FaceStream при невозможности подключения к LUNA PLATFORM.

  До изменений: Логи содержали сообщение с уровнем WARNING, не указывая причину и источник ошибки:

      Sending of body best shot is disabled. Reason: URI must contain a hostname.

  После изменений: Логи теперь указывают на конкретное поле конфигурации (`lunaplatform.origin.value`) и выводятся с уровнем ERROR:

      Failed to create client from: lunaplatform.origin.value. Reason: URI must contain a hostname.

# v.5.84.0

Исправленные ошибки

- Исправлена ошибка, при которой параметр "fps_floor" (управление пропуском кадров) не работал должным образом с использованием видеопотоков с переменной частотой кадров.

  Теперь частота кадров в таких видео рассчитывается в реальном времени, используя среднюю разницу между временными метками (PTS) соседних кадров.

# v.5.81.2

Изменения

- FaceStream теперь является частью поставки LUNA PLATFORM.

  Комплект поставки FaceStream теперь имеет версию LUNA PLATFORM для избежания проблем с совместимостью компонентов. Иначе говоря, теперь FaceStream определенной версии всегда работает с LUNA PLATFORM аналогичной версии.

  Документация по установке Standalone-версии FaceStream удалена из комплекта поставки и теперь выдается по запросу.

  Важно! Контейнер FaceStream по-прежнему имеет свою версию. Изменена именно версия комплекта поставки компонента FaceStream. Например, для комплекта поставки FaceStream v.5.82.1 версия компонента (контейнера) FaceStream равна v.5.2.6.

- FSDK обновлен до версии v.5.22.1.

Исправленные ошибки

- Исправлена ошибка, которая не позволяла запустить FaceStream из Docker-контейнера с конфигурационными файлами.

  Теперь в контейнер FaceStream добавлена новая переменная окружения "CONFIGURATION_PATH", определяющая путь до конфигурационного файла "fs3Config.conf".

  По умолчанию используется конфигурационный файл по пути "/srv/facestream/data/fs3Config.conf".

  Конфигурационный файл используется только если не переданы переменные окружения "CONFIGURATOR_HOST" и "CONFIGURATOR_PORT", которые необходимы для использования настроек из сервиса Configurator.

  Таким образом, команда для запуска FaceStream с конфигурационным файлом может иметь следующий вид:

      docker run \
      --env=CONFIGURATION_PATH=/srv/facestream/data/fs3Config.conf \
      -v /var/lib/fs/fs-current/extras/conf/configs/fs3Config.conf:/srv/facestream/data/fs3Config.conf \
      -v /var/lib/fs/fs-current/extras/conf/configs/faceengine.conf:/srv/facestream/data/faceengine.conf \
      -v /var/lib/fs/fs-current/extras/conf/configs/runtime.conf:/srv/facestream/data/runtime.conf \
      -v /etc/localtime:/etc/localtime:ro \
      -v /tmp/logs/facestream:/srv/logs \
      --env=PORT=34569 \
      --detach=true \
      --restart=always \
      --name=facestream \
      --network=host \
      dockerhub.visionlabs.ru/luna/facestream:v.5.2.6

- Исправлено чрезмерно долгое выполнение запросов "get last frame preview" и "get live preview" при большом количестве записей логов в БД Streams.

# v.5.1.49

Изменения

- Теперь все данные о лицах, включая биометрические образцы лиц, отправляются в LUNA PLATFORM на ресурс "/6/handlers/{handler_id}/stream_events".

  Если в параметре "frame_store" настроек управления потоком указывается адрес до ресурса "/images" и в настройках FaceStream включен параметр "send_source_frame", то исходные изображения также будут прикреплены к запросу.

  Структура возвращаемого события осталась прежней.

  Идентификаторы трека и запроса записываются в логи FaceStream. Это позволяет отслеживать отправку запроса к LUNA PLATFORM.

  Пример логов:

      [17:28:53.684796 4175687 LunaBaseClient.cpp:98] [client] Generated request to LUNA (API 6). Luna-Request-Id = 1712327333,d880445b-6dde-4da8-bd1b-88d38cce7814, Luna-Event-Time = 2024-04-05T14:28:47.740913Z, Luna-Account-Id = b48efe64-9b3c-4be9-8300-5fd1469dde7b. Track = 63f1f93e-152a-47ec-bc31-0eff0000000a identification = Source 0
      [I0405 17:28:53.684837 4175687 LunaBaseClient.cpp:60] [client] Request
      [I0405 17:28:53.733474 4175722 LunaClient.cpp:31] parse response on creation of a new event.
      [I0405 17:28:53.734727 4175722 StreamEventsSender.cpp:172] [client] Got successful response for request (id 1712327333,ee37cb41-be35-4dda-9f70-e0633d3dc79c). Status code: 201

  В первой строке лога содержатся идентификаторы запроса и трека, а в последней строке идентификатор и статус запроса от LUNA PLATFORM.

- В контейнере сервиса LUNA Streams обновлена версия Python до 3.12.

  Поддержка более старых версий Python прекращена.

- Повышена производительность запроса "get streams" в некоторых случаях.

- Системные требования FaceStream вынесены в отдельный документ в комплекте поставки.

Исправленные ошибки

- Исправлена ошибка сервиса LUNA Streams, приводившая к ошибке очистки логов потоков в случаях, когда база данных была недоступна.

- Исправлено падение FaceStream в случае, когда поле "location" в настройках управления потока не было заполнено.

- Исправлена проблема обработки некорректного запроса к InfluxDB в некоторых случаях.

- Исправлена некорректная работа FaceStream на видеокартах А серии, 30хх с включенным параметром "frg-subtractor".

# v.5.1.46

Изменения

- Теперь при использовании ROI FaceStream отправляет в LUNA PLATFORM не обрезанный исходный кадр.

  Примечание. Размер отправляемого исходного кадра также увеличен.

  Также на страницу предварительного просмотра добавлено отображение ROI в виде оранжевого ограничивающего прямоугольника.

- Уменьшено потребление видеопамяти при расчете Mask Liveness на GPU.

Исправленные ошибки

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

  См. раздел "Интерфейс воспроизведения потока" для получения информации о цветах ограничивающих прямоугольников на странице предварительного просмотра.

- Сообщение FaceStream о необходимости прочесть дополнительный кадр переведено в категорию WARNING, т. к. не является ошибкой.

- Исправлена ошибка в сервисе LUNA Streams, не позволяющая создавать новые записи логов потока в базе данных Streams из-за её переполнения.

# v.5.1.45

Изменения

- FSDK обновлен до версии v.5.16.1.

- В запрос get streams добавлены параметры запроса `order`, `stream_id__gte` и `stream_id__lt`.

Исправленные ошибки

- Теперь детекции не будут отправляться в LUNA PLATFORM, если для параметра "minimal_body_track_length_to_send" установлено значение "0".

  Однако список детекций не будет пустым, т.к. лучшие снимки будут отправляться как детекции, когда для параметра "number_of_bestshots_to_send" установлено ненулевое значение.

# v.5.1.43

Изменения

- Теперь все данные о телах, включая биометрические образцы тел, отправляются в LUNA PLATFORM одним запросом на ресурс "/6/handlers/{handler_id}/stream_events".

  Ранее данные о телах отправлялись двумя запросами, что генерировало два события:

  - основное событие, генерируемое по статическому обработчику, содержащее все основные данные о телах, включая адрес сохраненного биометрического образца тела,
  - вспомогательное событие, генерируемое по динамическому обработчику, содержащее только координаты тела человека, базовую информацию о вспомогательном событии (время детекции, время создания события, идентификатор аккаунта и т.п) и "track_id" для связи с основным событием.

  Теперь, когда все отправляется на один ресурс, больше не требуется создавать динамический обработчик и указывать его в параметре "detection_handler" > "handler_id". Указание такого обработчика будет проигнорировано. В спецификации LUNA Streams поле "detection_handler" помечено как Deprecated.

  Если в параметре "frame_store" настроек управления потоком указывается адрес до ресурса "/images" и в настройках FaceStream включен параметр "send_source_frame", то исходные изображения также будут прикреплены к запросу.

  Структура возвращаемого события осталась прежней.

  Важно! Начиная с текущей версии FaceStream, необходимо использовать LUNA PLATFORM v.5.56.0 и выше. Более старые версии LUNA PLATFORM не поддерживаются текущей версией FaceStream.

- В сервис LUNA API v.6.22.0 (версия LUNA PLATFORM v.5.56.0) добавлен встроенный плагин, позволяющий выполнять часть запросов к сервису LUNA Streams через сервис API.

  См. примечания к выпуску для LUNA PLATFORM v.5.56.0 и раздел "Проксирование запросов в LUNA Streams через LUNA API" в руководстве администратора FaceStream для более подробной информации.

- Ускорен расчет Mask Liveness и уменьшено потребление памяти при расчете.

- В сервис LUNA Streams добавлен новый запрос "get list of plugins", позволяющий получить список импортированных плагинов и их статус.

Исправленные ошибки

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

# v.5.1.41

- Начиная с текущей версии FaceStream, необходимо использовать LUNA PLATFORM v.5.53.0 и выше. Более старые версии LUNA PLATFORM не поддерживаются текущей версией FaceStream.

Изменения FaceStream

- Поддержана обработка потоков, доступных по протоколу HTTPS.

- Улучшена стабильность работы с RTSP-камерами за счет перехода на новую версию FFMpeg.

- Теперь в событие LUNA PLATFORM отправляется параметр "stream_id", содержащий идентификатор потока.

- В настройки FaceStream добавлен новый параметр "request_timeout_ms", в котором можно настроить таймаут отправки и получения событий из/в LUNA PLATFORM в миллисекундах.

  Значение по умолчанию - 30 секунд (30000 миллисекунд).

*Изменения*

- В группу параметров "healthcheck" настроек создания потока добавлен новый параметр "timeout", позволяющий задавать таймаут в миллисекундах на чтение закодированного пакета.

- Группа параметров `<service_name>_DB` базы данных LUNA Streams расширена новым опциональным параметром "dsn", в котором задается строка DSN, которая может содержать различные настройки для управления подключением к базе данных, такие как множественные хосты, аутентификационные данные, порт и другие (настройки зависят от типа БД).

  За счет внедрения нового параметра, классические параметры для подключения к БД ("db_host", "db_port", "db_name", "db_user" и "db_password") стали опциональными.

  При необходимости можно комбинировать строку DSN и классические параметры, однако строка DSN является более приоритетной. Можно частично заполнить строку DSN (например, "postgres01,postgres02/luna_streams"), и тогда недостающие параметры будут заполнены из значений параметров "db_host", "db_port", "db_name", "db_user" и "db_password".

  После выполнения обновления на новую версию LUNA Streams, параметр "dsn" не появится во вкладке "Settings" в Configurator. Для использования DSN, необходимо вручную указать соответствующий параметр. Ниже приведен пример указания параметра "dsn":

      {
      "dsn": "luna:luna@postgres01:5432,postgres02:5432/luna_streams?some_option=some_value"
      "db_settings": {
          "connection_pool_size": 5
          }
      }

- Уменьшен размер образа `streams-configs`.

- Расширено описание работы автоматического перезапуска потока (секции "autorestart") в настройках управления потока.

  См. раздел "Автоматический перезапуск потоков" в руководстве администратора.

- В настройки LUNA Streams в Configurator добавлена секция "LUNA_STREAMS_LOGS_CLEAR_INTERVAL", позволяющая управлять логикой автоматического удаления логов потоков из таблицы "log" базы данных LUNA Streams.

  Автоматическое удаление логов помогает очистить базу данных от большого количества ненужных логов. Самая последняя запись для каждого потока не удаляется.

  Доступны следующие параметры:

  - "interval" - задает интервал удаления логов;
  - "interval_type" - задает тип интервала (недели, дни, часы, минуты, секунды);
  - "check_interval" - задает частоту проверки логов на удаление (секунды);
  - "active" - включает/выключает автоматическое удаление логов потоков.

  По умолчанию автоматическое удаление логов выключено.

  Значения настроек по умолчанию включают автоматическое удаление логов ("active" = true) с проверкой потоков логов в базе данных каждые 180 секунд ("check_interval" = 180) и удаляют логи старше 7 дней ("interval" = 7 и "interval_type" = days).

  Пример проверки логов на удаление каждые 5 минут и удаления логов старше 4 недель:

      {
          "interval": 4,
          "interval_type": "weeks",
          "check_interval": 300,
          "active": true
      }

  + Добавлена поддержка формата логирования ECS.

  Для использования нового формата необходимо задать значение "ecs" в настройке "format" секции "LUNA_STREAMS_LOGGER".

  При использовании значения "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" - содержит код ошибки, если запрос завершается с ошибкой.

Исправленные ошибки

- Исправлена ошибка формирования невалидного json-файла с результатами отладки (включается с помощью параметра "save_debug_info").

- Исправлены утечки и сокращено потребление памяти FaceStream.

# v.5.1.32

Изменения

- FSDK был обновлен с версии 5.13.0 до версии 5.15.1.

  В FSDK v.5.14.0 обновился детектор лиц FaceDetV3.

Исправленные ошибки

- Исправлена ошибка, при которой поле "is_best_shot" в json-логах отладки (параметр "save_debug_info" в настройках FaceStream) могло содержать некорректное значение "false" при включенной политике Главного трека.

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

# v.5.1.30

Изменения

- Отображение логов статуса треков теперь будет включаться с помощью использования тега "debug", а не тега "bestshot".

  Пример лога статуса трека: `I0417 17:03:09.311389 74 BodyBestShotHandler.cpp:134] [debug] Track [336363]. Status update ACTIVE`

- В контейнере сервиса LUNA Streams обновлена версия Python до 3.11.

  Поддержка более старых версий Python прекращена.

# v.5.1.28

Изменения

- Теперь FaceStream будет отправлять уникальные "track_id" в LUNA PLATFORM в формате UUID, например, "671719eb-bee8-4cd4-8efd-da0500000040".

Исправленные ошибки

- Исправлена ошибка, при которой выполнялось два запроса в LUNA PLATFORM при включенной отправке исходного кадра с сохранением в ресурс "/images" - запрос к ресурсу "/handlers/{handler_id}/events" с лучшими снимками и исходным кадром и лишний запрос к ресурсу "/images" с исходным кадром.

  Теперь выполняется только один запрос к ресурсу "/handlers/{handler_id}/events", содержащий лучшие снимки и исходный кадр.

  Кроме того, была исправлена ошибка, при которой игнорировался параметр "jpeg_quality_level" (степень сжатия кадра) при выполнении запроса к ресурсу "/handlers/{handler_id}/events".

# v.5.1.27

Изменения

- Теперь для сохранения исходного кадра будет использоваться механизм политики "image_origin_policy" обработчика LUNA PLATFORM, если предполагается использовать ресурс "/images".

  Ранее для сохранения исходного кадра выполнялось несколько внутренних запросов.

  Адрес до ресурса "/images" задается в параметре "frame_store" в настройках управления потоком (например, "frame_store": "http://127.0.0.1:5000/6/images").

  Данное нововведение не распространяется на сохранение исходных изображений в бакет хранилища LUNA Image Store.

  Обратите внимание, что для отправки исходного кадра необходимо наличие включенного параметра "send_source_frame" в настройках FaceStream, а в политике обработчика должно быть включено сохранение исходных изображений (параметр "policies" > "storage_policy" > "image_origin_policy" > "store_image" = "1").

- Добавлена возможность указывать координаты ROI или DROI в процентах от текущего размера кадра.

  Для этого в запросы "create stream", "get stream" и "get streams" сервиса LUNA Streams добавлено новое поле "mode" в параметры "roi" и "droi".

  Данное поле позволяет задавать один из двух режимов:

  - "abs" - параметры "x", "y", "width" и "height" задаются в пикселях (старый вариант)
  - "percent" - параметры "x", "y", "width" и "height" задаются в процентах от текущего размера кадра (новый вариант)

  Если поле "mode" не указывается в теле запроса, то будет использовано значение "abs". Таким образом, нет необходимости пересоздавать старые потоки.

- В список тегов для логирования (параметр "tags" в настройках FaceStream) добавлен новый тег "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 не будет выведено никакой информации.

- Добавлена возможность отключения фильтрации по AGS и положению головы (углы "pitch", "yaw", "roll").

  Для отключения фильтрации по AGS необходимо задать значение "0" для параметра "min_score" в настройках управления потоком.

  Для отключения фильтрации по положению головы необходимо задать значения "180" для параметров "detection_pitch_threshold", "detection_roll_threshold" и "detection_yaw_threshold" в настройках управления потоком.

- Уменьшено потребление видеопамяти приложением FaceStream.

- Настройки мониторинга FaceStream по умолчанию теперь аналогичны настройкам мониторинга LUNA PLATFORM по умолчанию.

  Это означает, что если для мониторинга LUNA PLATFORM используются настройки по умолчанию, то для включения мониторинга FaceStream достаточно включить параметр "send_data" в настройках FaceStream. В таком случае, данные мониторинга FaceStream будут сохраняться в бакет "luna_monitoring".

- Раздел по активации лицензии LUNA PLATFORM для работы LUNA Streams вынесен в отдельное руководство "FS_without_LP/FS_License_Activation_Manual_Standalone_Rus.pdf/html".

  В это руководство также добавлена информация по активации лицензии LUNA PLATFORM с помощью ключей Guardant (см. подробную информацию в примечаниях к LUNA PLATFORM v.5.45.1).

# v.5.1.23

Изменения

- FSDK был обновлен до версии 5.13.0.

  В данной версии FSDK обновился детектор тел до версии 5.

  Обратите внимание, что при обновлении версии FSDK необходимо обращать внимание на изменения настроек "TRACK_ENGINE_CONFIG" в сервисе Configurator. В данном релизе настройки "TRACK_ENGINE_CONFIG" не изменились.

- Теперь при изменении разрешения кадра во время обработки потока, обработка будет завершена с ошибкой `frame size is changed from <value> to <value>`.

  Если для потока задан автоматический перезапуск (см. секцию `autorestart` запроса "create stream"), то он будет перезапущен. В таком случае, FaceStream снова примет поток в обработку с новым разрешением кадра.

  Если пользователь просматривает предварительный просмотр, ему необходимо обновить окно предварительного просмотра.

- Изменен порядок применения эстиматоров. Теперь сначала применяется эстиматор AGS, а затем HeadPose.

- Удалена фильтрация по Liveness Head&Shoulders.

  В спецификации OpenAPI сервиса LUNA Streams параметр `use_shoulders_liveness_filter` объявлен как Deprecated и будет игнорироваться при попытке создания нового потока.

  Также будет игнорироваться первое значение в параметре `livenesses_weights`, отвечающее за фильтрацию по Liveness Head&Shoulders. Например, при задании значения `livenesses_weights = [0.1, 0.25, 0.75]`, значение `0.1` будет учитываться как `0.0`.

Исправленные ошибки

- Исправлена ошибка, которая могла приводить к падению FaceStream при закрытии приложения.

# v.5.1.20

Изменения

- Теперь, вместе с отправкой исходного кадра в LUNA PLATFORM, отправляется заголовок X-Luna-Meta-rescale, содержащий коэффициент масштабирования исходного изображения в форме числа с плавающей запятой.

  Ранее при задании ширины исходного кадра для масштабирования (параметр `size_source_frame`) невозможно было определить координаты ограничивающего прямоугольника на исходном изображении, поскольку в LUNA PLATFORM отправлялись только координаты ограничивающего прямоугольника отмасштабированного изображения.

  Для определения реальных координат ограничивающего прямоугольника на отмасштабированном исходном изображении необходимо разделить размер полученного изображения на полученный коэффициент масштабирования.

  Примечание. Реальный размер рассчитывается с абсолютной погрешностью менее 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.

- В настройки сервиса LUNA Streams добавлена группа настроек `<LUNA_STREAMS_HTTP_SETTINGS`, содержащая настройки, отвечающие за обработку HTTP-подключений.

  Доступны следующие настройки:

  - `request_timeout` - продолжительность времени между моментом, когда новое открытое TCP-соединение передается на сервер, и моментом, когда получен весь HTTP-запрос. Значение (в секундах) - целое число, по умолчанию 60.
  - `response_timeout` - продолжительность времени между моментом, когда сервер передает HTTP-запрос приложению, и моментом, когда HTTP-ответ отправляется клиенту. Значение (в секундах) - целое число, по умолчанию 600.
  - `request_max_size` - насколько большим может быть запрос. Значение (в байтах) - целое число, по умолчанию 1 Гб.
  - `keep_alive_timeout` - тайм-аут поддержания активности HTTP. Значение (в секундах) - целое число, по умолчанию 15.

  См. подробную информацию по следующей ссылке: https://sanic.dev/en/guide/deployment/configuration.html#builtin-values

- В настройки сервиса LUNA Streams добавлена настройка `FORMAT`, позволяющая указать формат логирования - `default` (стандартный формат вывода логов) и `json` (вывод логов в формате json).

Исправленные ошибки

- Исправлена ошибка, при которой включение параметра `send_source_frame` могло приводить к понижению производительности FaceStream.

- Исправлена ошибка в скрипте Docker Compose, из-за которой загрузка настроек LUNA Streams выполнялась через скрипт `load_dump.py` (старый способ, используемый в версиях 5.1.12 и ниже), а не через механизм миграций (новый способ, используемый в версиях 5.1.13 и выше).

  Примечание. Если предыдущая версия FaceStream запускалась через Docker Compose, то при обновлении необходимо дополнительно выполнить команду загрузки настроек через механизм миграций для предыдущей версии LUNA Streams v.0.5.17, а затем выполнить ту же команду загрузки настроек для новой версии LUNA Streams v.0.6.2. См. раздел "Миграция настроек" руководства по обновлению FaceStream.

# v.5.1.18

Изменения

- Реализован функционал для сбора и отправки данных мониторинга FaceStream в базу данных InfluxDB. Мониторинг для FaceStream отключен по умолчанию. Для включения мониторинга FaceStream нужно включить настройку "send_data" и задать дополнительные настройки из секции «monitoring» настроек FaceStream.

  В InfluxDB отправляются следующие элементы:

  - элемент `measurements`. Он равен значению `fs-requests`.

  - набор тегов:

    - `fs_ip` - IP-адрес, где развернут FaceStream
    - `source` - поле "name", задаваемое при создании потока в LUNA Streams (опционально)
    - `stream_id` - идентификатор потока

  - набор полей:

    - `track_id` - идентификатор трека
    - `event_id` - идентификатор события, полученный от LUNA PLATFORM
    - `request_id` - внешний идентификатор для связи с мониторингом сервисов LUNA PLATFORM
    - `track_start_time` - время начала трека
    - `track_best_shot_time` - время, когда кадр с отправляемым лучшим снимком появился в системе
    - `track_best_shot_min_size_time` (опционально) - время, когда размер детекции достиг значения, заданного в параметре "best_shot_min_size"
    - `track_best_shot_proper_size_time` (опционально) - время, когда размер детекции достиг значения, заданного в параметре "best_shot_proper_size"
    - `liveness_start_time` (опционально) - время начала работы Liveness
    - `liveness_end_time` (опционально) - время окончания работы Liveness
    - `bestshot_count` - количество отправленных лучших снимков
    - `time_from_first_frame_to_send` - время, которое прошло от появления первого кадра в FS до отправки в LP
    - `track_send_count` - количество отправленных треков

    Поля, содержащие время, отправляются в виде UTC с точностью до микросекунд.

  - элемент `timestamp`. Он равен времени отправки лучшего снимка или лучших снимков в микросекундах.

  См. дополнительную информацию в разделе "Мониторинг" руководства администратора.

- Для сервиса LUNA Streams добавлен пользовательский интерфейс.

  Интерфейс можно открыть в браузере, указав адрес и порт сервиса LUNA Streams: `<streams_server_address>:<streams_server_port>`

  Пользовательский интерфейс сервиса содержит три вкладки - «Streams», «Groups» и «Queue».

  - «Streams» — вкладка, в которой отображаются статусы потоков и их предварительный просмотр, есть возможность создавать и редактировать потоки.
  - «Groups» — вкладка, в которой отображаются группы потоков.
  - «Queue» — вкладка в которой отображаются потоки, находящиеся в очереди на обработку.

  См. подробную информацию в разделе "Пользовательский интерфейс сервиса LUNA Streams" руководства администратора.

- Реализована отправка координат ограничивающих прямоугольников лиц (X, Y, ширина, высота) при использовании изображения без трансформации (настройка `portrait_type=gost`). Отправка реализована за счёт добавления параметра `face_bounding_boxes`, содержащего массив ограничивающих прямоугольников, соответствующих обнаруженным лицам.

  Координаты прямоугольника определяются в системе координат портрета.

  Координаты ограничивающего прямоугольника записываются в поле `face_bounding_boxes` тела запроса на генерацию события. Эти координаты используются при генерации события, что позволяет провести редетекцию лица, которая выполняется быстрее, чем детекция лица.

- Максимальный размер пакета (батча) с наборами изображений и детекций, передаваемого на эстимацию AGS и HeadPose, ограничен 16.

  Благодаря этому уменьшается потребление памяти приложением FaceStream.

Исправленные ошибки

- Исправлена ошибка, при которой при значении `silent_period=-1` трек мог быть отправлен несколько раз.

  Данная ошибка приводила к тому, что в LUNA PLATFORM генерировалось несколько событий с одинаковым `track_id`.

# v.5.1.16

Изменения

- Реализована отправка координат ограничивающих прямоугольников лиц (X, Y, ширина, высота) при использовании биометрического образца в качестве источника изображения (настройка `portrait_type=warp`). Отправка реализована за счёт добавления параметра `face_bounding_boxes`, содержащего массив ограничивающих прямоугольников, соответствующих обнаруженным лицам.

  Координаты ограничивающего прямоугольника определяются в системе координат исходного изображения.

  Поддержка записи в событие координат реализована в версии LUNA PLATFORM v.5.36.5. Таким образом, начиная с этой версии сборки FaceStream требуется использовать версию LUNA PLATFORM не менее v.5.36.5.

  Координаты ограничивающего прямоугольника сохраняются в поле `face_detections` > `detection` > `rect` события LUNA PLATFORM.

- Руководства по установке и обновлению FaceStream разделены на две части:

  - руководства по установке и обновлению FaceStream с запущенной LUNA PLATFORM. Подразумевается, что LUNA PLATFORM запускалась в соответствии с документацией из комплекта поставки LUNA PLATFORM с использованием путей по умолчанию. Данные руководства расположены в директории "/docs".
  - руководства по установке и обновлению FaceStream без запущенной LUNA PLATFORM (с активацией лицензии и дополнительным запуском сервисов Licenses, Configurator и баз данных PostgreSQL и Influx). Данные руководства расположены в директории "/docs/FS_without_LP".

Исправленные ошибки FaceStream

- Исправлена ошибка, при которой не считывался параметр `callback-mode` настроек TrackEngine.

  FaceStream работает только со значением `callback-mode=0`. При попытках задать значение `callback-mode=1`, в логах FaceStream будет выдано предупреждающее сообщение и будет использовано значение `callback-mode=0`.

- Уменьшено время генерации данных в формате JSON и реализована последовательная обработка кадров.

  Это привело к исправлению ошибки, при которой при использовании значения `json` для настройки `sending > request_type` резко росло потребление памяти.

  Примечание. Длительное время генерации данных в формате JSON может привести к увеличенному потреблению памяти.

- Исправлена ошибка, при которой не работал режим отправки изображений детектированнных лиц без трансформации (параметр `portrait_type=gost`) на GPU.

Исправленные ошибки

- Исправлена ошибка, при которой для полей "location" > "geo_position" > "latitude"/"longitude" нельзя было указать целые числа.

  Теперь можно указать и целые и десятичные числа.

# v.5.1.14

Изменения

- FSDK обновлен до версии 5.12.0.

  В данной версии был обновлен эстиматор Liveness FlyingFaces.

- Расширено описание многих параметров в спецификации LUNA Streams.

Исправленные ошибки

- Исправлена ошибка, при которой FaceStream мог отправлять некорректный URL-адрес предварительного просмотра в поле `preview > live > url` потока LUNA Streams, из-за чего в логах FaceStream возникала нижеописанная ошибка, но FaceStream продолжал работу:

      Failed to validate input json. Path: 'streams.0.preview.live.url',  message: 'URL host invalid', description: Bad/incomplete input data

  Данная ошибка могла возникать из-за того, что LUNA Streams запускался после FaceStream (например, выполнился перезапуск сервера, где запущены и FaceStream и LUNA Streams), а для определения своего IP-адреса, приложению FaceStream необходимо либо выполнить подключение к сервису LUNA Streams, либо считать заранее заданный IP-адрес в переменной окружения системы "VL_FACE_HOST" (см. раздел "Nuances of working with stream preview" руководства администратора).

  Теперь если IP-адрес FaceStream определяется с помощью подключения к LUNA Streams и сервис запускается после FaceStream, то FaceStream будет завершать работу ошибкой `Failed to get local IP address. Reason ...`.

  Если же IP-адрес FaceStream определяется с помощью корректно заданной переменной окружения "VL_FACE_HOST", то подобная ошибка не возникнет.

- Исправлена ошибка, при которой во время просмотра потока в браузере мерцал ограничивающий прямоугольник DROI если параметр "show_bbox" был выставлен на "0".

- Исправлена ошибка, при которой в LUNA PLATFORM не отправлялись некоторые детекции с координатами тела человека для лучших снимков.

  Соответственно, данные детекции отсутствовали в событиях, генерируемых с помощью динамического обработчика, указываемого в параметре "detection_handler".

# v.5.1.13

Изменения

- Добавлен механизм миграции настроек LUNA Streams, задаваемых в сервисе LUNA Configurator.

  Обновление LUNA Streams

  Ранее настройки LUNA Streams автоматически мигрировались при миграции сервиса LUNA Configurator. Теперь настройки LUNA Streams мигрируются с помощью отдельного механизма миграций. См. руководство по обновлению для более подробной информации.

  Запуск LUNA Streams с нуля

  Теперь настройки LUNA Streams загружаются в сервис Configurator с помощью механизма миграций. Настройки FaceStream по-прежнему загружаются в LUNA Configurator с помощью скрипта "load_dump.py". См. руководство по установке для более подробной информации.

Исправленные ошибки

- Исправлено падение FaceStream, возникавшее при задании некорректного адреса в параметре "lunastreams" > "origin" настроек FaceStream.

  Теперь FaceStream корректно завершается, а в логи пишется соответствующая ошибка.

- Исправлена ошибка, из-за которой не проверялся допустимый диапазон (от 0 до 1024 пикс.) для параметра "size_source_frame" настроек FaceStream, что приводило к возможности задания любых значений для этого параметра.

- Исправлена ошибка, при которой FaceStream выдавал трассировку стека вместо ошибки если был занят порт на котором он запускался.

  Теперь в логах FaceStream выдается ошибка `Error occurred on initializing application. Description: bind: Address already in use`.

- Исправлена ошибка, из-за которой изменение параметра "enable_gpu_processing" настроек FaceStream не применялось должным образом и приводило к падению при перезагрузке конфигурации.

# v.5.1.12

Изменения

- FSDK обновлен до версии 5.11.0.

Исправленные ошибки

- Исправлена ошибка, из-за которой счетчик ошибок потока обрабатывался неправильно.

  Если за время "period" количество ошибок не достигало значения "max_error_count", то счетчик ошибок не сбрасывался, а продолжал увеличиваться.

- Исправлена ошибка, из-за которой в событие LUNA PLATFORM записывались строки нулевой длины и значения "null" из параметров группы "location" настроек управления потоками.

# v.5.1.10

Изменения

- Добавлена поддержка новой системы авторизации LUNA PLATFORM 5.

  В настройках создания потока LUNA Streams доступно новое необязательное поле авторизации `event_handler` > `authorization`, в котором необходимо указать `token` или `account_id`. Параметр `event_handler` > `authorization` > `account_id` должен совпадать с параметром `account_id`, задаваемым при создании потока. Если новое поле авторизации не заполнено, то будет использован идентификатор `account_id`, задаваемый при создании потока.

  При обновлении на новую версию LUNA Streams, автоматически выполнится миграция базы данных для поддержки нового поля.

  Начиная с этой версии сборки FaceStream требуется использовать версию LUNA PLATFORM не менее v.5.32.0.

- Контейнеры сервисов LUNA Streams и FaceStream теперь именуются одинаково при ручном запуске и при запуске с помощью Docker Compose.

- В контейнерах сервисов LUNA Streams и LUNA Configurator обновлена версия Python до 3.10.

  В документации обновлены все команды, связанные с использованием Python внутри контейнеров, а именно, команды вида "python3.9" заменены на "python3".

- В комплект поставки добавлен новые документы "FS_Upgrade_Manual_Rus.pdf" и "FS_Upgrade_Manual_Rus.html", описывающие процесс обновления с предыдущей сборки сервисов LUNA Streams и FaceStream, а также сервисов LUNA PLATFORM, запущенных в соответствии с документацией FaceStream.

Исправленные ошибки

- Исправлена ошибка, при которой некорректно работал параметр "jpeg_quality_level" на GPU.

  При значении параметра `request_type` = `jpeg` сжимался только первый исходный кадр. Остальные исходные кадры не сжимались.

  При значении параметра `request_type` = `json` исходные кадры не сжимались, но сжимались все биометрические образцы, кроме первого.

# v.5.2.3

Изменения

- В настройки FaceStream добавлен новый параметр "fps_floor", который предназначен для управления количеством анализируемых кадров в видеопотоке, что позволяет уменьшить нагрузку на систему за счет пропуска некоторых кадров. Это может быть полезно, когда необходимо снизить требования к вычислительным ресурсам, сохраняя при этом приемлемую точность анализа.

  Количество пропущенных кадров рассчитывается как разница между частотой кадров видео потока и значением "fps_floor". Пропущенные кадры распределяются равномерно в течение каждой секунды.

  Если значение "fps_floor" равно нулю или отрицательное, FaceStream проигнорирует настройку, и количество обрабатываемых кадров останется неизменным.

  Например, при значении "fps_floor" = 15 для видеопотока с частотой 25 fps FaceStream будет пропускать 10 кадров в секунду (25 - 15). Эти 10 кадров будут равномерно распределены по времени, чтобы сохранить целостность воспроизведения видео и избежать резких скачков.

- Теперь в запросе к ресурсу "/version" FaceStream, возвращается используемая версия FSDK.

# v.5.2.2

Изменения

- Группа параметров "INFLUX_MONITORING" переименована в "LUNA_MONITORING в настройках LUNA Streams.

  В группу также добавлен параметр "storage_type", определяющий тип хранилища данных мониторинга. В настоящее время доступен только тип "influx".

  Важно! Посольку аналогичное нововедение было добавлено в LUNA PLATFORM v.5.76.0, то минимальная необходимая версия LUNA PLATFORM для работы с FaceStream обновлена до v.5.76.0.

- Теперь если детекция не достигает значения, указываемого в параметре "min_body_size_threshold", то она не будет рассматриваться как лучший снимок.

- Улучшен механизм автоматического перезапуска потоков для более эффективной обработки больших объемов данных.

Исправленные ошибки

- В API V2 сервиса LUNA Streams возвращена возможность использования параметра "preferred_program_stream_frame_width".

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

- В запросе "create stream V2" теперь нужно указывать как минимум один элемент в группе параметров "data" > "analytics".

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

# v.5.2.0

Изменения

- Добавлена поддержка API V2 сервиса LUNA Streams.

  Изменения второй версии ориентированы на использование совместного режима работы детектора лиц и тел. Детектор лиц и тел включается с помощью одновременного включения параметров "use-face-detector" и "use-body-detector" в настройках TrackEngine.

  Поддержка API V1 остается доступной.

  Основные изменения новой версии API:

  - удалено задание адреса и версии API сервиса LUNA API. Теперь настройки соединения с LUNA PLATFORM указывается в настройках FaceStream (группа параметров "FACE_STREAM_CONFIG") в разделе "lunaplatform".
  - параметр "min_score" разделен на два параметра — "min_score_face" и "min_score_body"
  - параметр "number_of_bestshots_to_send" раздел на два параметра — "face_bestshots_to_send" и "body_bestshots_to_send"
  - удалены все устаревшие параметры (например, "detection_handler")

  Руководство администратора полностью переработано под использование версии API V2.

  Плагин для проксирования запросов LUNA Streams через сервис LUNA API также поддерживает новую версию API. См. подробную информацию в разделе "Проксирование запросов в LUNA Streams через LUNA API".

  Пользовательский интерфейс LUNA Streams в настоящий момент не поддерживает API V2. Поддержка будет добавлена позднее.

  Важно! На данный момент есть ограничения на работу нижеописанного функционала API V2.

  Общий функционал:

  - отсутствует параметр "preferred_program_stream_frame_width"
  - невозможно указать более одной аналитики в массиве аналитик

  Совместный режим работы лиц и тел:

  - не поддерживается группа параметров "data" > "analytics" > "primary_track_policy"
  - не поддерживается параметр "data" > "analytics" > "sending" > "full_frame_settings", определяющий какие исходные кадры будут отправлены (лица, тела или лица и тела). В настоящий момент отправляются только исходные кадры лиц и тел.
  - не поддерживается параметр "data" > "analytics" > "sending" > "bestshot_settings" > "type", определяющий какие лучшие снимки будут отправлены (лица, тела или лица и тела). В настоящий момент будут отправляться только лучшие снимки лиц и тел.

  Периодическая отправка лучших снимков в совместном режиме работает аналогично работе с телами. Это значит, что параметр "silent_period" не будет работать в совместном режиме.

  Описание ограничений совместного режима также описано в разделе "Совместный режим детектирования лиц и тел" в руководстве администратора.

- Добавлена возможность отправлять во внешний сервис Crop-изображения вместо биометрических образцов (формат "warp") и модифицированных изображений (формат "gost").

  Отправка регулируется параметром "sending" > "portrait_type", принимающим новое значение "crop".

  Crop-изображение это фрагмент изображения, полученный путём расширения и обрезки области вокруг обнаруженного объекта. Расширение области определяется новым параметром "sending" > "crop_factor", увеличивающим размеры исходного прямоугольника, содержащего объект. Максимальный размер обрезанного изображения контролируется параметром новым параметром "sending" > "max_crop_size", ограничивающим наибольшую сторону области. Если размер фрагмента превышает заданный параметр, то фрагмент будет масштабирован пропорционально по обеим координатам до нужного размера. Crop-изображение позволяет захватить больше контекста и детализации вокруг объекта по сравнению с биометрическим образцом.

  Это позволяет более гибко управлять обработкой изображений. Отправка Crop-изображений имеет несколько ключевых преимуществ:

  1. Координаты лица: Вместе с Crop-изображением передаются координаты лица как на Crop-изображении, так и на исходном изображении. Это позволяет избежать повторного запуска детектора лиц, обеспечивая наличие лица на изображении и экономя вычислительные ресурсы.
  2. Дополнительная информация: Crop-изображение содержит больше контекста и деталей вокруг лица, что позволяет оценивать различные параметры, которые невозможно оценить на биометрическом образце. Например, эстимация Deepfake, Liveness и др., могут быть выполнены с большей точностью.
  3. Сторонние сервисы: Сторонние сервисы и алгоритмы распознавания лиц часто работают лучше с Crop-изображениями, чем с биометрическими образцами. Это связано с тем, что Crop-изображения содержат больше информации и контекста, что улучшает точность распознавания и анализа.

  Важно! Начиная с текущей версии FaceStream, необходимо использовать LUNA PLATFORM v.5.67.0 и выше. Более старые версии LUNA PLATFORM не поддерживаются текущей версией FaceStream.

Исправленные ошибки

- Исправлена ​​ошибка отправки неправильного количества детекций лиц при использовании совместного детектора.

  Теперь количество обнаружений лиц ограничено параметром "face_bestshots_to_send". Для каждого трека количество отправляемых обнаружений лиц ограничено этим параметром. При каждом обнаружении будет отправлен только один биометрический образец.

# v.5.1.9

Изменения FaceStream

- Изменен механизм расчета DROI.

  Раньше DROI представлял координаты относительно ROI с учетом поворота изображения. Теперь DROI представляет координаты относительно исходного кадра.

- Отчёт FaceStream об обработке потока, регулярно отправляемый в LUNA Streams, расширен новыми полями "last_frame" и "live", содержащими URL-адреса изображения последнего кадра и потока, запущенного в режиме реального времени.

  Эти URL-адреса можно получить с помощью определенных запросов к сервису LUNA Streams (см. ниже).

- Ускорена работа FaceStream и снижено потребление памяти на GPU за счет ограничения выполнения оценки пяти ключевых точек лица в тех случаях, когда такая оценка не требуется.

- В логи FaceStream добавлено отображение IP-адреса сервера, на котором запущен FaceStream.

*Изменения*

- В LUNA Streams добавлена миграция, при которой все существующие потоки будут обновлены в соответствии с новым механизмом расчета DROI (см. изменения FaceStream выше).

  При обновлении FaceStream необходимо обязательно обновить LUNA Streams.

- В запрос "get health" добавлен параметр "include_luna_services".

  С помощью параметра "include_luna_services" можно включать и отключать проверку healthcheck для сервисов LUNA PLATFORM, от которых зависит сервис LUNA Streams. Если опция включена, то отправляются дополнительные запросы на ресурсы "/healthcheck" этих сервисов.

- Добавлено два новых ресурса - "get last frame preview" и "get live preview", позволяющих получить значения полей "last_frame" и "live" из отчета FaceStream об обработке потока (см. изменения FaceStream выше).

В запрос "get streams logs" добавлены новые параметры "preview" > "last_frame" и "preview" > "live".

- Автоматический перезапуск потока теперь имеет свои статусы (параметр "status").

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

  - "disabled" - автоматический перезапуск отключен пользователем (отключен параметр "restart")
  - "enabled" - автоматический перезапуск включен, но в данный момент не активен поскольку поток не находится в статусе "failure"
  - "in_progress" - автоматический перезапуск в процессе
  - "failed" - превышено допустимое количество попыток автоматического перезапуска и ни одна попытка не увенчалась успехом
  - "denied" - автоматический перезапуск разрешен пользователем, но невозможен из-за критической ошибки, полученной в отчете FaceStream. На данный момент критическая ошибка имеет следующее содержание: `Failed to authorize in Luna Platform`. В будущих версиях список критических ошибок может пополняться.

  Статус автоматического перезапуска можно получить с помощью запроса "get stream".

# v.5.1.8

Изменения FaceStream

- Скрипт для загрузки дампов FaceStream и LUNA Streams в сервис LUNA Configurator теперь можно запустить на версиях Python 2.x и Python 3.x.

  Для запуска скрипта на версии Python 2.x необходимо использовать команду `python`. Для запуска скрипта на версии Python 3.х необходимо использовать команду `python3`.

  Также скрипт для загрузки дампов добавлен в Docker Compose. Теперь для использования скрипта `start_facestream.sh` требуется только наличие запущенных контейнеров LUNA PLATFORM и активированной лицензии.

- Добавлена поддержка Liveness на GPU.

Исправленные ошибки FaceStream

- Исправлена ошибка, при которой в счетчике `Streams total` (общее количество запущенных потоков) в логах FaceStream учитывались потоки со статусом "failure".

- Исправлено падение FaceStream, возникавшее при задании несуществующего тега в поле `logging` > `tags` в настройках FaceStream.

- Исправлена ошибка, приводившая к падениям FaceStream на многопоточной среде.

- Исправлена ошибка, при которой поворот изображения, регулируемый настройкой "rotation", выполнялся по часовой стрелке на CPU и против часовой на GPU. Теперь на обоих типах процессоров поворот выполняется по часовой стрелке.

- Исправлена ошибка, при которой FaceStream брал в обработку большее количество потоков, чем указано в лицензионном ключе.

- Исправлено падение FaceStream при работе на GPU с использованием параметра "size_source_frame" из настроек FaceStream не равным нулю.

*Изменения*

- Значительно ускорено выполнение запросов к ресурсам "get stream" и "get streams" при большом количестве записей в таблицах логов потоков базы данных LUNA Streams.

- Добавлен новый ресурс "delete streams logs", позволяющий очистить логи потоков старше указанной в запросе даты (параметр "log_time__lt"), исключая последнюю запись в логе.

# v.5.1.7

Изменения FaceStream

- Теперь URL для отправки исходных кадров лиц и тел указывается в параметре "frame_store". Ранее для отправки исходных кадров тел использовался URL из параметра "origin", а URL для отправки исходных кадров лиц задавался в параметре "frame_store".

- Теперь при запросах к сервисам LUNA PLATFORM, выполненных с ошибкой, в логах FaceStream будет отображаться значение "Luna-Request-Id", сгенерированное FaceStream.

  По сгенерированному значению "Luna-Request-Id" можно найти ошибку в логах сервисов LUNA PLATFORM 5.

- В директорию "example-docker/luna_configurator/dumps/" комплекта поставки добавлен скрипт "load_dump.py", позволяющий загружать настройки FaceStream и LUNA Streams в LUNA Configurator.

  Пример команды загрузки настроек для сервиса LUNA Streams: `python -m load_dump --dump-file=streams_dump.json --luna-config=http://127.0.0.1:5070/1`

  Данный способ принят за основной в руководстве по установке FaceStream (см. главу "Загрузка настроек в LUNA Configurator").

Исправленные ошибки FaceStream

- Исправлено падение FaceStream, возникавшее из-за неправильной обработки ошибок сервера при отправке исходного кадра.

- Исправлена ошибка, приводившая к значительному увеличению потребления оперативной памяти во время работы FaceStream.

*Изменения*

- В поле "video_info" ответа на запрос на получение информации о потоке (запрос "get stream") добавлены новые параметры "duration" и "progress".

  Параметр "duration" отображает общую продолжительность видеофайла в сек, а параметр "progress" отображает текущий прогресс видеофайла от 0 до 1, где 0 - начало видеофайла, 1 - конец видеофайла.

# v.5.1.6

Изменения FaceStream

- Удален параметр "send_detection_path" из настроек FaceStream. Теперь возможность отправки детекций с координатами тела человека регулируется численным значением параметра "minimal_body_track_length_to_send". Если значение параметра равно "0", то отправка детекций выполняться не будет.

- Теперь при отправке исходного кадра в хранилище LUNA Image Store с помощью параметра "frame_store", также будет отправлен идентификатор аккаунта. В папке с исходным кадром в бакете будет сохранен файл `<source_frame_id>.meta.json`, содержащий параметр "account_id".

Исправленные ошибки

- Исправлена ошибка, при которой после перевода потока в статус "pause", в логах потока (см. запрос "get streams logs") отображался статус "in_progress".

- Исправлена ошибка, которая позволяла устанавливать очень большие значения для параметров в запросах "create stream" и "Post feedback on streams".

# v.5.1.5

Изменения FaceStream

- Добавлена возможность получать время детекции лица или тела относительно начала видеофайла (в секундах).

  Данное время сохраняется в поле "detect_ts" события LUNA PLATFORM.

  Получение времени детекции лица или тела доступно только для типа источника сигнала "videofile".

- Обновлена версия LUNA Streams.

Исправленные ошибки FaceStream

- Исправлена ошибка, при которой поток не переходил в статус "failure" при использовании некорректных параметров.

- Исправлено получение метрики "detections_count" по запросу GET "/metrics".

- Из настроек FaceStream удалён неподдерживаемый с версии 5.0.6 параметр "show_window".

- Исправлена ошибка, возникающая на некоторых видеокартах при просмотре потока с помощью ресурса "/streams/preview/{id}" во время использования FaceStream с GPU.

*Изменения*

- В запросы "create stream" и "put stream" сервиса LUNA Streams добавлен новый параметр "endless", позволяющий управлять перезагрузкой потока при получении ошибки сети (ошибка определяется системой как маркер конца файла `eof`).

  Параметр доступен только для типов источника сигнала "udp" и "tcp".

  Если параметр `endless` принимает значение `true`, то в случае получения `eof` и успешного переподключения, обработка потока будет продолжена. Если все попытки переподключения не удались (см. группу параметров "healthcheck"), то поток примет статус "failure". Если же параметр принимает значение `false`, то обработка потока не будет продолжена и поток примет статус "done".

  При трансляции видеофайла предполагается использование значения `false`. Это позволяет избежать повторной обработки уже обработанного фрагмента видеофайла при получении `eof`. Если же при трансляции видеофайла значение параметра `endless` будет `true`, то после окончания обработки видеофайл начнет обрабатываться с начала.

Исправленные ошибки

- Исправлен порядок получения логов потоков в запросе "get streams logs". Теперь новые логи отображаются первыми.

# v.5.1.4

Изменения

- Добавлены два новых ключа запуска для FaceStream - "CONFIG_RELOAD" и "PULLING_TIME".

  Ключ запуска "CONFIG_RELOAD" включает проверку наличия изменений в секции "FACE_STREAM_CONFIG" сервиса LUNA Configurator и принимает следующие значения:

  - "1" - отслеживание изменений включено, при наличии изменений в конфигурации будут автоматически перезапущены все контейнеры FaceStream;
  - "0" - отслеживание изменений отключено (значение по умолчанию).

  Ключ запуска "PULLING_TIME" задает период получения новых параметров из секции "FACE_STREAM_CONFIG" сервиса LUNA Configurator в диапазоне [1...3600] сек. Используется совместно с тегом "CONFIG-RELOAD". По умолчанию значение равно "10".

  Ключи запуска также доступны в режиме работы FaceSteam с конфигурационными файлами.

- Добавлен новый параметр "min_body_size_threshold" в группу параметров "filtering" в настройки управления потоками.

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

  Пример: `min_body_size_threshold = sqrt (64*128) = 90.5`

  Если значение равно "0", то фильтрация детекции тела по размеру выполняться не будет.

Исправленные ошибки

- Адрес исходного изображения теперь записывается в поле "detections" > "image_origin" события LUNA PLATFORM. Ранее этот адрес записывался в поле "face" > "user_data".

- Исправлена ошибка, при которой в запросе получения потоков из очереди (ресурс "/1/streams/processing/queue") не обрабатывался параметр "limit" (максимальное количество возвращаемых потоков) при фильтрации по группе.

# v.5.1.3

Изменения

- SDK обновлен до версии 5.6.0.

- Добавлена возможность группировки потоков. Группировка призвана объединять потоки с множеством камер в логические группы. Например, можно группировать потоки по территориальному признаку.

  Любой поток может принадлежать к нескольким группам, а также ни к одной.

  Группа создается с помощью запроса "create group". Для создания группы нужно указать обязательные параметры "account_id" и "group_name". При необходимости можно указать описание группы.

  Поток может быть привязан к группе двумя способами:

  - с помощью параметров "group_name" или "group_id" во время создания потока (запрос "create stream").

  - с помощью запроса "linker". В запросе необходимо указать идентификаторы потоков и группу, к которой их необходимо привязать. С помощью данного запроса можно также отвязать потоки от группы.

  Если поток был привязан к группе, то при запросе "get stream" или "get streams" группа будет отражена в поле "groups".

- Добавлена возможность передачи временных меток локального трека в создаваемые LUNA PLATFORM 5 события.

  - Для события, созданного по статическому обработчику, теперь записываются параметры "create_time" (время создания трека) и "end_time" (время окончания трека).

  - Для события, созданного по динамическому обработчику, теперь записывается параметр "end_time" (время окончания трека).

  - Для лучших снимков (биометрических образцов) теперь записывается параметр "detect_time" (время обнаружения).

- Теперь при включённом параметре "send_detection_path" вместе с лучшим снимком по умолчанию будет отправляться соответствующая детекция с координатами тела. Ранее такая детекция могла не отправляться.

# v.5.1.2

Изменения

- Добавлен новый параметр "preferred_program_stream_frame_width" в настройки управления потоками, предназначенный для работы с протоколами, в которых подразумевается наличие нескольких каналов с разными битрейтами и разрешением (например, HLS).

  Если у потока существует несколько таких каналов, то данный параметр позволит выбрать из всех каналов цельного потока тот канал, ширина кадра которого ближе к значению, указанному в данном параметре.

  Например, имеется 4 канала, ширины кадров которых равны 100, 500, 1000 и 1400. Если параметр "preferred_program_stream_frame_width" равен "800", то будет выбран канал, ширина кадра которого равняется 1000.

  Если у потока всего один канал, то данный параметр будет игнорироваться.

  Данный параметр используется только для источников типа "tcp" или "udp".

- В секцию "lunastreams" настроек FaceStream добавлены следующие новые параметры:

  - request_stream_period - параметр задаёт временной промежуток между запросами на получение новых потоков из LUNA Streams в диапазоне от 0.1 до 3600 секунд.

  - send_feedback_period - параметр задаёт временной промежуток между отправкой отчётов об обработанных потоках в LUNA Streams в диапазоне от 1.0 до 3600 секунд. Значение данного параметра не должно превышать значение параметра "STREAM_STATUS_OBSOLETING_PERIOD", задаваемого в настройках сервиса LUNA Streams.

  - max_feedback_delay - параметр задаёт максимальную задержку отправки отчёта в диапазоне от 1.0 до 3600 секунд. Если отчёт не был отправлен за данное время, то FaceStream остановит обработку текущих потоков. Значение данного параметра не должно быть меньше, чем значение параметра "send_feedback_period" и не должно превышать значение параметра "STREAM_STATUS_OBSOLETING_PERIOD", задаваемого в настройках сервиса LUNA Streams.

# v.5.1.1

Исправленные ошибки

- Исправлена ошибка в файле `docker-compose.yml`, приводившая к ошибке "host network_mode is incompatible with port_bindings" во время запуска скрипта Docker Compose.

# v.5.1.0

Изменения FaceStream

- Изменён принцип создания потоков. Ранее настройки для потоков задавались в конфигурационном файле "input.json" или в секции Configurator "FS_CONFIG". Теперь настройки для потоков задаются в теле формата JSON и отправляются с помощью HTTP запроса к сервису LUNA Streams (см. запрос "create stream" в документе "StreamsReferenceManual.html" комплекта поставки).

  После отправки HTTP запроса с заданными параметрами к сервису LUNA Streams, параметры добавляются в базу данных LUNA Streams под уникальным идентификатором "stream_id". В зависимости от количества доступных потоков в лицензии (данная информация поступает из сервиса LUNA Licenses), параметры попадают во внутреннюю очередь, где находятся в статусе "pending" пока FaceStream не заберёт их из очереди для последующей обработки (см. подробное описание сервиса в разделе "Взаимодействие FaceStream с LUNA Streams" в руководстве администратора).

  Изменения лицензирования:

  Сервис может обрабатывать определённое количество потоков одновременно. Количество таких потоков задаётся в параметре лицензионного ключа LUNA PLATFORM 5, определяющим количество потоков для работы LUNA Streams. Таким образом, начиная с версии 5.1.0, FaceStream лицензируется с помощью ключа LUNA PLATFORM 5.

  Для запуска LUNA Streams и FaceStream необходимо как минимум три дополнительных компонента LUNA PLATFORM:

  - Сервис LUNA Licenses. С помощью данного сервиса выполняется лицензирование сервиса LUNA Streams.
  - Сервис LUNA Configurator. Настройки LUNA Streams хранятся в данном сервисе аналогично настройкам "FACE_STREAM_CONFIG" и "TRACK_ENGINE_CONFIG" для FaceStream. При отсутствии необходимости использования LUNA Configurator, можно запустить LUNA Streams с использованием конфигурационных файлов, однако данные действия не описаны в руководстве по установке.
  - Контейнер PostgreSQL. В данном контейнере создаётся база данных LUNA Streams, в которую сохраняются параметры потоков, заданные ранее в теле JSON (см. описание базы данных в разделе "Описание базы данных LUNA Streams" руководства администратора).

  Также по умолчанию запускается контейнер InfluxDB OSS 2. С помощью БД Influx осуществляется мониторинг сервисов LUNA PLATFORM. При необходимости мониторинг можно отключить.

  Если компоненты LUNA PLATFORM не запущены и не активирована лицензия LUNA PLATFORM, то перед запуском FaceStream нужно выполнить следующие действия:

  - Активировать лицензию.
  - Запустить требуемые компоненты.
  - Загрузить настройки LUNA Streams и FaceStream в LUNA Configurator.
  - Создать и инициализировать базу данных LUNA Streams.

  Если компоненты LUNA PLATFORM запущены и активирована лицензия LUNA PLATFORM, то перед запуском нужно выполнить следующие действия:

  - Загрузить настройки LUNA Streams и FaceStream в LUNA Configurator.
  - Убедиться, что в лицензии указан параметр, определяющий количество потоков для обработки сервисом LUNA Streams и указать адрес сервера с запущенным сервисом LUNA Licenses в сервисе LUNA Configurator (если сервис LUNA Licenses не находится на сервере с LUNA Streams).
  - Создать и инициализировать базу данных LUNA Streams.

  Описание выполнения данных действий приведено в руководстве по установке FaceStream.

- Добавлена возможность развернуть FaceStream с помощью скрипта Docker Compose. Скрипт позволяет автоматически запустить и настроить LUNA Streams и FaceStream. Перед запуском скрипта должны быть выполнены следующие действия:

  - Активирована лицензия.
  - Запущены требуемые компоненты.
  - Настройки LUNA Streams и FaceStream загружены в Configurator.
  - Создана и инициализирована база данных LUNA Streams.

- В документацию добавлено описание ошибок, возвращаемых сервисами LUNA Streams и LUNA Licenses, а также общих ошибок, которые могут возникнуть при взаимодействии с LUNA PLATFORM.

- В настройки FaceStream (секция "FACE_STREAM_CONFIG" сервиса LUNA Configurator) добавлена секция "lunastreams", позволяющая указать адрес используемого сервиса LUNA Streams (параметр "origin"), его версию API (параметр "api_version") и верхнюю границу количества потоков FS (параметр "max_number_streams"). Если сервис LUNA Streams запущен на другом сервере, то необходимо перед запуском FaceStream указать актуальный адрес сервиса. См. подробную информацию в руководстве администратора FaceStream.

- Названия и структура настроек управления потоками были переработаны. Все настройки теперь разбиты по логическим блокам. Были переименованы следующие настройки:

  - input, luna_account_id > account_id
  - input, transport > data, type
  - input, url > data, reference
  - output, image_store_url > event_handler, frame_store

  Переработан способ передачи данных для генерации события. Ранее для генерации события LUNA PLATFORM использовался параметр "output" > "url" в котором при работе с лицами необходимо было указать адрес к ресурсу "/events" в формате `http://<luna_address>:<port>/6/handlers/<handler_id>/events`, где `<handler_id>` - идентификатор обработчика. При работе с телами использовались отдельные параметры "luna_human_handler_id" и "luna_dynamic_human_handler_id", а поле "url" заполнялось в формате `http://<luna_address>:<port>/6/`. Теперь идентификатор обработчика задаётся в группе "event_handler" > "bestshot_handler"/"detection_handler" > "handler_id", где "bestshot_handler" - статический обработчик для лица или тела, "detection_handler" динамический "handler_id" LUNA PLATFORM для работы с телами (бывш. "luna_dynamic_human_handler_id"). Адрес сервиса LUNA API и версия API теперь задаются отдельно. Ниже приведен пример передачи данных для генерации события, когда заданы статический и динамический обработчики для тела.

      "event_handler": {
          "origin": "http://127.0.0.1:5000",
          "api_version": 6,
          "bestshot_handler": {
              "handler_id": "ee4c42b6-23ae-410e-a2aa-a4220e64ba4b"
          },
          "detection_handler": {
              "handler_id": "426542d6-5509-4e5b-8a01-e2abd5c0a8c6"
          }
      }

  Если необходимо обработать лицо, то должен быть задан "handler_id" с параметрами для обработки лица в группе "bestshot_handler", а группа "detection_handler" не обязательна к заполнению.

  См. подробную информацию настройках управления потоками в руководстве администратора FaceStream.

- Прекращена поддержка обычного режима запуска FaceStream. Теперь запустить FaceStream можно только в серверном режиме.

- Информация по запуску FaceStream в серверном режиме с конфигурационными файлами перенесена в руководство администратора (см. раздел "Использование FaceStream с конфигурационными файлами").

- Изменены параметры логирования по умолчанию в настройках FaceStream, секции "Logging":

- Параметр "severity" теперь равен "1". Это означает, что в логи будут выводиться только предупреждения системы.

- Параметр "mode" теперь равен "l2c". Это означает, что логи будут выводиться только в консоль.

# v.5.0.7

Изменения FaceStream

- SDK обновлён до версии 5.5.0.

- Добавлена возможность получить текущую версию FaceStream с помощью запроса GET "/version" (см. подробную информацию в документе "FaceStreamApi.html").

- Исправлена ошибка, при которой при запуске FS с Configurator не использовался параметр "save-debug-info" из настроек TrackEngine.

- Исправлена ошибка, при которой не отправлялся исходный кадр без детекций с координатами человека (detection_path) с установленным параметром "send_source_frame".

- Исправлена ошибка, при которой не работала отправка "track_id" для лиц, из-за чего не записывалось значение "track_id" в событие LUNA PLATFORM.

- Исправлена ошибка при использовании эстиматора рта. Ошибка могла возникать при использовании двух потоков, когда первый использовал данный эстиматор, а второй нет.

# v.5.0.6

Изменения FaceStream

- FaceStream теперь поставляется только в контейнере Docker. Для запуска FaceStream внутри контейнера используется CentOS 8.

- Обновлён комплект поставки FaceStream. Теперь он включает документацию и конфигурационные файлы, необходимые для запуска FaceStream.

- Добавлен документ "LP_Docker_Installation_Manual_Rus", описывающий запуск FaceStream из контейнера Docker. Данная документация перенесена из руководства администратора. Документ поставляется в форматах PDF и HTML.

- SDK обновлён до версии 5.4.1.

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

  Для использования FaceStream с телами используются дополнительные настройки. Начиная с FaceStream 5.0.6 все настройки разбиты в документации на общие и индивидуальные для лиц и тел.

  Для включения отслеживания тел необходимо изменить параметр TrackEngine "use-face-detector" на "use-body-detector", а также задать индивидуальные настройки источников потоков для тел (см. соответствующие главы).

  Логика создания событий (отправка лучших снимков и их обработка в LUNA PLATFORM) для тел отличается от логики создания события для лиц (см. руководство администратора FaceStream для получения подробной информации).

- Все названия параметров в конфигурационных файлах приведены к единому виду. Например, ранее использовались названия "frame-processing-mode" и "real_time_mode_fps". Теперь все названия выглядят единым образом: "frame_processing_mode" и "real_time_mode_fps".

- Дополнены сообщения об ошибках. Теперь они содержат больше информации и путь к неправильному параметру.

- Больше не используется синхронное ожидание ответа от LUNA PLATFORM (также влияет на производительность при работе с телами).

- C лучшим снимком теперь будет отправляться время сервера. Ранее отправлялось время устройства. Данное нововведение распространяется на все виды источников (потоки, видеофайлы и наборы изображений).

- Прекращена поддержка 4 и 5 версии API LUNA PLATFORM. Начиная с этой версии FaceStream не может отправлять данные в LUNA PLATFORM 3, LUNA PLATFORM 4, Backport 3 и Backport 4. Отправка изображений возможна только в LUNA PLATFORM 5 (6 версия API).

- Использование параметра "show_window" и связанных с ним параметров более невозможно.