Skip to content

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.

  • 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 and processed_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.
  • 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 type
    • events — 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, the account_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 or raw.

    Meanwhile, the raw and xpk 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 code 10015 and status 500.

  • 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 from 0.3 to 0.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 equaled 0.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.