Ultralytics YOLO26 sur Intel Core Ultra Series 3 avec DL Streamer Pipeline Framework et OpenVINO™#
Ce guide complet détaille le déploiement de Ultralytics YOLO26 sur les plateformes Intel Core Ultra Series 3 avec DL Streamer Pipeline Framework et la boîte à outils OpenVINO™. Nous utilisons OpenVINO™ pour maximiser les performances d’inférence sur les CPU Intel, les GPU intégrés et discrets, ainsi que les NPU.
Sommaire : Qu’est-ce qu’Intel DL Streamer ? • Prérequis • Préparation du modèle YOLO26 • Exécuter l’inférence avec YOLO26 • Configuration multistream • FAQ
Qu’est-ce qu’Intel DL Streamer ?#
Le framework de pipelines Deep Learning Streamer (DL Streamer) est un framework d’analyse de flux multimédias open source basé sur le framework multimédia GStreamer, conçu pour créer des pipelines complexes d’analyse multimédia dans le cloud ou en périphérie.
DL Streamer permet d’analyser des flux audio et vidéo pour détecter, classifier, suivre, identifier et compter des objets, des événements et des personnes. Optimisé pour le matériel Intel, il assure l’interopérabilité entre les plugins GStreamer reposant sur différentes bibliothèques backend :
- Inférence : moteur d’inférence OpenVINO™, optimisé pour les CPU, GPU et NPU Intel
- Encodage/décodage vidéo : accélération GPU via VA-API
- Traitement d’image : accélération GPU via VA-API
- Métadonnées : GStreamer Analytics pour les résultats d’inférence structurés
- Écosystème : des centaines de plugins GStreamer pour les entrées/sorties multimédias, le multiplexage/démultiplexage, la prise en charge des codecs et bien plus encore
DL Streamer prend en charge de nombreux modèles d’IA, y compris toute la famille Ultralytics YOLO (de YOLOv5 à YOLO26), au format OpenVINO™.
DL Streamer fait l’objet de validations régulières sur des systèmes répertoriés dans la documentation Prérequis système — Open Edge Platform
Prérequis#
Avant de commencer, assure-toi que les éléments suivants sont installés et configurés sur ton système Intel :
-
Ubuntu 24.04 avec les pilotes GPU/NPU Intel installés (consulte le guide d’installation)
-
Moteur Docker (consulte le guide d’installation)
Préparation du modèle YOLO26#
DL Streamer utilise des modèles au format IR OpenVINO™. Les modèles Ultralytics YOLO26 sont exportés de PyTorch vers le format IR OpenVINO™ à l’aide de l’outil d’exportation Ultralytics. DL Streamer s’appuie sur l’intégration officielle d’Ultralytics pour OpenVINO™, qui offre des fonctionnalités d’exportation et d’inférence optimisées pour le matériel Intel.
- Crée le dossier
~/intel/dlstreamer_demoet installe OpenVINO™ et Ultralytics dans un environnement virtuel
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- Télécharge le modèle PyTorch YOLO26s depuis Ultralytics, convertis-le au format IR OpenVINO™ et génère une variante avec une précision INT8.
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=8 data=coco128.yamlLe modèle est exporté dans le dossier ~/intel/dlstreamer_demo/yolo26s_int8_openvino_model.
Précision du modèle#
DL Streamer prend en charge les modèles avec une précision FP32, FP16 et INT8. Chacune nécessite une étape d’export distincte :
# 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.yamlLes exemples ci-dessous utilisent le modèle INT8 exporté à l’étape de préparation. Pour utiliser des modèles FP32 ou FP16, remplace le chemin du modèle en conséquence (par ex. yolo26s_openvino_model/yolo26s.xml).
Exécuter l’inférence avec YOLO26#
Avant d’exécuter le pipeline de détection par inférence YOLO26 de DL Streamer, lance l’image Docker de DL Streamer en mode interactif. Vérifie que tu as suivi l’étape de préparation du modèle YOLO26 et téléchargé le fichier vidéo suivant depuis la base de données Pexels.
curl -L https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 --output ~/intel/dlstreamer_demo/video1.mp4Lance l’image Docker de DL Streamer en mode interactif.
Cette commande est destinée aux systèmes équipés de processeurs Intel Core Ultra Series 3 avec GPU intégré (iGPU) et NPU intégrés.
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:latestPrécision INT8 (performances maximales)#
La quantification INT8 offre le débit le plus élevé en réduisant les poids du modèle à des entiers de 8 bits. L’exportateur Ultralytics gère automatiquement l’étalonnage.
Exécuter YOLO26s en INT8 sur GPU#
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
Exécuter YOLO26s en INT8 sur GPU et enregistrer la sortie dans un fichier vidéo#
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.mp4Exécuter YOLO26s en INT8 sur NPU#
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
Configuration multi-flux#
DL Streamer prend en charge le traitement multi-flux, où plusieurs sources vidéo sont décodées et traitées par inférence simultanément. Tu peux lancer plusieurs pipelines en parallèle à l’aide de l’élément GStreamer vacompositor pour combiner plusieurs flux.
Exécuter plusieurs pipelines (4 flux) en parallèle (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
Ressources supplémentaires#
- Dépôt GitHub de DL Streamer
- Documentation de DL Streamer
- Éléments DL Streamer
- Kit d’outils OpenVINO™
- Ultralytics YOLO26
- Framework GStreamer
- Tableau des modèles pris en charge
FAQ#
Installe DL Streamer en suivant le guide d’installation, configure l’environnement avec
source /opt/intel/dlstreamer/scripts/setup_dls_env.sh, installe Ultralytics et OpenVINO™, puis télécharge les modèles avecdownload_ultralytics_models.sh. Lance ensuite l’inférence à l’aide de l’application d’exemple DL Streameryolo_detect.sh, qui fournit un script prêt à l’emploi pour exécuter des pipelines d’inférence YOLO26. Consulte le court tutoriel pour savoir comment le lancer.OpenVINO™ optimise le modèle YOLO26 spécifiquement pour le matériel Intel grâce à des techniques telles que l’optimisation de graphes, la fusion de couches et le réglage de noyaux adaptés au matériel. Associé au décodage accéléré VA-API de DL Streamer et au prétraitement sans copie
va-surface-sharing, le pipeline complet d’analyse vidéo atteint un débit nettement supérieur à celui des frameworks non optimisés.Oui. DL Streamer prend en charge l’inférence sur les processeurs Intel (Core, Core Ultra, Xeon), les GPU intégrés (Iris Xe, Arc), les GPU dédiés (Arc série A, série B) et les NPU (AI Boost) de plusieurs générations de plateformes Intel. Il suffit de modifier la propriété
devicedegvadetectenCPU,GPUouNPU.- FP16 est recommandé par défaut pour l’inférence sur GPU : il offre une précision proche de FP32 avec une amélioration du débit d’environ 2x.
- INT8 offre les meilleures performances (2 à 3x celles de FP32), avec une légère baisse de précision, et convient parfaitement lorsque le débit maximal est prioritaire. Les modèles INT8 sont automatiquement étalonnés lors de l’exportation Ultralytics.
DL Streamer prend en charge toutes les variantes de tâches YOLO26 :
- Détection : yolo26n, yolo26s, yolo26m, yolo26l, yolo26x
- Boîte englobante orientée (OBB) : yolo26s-obb (et toutes les variantes de taille)
- Segmentation d’instances : yolo26s-seg (et toutes les variantes de taille)
- Estimation de pose : yolo26s-pose (et toutes les variantes de taille)
- Classification : yolo26s-cls (pipeline composite avec détection)
Utilise l’option de sortie
jsonpour écrire les résultats de détection au format JSON Lines dans un fichier :./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8Tu peux également utiliser l’élément
gvametapublishdans des pipelines personnalisés pour publier des métadonnées dans des fichiers, sur MQTT ou sur Kafka.