LUNA PLATFORM v.5.33.0#
Изменения
-
Начиная со следующего релиза прекращается поддержка Liveness V1. Из документации будут удалены команды запуска контейнера и описание.
-
В ресурс "sdk" и политику "detect_policy" > "body_attributes" ресурса "/handlers" добавлен новый параметр "estimate_lower_body", позволяющий выполнить оценку следующих атрибутов тел:
- "lower_garment" — тип нижней одежды (брюки, шорты, юбка, неизвестно), цвет нижней одежды (бежевый, чёрный, синий, коричневый, зеленый, серый, хаки, разноцветный, оранжевый, розовый, фиолетовый, красный, белый, желтый, неизвестно);
- "shoes" — цвет обуви (черный, белый, прочий, неизвестный).
Данная оценка по умолчанию выключена в обоих ресурсах.
Также теперь в параметре "estimate_upper_body" определяется цвет головного убора (параметр "headwear_apparent_color") (цвета аналогичны цветам нижней одежды).
Новые атрибуты тел добавлены в структуру событий (см. "detections" > "samples" > "body" > "detection" > "attributes").
В политику "match_policy" ресурса "/handlers" и в ресурс "human body matching" добавлены фильтры атрибутов тел "lower_garment_types" (тип нижней одежды), "lower_garment_colors" (цвет нижней одежды), "shoes_apparent_colors" (цвет обуви) и "headwear_apparent_color" (цвет головного убора), указываемые при использовании событий в качестве кандидатов. Также добавлена возможность задать данные атрибуты тела в качестве значений для поля "targets".
Фильтры данных атрибутов тел также могут быть использованы при отправке событий через веб-сокеты (см. ресурс "ws handshake").
Соответствующие фильтры для событий добавлены в задачи Cross-matching, Clustering, Reporter, Exporter и Linker. В задачи Reporter и Exporter добавлены соответствующие колонки.
Поддержана возможность указания данных атрибутов тел при создании нового обработчика в задаче Estimator.
Структура события в запросах "generate events"/"save events" также расширена данными атрибутами тел. Кроме того, в данных запросах и запросе "sdk" доступна агрегация по данным атрибутам тел. Агрегированные значения атрибутов отображаются в полях "aggregate_estimations" соответствующих ресурсов.
-
Обновлены настройки сервиса Handlers.
Теперь можно выставлять как индивидуальные настройки среды выполнения оценок для каждого эстиматора/детектора, так и глобальные настройки для всех эстиматоров/детекторов.
Глобальные настройки задаются в секции "LUNA_HANDLERS_RUNTIME_SETTINGS" и содержат в себе три настройки:
- global_device_class — тип устройства ("cpu" или "gpu") для всех эстиматоров/детекторов, у которых значение параметра "device_class" = "global" (см. ниже);
- num_threads — количество потоков "рабочего процесса" для всех эстиматоров/детекторов;
- num_compute_streams — количество потоков для всех эстиматоров/детекторов.
Индивидуальные настройки задаются в секции вида "LUNA_HANDLERS_
_SETTINGS.runtime_settings" и содержат в себе три настройки: - device_class — тип устройства для выполнения оценки ("cpu", "gpu" или "global");
- optimal_batch_size — размер батча для выполнения оценки;
- worker_count — количество "рабочих процессов" для выполнения оценки.
-
В сервисе Handlers добавлена возможность включения/выключения использования отдельных эстиматоров и детекторов. По умолчанию все эстиматоры включены.
Ранее можно было включать/выключать только все эстиматоры сразу.
Возможность включения отдельных эстиматоров позволяет экономить оперативную память или память GPU, поскольку при старте сервиса Handlers выполняется проверка возможности выполнения указанных оценок и загрузка данных в память. При отключении эстиматора или детектора можно также удалить его нейронную сеть из контейнера Handlers.
Отключение эстиматоров или детекторов возможно с помощью передачи аргументов с названиями эстиматоров или детекторов в команду запуска сервиса Handlers. Аргументы передаются в контейнер с помощью переменной "EXTEND_CMD". Перечень всех аргументов и пример запуска контейнера добавлены в руководство администратора LUNA PLATFORM 5.
-
Добавлена поддержка изображений со схемой CMYK.
-
В сервис Backport 3 добавлен ресурс "ws handshake" для возможности получения событий через веб-сокеты.
Данный функционал аналогичен функционалу сервиса "Event & Statistic Service" LUNA PLATFORM 3.
-
Обновлены настройки сервиса API.
Секция "LUNA_HANDLERS_LIVENESS_SETTINGS" удалена из настроек сервиса API, т.к. она не использовалась.
Параметр "LIVENESS_THRESHOLD" переименован в "LIVENESSV1_THRESHOLD".
-
В политику "detect_policy" ресурсов "create handler" и "create verifier" добавлен параметр "estimate_glasses", позволяющий выполнить оценку типа очков (очки, солнечные очки, нет очков).
-
Параметр "estimate_attributes" в запросах "create descriptors" и "search" сервиса Backport 3 расширен возможностью оценки типа очков (очки, солнечные очки, нет очков). Теперь при выполнении оценки атрибутов будут определяться пол, возраст и очки.
В ресурсе "ws handshake" доступны фильтры "glasses__gt" (нижний порог) и "glasses__lt" (верхний порог).
-
Фильтр по "account_id" добавлен в параметры запросов большинства ресурсов с методами GET, которые возвращают в ответе несколько объектов.
Использование данного фильтра позволяет получать данные (токены, лица, атрибуты и др.), принадлежащие конкретному аккаунту.
Исключениями являются ресурс "get accounts", сервисные ресурсы ("get health", "get configs" и т. д.) и ресурс "ws handshake".
Также параметр запроса "account_id" был добавлен в ресурсы "face matching" и "human body matching".
Данные параметры запроса будут работать только в том случае, если для параметра "visibility_area" токена установлено значение "all". В противном случае будет возвращена ошибка.
-
Добавлена возможность использования пользовательской SQL-функции для сравнения.
Данная функция может быть полезна если нет возможности использовать С-расширения (C-extensions) базы данных PostgreSQL. Функция может понадобиться, например, для разворачивания LUNA PLATFORM 5 в AWS и использования Amazon Aurora PostgreSQL.
См. подробное описание в главе "Alternative matching options" в файле комплекта поставки "luna_v.5.33.0/extras/VLMatch/postgres/readme.md".
-
В контейнерах сервиса API и Licenses обновлена версия Python до 3.10.
-
Обновлена база данных Redis до версии 7.0.5-alpine3.16.
Исправленные ошибки
-
Исправлена ошибка, из-за которой в запросе на получение статистики по событиям (ресурс "/events/statistic") всегда передавался фильтр с текущим "account_id", из-за чего статистика выдавалась только по данным аккаунта пользователя, который выполнял запрос.
Это приводило к тому, что пользователи с типом аккаунта "admin" и "advanced_used" не могли получать статистику по другим пользователям.
-
Исправлена ошибка, из-за которой в запросе "get handlers" невозможно было получить одновременно и динамический и статический обработчики с помощью фильтра "is_dynamic". Теперь если не указывать данный фильтр, то будут возвращены обработчики обоих типов.
-
Исправлена ошибка в запросе "detect face" спецификации API, где в теле ответа на запрос отображалось несуществующее поле "liveness".
-
Исправлена ошибка, из-за которой при выполнении запроса к ресурсу "/3/attributes/{attribute_id}/samples" сервиса Faces не учитывался фильтр по "account_id".
-
Исправлена ошибка, при которой в ответе на запрос "clear authorization" сервиса Admin возвращалась ошибка "Internal server error" при отсутствии куки.
Теперь возвращается ошибка "Cookies for current session not found".
-
Исправлено появление ошибки "Internal server error", возникавшее при загрузке изображения с цветовой схемой, которую не поддерживает SDK.
Теперь если будет совершена попытка загрузить изображение с неподдерживаемой цветовой схемой, то будет возвращена корректная ошибка под номером 18003.
-
Исправлена ошибка в сервисе Python Matcher с включенным кешем, при которой могли возникать непредвиденные ошибки в логах после изменения настроек в сервисе Configurator.
Теперь при остановке сервиса обеспечивается закрытие открытых соединений и не появляются ошибки в логах.
-
Исправлена ошибка фильтра по "account_id" в сервисе Python Matcher.
Если в запросах "face matching" и "human body matching" с указанным фильтром "account_id" значение поля "account_id" события-эталона отличалось от значения поля "account_id" кандидатов, то выдавалось некорректное сообщение, что отфильтрован только кандидат. Теперь выдается корректное сообщение, что указанный эталон не найден.
-
Исправлена ошибка в сервисе Python Matcher, которая возникала в запросах "face matching" и "human body matching" с Basic-авторизацией и пользователем типа "user" при указании идентификатора аккаунта в поле "candidates" > "filter" > "account_id", отличающегося от идентификатора по которому выполняется запрос.
Теперь при попытке использовать чужой "account_id" в фильтрах при типе аккаунта "user", будет выдано корректное сообщение.
-
Исправлена ошибка в запросе "upgrade attribute" сервиса Handlers, когда при ошибке обработки изображения (например, если вместо БО лица указать БО тела) возвращалось пустое поле, либо ошибка "Internal server error". Теперь при ошибках обработки изображения будет возвращаться корректная ошибка 11043.