Ultralytics YOLO26 en Intel Core Ultra Series 3 mediante DL Streamer Pipeline Framework y OpenVINO™#
Esta guía completa ofrece un recorrido detallado 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 inferencia con YOLO26 • Configuración multistream • Preguntas frecuentes
¿Qué es Intel DL Streamer?#
Deep Learning Streamer (DL Streamer) Pipeline Framework es un marco de análisis de medios en streaming de código abierto basado en el marco multimedia GStreamer, diseñado para crear canalizaciones complejas de análisis de medios en la nube o en el edge.
DL Streamer permite el análisis de secuencias de audio y vídeo para detectar, clasificar, rastrear, identificar y contar objetos, eventos y personas. Está optimizado para hardware de Intel y proporciona interoperabilidad entre los complementos de GStreamer construidos sobre varias 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 mediante GPU a través de VA-API
- Procesamiento de imágenes: aceleración mediante GPU a través de VA-API
- Metadatos: GStreamer Analytics para resultados de inferencia estructurados
- Ecosistema: cientos de plugins de GStreamer para E/S de medios, multiplexación/demultiplexación, compatibilidad con códecs y mucho más
DL Streamer admite muchos modelos de IA, incluida toda la familia Ultralytics YOLO (de YOLOv5 a YOLO26), todos en formato OpenVINO™.
DL Streamer se valida regularmente con los sistemas proporcionados en System Requirements — Open Edge Platform Documentation
Requisitos previos#
Antes de empezar, asegúrate de que lo siguiente esté instalado y configurado 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 Ultralytics con OpenVINO™, que proporciona funciones optimizadas de exportación e inferencia para hardware 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 el modelo PyTorch YOLO26s de Ultralytics, conviértelo al formato OpenVINO™ IR y genera una variante de 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 (por ejemplo, yolo26s_openvino_model/yolo26s.xml).
Ejecución de inferencia con YOLO26#
Antes de ejecutar la canalización de inferencia y detección de YOLO26 con DL Streamer, ejecuta la imagen de Docker de DL Streamer en modo interactivo. Asegúrate de haber seguido el paso de YOLO26 Model Preparation 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á destinado a sistemas equipados con procesadores Intel Core Ultra Series 3 con GPU integrada (iGPU) y NPU incorporada.
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 (máximo rendimiento)#
La cuantización INT8 ofrece el mayor rendimiento al reducir los pesos del modelo a enteros de 8 bits. El exportador de Ultralytics gestiona la calibración automáticamente.
Ejecuta YOLO26s con INT8 en 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
Ejecuta YOLO26s con INT8 en GPU y guarda el resultado en un archivo de vídeo (~/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.mp4Ejecuta YOLO26s con INT8 en 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 de múltiples secuencias, donde varias fuentes de vídeo se decodifican y se someten a inferencia de forma simultánea. Puedes iniciar múltiples canalizaciones en paralelo utilizando el elemento vacompositor de GStreamer para combinar varias secuencias.
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
- Marco 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 mediantedownload_ultralytics_models.sh. Después, ejecuta la inferencia con la aplicación de ejemplo de DL Streameryolo_detect.sh, que proporciona un script listo para usar para ejecutar canalizaciones de inferencia de YOLO26. Consulta el tutorial breve para saber cómo ejecutarlo.OpenVINO™ optimiza el modelo YOLO26 específicamente para el hardware de Intel mediante técnicas como la optimización de grafos, la fusión de capas y el ajuste de núcleos específico del hardware. Combinado con la decodificación acelerada por VA-API de DL Streamer y el preprocesamiento de copia cero
va-surface-sharing, la canalización completa de análisis de vídeo logra un rendimiento significativamente mayor que los marcos de trabajo no optimizados.Sí. DL Streamer admite la inferencia en CPU de Intel (Core, Core Ultra, Xeon), GPU integradas (Iris Xe, Arc), GPU discretas (Arc serie A, serie B) y NPU (AI Boost) en múltiples generaciones de plataformas Intel. Simplemente cambia la propiedad
devicedegvadetectaCPU,GPUoNPU.- FP16 se recomienda como opción predeterminada para la inferencia en GPU: ofrece una precisión cercana 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 reducción de precisión y es ideal cuando la prioridad es maximizar el 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 postura: 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 como líneas JSON en un archivo:./yolo_detect.sh yolo26s GPU input_video.mp4 json va-surface-sharing INT8Como alternativa, usa el elemento
gvametapublishen canalizaciones personalizadas para publicar metadatos en archivos, MQTT o Kafka.