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 человек начнется событие с 3го кадра. Если на 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.