在 Intel Core Ultra Series 3 上使用 DL Streamer Pipeline Framework 和 OpenVINO™ 运行 Ultralytics YOLO26#
本指南全面介绍了如何在 Intel Core Ultra Series 3 平台上使用 DL Streamer Pipeline Framework 和 OpenVINO™ 工具套件部署 Ultralytics YOLO26。这里我们使用 OpenVINO™,以最大限度地提升 Intel CPU、集成和独立 GPU 以及 NPU 上的推理性能。
目录: 什么是 Intel DL Streamer? • 前提条件 • YOLO26 模型准备 • 使用 YOLO26 运行推理 • 多流设置 • 常见问题
什么是 Intel DL Streamer?#
深度学习流处理(DL Streamer)Pipeline Framework 是一个基于 GStreamer 多媒体框架构建的开源流媒体分析框架,旨在为云端或边缘端创建复杂的媒体分析管道。
DL Streamer 可分析音频和视频流,以检测、分类、跟踪、识别和计数对象、事件及人员。它针对 Intel 硬件进行了优化,并支持基于各种后端库构建的 GStreamer 插件互操作:
- 推理:OpenVINO™ 推理引擎,针对 Intel CPU、GPU 和 NPU 优化
- 视频编码/解码:通过 VA-API 实现 GPU 加速
- 图像处理:通过 VA-API 实现 GPU 加速
- 元数据:GStreamer Analytics 用于提供结构化推理结果
- 生态系统:数百个 GStreamer 插件,支持媒体 I/O、复用/解复用、编解码器等
DL Streamer 支持多种 AI 模型,包括完整的 Ultralytics YOLO 系列(YOLOv5 至 YOLO26),且均采用 OpenVINO™ 格式。
DL Streamer 定期使用 系统要求 — Open Edge Platform 文档中提供的系统进行验证
前置条件#
开始之前,请确保 Intel 系统已安装并配置以下内容:
YOLO26 模型准备#
DL Streamer 使用 OpenVINO™ IR 格式的模型。Ultralytics YOLO26 模型通过 Ultralytics 导出器从 PyTorch 导出为 OpenVINO™ IR。DL Streamer 利用官方的 Ultralytics OpenVINO™ 集成,为 Intel 硬件提供优化的导出和推理功能。
- 创建
~/intel/dlstreamer_demo文件夹,并在虚拟环境中安装 OpenVINO™ 和 Ultralytics
mkdir -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- 从 Ultralytics 下载 PyTorch YOLO26s 模型,将其转换为 OpenVINO™ IR 格式,并生成 INT8 精度版本。
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=8 data=coco128.yaml模型将导出到 ~/intel/dlstreamer_demo/yolo26s_int8_openvino_model 文件夹。
模型精度#
DL Streamer 支持 FP32、FP16 和 INT8 精度模型。每种模型都需要单独执行导出步骤:
# 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以下示例使用在准备步骤中导出的 INT8 模型。若要使用 FP32 或 FP16 模型,请相应替换模型路径(例如 yolo26s_openvino_model/yolo26s.xml)。
使用 YOLO26 运行推理#
运行 DL Streamer YOLO26 推理检测流水线之前,请以交互模式运行 DL Streamer Docker 镜像。 确保你已完成 YOLO26 模型准备步骤,并从 Pexels 数据库下载以下视频文件。
curl -L https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 --output ~/intel/dlstreamer_demo/video1.mp4以交互模式运行 DL Streamer Docker 镜像。
此命令适用于配备 Intel Core Ultra Series 3 处理器、集成 GPU (iGPU) 和板载 NPU 的系统。
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:latestINT8 精度(最高性能)#
INT8 量化会将模型权重缩减为 8 位整数,从而实现最高吞吐量。Ultralytics 导出器会自动完成校准。
在 GPU 上使用 INT8 运行 YOLO26s#
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
在 GPU 上使用 INT8 运行 YOLO26s,并将输出保存到视频文件#
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在 NPU 上使用 INT8 运行 YOLO26s#
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 支持多流处理,可同时解码并推理多个视频源。你可以使用 GStreamer 的 vacompositor 元素并行启动多个流水线,以组合多个流。
在 GPU 上并行运行多个流水线(4 个流)#
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
更多资源#
- DL Streamer GitHub 仓库
- DL Streamer 文档
- DL Streamer 元素
- OpenVINO™ 工具套件
- Ultralytics YOLO26
- GStreamer 框架
- 支持的模型表
常见问题#
OpenVINO™ 通过图优化、层融合和针对特定硬件的内核调优等技术,专门针对 Intel 硬件优化 YOLO26 模型。结合 DL Streamer 的 VA-API 加速解码和零拷贝
va-surface-sharing预处理,整个视频分析流水线的吞吐量显著高于未优化的框架。可以。DL Streamer 支持在多个 Intel 平台世代的 Intel CPU(Core、Core Ultra、Xeon)、集成 GPU(Iris Xe、Arc)、独立 GPU(Arc A-Series、B-Series)和 NPU(AI Boost)上进行推理。只需将
gvadetect的device属性改为CPU、GPU或NPU。- FP16 是 GPU 推理的默认推荐选项,能在精度接近 FP32 的同时,将吞吐量提升约 2 倍。
- INT8 可提供最高性能(比 FP32 高 2–3 倍),精度仅有少量折损,因此适合优先追求最大吞吐量的场景。INT8 模型会在 Ultralytics 导出过程中自动校准。
DL Streamer 支持所有 YOLO26 任务变体:
- 检测:yolo26n、yolo26s、yolo26m、yolo26l、yolo26x
- 有向边界框 (OBB):yolo26s-obb(以及所有尺寸变体)
- 实例分割:yolo26s-seg(以及所有尺寸变体)
- 姿态估计:yolo26s-pose(以及所有尺寸变体)
- 分类:yolo26s-cls(与检测组合的流水线)
使用
json输出选项,将检测结果以 JSON-lines 格式写入文件:./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8或者,在自定义流水线中使用
gvametapublish元素,将元数据发布到文件、MQTT 或 Kafka。