YOLO Vision 2026:

使用 DL Streamer Pipeline Framework 和 OpenVINO™ 在 Intel Core Ultra Series 3 上运行 Ultralytics YOLO26#

本综合指南将详细介绍如何使用 DL Streamer Pipeline FrameworkOpenVINO™ toolkit,在 Intel Core Ultra Series 3 平台上部署 Ultralytics YOLO26。我们将在此使用 OpenVINO™,最大限度地提升 Intel CPU、集成 GPU、独立 GPU 和 NPU 上的推理性能。

Intel DL Streamer

目录: 什么是 Intel DL Streamer?前置条件YOLO26 模型准备使用 YOLO26 运行推理多流设置常见问题

什么是 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 格式的模型。Ultralytics YOLO26 模型使用 Ultralytics 导出器从 PyTorch 导出为 OpenVINO™ IR。DL Streamer 利用官方的 Ultralytics OpenVINO™ integration,为 Intel 硬件提供优化的导出和推理功能。

  1. 创建 ~/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
  1. 从 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 镜像。

注意

此命令适用于配备板载集成 GPU(iGPU)和 NPU 的 Intel Core Ultra Series 3 处理器系统。

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 精度(最高性能)#

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
Intel DL Streamer GPU

在 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
Intel DL Streamer NPU

多流设置#

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
Intel DL Streamer Multistream GPU

其他资源#

常见问题#

  • 按照安装指南安装 DL Streamer,使用 source /opt/intel/dlstreamer/scripts/setup_dls_env.sh 设置环境,安装 Ultralytics 和 OpenVINO™,并使用 download_ultralytics_models.sh 下载模型。然后使用 DL Streamer 示例应用 yolo_detect.sh 运行推理,该应用提供了用于运行 YOLO26 推理管道的现成脚本。查看简短教程,了解如何运行它。

  • OpenVINO™ 通过图优化、层融合以及特定于硬件的内核调优等技术,专门针对 Intel 硬件优化了 YOLO26 模型。结合 DL Streamer 的 VA-API 加速解码与零拷贝 va-surface-sharing 预处理,完整的视频分析管道可实现比未优化框架显著更高的吞吐量。

  • 可以。DL Streamer 支持在多代 Intel 平台的 Intel CPU(Core、Core Ultra、Xeon)、集显(Iris Xe、Arc)、独显(Arc A 系列、B 系列)以及 NPU(AI Boost)上进行推理。只需将 gvadetectdevice 属性更改为 CPUGPUNPU

    • 对于 GPU 推理,建议默认使用 FP16——它能够提供接近 FP32 的精度,同时吞吐量提升约 2 倍。
    • INT8 可提供最高性能(比 FP32 高 2–3 倍),仅以少量精度为代价;当最高吞吐量是优先目标时,它是理想选择。INT8 模型会在 Ultralytics 导出过程中自动校准。
  • 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。

评论