docs/en/guides/dlstreamer-intel.md
This comprehensive guide provides a detailed walkthrough for deploying Ultralytics YOLO26 on Intel Core Ultra Series 3 platforms using DL Streamer Pipeline Framework and OpenVINO™ toolkit. Here we use OpenVINO™ to maximize inference performance on Intel CPUs, integrated and discrete GPUs, and NPUs.
Contents: What is Intel DL Streamer? • Prerequisites • YOLO26 Model Preparation • Running Inference with YOLO26 • Multi-Stream Setup • FAQ
Deep Learning Streamer (DL Streamer) Pipeline Framework is an open-source streaming media analytics framework based on the GStreamer multimedia framework, designed for creating complex media analytics pipelines for the Cloud or at the Edge.
DL Streamer enables analysis of audio and video streams to detect, classify, track, identify, and count objects, events, and people. It is optimized for Intel hardware and provides interoperability between GStreamer plugins built on various backend libraries:
DL Streamer supports many AI models including the full Ultralytics YOLO family (YOLOv5 through YOLO26) all in OpenVINO™ format.
DL Streamer is being regularly validated with systems provided on System Requirements — Open Edge Platform Documentation
Before you begin, ensure the following are installed and configured on your Intel system:
Ubuntu 24.04 with Intel GPU/NPU drivers installed (check installation guide)
docker engine (check installation guide)
DL Streamer uses models in OpenVINO™ IR format. Ultralytics YOLO26 models are exported from PyTorch to OpenVINO™ IR using the Ultralytics exporter. DL Streamer leverages the official Ultralytics OpenVINO™ integration, which provides optimized export and inference capabilities for Intel hardware.
~/intel/dlstreamer_demo folder and install OpenVINO™ and Ultralytics in virtual environmentmkdir -p ~/intel/dlstreamer_demo && cd ~/intel/dlstreamer_demo
python3 -m venv .dls-venv && source .dls-venv/bin/activate
pip install openvino==2026.2.0 ultralytics==8.4.92
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=8 data=coco128.yaml
Model should be downloaded to ~/intel/dlstreamer_demo/yolo26s_int8_openvino_model folder.
DL Streamer supports FP32, FP16, and INT8 precision models. Each requires a separate export step:
# FP32 (default precision, highest accuracy)
yolo export model=yolo26s.pt format=openvino dynamic=True
# FP16 (recommended for GPU inference, good accuracy/performance balance)
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=16
# INT8 (maximum performance, requires calibration dataset)
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=8 data=coco128.yaml
The examples below use the INT8 model exported in the preparation step. To use FP32 or FP16 models, replace the model path accordingly (e.g. yolo26s_openvino_model/yolo26s.xml).
Before running DL Streamer YOLO26 inference detection pipeline, run DL Streamer docker image in the interactive mode. Make sure you followed YOLO26 Model Preparation step and download the following video file from Pexels database.
curl -L https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 --output ~/intel/dlstreamer_demo/video1.mp4
Run DL Streamer docker image in the interactive mode.
!!! note
This command is intended for systems equipped with Intel Core Ultra Series 3 processors with integrated GPU (iGPU) and NPU onboard.
docker run -it --rm \
-v ~/intel/dlstreamer_demo:/home/dlstreamer/demo \
-v "$HOME/.Xauthority:/root/.Xauthority:rw" \
-e DISPLAY=$DISPLAY \
-e XDG_RUNTIME_DIR=/tmp \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--device /dev/dri \
--group-add $(stat -c "%g" /dev/dri/render*) \
--device /dev/accel \
--group-add $(stat -c "%g" /dev/accel/accel*) \
-e ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so \
intel/dlstreamer:latest
INT8 quantization delivers the highest throughput by reducing model weights to 8-bit integers. The Ultralytics exporter handles calibration automatically.
gst-launch-1.0 filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU ! queue ! vapostproc ! gvawatermark ! gvafpscounter ! autovideosink sync=false
gst-launch-1.0 filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU ! queue ! vapostproc ! gvawatermark ! gvafpscounter ! vah264enc ! h264parse ! mp4mux ! filesink location=/home/dlstreamer/demo/yolo_video1_yolo26s_INT8_GPU.mp4
gst-launch-1.0 filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=NPU ! queue ! vapostproc ! gvawatermark ! gvafpscounter ! autovideosink sync=false
DL Streamer supports multi-stream processing, where multiple video sources are decoded and inferred simultaneously. You can launch multiple pipelines in parallel using GStreamer’s vacompositor element to combine multiple streams.
gst-launch-1.0 vacompositor name=comp sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=660 sink_1::ypos=0 sink_2::xpos=0 sink_2::ypos=380 sink_3::xpos=660 sink_3::ypos=380 ! autovideosink sync=false \
filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU model-instance-id=inf0 scheduling-policy="latency" ! queue ! gvawatermark ! gvafpscounter ! comp.sink_0 \
filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU model-instance-id=inf0 scheduling-policy="latency" ! queue ! gvawatermark ! gvafpscounter ! comp.sink_1 \
filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU model-instance-id=inf0 scheduling-policy="latency" ! queue ! gvawatermark ! gvafpscounter ! comp.sink_2 \
filesrc location=/home/dlstreamer/demo/video1.mp4 ! decodebin3 ! gvadetect model=/home/dlstreamer/demo/yolo26s_int8_openvino_model/yolo26s.xml device=GPU model-instance-id=inf0 scheduling-policy="latency" ! queue ! gvawatermark ! gvafpscounter ! comp.sink_3
Install DL Streamer following the Installation Guide, set up the environment with source /opt/intel/dlstreamer/scripts/setup_dls_env.sh, install Ultralytics and OpenVINO™, download models using download_ultralytics_models.sh. Then run inference with the DL Streamer sample application yolo_detect.sh that provides a ready-to-use script for running YOLO26 inference pipelines. Check the short tutorial how to run it.
OpenVINO™ optimizes the YOLO26 model specifically for Intel hardware through techniques such as graph optimization, layer fusion, and hardware-specific kernel tuning. Combined with DL Streamer’s VA-API accelerated decode and zero-copy va-surface-sharing pre-processing, the full video analytics pipeline achieves significantly higher throughput than unoptimized frameworks.
Yes. DL Streamer supports inference on Intel CPUs (Core, Core Ultra, Xeon), integrated GPUs (Iris Xe, Arc), discrete GPUs (Arc A-Series, B-Series), and NPUs (AI Boost) across multiple Intel platform generations. Simply change the DEVICE parameter to CPU, GPU, or NPU.
DL Streamer supports all YOLO26 task variants: - Detection: yolo26n, yolo26s, yolo26m, yolo26l, yolo26x - Oriented Bounding Box (OBB): yolo26s-obb (and all size variants) - Instance Segmentation: yolo26s-seg (and all size variants) - Pose Estimation: yolo26s-pose (and all size variants) - Classification: yolo26s-cls (composite pipeline with detection)
Use the json output option to write detection results as JSON-lines to a file:
./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8
Alternatively, use the gvametapublish element in custom pipelines to publish metadata to files, MQTT, or Kafka.