When developing Savant, we create auxiliary technologies that can be used in other projects. We would like to share with you a new project developed by the Savant team – RocksQ. We needed a high-performance persistent queue to buffer video frames and metadata in situations when the receiving party is out of order. Previously, we used persist-queue, a Pythonic persistent queue on top of Sqlite. However, it is obviously an overhead to use a full-scale embedded SQL database just for queueing.
Continue reading RocksQ – a New Blazingly Fast Persistent Queue For PythonSavant Blog Switches From Medium To WordPress
We decided to move the Savant blog from the Medium platform to a self-hosted blog platform. The reason for that is that the articles on Medium are behind a paywall which reduces the traffic. Old articles are available on Medium.
Savant 0.2.5 is Out: What is New
We are proud to present you with a new Savant version — 0.2.5. We worked on the release for more than 2.5 months. It contains significant changes, new features, and bug fixes in several fields, but primarily, we improved developer experience and deployment features.
Continue reading Savant 0.2.5 is Out: What is NewOpenTelemetry in Savant: Instrumenting Deep Learning Computer Vision Pipelines
OpenTelemetry is the industry standard for code instrumenting widely used in modern complex applications. It shines bright in distributed, multithreaded, and asynchronous systems. With OpenTelemetry, developers can trace, log, and collect metrics.
Continue reading OpenTelemetry in Savant: Instrumenting Deep Learning Computer Vision PipelinesFacial Identification With Savant, YOLOV5-Face, AdaFace and HNSWLIB
Facial re-identification is a commodity task in the CV field: there is no rocket science in doing that, at least academically. However, the commercial efficiency of such a solution is still a concern for customers. The article presents a high-performance pipeline developed with the Savant framework, which can be used in doorbell security or video content annotation systems.
Continue reading Facial Identification With Savant, YOLOV5-Face, AdaFace and HNSWLIBReal-Time Instance Segmentation With YOLOV8M-seg And Savant Framework
Instance segmentation is an important task in the computer vision field. High-quality instance segmentation couldn’t run in real-time on more than new hardware for a long time. However, recent advances in the CV field have made it possible to run instance segmentation in real-time. The YOLOV8 family, invented and published by Ultralitics, broke through the next frontier of computer vision, enabling object segmenting efficiently. It opens doors for a broad range of applications and increases the quality of CV, which is more important.
Continue reading Real-Time Instance Segmentation With YOLOV8M-seg And Savant FrameworkSavant Explained: Software Video Encoder
When we develop Savant, we keep in mind that pipelines work in accelerated environments backed with specialized hardware. However, recently Nvidia stepped out of providing end-to-end acceleration in certain products. Specifically, Jetson Orin Nano, Nvidia Tesla A100, and Nvidia Tesla H100 don’t include hardware-accelerated video encoder devices (NVENC).
Continue reading Savant Explained: Software Video EncoderSavant Explained: Pipeline Element Groups
Savant 0.2.5 introduces a new pipeline syntax structure — Element Group (EG). The purpose of an EG is to specify a group of elements conditionally loaded during the pipeline initialization based on a specified expression. E.g., imagine that your pipeline can use YOLOV8 or PeopleNet for people detection, and you want to specify the environment variable DETECTOR, determining which model will be loaded.
Continue reading Savant Explained: Pipeline Element Groups