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.