VVAS is a streamlined graph structure constructed with the help of the GStreamer framework. The following diagram demonstrates a common video analytic pipeline that begins with the input of video data and concludes with the presentation of valuable insights. Each of the constituent blocks is composed of distinct plugins. The application employs several hardware engines, which are depicted at the bottom. By implementing efficient memory management techniques, avoiding unnecessary memory duplication between plugins, and using diverse accelerators, the system attains optimal performance.
Data is read from the local file system.
Optional image pre-processing is done on the input video stream, where the input image can undergo certain adjustments prior to inference. Pre-processing can entail resizing the image, converting its color space, or performing mean subtraction, among other operations. The
vvas_xabrscalerplugin can perform hardware-accelerated resizing, color format conversion, and pre-processing operations such as mean subtraction and normalization on the frame.Following pre-processing, the frame is directed to undergo inference using the
vvas_xinferplugin.To overlay inference results such as bounding boxes, labels, and arrows into the video output, two plugins are used:
vvas_xmetaconvertandvvas_xoverlay. The former plugin comprehends theGstInferenceMetameta-data structure and carries out parsing operations to create new metadata for lines, arrows, text, and other such elements, which can be understood by thevvas_xoverlayplugin. Thevvas_xoverlayplugin is responsible for drawing various components such as bounding boxes, arrows, circles, and text based on the received information.