在 Intel Core Ultra Series 3 上使用 DL Streamer 流水线框架和 OpenVINO™ 运行 Ultralytics YOLO26#
本全面指南提供了使用 DL Streamer Pipeline Framework 和 OpenVINO™ toolkit 在 Intel Core Ultra Series 3 平台上部署 Ultralytics YOLO26 的详细步骤。这里我们使用 OpenVINO™ 来最大化 Intel CPU、集成及独立 GPU 以及 NPU 上的推理性能。
目录: What is Intel DL Streamer? • Prerequisites • YOLO26 Model Preparation • Running Inference with YOLO26 • Multi-Stream Setup • FAQ
什么是 Intel DL Streamer?#
Deep Learning Streamer (DL Streamer) Pipeline Framework 是一个基于 GStreamer 多媒体框架的开源流媒体分析框架,旨在为云端或边缘端创建复杂的媒体分析管道。
DL Streamer 支持对音频和视频流进行分析,以检测、分类、追踪、识别和统计物体、事件及人员。它针对 Intel 硬件进行了优化,并提供了基于不同后端库构建的 GStreamer 插件之间的互操作性:
- 推理:OpenVINO™ 推理引擎,针对 Intel CPU、GPU 和 NPU 进行了优化
- 视频编码/解码:通过 VA-API 实现 GPU 加速
- 图像处理:通过 VA-API 实现 GPU 加速
- 元数据:用于结构化推理结果的 GStreamer Analytics
- 生态系统:数百个用于媒体 I/O、封装/解封装、编解码支持等的 GStreamer 插件
DL Streamer 支持多种 AI 模型,包括完整的 Ultralytics YOLO 系列(YOLOv5 到 YOLO26),所有模型均采用 OpenVINO™ 格式。
DL Streamer 定期使用 System Requirements — Open Edge Platform Documentation 上提供的系统进行验证
前提条件#
在开始之前,请确保你的 Intel 系统已安装并配置好以下软件:
YOLO26 模型准备#
DL Streamer 使用 OpenVINO™ IR format 格式的模型。Ultralytics YOLO26 模型使用 Ultralytics 导出工具从 PyTorch 导出为 OpenVINO™ IR。DL Streamer 利用官方的 Ultralytics OpenVINO™ integration,为 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 Model Preparation步骤并从 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,并将输出保存到视频文件 (~/intel/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=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 元素并行启动多个管道来组合多路流。
并行运行多个流水线(4 个流)(GPU)#
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 的 Intel 平台上的 Ultralytics YOLO26?#
按照安装指南安装 DL Streamer,使用 source /opt/intel/dlstreamer/scripts/setup_dls_env.sh 设置环境,安装 Ultralytics 和 OpenVINO™,使用 download_ultralytics_models.sh 下载模型。然后使用提供运行 YOLO26 推理管道现成脚本的 DL Streamer 示例应用程序 yolo_detect.sh 运行推理。查看简短教程了解如何运行它。
在 Intel 硬件上使用 OpenVINO™ 和 YOLO26 有什么好处?#
OpenVINO™ 通过图优化、算子融合和硬件特定内核调优等技术专门针对 Intel 硬件优化了 YOLO26 模型。结合 DL Streamer 的 VA-API 加速解码和零拷贝 va-surface-sharing 预处理,完整的视频分析管道可实现显著高于未优化框架的吞吐量。
我可以在不同的 Intel 设备上通过 DL Streamer 运行 YOLO26 吗?#
是的。DL Streamer 支持跨多个 Intel 平台代次的 Intel CPU(Core、Core Ultra、Xeon)、集成 GPU(Iris Xe、Arc)、独立 GPU(Arc A 系列、B 系列)和 NPU(AI Boost)上的推理。只需将 DEVICE 参数更改为 CPU、GPU 或 NPU。
我该如何在 FP16 和 INT8 精度之间进行选择?#
- FP16 被推荐为 GPU 推理的默认精度 —— 它提供接近 FP32 的精度,并带来约 2 倍的吞吐量提升。
- INT8 提供最高的性能(比 FP32 高 2-3 倍),尽管有较小的精度权衡,但非常适合优先考虑最高吞吐量的场景。INT8 模型在 Ultralytics 导出过程中会自动进行校准。
支持哪些 YOLO26 任务?#
DL Streamer 支持所有 YOLO26 任务变体: - 检测 (Detection):yolo26n, yolo26s, yolo26m, yolo26l, yolo26x - 旋转边界框 (OBB):yolo26s-obb(以及所有尺寸变体) - 实例分割 (Instance Segmentation):yolo26s-seg(以及所有尺寸变体) - 姿态估计 (Pose Estimation):yolo26s-pose(以及所有尺寸变体) - 分类 (Classification):yolo26s-cls(带检测的复合流水线)
如何将检测结果导出为结构化数据?#
使用 json 输出选项将检测结果以 JSON-lines 形式写入文件:
./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8或者,在自定义管道中使用 gvametapublish 元素将元数据发布到文件、MQTT 或 Kafka。