With the release of Megh VAS 100 comes a new addition to the Megh Computing solution stack: the Nimble application framework. Nimble is a fast and lightweight service-based framework for implementing CPU, GPU, and FPGA video analytics pipelines. As illustrated below, Nimble sits on top of Arka, Sira, and Deep Learning Engine (DLE), enabling seamless integration of the Megh Platform with existing decode, analytics and visualization services.
Nimble is designed from the ground up to scale from single edge camera deployments to larger cloud-based systems by integrating with:
- Existing Kubernetes systems
- AWS Snowball Edge deployments
- AWS Wavelength services for ultra-low latency 5G applications
- AWS Outpost for co-location large scale deployments
- Local docker-compose deployments
Nimble can be used as part of the Megh Dashboard Service, providing the entire video analytics solution, or as a container-based service, integrated into an existing customer pipeline. At its core, Nimble is a highly configurable pipeline generator for ingesting data from multiple sources and publishing resulting analytics to various sinks with appropriate filtering.
Complex pipelines can easily be partitioned into multiple containers providing container-orchestration systems, like Kubernetes and AWS Elastic Container Services, fine-grained control over resource allocation and management. Depending on host system resources, Nimble dynamically partitions pipelines to appropriate devices, loading optimized libraries such as OpenVINO and TensorRT for the CPU and GPU, and leveraging the rest of the Megh solution stack for FPGA acceleration. As shown below, this provides customers unparalleled flexibility in how their solution is deployed and ultimately the cost of the pipeline.
Apart from fast and lightweight, flexibility and security were the other core tenets when designing Nimble. As a result, Nimble provides an easy interface and API to integrate new deep learning models into the OpenVINO, TensorRT and DLE libraries, as well as an extensible pipeline element definition for adding custom analytics algorithms and libraries. Additionally, support for custom ZMQ output formatters is provided for integration with analytics services outside of Nimble. Finally, customers have the option to enable both CurveZMQ and ZAP authentication to ensure that data transferred between services is encrypted and subscribed services are authenticated before data is published to their socket.
The following video demonstrates use of VAS 100 for public safety. Built using Nimble, VAS 100 performs social distancing, mask compliance, occupancy counting, intrusion detection, and people tracking for a multi-camera installation. Inference and analytics results generated by Nimble are streamed, in real-time, over ZMQ to a GUI where data is displayed and alarms are triggered for violations depending on use case.