Cascaded (Multi-Level) Inference Use Case - Cascaded (Multi-Level) Inference Use Case - 6.3 English - XD056

Vitis Video Analytics SDK (VVAS) 6.3 User Guide (XD056)

Document_ID
XD056
Release_Date
2026-09-24
Version
6.3 English

A cascaded pipeline chains two vvas_xinfer elements so that a first model (for example, an object detector) produces metadata and a second model (for example, a classifier) runs on each detected region of interest. The first config sets infer-config inference-level to 1; the second sets it to 2 so that the second vvas_xinfer consumes the detection tree from the first. Both stages in the reference workflow use the VART runtime with internal hardware pre-processing (PPE) inside vvas_xinfer. For metadata layout, ROI handling, and the attach-ppe-outbuf option, see the multi-level cascaded inference description in vvas_xinfer.

The following pipeline runs (YOLOX INT8 at level 1, ResNet50 INT8 at level 2) filesrc and rawvideoparse feed BGR frames, two vvas_xinfer instances load `yoloxm_int8_vart_zerocopy.json and resnet50_int8_l2.json, then vvas_xmetaconvert and vvas_xoverlay render results before the sink.

gst-launch-1.0 -v \
  filesrc location=<INPUT>.bgr ! \
  rawvideoparse format=bgr width=<INPUT_WIDTH> height=<INPUT_HEIGHT> framerate=30/1 ! \
  queue ! \
  vvas_xinfer batch-timeout=0 config-file=/etc/vvas/configs/infer/yoloxm_int8_vart_zerocopy.json ! queue ! \
  vvas_xinfer batch-timeout=0 config-file=/etc/vvas/configs/infer/resnet50_int8_l2.json ! queue ! \
  vvas_xmetaconvert config-location=/etc/vvas/configs/metaconvert/metaconvert_config.json ! \
  vvas_xoverlay ! queue ! \
  fpsdisplaysink text-overlay=false sync=false \
      video-sink="filesink async=false location=<OUTPUT>.bgr" -v