Release of Savant 0.2.7, a computer vision and deep learning framework

The Savant 0.2.7 Python framework has been released, making it easier to use NVIDIA DeepStream to solve problems related to machine learning. The framework takes care of all the heavy lifting with GStreamer or FFmpeg, allowing you to focus on building optimized output pipelines using declarative syntax (YAML) and Python functions. Savant allows you to create pipelines that work equally on accelerators in the data center (NVIDIA Turing, Ampere, Hopper) and on edge devices (NVIDIA Jetson NX, AGX Xavier, Orin NX, AGX Orin, New Nano). With Savant, you can easily process multiple video streams simultaneously and quickly create production-ready video analytics pipelines using NVIDIA TensorRT. The project code is distributed under the Apache 2.0 license.

Savant 0.2.7 is the latest feature change release in the 0.2.X branch. Future releases in the 0.2.X branch will only include bug fixes. Development of new features will be carried out in the 0.3.X branch, based on DeepStream 6.4. This branch will not support the Jetson Xavier family of devices as NVIDIA does not support them in DS 6.4.

Main innovations:

  • New use cases:
    • An example of working with a detection model based on the RT-DETR transformer;
    • CUDA post-processing with CuPy for YOLOV8-Seg;
    • An example of PyTorch CUDA integration into the Savant pipeline;
    • Demonstration of working with oriented objects.

    Release of Savant 0.2.7, a computer vision and deep learning framework

  • New features:
    • Integration with Prometheus. The pipeline can export execution metrics to Prometheus and Grafana for performance monitoring and tracking. Developers can declare custom metrics that are exported along with system metrics.
    • Buffer Adapter - Implements a persistent transactional buffer on disk for data moving between adapters and modules. With its help, you can develop highly loaded pipelines that consume resources unpredictably and withstand bursts of traffic. The adapter exports its element and size data to Prometheus.
    • Model compilation mode. Modules can now compile their models in TensorRT without running a pipeline.
    • PyFunc shutdown event handler. This new API allows pipeline shutdowns to be handled gracefully, freeing up resources and notifying third-party systems that the shutdown has occurred.
    • Frame filtering at input and output. By default, the pipeline accepts all frames containing video data. With input and output filtering, developers can filter data to prevent processing.
    • Post-processing of the model on the GPU. With the new feature, developers can access model output tensors directly from GPU memory without loading them into CPU memory and process them using CuPy, TorchVision or OpenCV CUDA.
    • GPU memory representation functions. In this release, we provided functions to convert memory buffers between OpenCV GpuMat, PyTorch GPU tensors, and CuPy tensors.
    • API for accessing statistics on the use of pipeline queues. Savant allows you to add queues between PyFuncs to implement parallel processing and buffering processing. The added API gives developers access to the queues deployed in the pipeline and allows them to query their use.

In the next release (0.3.7) it is planned to move to DeepStream 6.4 without expanding functionality. The idea is to get a release that is fully compatible with 0.2.7, but based on DeepStream 6.4 and improved technology, but without breaking compatibility at the API level.

Source: opennet.ru

Add a comment