LUNA PLATFORM v.5.75.0#
LP changes
-
The new video analytics services have been added as part of the beta testing. These services are intended for an efficient and scalable solution for analyzing video files or video streams in real-time.
The video analytics services operate based on the interaction of three key components: analytics, agents, and the Video Manager service.
Analytics
Analytics is a set of algorithms that perform specific tasks for stream processing. Each analytics type has a set of parameters that can be configured by the user. The Video Manager stores information about the available analytics and passes it to the agents that implement the corresponding algorithms.
Agent
An agent is a component that implements video analytics algorithms. It receives streams, performs the specified analytics, and sends the results through Callbacks or via web sockets and the Sender service. Each agent can support the execution of one or multiple analytics, depending on its configuration and capabilities.
The Video Agent service can be used as an agent, or you can write your own agent.
Currently, the Video Agent service provides only one type of analytics - people counting. In future releases, the list of analytics will be expanded.
Video Manager
The Video Manager acts as a coordinator between users and agents. It contains information about the available analytics and distributes video streams for processing among the agents. The Video Manager also manages streams, monitors their status, and coordinates automatic stream restart in case of errors.
Thus, LUNA PLATFORM now has two ways to perform video analytics:
- Using new services:
- More flexible functionality
- Sending notifications to external systems and storing information in the database
- The ability to write your own agent for processing custom analytics
- Using the "videosdk" request:
- Simplified functionality
- The result is returned only in the response body and is not saved anywhere. In this case, the user can interpret the result of the work on the entire video, decide where to store the data, etc.
The people counting analytics, as in the "videosdk" request, is licensed separately.
The Video Manager service is disabled by default in the "ADDITIONAL_SERVICES_USAGE" setting.
New services are supported:
- In the LUNA Dashboards service
- In the Docker Compose script from the distribution
- In the Helm charts from the distribution
See the "Video analytics services" section for more information.
- Using new services:
-
The ability to encrypt descriptors has been added.
Encryption can be enabled and configured using the
DESCRIPTOR_ENCRYPTION
section.The
aes256-gcm
algorithm is supported. The encryption key source can be specified directly or obtained from the Hashicorp Vault storage.Descriptors are stored in encrypted form in the Events, Faces, or Attributes databases and are transmitted in the same form to external systems. If encryption is enabled, requests that return a descriptor will receive the encrypted descriptor.
If necessary, encryption can be added for existing descriptors, existing encryption can be replaced, or descriptors in the Faces, Attributes, or Events databases can be decrypted. To do this, migrate the descriptors using the
descriptors_encryption.py
script located in the Faces and Events service containers, passing the Faces/Attributes/Events DB data as arguments to the script, and passing the corresponding key and algorithm as environment variables.Important: LUNA PLATFORM is not designed for simultaneous use of encrypted and unencrypted descriptors. If both types of descriptors are detected, the Python Matcher service will not start and will give an error "Check is failed, encryption hash is not unique". Therefore, when enabling encryption, stop the services to limit all requests, migrate all descriptors to the new encryption version, and then restart the services. It is highly recommended to back up the database before performing encryption manipulations.
Note: Encryption adds additional computational costs, slowing down processes such as database matching, matching using the LUNA Index Module, and cache synchronization in the Cached Matcher. The LUNA Index Module supports working with encrypted descriptors.
Note: Matching plugins also need to be updated according to the encryption logic.
See the "Descriptor encryption" section in the admin manual for more information on descriptor encryption.
See the "Manage descriptor encryption" section in the upgrade manual for more information on adding encryption to existing descriptors.
-
The ability to set a custom offset for video timestamps (PTS) in the "videosdk" request has been added.
Specifying an offset allows synchronizing the start of video processing with a specific point in time. This can be useful, for example, if the video is processed in parts and it is necessary for the timestamps of the new parts to continue the sequence from the previous ones. Thus, when cutting a large video into small fragments, the timestamps will be displayed as if one whole video is being processed.
The offset is set in the "pts" > "start_time" field of the request body.
-
The ability to choose an action in case of video decoding error (parameter "error_handling" > "action") has been added to the "videosdk" request.
Two actions are available:
stop
— Stop video processing and generate a response based on the part of the video processed before the error occurred.fail
— Stop video processing and terminate the request with an error.
Additionally, the response body now includes the
error_count
andprocessed_parts
sections, displaying the number of errors during processing and the array of processed fragments. -
The response format of the "videosdk" request has been changed:
- For "people_count" analytics, the "track_id" field has been added, containing the track identifier.
- The "max_people_count" field in "people_count" analytics has been renamed to "people_count".
- The "start_frame_offset" and "last_frame_offset" fields have been removed from the video segment data ("video_segment" section). Now only the "start_time_offset" and "end_time_offset" fields are present in the "video_segment" section.
- The "frame_offset" field has been removed from the frame estimation result of the analytics ("frames_estimations" section). The "time_offset" field remains available.
- The "overview" field has been moved from the "aggregated_estimations" section to the event information section ("result" > "
" > "events").
-
The ability to perform requests to both version 1 and version 2 APIs of the LUNA Streams service without changing the configuration has been added to the built-in "luna-streams" plugin.
To do this, use the
LUNA-STREAMS-API-VERSION
header as follows:- If the
LUNA-STREAMS-API-VERSION
header is not specified, version 1 of the API will be automatically selected. - If the
LUNA-STREAMS-API-VERSION
header value is "1", version 1 of the API will be selected. - If the
LUNA-STREAMS-API-VERSION
header value is "2", version 2 of the API will be selected. - Otherwise, an error will be returned.
- If the
-
The ability to proxy requests to the
/groups
and/linker
resources of the LUNA Streams service has been added to the built-in "luna-streams" plugin. -
A new
/general/events
resource has been added to the Sender service to accept abstract events via POST requests.Mandatory fields:
event_type
— Event typeevents
— Events themselves
Additionally, an
/general/ws
resource has been added to the API service for subscribing to abstract events via web sockets. When subscribing, the event type must be specified, and optionally, theaccount_id
can be specified. Filtering events by type, account, and custom filters is supported. -
The ability to obtain descriptors in
sdk
format has been added to face descriptor retrieval requests.Descriptors in this format can be passed in various requests (e.g., matching requests).
To do this, a "descriptor_format" parameter has been added to the request parameters, allowing you to choose the format of the returned descriptors -
sdk
orraw
.Meanwhile, the
raw
andxpk
formats are now considered deprecated.See the following requests:
-
The description of the
43001
error, which occurs when there is a video upload error, has been improved. The message now contains the status code and a description of the failed request. -
The
min_face_size
parameter now strictly enforces the specified value.This mode was added in SDK 5.22.0. In this mode, faces smaller than the specified
min_face_size
parameter are not detected. Previously, the system tried to find faces no smaller than the specified size, but sometimes smaller faces could be detected. -
Timeouts for saving videos ("connect", "request", "sock_connect", "sock_request") have been added to the "LUNA_REMOTE_SDK_VIDEO_SETTINGS" section.
-
The deployment example of LUNA PLATFORM services in Kubernetes from the distribution now uses the Storages utility.
The main advantage of Storages over the classic environment setup is that the utility is aware of the revision of the Configurator service settings and the migration scenarios of the LP service databases, significantly simplifying the LUNA PLATFORM update and downgrade process. Additionally, with the utility, you can assess the current state of the LUNA PLATFORM environment and determine what needs to be updated.
The new approach involves preparing the environment using separate Storages manifests and then launching Helm charts.
Important: From this release, using the Storages utility is the preferred method for environment setup. Documentation on manual environment setup using the "db_create.py" scripts is considered deprecated and will be removed from the distribution in future releases.
See the updated LUNA PLATFORM deployment document in Kubernetes for more details on the deployment process.
See the Storages utility manual for more information on using the utility.
LP fixed errors
-
Fixed error that added missing response schema for content type
application/msgpack
in the following requests: -
Fixed error where connections to the Redis database were not being closed in certain cases.
-
Fixed error where the sample was not saved when the "generate stream events (beta)" request included both face and body samples.
-
Fixed error in handling cross-matching requests when candidate or reference filters contained more than 32,000 faces or event IDs. Previously, the service returned an
SQL error
with code10015
and status500
. -
Fixed error generating incorrect frame timestamp values for certain videos in the "videosdk" request response.
-
Updated the default value of the
redetect_score_threshold
parameter in the "LUNA_REMOTE_SDK_FACE_DETECTOR_SETTINGS" settings group from0.3
to0.5
.In LUNA PLATFORM v.5.67.0, the threshold was updated to
0.5
, but when installing versions 5.67.0 and 5.72.1 from scratch, the threshold value still equaled0.3
.See the release notes for version v.5.67.0 for more detailed information.
API User interface changes
-
"Checks" section: A new section for checking images for Liveness, DeepFake, compliance with the requirements of the ISO/IEC 19794-5:2011 standard, ICAO standard, biometric standards was added.
-
"Handling policies" section: Image storage policy was updated. Now, the default value specified for the entire storage directory of images is applied, but you can configure your own storage time in days in the save parameters.
-
"Event details" section: The ability to save a face from the events to the list was added: there is a button that opens a pop-up window for adding a face to the list.
-
"Lists" section: A button to go to the face details from the page with list details was added.
-
"Lists", "Event archive" sections: Now user can create tasks in the sections they are associated with. You can create "Batch import", "Export faces" tasks in the "Lists" section, "Export events"—in the "Event archive".
-
"Handling policies" section: Now it is easier for the user to navigate when editing a policy due to a new organization of parameters on the page.
API User interface fixed errors
-
"Face Details" section: An error where the "Event archive" page opened after deleting a face was fixed.
-
"Licenses" section: It is now more convenient to buy or renew a license due to the updated address to which the button in the section leads.
-
"Event details" section: You can now view the biometric sample in full size without updating the page.