Edge Video Analytics Microservice#
Edge Video Analytics Microservice is a Python-based, interoperable containerized microservice for easy development and deployment of video analytics pipelines.
Overview#
Edge Video Analytics Microservice is a Python-based, interoperable containerized microservice for easy development and deployment of video analytics pipelines. It is built on top of GStreamer and Intel® Deep Learning Streamer (DL Streamer), and they provide video ingestion and deep learning inferencing functionalities respectively.
Video analytics involves the conversion of video streams into valuable insights through the application of video processing, inference, and analytics operations. It finds applications in various business sectors including healthcare, retail, entertainment, and industrial domains. The algorithms utilized in video analytics are responsible for performing tasks such as object detection, classification, identification, counting, and tracking on the input video stream.
The microservice can be deployed in either of the two modes:
Standalone deployment: In standalone deployment, EVAM supports development and deployment of optimized video analytics pipelines and it can be deployed independently without any additional microservices.
Edge Insights System (EIS) deployment: EVAM in Edge Insights System mode supports EIS’s Configuration Manager for pipeline configuration management and gRPC based messaging/communication library for publishing of inference results, making it compatible with the Edge Insights System software stack
How it Works#
Note
In case you are interested to know more about EIS deployment, please reach out to us at evam_support[at]intel[dot]com.
Here is the high level description of functionality of EVAM module:
RESTful Interface Exposes RESTful endpoints to discover, start, stop and customize pipelines in JSON format.
EVAM Core Manages and processes the REST requests interfacing with the core EVAM components and Pipeline Server Library.
EVAM Config handler Reads the contents of config file and accordingly constructs/starts pipelines. Dynamic configuration change is supported via REST API.
For EIS deployments, the contents of config.json are loaded and maintained in ETCD. EVAM reads it through EII Config Manager APIs to construct/start pipelines. Dynamic configuration change is supported via ETCD UI and any change in the config restarts EVAM.
GST UDF Loader EVAM provides a GStreamer plugin -
udfloader
using which users can configure and load arbitrary UDFs. Withudfloader
, EVAM provides an easy way to bring user developed programs and run them as a part of GStreamer pipelines. A User Defined Function (UDF) is a chunk of user code that can transform video frames and/or manipulate metadata. For example, a UDF can act as filter, preprocessor, classifier or a detector. These User Defined Functions can be developed in C++ or Python. A detailed guide for developing UDFs is available here. . Visit udfloader docs to learn more about configuring and using theudfloader
element in a pipeline.EVAM Custom Camera Ingestion
EVAM supports ingesting frames from external camera sources into the GStreamer pipeline for example Genicam compliant USB3 Vision and GIGe Vision cameras. Additionally, in case of EIS deployment, EVAM supports frame ingestion from Xiris camera.EVAM Publisher Supports publishing metadata to file, MQTT/Kafka message brokers and frame along with metadata to MQTT message broker. For EIS deployments, publishing of processed frames and metadata from video analytics pipeline to other EII services over gRPC, MQTT message broker etc is supported.
EVAM Model Update Supports integration with Model Registry service MRaaS for model download, deployment and management.