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

LUNA PLATFORM v.5.56.0#

Изменения#

  • Добавлена возможность выполнения видеоаналитики с помощью нового ресурса "videosdk".

    Важно! На данный момент ресурс находится в статусе бета-тестирования. Входные и выходные схемы могут быть изменены в будущих релизах без поддержки обратной совместимости.

    Видеоаналитика - это набор функций, которые обрабатывают кадр за кадром и оценивают полезные данные.

    Для выполнения видеоаналитики необходимо указать внешнюю ссылку на видеофайл, не превышающий размер 1 Гб.

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

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

    В группе настроек "LUNA_REMOTE_SDK_VIDEO_SETTINGS" сервиса Remote SDK можно задать настройки обработки видео, такие как количество рабочих процессов декодера, временная директория для хранение видео пр.

    Примечание. В текущей версии видео декодируется только на CPU. В будущих релизах будет добавлено декодирование на GPU.

    В настоящий момент поддерживается только видеоаналитика подсчета количества людей.

    Видеоаналитика подсчета количества людей

    Событие видеоаналитики подсчета количества людей начинается тогда, когда на указанном количестве подряд идущих кадров (параметр "probe_count") появляется указанное число людей (параметр "people_count_threshold"). Например, если минимальное количество людей равно 10, а количество подряд идущих кадров равно 3, то в случае наличия на 3 кадрах 10 человек начнется событие. Если на 2 кадрах 10 человек, а на 3 кадре 9 человек, то событие не начнется.

    По умолчанию обрабатываются каждые 10 кадров. При необходимости можно настроить частоту обработки кадров с помощью параметра "rate" (например, обрабатывать каждые 3 секунды или каждые 3 кадра).

    Для такой видеоаналитики также доступна возможность настроить прямоугольную область интереса ROI (параметр "roi") на кадре (координаты "x", "y", ширина, высота, единицы измерения - проценты или координаты). Принцип работы области интереса ROI аналогичен FaceStream.

    В каждом событии видеоаналитики подсчета количества людей содержится следующая информация:

    • "event_id" - идентификатор события
    • "max_people_count" - максимальное количество людей, обнаруженное на обработанном сегменте видео
    • "video_segment" - информация о сегменте видео (время начала события, время конца события, номер первого кадра, номер последнего кадра)
    • "frames_estimations" - массив с информацией об оценках на каждом кадре, содержащий следующую информацию:
      • номер кадра
      • время, соответствующее кадру
      • количество людей

    См. подробную информацию о новом ресурсе в спецификации OpenAPI.

  • SDK обновлен до версии 5.17.0.

    В данной версии SDK обновлен эстиматор LivenessOneShotRGB.

  • В сервис API добавлен встроенный плагин, позволяющий выполнять часть запросов к сервису LUNA Streams через сервис API.

    Перед использованием плагин необходимо включить и настроить (опционально).

    Плагин "luna-streams.py" расположен в контейнере сервиса API по пути /srv/luna_api/plugins и включается с помощью настройки "LUNA_API_ACTIVE_PLUGINS".

    Плагин можно настроить в настройке "LUNA_API_PLUGINS_SETTINGS". В настройке можно задать адрес и версию API запущенного сервиса LUNA Streams, а также таймауты соединения.

    Пример содержимого настройки "LUNA_API_PLUGINS_SETTINGS" для плагина "luna-streams.py":

    { "luna-streams": { "luna-streams-address": { "origin": "http://127.0.0.1:5160/1", "api_version": 1 }, "luna-streams-timeouts": { "request": 60, "connect": 20, "sock_connect": 10, "sock_read": 60 } } }

    Для разграничений прав доступа для запросов к LUNA Streams добавлена возможность указывать пользовательский ключ для токена. Для этого нужно создать новый или обновить существующий токен, передав пользовательский ключ "streams" с разрешениями для токена.

    Для проксирования запросов из сервиса LUNA API к сервису LUNA Streams нужно указывать разрешение с именем "streams". Другие пользовательские названия ключей не подходят. Использование пользовательского ключа в иных случаях не приведет ни к какому результату.

    Можно задать следующие разрешения:

    • "creation" (POST-запросы)
    • "view" (GET-запросы)
    • "modification" (PUT-запросы и PATCH-запросы)
    • "deletion" (DELETE-запросы)

    См. раздел "Plugins" руководства разработчика для получения перечня возможных запросов.

    Информация также будет добавлена в руководство администратора FaceStream в ближайший релиз.

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

  • В сервис Lambda добавлен новый тип Tasks-lambda, предназначенный для реализации дополнительных пользовательских длинных типов задач.

    Примеры возможного функционала длинных задач:

    • открепить лица от списка, если лица не похожи на указанное лицо
    • удалить дубликаты лиц из списка
    • рекурсивно найти события, похожие на указанное изображение

    Lambda-tasks создается аналогично остальным типам с запроса "create lambda".

    После создания lambda необходимо выполнить запрос "lambda task" для создания задачи Lambda. Результаты задачи/подзадачи можно получить с помощью стандартных запросов сервиса Tasks.

    Задача Lambda создается согласно общему процессу создания задач, за исключением того, что вместо "рабочего процесса" Tasks используется сервис Lambda.

    См. дополнительную базовую информацию в разделе "Tasks-lambda" руководства администратора.

    См. подробную информацию и примеры кода в руководстве разработчика сервиса Tasks.

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

  • Улучшено описание ошибок для некоторых случаев валидации тела запроса "generate events" при использовании схемы "multipart/form-data".

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

  • Исправлена генерация некорректного времени истечения токена при его создании/обновлении в случаях, когда установлено локальное время сервера ("STORAGE_TIME" = "LOCAL").

  • Исправлена ошибка, из-за которой при создании задачи Linker с большим количеством лиц происходило избыточное открытие соединений с базой данных, что приводило к зависанию задачи.

  • Исправлена ошибка, из-за которой невозможно было выполнить запрос "create new events" к сервису Events с ненулевыми полями "location".

    Попытка выполнить подобный запрос заканчивалась ошибкой с кодом "12047" и описанием "Failed to validate input msgpack. Path: '[0].location.', message: '[0].location. must be string''".

  • Исправлена ошибка 'a coroutine was expected, got None, возникавшая при использовании плагина отправки событий с большим количеством аргументов.

    См. подробную информацию и пример плагина отправки событий в разделе "Plugins" руководства разработчика сервиса Handlers.

  • Исправлена ошибка отсчета текущего времени ("now-time") для фильтров "create_time__lt" и "create_time__gte", указываемых в политике "match_policy" > "candidates" при создании обработчика.

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

  • Исправлена проверка лицензии на функцию ISO.

    Ранее, если лицензируемая функция ISO была отключена, то запросы на выполнение любых оценок завершались ошибкой с кодом "11055" и описанием "License problem: ISO feature is disabled".

  • Исправлена обработка детекций в запросе generate stream events (beta).

    Теперь если биометрические образцы передаются с типом "sources" > "source_type" > "detections", то будет выполнена детекция и экстракция этих биометрических образцов.

  • Исправлена ошибка отсутствия поля "unknown" в описании запроса liveness в спецификации OpenAPI cервиса Backport3.