Ultralytics YOLO26 auf Intel Core Ultra Series 3 mit dem DL Streamer Pipeline-Framework und OpenVINO™#
Dieser umfassende Leitfaden enthält eine detaillierte Anleitung zur Bereitstellung von Ultralytics YOLO26 auf Plattformen mit Intel Core Ultra Series 3 mithilfe des DL Streamer Pipeline-Frameworks und des OpenVINO™-Toolkits. Hier verwenden wir OpenVINO™, um die Inferenzleistung auf Intel-CPUs, integrierten und dedizierten GPUs sowie NPUs zu maximieren.
Inhalt: Was ist Intel DL Streamer? • Voraussetzungen • YOLO26-Modellvorbereitung • Inferenz mit YOLO26 ausführen • Einrichtung mehrerer Streams • FAQ
Was ist Intel DL Streamer?#
Das Deep-Learning-Streamer-Pipeline-Framework (DL Streamer) ist ein Open-Source-Framework für die Analyse von Streaming-Medien auf Basis des GStreamer-Multimedia-Frameworks. Es wurde für die Erstellung komplexer Pipelines zur Medienanalyse in der Cloud oder am Edge entwickelt.
DL Streamer ermöglicht die Analyse von Audio- und Videostreams, um Objekte, Ereignisse und Personen zu erkennen, zu klassifizieren, zu verfolgen, zu identifizieren und zu zählen. Es ist für Intel-Hardware optimiert und ermöglicht die Interoperabilität zwischen GStreamer-Plugins, die auf verschiedenen Backend-Bibliotheken basieren:
- Inferenz: OpenVINO™-Inferenz-Engine, optimiert für Intel-CPU, GPU und NPU
- Videokodierung/-dekodierung: GPU-Beschleunigung über VA-API
- Bildverarbeitung: GPU-Beschleunigung über VA-API
- Metadaten: GStreamer Analytics für strukturierte Inferenzergebnisse
- Ökosystem: Hunderte von GStreamer-Plugins für Medien-I/O, Multiplexing/Demultiplexing, Codec-Unterstützung und mehr
DL Streamer unterstützt viele KI-Modelle, darunter die vollständige Ultralytics YOLO-Familie (YOLOv5 bis YOLO26), alle im OpenVINO™-Format.
DL Streamer wird regelmäßig mit Systemen validiert, die in der Dokumentation zu den Systemanforderungen der Open Edge Platform bereitgestellt werden.
Voraussetzungen#
Stelle vor Beginn sicher, dass Folgendes auf deinem Intel-System installiert und konfiguriert ist:
-
Ubuntu 24.04 mit installierten Intel-GPU-/NPU-Treibern (siehe Installationsanleitung)
-
docker engine (siehe Installationsanleitung)
YOLO26-Modellvorbereitung#
DL Streamer verwendet Modelle im OpenVINO™-IR-Format. Ultralytics YOLO26-Modelle werden mithilfe des Ultralytics-Exporters von PyTorch in das OpenVINO™-IR-Format exportiert. DL Streamer nutzt die offizielle Ultralytics-OpenVINO™-Integration, die optimierte Export- und Inferenzfunktionen für Intel-Hardware bereitstellt.
- Erstelle den Ordner
~/intel/dlstreamer_demound installiere OpenVINO™ und Ultralytics in einer virtuellen Umgebung.
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- Lade das PyTorch-YOLO26s-Modell von Ultralytics herunter, konvertiere es in das OpenVINO™-IR-Format und erstelle eine Variante mit INT8-Präzision.
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=8 data=coco128.yamlDas Modell sollte in den Ordner ~/intel/dlstreamer_demo/yolo26s_int8_openvino_model heruntergeladen werden.
Modellpräzision#
DL Streamer unterstützt Modelle mit FP32-, FP16- und INT8-Präzision. Für jedes Modell ist ein separater Export erforderlich:
# 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.yamlDie folgenden Beispiele verwenden das im Vorbereitungsschritt exportierte INT8-Modell. Um FP32- oder FP16-Modelle zu verwenden, passe den Modellpfad entsprechend an (z. B. yolo26s_openvino_model/yolo26s.xml).
Inferenz mit YOLO26 ausführen#
Bevor du die DL-Streamer-Inferenzpipeline zur YOLO26-Erkennung ausführst, starte das DL-Streamer-Docker-Image im interaktiven Modus. Stelle sicher, dass du den Schritt YOLO26-Modellvorbereitung befolgt und die folgende Videodatei aus der Pexels-Datenbank heruntergeladen hast.
curl -L https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 --output ~/intel/dlstreamer_demo/video1.mp4Starte das DL-Streamer-Docker-Image im interaktiven Modus.
Dieser Befehl ist für Systeme mit Prozessoren der Serie Intel Core Ultra Series 3 und integrierter GPU (iGPU) sowie integrierter NPU vorgesehen.
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-Präzision (maximale Leistung)#
Die INT8-Quantisierung erzielt den höchsten Durchsatz, indem sie die Modellgewichte auf 8-Bit-Ganzzahlen reduziert. Der Ultralytics-Exporter übernimmt die Kalibrierung automatisch.
YOLO26s mit INT8 auf der GPU ausführen#
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
YOLO26s mit INT8 auf der GPU ausführen und die Ausgabe in einer Videodatei speichern (~/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.mp4YOLO26s mit INT8 auf der NPU ausführen#
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
Einrichtung mehrerer Streams#
DL Streamer unterstützt die Verarbeitung mehrerer Streams, bei der mehrere Videoquellen gleichzeitig dekodiert und verarbeitet werden. Du kannst mehrere Pipelines parallel starten und dabei das GStreamer-Element vacompositor verwenden, um mehrere Streams zu kombinieren.
Mehrere Pipelines (4 Streams) parallel ausführen (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
Weitere Ressourcen#
- DL-Streamer-GitHub-Repository
- DL-Streamer-Dokumentation
- DL-Streamer-Elemente
- OpenVINO™-Toolkit
- Ultralytics YOLO26
- GStreamer-Framework
- Tabelle der unterstützten Modelle
FAQ#
Installiere DL Streamer gemäß der Installationsanleitung, richte die Umgebung mit
source /opt/intel/dlstreamer/scripts/setup_dls_env.shein, installiere Ultralytics und OpenVINO™ und lade Modelle mitdownload_ultralytics_models.shherunter. Führe anschließend die Inferenz mit der DL-Streamer-Beispielanwendungyolo_detect.shaus, die ein sofort einsatzbereites Skript zum Ausführen von YOLO26-Inferenzpipelines bereitstellt. In der Kurzanleitung erfährst du, wie du sie ausführst.OpenVINO™ optimiert das YOLO26-Modell gezielt für Intel-Hardware, unter anderem durch Graphoptimierung, Layer-Fusion und hardwarespezifische Kernel-Optimierung. Zusammen mit der durch VA-API beschleunigten Dekodierung und der Zero-Copy-Vorverarbeitung
va-surface-sharingvon DL Streamer erzielt die vollständige Videoanalysepipeline einen deutlich höheren Durchsatz als nicht optimierte Frameworks.Ja. DL Streamer unterstützt die Inferenz auf Intel-CPUs (Core, Core Ultra, Xeon), integrierten GPUs (Iris Xe, Arc), dedizierten GPUs (Arc A-Series, B-Series) und NPUs (AI Boost) über mehrere Intel-Plattformgenerationen hinweg. Ändere einfach den Parameter
DEVICEinCPU,GPUoderNPU.- FP16 wird standardmäßig für die GPU-Inferenz empfohlen – es bietet eine nahezu mit FP32 vergleichbare Genauigkeit bei einer ungefähr zweifachen Durchsatzsteigerung.
- INT8 bietet die höchste Leistung (2–3x gegenüber FP32) bei geringfügigen Genauigkeitseinbußen und ist ideal, wenn maximaler Durchsatz Priorität hat. INT8-Modelle werden während des Ultralytics-Exports automatisch kalibriert.
DL Streamer unterstützt alle YOLO26-Aufgabenvarianten: - Erkennung: yolo26n, yolo26s, yolo26m, yolo26l, yolo26x - Orientierte Begrenzungsbox (OBB): yolo26s-obb (und alle Größenvarianten) - Instanzsegmentierung: yolo26s-seg (und alle Größenvarianten) - Posenschätzung: yolo26s-pose (und alle Größenvarianten) - Klassifizierung: yolo26s-cls (zusammengesetzte Pipeline mit Erkennung)
Verwende die Ausgabeoption
json, um Erkennungsergebnisse als JSON-Zeilen in eine Datei zu schreiben:./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8Alternativ kannst du das Element
gvametapublishin benutzerdefinierten Pipelines verwenden, um Metadaten in Dateien, MQTT oder Kafka zu veröffentlichen.