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

LUNA PLATFORM v.5.75.0#

Изменения LP

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

    Работа сервисов видеоаналитики основана на взаимодействии трех ключевых компонентов: аналитик, агентов и сервиса Video Manager.

    Аналитика

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

    Агент

    Агент — это компонент, который реализует алгоритмы видеоаналитики. Он принимает потоки, выполняет заданную аналитику и отправляет результаты через механизм Callback'ов или через веб-сокеты и сервис Sender. Каждый агент может поддерживать выполнение одной или нескольких аналитик, в зависимости от своей конфигурации и возможностей.

    В качестве агента можно использовать сервис Video Agent, либо написать собственного агента.

    В настоящий момент сервис Video Agent предоставляет следующие только одну аналитику - подсчет количества людей. В будущих релизах список аналитик будет расширен.

    Video Manager

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

    Таким образом в LUNA PLATFORM теперь есть два способа выполнения видеоаналитики:

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

    Аналитика подсчета количества людей, как и в запросе "videosdk", лицензируется отдельно.

    Сервис Video Manager по умолчанию отключен в настройке "ADDITIONAL_SERVICES_USAGE".

    Новые сервисы поддержаны:

    • в сервисе LUNA Dashboards
    • в скрипте Docker Compose из поставки
    • в Helm-чартах из поставки

    См. раздел "Сервисы видеоаналитики" для более подробной информации.

  • Добавлена возможность шифрования биометрических шаблонов.

    Шифрование можно включить и настроить с помощью группы параметров DESCRIPTOR_ENCRYPTION.

    Поддерживается использование алгоритма aes256-gcm. Источник ключа шифрования может быть указан напрямую или получен из хранилища Hashicorp Vault.

    Биометрические шаблоны хранятся в зашифрованном виде в базах данных Events, Faces или Attributes и в том же виде передаются во внешние системы. Если включено шифрование, то на запросы, которые возвращают биометрический шаблон, будет получен именно зашифрованный биометрический шаблон.

    При необходимости можно добавить шифрование для уже существующих биометрических шаблонов, заменить существующее шифрование или выполнить дешифрование биометрических шаблонов в БД Faces, БД Attributes или БД Events. Для этого необходимо выполнить миграцию биометрических шаблонов с помощью скрипта descriptors_encryption.py, расположенного в контейнерах сервисов Faces и Events, передав в качестве аргументов скрипта данные о БД Faces/Attributes/Events, и передав в качестве переменных окружения соответствующий ключ и алгоритм.

    Важно! LUNA PLATFORM не предназначена для одновременного использования зашифрованных и незашифрованных биометрических шаблонов. В случае обнаружения обоих видов биометрических шаблонов, сервис Python Matcher не запустится, выдав ошибку "Check is failed, encryption hash is not unique". Поэтому, при включении шифрования, необходимо остановить сервисы, ограничив тем самым все запросы, перевести все биометрические шаблоны на новую версию шифрования и только потом заново запускать сервисы. Крайне рекомендуется выполнения бекапа БД перед манипуляциями с шифрованием.

    Примечание. Шифрование добавляет дополнительные вычислительные затраты, что приводит к замедлению процессов, таких как сравнение по базе, сравнение с использованием LUNA Index Module и синхронизация кеша в Cached Matcher. LUNA Index Module поддерживает работу с зашифрованными биометрическими шаблонами.

    Примечание. Плагины для сравнения также необходимо обновить в соответствии с логикой шифрования.

    См. подробную информацию о шифровании биометрических шаблонов в разделе "Шифрование биометрических шаблонов" руководства администратора.

    См. подробную информацию о добавлении шифрования к уже существующим биометрическим шаблонам в разделе "Управление шифрованием биометрических шаблонов" руководства по обновлению.

  • Добавлена возможность задать пользовательское смещение для временных меток видео (PTS) в запросе "videosdk".

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

    Смещение задается в теле "pts" > "start_time", указываемого в теле запроса.

  • В запрос "videosdk" добавлена возможность выбрать действие при возникновении ошибки декодирования видео (параметр "error_handling" > "action").

    Доступно два действия:

    • stop — прекратить обработку видео и сгенерировать ответ на основе части видео, обработанной до возникновения ошибки
    • fail — прекратить обработку видео и завершить запрос ошибкой

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

  • Изменен формат ответа запроса "videosdk"

    • для аналитики "people_count" добавлено поле "track_id", содержащее идентификатор трека
    • для аналитики "people_count" переименовано поле "max_people_count" в "people_count"
    • поля "start_frame_offset" и "last_frame_offset" удалены из данных о видео сегменте (секция "video_segment"). Теперь в секции "video_segment" содержатся только поля "start_time_offset" и "end_time_offset".
    • поле "frame_offset" удалено из результата оценки кадра аналитики (секция "frames_estimations"). Поле "time_offset" по-прежнему доступно.
    • поле "overview" перемещено из секции "aggregated_estimations" в секцию с информацией о событии ("result" > "" > "events")
  • Для встроенного плагина "luna-streams" добавлена возможность выполнения запросов как к API первой версии, так и к API второй версии сервиса LUNA Streams без изменения конфигурации.

    Для этого нужно использовать заголовок LUNA-STREAMS-API-VERSION следующим образом:

    • если заголовок LUNA-STREAMS-API-VERSION не указан, будет автоматически выбрана первая версия API
    • если значение заголовка LUNA-STREAMS-API-VERSION равно "1", будет выбрана первая версия
    • если значение заголовка LUNA-STREAMS-API-VERSION равно "2", будет выбрана вторая версия API
    • в противном случае вернется ошибка
  • Для встроенного плагина "luna-streams" добавлена возможность проксировать запросы к ресурсам /groups и /linker сервиса LUNA Streams.

  • В сервис Sender добавлен новый ресурс /general/events, который предназначен для принятия абстрактных событий через POST запросы.

    Обязательные поля:

    • event_type — тип события
    • events — сами события

    Также в сервис API добавлен ресурс /general/ws для подписки на абстрактные события через веб-сокеты. При подписке обязательно указывать тип события и опционально можно указать account_id. Поддерживается фильтрация событий по типу, аккаунту и пользовательским фильтрам.

  • В запросы на получение биометрических шаблонов лица добавлена возможность получения биометрических шаблонов в формате sdk.

    Биометрические шаблоны в таком формате можно передавать в различные запросы (например, запросы на выполнения сравнения).

    Для этого в параметры запроса добавлен параметр "descriptor_format", позволяющий выбирать формат возвращаемых биометрических шаблонов - sdk или raw.

    При этом теперь форматы raw и xpk считаются устаревшими.

    См. следующие запросы:

  • Улучшено описание возвращаемой ошибки 43001, возникающей при ошибке загрузки видео. Теперь сообщение содержит статус код и описание неудачного запроса.

  • Теперь для параметра "min_face_size" используется режим, при котором строго соблюдается указанное значение.

    Данный режим был добавлен в SDK 5.22.0. В этом режиме лица, размер которых меньше указанного в параметре "min_face_size", не детектируются. Ранее система старалась искать лица, размер которых не меньше указанного. Однако иногда могла найти и меньшего размера.

  • В группу настроек "LUNA_REMOTE_SDK_VIDEO_SETTINGS" добавлены таймауты сохранения видео ("connect", "request", "sock_connect", "sock_request").

  • В примере развертывания сервисов LUNA PLATFORM в Kubernetes из комплекта поставки теперь используется утилита Storages.

    Основное преимущество Storages перед классической подготовкой окружения в том, что утилите известны ревизии настроек сервиса Configurator и сценарии миграции баз данных сервисов LP, что значительно упрощает процесс обновления и даунгрейда LUNA PLATFORM. Кроме того, с помощью утилиты можно оценить текущее состояние окружения LUNA PLATFORM и определить что именно будет нужно обновить.

    Новый подход подразумевает подготовку окружения с помощью отдельных манифестов Storages и последующий запуск Helm-чартов.

    Важно! С текущего релиза использование утилиты Storages является приоритетным способом подготовки окружения. Документация по ручной подготовке окружения с помощью скриптов "db_create.py" считается устаревшей и будет удалена из комплекта поставки в ближайших релизах.

    См. обновленный документ по разворачиванию LUNA PLATFORM в Kubernetes для более подробной информации о процессе разворачивания.

    См. руководство по утилите Storages для более подробной информации об использовании утилиты.

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

  • В запросы "get face attribute", "put face attribute", "get temporary attributes", "get temporary attribute" добавлена отсутствующая схема ответа для типа содержимого запроса application/msgpack.

  • Исправлена ошибка при которой в некоторых случаях не закрывались соединения к БД Redis.

  • Исправлено отсутствие сохранения биометрического образца в случае, когда в запрос "generate stream events (beta)" передавались и детекция с биометрическим образцом лица и детекция с биометрическим образцом тела.

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

    Ранее сервис возвращал ошибку SQL error с кодом 10015 и статусом 500.

  • Для некоторых видео исправлена генерация неверного значения метки времени видеокадра в ответе запроса "videosdk".

  • Обновлено дефолтное значение параметра "redetect_score_threshold" группы настроек "LUNA_REMOTE_SDK_FACE_DETECTOR_SETTINGS" с "0.3" до "0.5".

    В релизе LUNA PLATFORM v.5.67.0 обновился порог "redetect_score_threshold" до "0.5", но при установке LUNA PLATFORM версий 5.67.0 и 5.72.1 с нуля, значение порога все равно равнялось "0.3".

    См.примечания к выпуску для версии v.5.67.0 для более подробной информации.

Изменения пользовательского интерфейса сервиса API

  • Раздел "Проверки": Добавлен новый раздел для проверки изображений на Liveness, DeepFake, соответствие требованиям стандарта ISO/IEC 19794-5:2011, стандарта ICAO, Приказу Минцифры №453.

  • Раздел "Сценарии": Обновлена политика хранения изображений. Теперь по умолчанию используется значение, заданное для всей директории хранения изображений, а в параметрах сохранения можно настроить своё время хранения в днях.

  • Раздел "Детали события": Теперь можно сохранять лица из события в список: появилась кнопка, при нажатии на которую открывается всплывающее окно для добавления лица.

  • Раздел "Списки": Добавлена кнопка для перехода к деталям лица со страницы деталей списка.

  • Разделы "Списки", "Архив событий": Теперь можно создавать задачи в разделах, с которыми они связаны. В разделе "Списки" можно создать задачи "Пакетный импорт", "Экспорт лиц", в "Архиве событий" — "Экспорт событий".

  • Раздел "Сценарии": Стало проще ориентироваться при редактировании сценария благодаря новой организации параметров на странице.

Исправленные ошибки пользовательского интерфейса сервиса API

  • Раздел "Детали лица": Исправлена ошибка, при которой открывалась страница с архивом событий после удаления лица.

  • Раздел "Лицензии": Благодаря обновленному адресу, на который ведёт кнопка в разделе, стало удобнее купить или продлить лицензию.

  • Раздел "Детали события": Посмотреть биометрический образец в полном размере теперь можно без обновления страницы.