Ultralytics YOLO26 en Intel Core Ultra Series 3 con DL Streamer Pipeline Framework y OpenVINO™#
Esta guía completa ofrece instrucciones detalladas para implementar Ultralytics YOLO26 en plataformas Intel Core Ultra Series 3 mediante DL Streamer Pipeline Framework y el kit de herramientas OpenVINO™. Aquí usamos OpenVINO™ para maximizar el rendimiento de inferencia en CPU, GPU integradas y discretas, y NPU de Intel.
Contenido: ¿Qué es Intel DL Streamer? • Requisitos previos • Preparación del modelo YOLO26 • Ejecución de inferencias con YOLO26 • Configuración de varios flujos • Preguntas frecuentes
¿Qué es Intel DL Streamer?#
Deep Learning Streamer (DL Streamer) Pipeline Framework es un marco de análisis de contenido multimedia en streaming y de código abierto basado en el marco multimedia GStreamer, diseñado para crear flujos complejos de análisis multimedia en la nube o en el borde.
DL Streamer permite analizar flujos de audio y vídeo para detectar, clasificar, seguir, identificar y contar objetos, eventos y personas. Está optimizado para el hardware de Intel y ofrece interoperabilidad entre complementos de GStreamer basados en distintas bibliotecas de backend:
- Inferencia: motor de inferencia OpenVINO™, optimizado para CPU, GPU y NPU de Intel
- Codificación/decodificación de vídeo: aceleración por GPU mediante VA-API
- Procesamiento de imágenes: aceleración por GPU mediante VA-API
- Metadatos: GStreamer Analytics para obtener resultados de inferencia estructurados
- Ecosistema: cientos de complementos de GStreamer para entrada y salida de contenido multimedia, multiplexación y demultiplexación, compatibilidad con códecs y mucho más
DL Streamer es compatible con muchos modelos de IA, incluida toda la familia Ultralytics YOLO (de YOLOv5 a YOLO26) en formato OpenVINO™.
DL Streamer se valida periódicamente con los sistemas proporcionados en la documentación de la plataforma Open Edge: requisitos del sistema
Requisitos previos#
Antes de empezar, asegúrate de que los siguientes componentes estén instalados y configurados en tu sistema Intel:
-
Ubuntu 24.04 con los controladores de GPU/NPU de Intel instalados (consulta la guía de instalación)
-
motor de Docker (consulta la guía de instalación)
Preparación del modelo YOLO26#
DL Streamer utiliza modelos en formato IR de OpenVINO™. Los modelos Ultralytics YOLO26 se exportan de PyTorch a IR de OpenVINO™ mediante el exportador de Ultralytics. DL Streamer aprovecha la integración oficial de OpenVINO™ de Ultralytics, que ofrece funciones optimizadas de exportación e inferencia para el hardware de Intel.
- Crea la carpeta
~/intel/dlstreamer_demoe instala OpenVINO™ y Ultralytics en un entorno virtual
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- Descarga de Ultralytics el modelo YOLO26s de PyTorch, conviértelo al formato IR de OpenVINO™ y genera una variante con precisión INT8.
yolo export model=yolo26s.pt format=openvino dynamic=True quantize=8 data=coco128.yamlEl modelo se exporta a la carpeta ~/intel/dlstreamer_demo/yolo26s_int8_openvino_model.
Precisión del modelo#
DL Streamer admite modelos con precisión FP32, FP16 e INT8. Cada uno requiere un paso de exportación independiente:
# 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.yamlLos ejemplos siguientes utilizan el modelo INT8 exportado en el paso de preparación. Para usar modelos FP32 o FP16, sustituye la ruta del modelo según corresponda (p. ej., yolo26s_openvino_model/yolo26s.xml).
Ejecución de inferencias con YOLO26#
Antes de ejecutar la canalización de detección de inferencias de YOLO26 con DL Streamer, ejecuta la imagen Docker de DL Streamer en modo interactivo. Asegúrate de haber seguido el paso de preparación del modelo YOLO26 y descarga el siguiente archivo de vídeo de la base de datos de Pexels.
curl -L https://videos.pexels.com/video-files/1192116/1192116-sd_640_360_30fps.mp4 --output ~/intel/dlstreamer_demo/video1.mp4Ejecuta la imagen Docker de DL Streamer en modo interactivo.
Este comando está pensado para sistemas equipados con procesadores Intel Core Ultra Series 3 con GPU integrada (iGPU) y 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:latestPrecisión INT8 (rendimiento máximo)#
La cuantización INT8 ofrece el mayor rendimiento al reducir los pesos del modelo a enteros de 8 bits. El exportador de Ultralytics realiza la calibración automáticamente.
Ejecutar YOLO26s con INT8 en la 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
Ejecutar YOLO26s con INT8 en la GPU y guardar la salida en un archivo de vídeo#
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.mp4Ejecutar YOLO26s con INT8 en la 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
Configuración multistream#
DL Streamer admite el procesamiento multistream, en el que se decodifican e infieren varias fuentes de vídeo simultáneamente. Puedes iniciar varias canalizaciones en paralelo con el elemento vacompositor de GStreamer para combinar varios flujos.
Ejecución en paralelo de varias canalizaciones (4 flujos) (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
Recursos adicionales#
- Repositorio de DL Streamer en GitHub
- Documentación de DL Streamer
- Elementos de DL Streamer
- Kit de herramientas OpenVINO™
- Ultralytics YOLO26
- Framework GStreamer
- Tabla de modelos compatibles
Preguntas frecuentes#
Instala DL Streamer siguiendo la guía de instalación, configura el entorno con
source /opt/intel/dlstreamer/scripts/setup_dls_env.sh, instala Ultralytics y OpenVINO™ y descarga los modelos condownload_ultralytics_models.sh. A continuación, ejecuta inferencias con la aplicación de ejemplo de DL Streameryolo_detect.sh, que incluye un script listo para usar con canalizaciones de inferencia de YOLO26. Consulta el tutorial breve para saber cómo ejecutarlo.OpenVINO™ optimiza el modelo YOLO26 específicamente para el hardware Intel mediante técnicas como la optimización de grafos, la fusión de capas y el ajuste de kernels específicos del hardware. Combinada con la decodificación acelerada por VA-API de DL Streamer y el preprocesamiento de copia cero
va-surface-sharing, toda la canalización de análisis de vídeo alcanza un rendimiento significativamente superior al de los frameworks no optimizados.Sí. DL Streamer admite inferencias en CPU Intel (Core, Core Ultra, Xeon), GPU integradas (Iris Xe, Arc), GPU discretas (Arc Series A, Series B) y NPU (AI Boost) en varias generaciones de plataformas Intel. Solo tienes que cambiar la propiedad
devicedegvadetectaCPU,GPUoNPU.- Se recomienda FP16 como opción predeterminada para las inferencias en GPU: ofrece una precisión casi igual a FP32 con una mejora del rendimiento de aproximadamente 2x.
- INT8 ofrece el máximo rendimiento (2–3x superior a FP32) con una pequeña pérdida de precisión, por lo que es ideal cuando la prioridad es alcanzar el máximo rendimiento. Los modelos INT8 se calibran automáticamente durante la exportación de Ultralytics.
DL Streamer admite todas las variantes de tareas de YOLO26:
- Detección: yolo26n, yolo26s, yolo26m, yolo26l, yolo26x
- Cuadro delimitador orientado (OBB): yolo26s-obb (y todas las variantes de tamaño)
- Segmentación de instancias: yolo26s-seg (y todas las variantes de tamaño)
- Estimación de pose: yolo26s-pose (y todas las variantes de tamaño)
- Clasificación: yolo26s-cls (canalización compuesta con detección)
Usa la opción de salida
jsonpara escribir los resultados de detección en un archivo como líneas JSON:./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8También puedes usar el elemento
gvametapublishen canalizaciones personalizadas para publicar metadatos en archivos, MQTT o Kafka.