News

The first public release for Savant: v0.2.0 - Supercharged Video Analytics Framework With Batteries Included

As an ML engineer, you know that training is only half the battle. But what if you could streamline the process of providing solutions for inference without sacrificing performance or getting bogged down in complex internals?

We are introducing Savant, a new open-source product that simplifies the use of Nvidia DeepStream for ML engineers. It is a framework that handles the heavy lifting, allowing you to focus on building optimized inference pipelines with declarative syntax and Python functions.

With Savant, you can easily handle multiple streams simultaneously, deliver reliable, production-ready inference pipelines quickly and achieve top-notch performance with TensorRT. Visit the website to know more.

Why Do ML Developers Need to Utilize High-Performance Multiple-Object Trackers in Their Pipelines: Our New Article on Medium

At the onset of developing computer vision systems, developers often rely on readily available open-source implementations for trackers, such as SORT and DeepSORT, which can easily be found on the internet.

The main reason for their popularity is that these solutions are presented by the algorithms’ authors themselves and have gathered huge attention from those days. As a result, developers may think that they are the best options available, which is wrong, because despite those implementations are correct, they are not optimized for speed.

When tracking objects in real-time, it is crucial to have a fast and accurate system in place. Slow trackers can cause delays, missed detections, and even wrong classifications, leading to severe consequences in critical applications. For example, in autonomous driving, a slow tracker can cause the car to miss important objects like pedestrians or other vehicles, leading to potentially deadly accidents.

Another issue with slow trackers is that they require more computational power and resources, making them less suitable for low-powered devices or real-time applications. This issue can significantly limit the potential use cases for computer vision systems and make them less applicable for the edge.

Our new article describes the problems which a slow object tracker may cause and how they affect on AI pipeline performance, economy and bottlenecks.

Our New article on Medium Demonstrating How to Track Oriented Objects With Similari and the SORT Tracker Algorithm

Oriented or rotated object tracking can be necessary in situations where objects of interest can be present in various orientations in the image or video footage. This can occur, for example, when tracking vehicles, where the orientation of the car may vary as it moves around in the scene.

Similarly, when tracking people, their orientation may change as they move and turn. In such cases, using an oriented bounding box to track the object can improve the accuracy of the tracking results. Additionally, oriented object tracking can also be useful in applications such as surveillance, robotics, and autonomous vehicles.

Read more ...

Apache CloudStack extension for hybrid event bus

logo
Today we would like to share a new plug-in event bus module – a hybrid event bus that combines two buses: inMemory Event Bus – to handle events inside CloudStack, and Kafka or RabbitMQ Event Bus – to interact with external handlers.

We use Kafka Event Bus in our CloudStack installations. Recently, after testing a new plug-in in the product environment, we found that this bus does not have event subscription functionality: internal event receivers can not subscribe to events, as there is simply no implementation.

This is a nasty thing, because it limits the CloudStack API. It is almost impossible to predict who would like to subscribe to events even inside the CloudStack core, for example, to implement deferred processing. Using the standard Kafka Event Bus, some of the event bus capabilities are no longer available, and troubleshooting this regression is very difficult. To overcome this, we implemented a “hybrid” bus that uses the inMemory bus for internal purposes and the Kafka or RabbitMQ bus for external communications.

You can find the extension on GitHub published under Apache 2 License.

Successful completion of the project to create a personalized ad platform

After six months of development, the project of ONELYA, in which our team acted as a key subcontractor, was successfully completed. Purpose of the project – creation of an advertising platform designed to generate personalized advertising offers based on automatic analysis of user behavior on sites and mobile applications. In this project we managed to demonstrate not only our well-known abilities to develop high-performance, scalable advertising delivery platforms, but also to apply modern approaches based on machine learning and real-time data analysis.

The project from our side was developed by a team of sixteen professionals:

  • two project managers;
  • three backend engineers;
  • two frontend engineers;
  • three QA engineers;
  • three ML engineers;
  • systems analyst;
  • technical writer;
  • DevOps expert.

Delivery time: more than six man-years.

Key technologies:

  • Languages: Scala/Akka, Python3, TypeScript;
  • Repositories: Apache Cassandra, Elasticsearch, HDFS, RocksDB;
  • Message Queuing: Apache Kafka;
  • Frameworks for big data: Apache Spark, PySpark;
  • DBMS: PostgreSQL, Liquibase;
  • UI: Angular 6, Fingerprint2, Swagger;
  • Infrastructure: Ansible, DC / OS, Docker, HAProxy, NGINX;
  • Automation E2E QA: Postman, Protractor;
  • Management: Gitlab, Gitlab CI, Atlassian JIRA, Atlassian Confluence.

Practices:

  • Agile/Scrum;
  • Continuous integration, continuous delivery;
  • Git-flow;
  • automated testing of backend, frontend, ML;
  • infrastructure as a code.