Exportación a Intel OpenVINO#
En esta guía, abordamos la exportación de modelos YOLO26 al formato OpenVINO, el cual puede proporcionar una aceleración de hasta 3x en CPU, además de acelerar la inferencia de YOLO en hardware GPU y NPU de Intel.
OpenVINO, que significa Open Visual Inference & Neural Network Optimization toolkit, es un conjunto de herramientas integral para optimizar y desplegar modelos de inferencia de IA. Aunque el nombre contenga Visual, OpenVINO también admite varias tareas adicionales, incluidos lenguaje, audio, series temporales, etc.
Watch: How to Export Ultralytics YOLO26 to Intel OpenVINO Format for Faster Inference 🚀
Tareas compatibles#
La exportación a OpenVINO es compatible con las siete tareas de Ultralytics. La segmentación semántica y la estimación de profundidad solo están disponibles con YOLO26, la única familia que incluye esas cabezas.
Ejemplos de uso#
El formato OpenVINO admite los modos Export, Predict y Validate. Exporta tu modelo y luego cárgalo para ejecutar la inferencia o validar su precisión en una CPU, GPU integrada/discreta o NPU de Intel.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to OpenVINO format
model.export(format="openvino") # creates 'yolo26n_openvino_model/'from ultralytics import YOLO
# Load the exported OpenVINO model
model = YOLO("yolo26n_openvino_model/")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
# Run inference on a specific device, available devices: ["intel:gpu", "intel:npu", "intel:cpu"]
results = model("https://ultralytics.com/images/bus.jpg", device="intel:gpu")from ultralytics import YOLO
# Load the exported OpenVINO model
model = YOLO("yolo26n_openvino_model/")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Argumentos de exportación#
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'openvino' | Formato de destino para el modelo exportado, definiendo la compatibilidad con diversos entornos de despliegue. |
imgsz | int o tuple | 640 | Tamaño de imagen deseado para la entrada del modelo. Puede ser un número entero para imágenes cuadradas o una tupla (height, width) para dimensiones específicas. |
quantize | int o str | None | Precisión de cuantización: 16 (FP16) o 8 (INT8/PTQ; requiere calibración data/fraction); 32/sin establecer es FP32. Sustituye a los flags obsoletos half/int8. |
dynamic | bool | False | Permite tamaños de entrada dinámicos, mejorando la flexibilidad al manejar diferentes dimensiones de imagen. |
nms | bool | False | Añade la supresión de no máximos (NMS), esencial para el posprocesamiento preciso y eficiente de detecciones. |
batch | int | 1 | Especifica el tamaño de inferencia por lotes del modelo exportado o el número máximo de imágenes que el modelo exportado procesará de forma concurrente en el modo predict. |
data | str | None | Ruta al YAML del dataset, esencial para la cuantización; la clasificación por su parte toma un directorio de datasets o un nombre de dataset integrado. Si se omite con quantize=8, Ultralytics selecciona el dataset de calibración predeterminado para la tarea del modelo. |
fraction | float | 1.0 | Especifica la fracción del conjunto de datos a utilizar para la calibración de cuantización INT8. Permite calibrar en un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados. Si no se especifica con INT8 habilitado, se utilizará el conjunto de datos completo. |
Para más detalles sobre el proceso de exportación, visita la página de documentación de Ultralytics sobre exportación.
OpenVINO™ es compatible con la mayoría de los procesadores Intel®, pero para garantizar un rendimiento óptimo:
-
Verifica la compatibilidad con OpenVINO™ Comprueba si tu chip Intel® cuenta con compatibilidad oficial por parte de OpenVINO™ utilizando la lista de compatibilidad de Intel.
-
Identifica tu acelerador Determina si tu procesador incluye una NPU (unidad de procesamiento neuronal) o GPU integrada consultando la guía de hardware de Intel.
-
Instala los controladores más recientes Si tu chip es compatible con una NPU o GPU pero OpenVINO™ no la detecta, es posible que debas instalar o actualizar los controladores asociados. Sigue las instrucciones de instalación de controladores para habilitar la aceleración completa.
Siguiendo estos tres pasos, puedes asegurarte de que OpenVINO™ funcione de forma óptima en tu hardware Intel®.
Ventajas de OpenVINO#
- Rendimiento: OpenVINO ofrece una inferencia de alto rendimiento utilizando la potencia de las CPU de Intel, las GPU integradas y discretas, y las FPGA.
- Compatibilidad con ejecución heterogénea: OpenVINO proporciona una API para programar una vez e implementar en cualquier hardware Intel compatible (CPU, GPU, FPGA, VPU, etc.).
- Model Optimizer: OpenVINO proporciona un Model Optimizer que importa, convierte y optimiza modelos de frameworks populares de deep learning como PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle y Caffe.
- Facilidad de uso: El kit de herramientas incluye una gran colección de cuadernos de tutoriales (incluida la optimización de YOLO26) que enseñan diferentes aspectos del conjunto de herramientas.
Estructura de la exportación a OpenVINO#
Cuando exportas un modelo al formato OpenVINO, el resultado es un directorio que contiene lo siguiente:
- Archivo XML: Describe la topología de la red.
- Archivo BIN: Contiene los datos binarios de los pesos y sesgos.
- Archivo de mapeo: Contiene el mapeo de los tensores de salida del modelo original a los nombres de los tensores de OpenVINO.
Puedes usar estos archivos para ejecutar la inferencia con el motor de inferencia de OpenVINO.
Uso de la exportación a OpenVINO en la implementación#
Una vez que tu modelo se haya exportado correctamente al formato OpenVINO, tienes dos opciones principales para ejecutar la inferencia:
-
Utiliza el paquete
ultralytics, que proporciona una API de alto nivel y envuelve el OpenVINO Runtime. -
Utiliza el paquete nativo
openvinopara un control más avanzado o personalizado sobre el comportamiento de la inferencia.
Inferencia con Ultralytics#
El paquete ultralytics te permite ejecutar fácilmente la inferencia utilizando el modelo OpenVINO exportado a través del método predict. También puedes especificar el dispositivo de destino (p. ej., intel:gpu, intel:npu, intel:cpu) mediante el argumento device.
from ultralytics import YOLO
# Load the exported OpenVINO model
ov_model = YOLO("yolo26n_openvino_model/") # the path of your exported OpenVINO model
# Run inference with the exported model
ov_model.predict(device="intel:gpu") # specify the device you want to run inference onEste enfoque es ideal para la creación rápida de prototipos o la implementación cuando no necesitas un control total sobre el pipeline de inferencia.
Inferencia con OpenVINO Runtime#
El OpenVINO Runtime proporciona una API unificada para la inferencia en todo el hardware de Intel compatible. También ofrece capacidades avanzadas como el equilibrio de carga en hardware Intel y la ejecución asíncrona. Para obtener más información sobre la ejecución de inferencias, consulta los cuadernos de YOLO26.
Recuerda que necesitarás los archivos XML y BIN, así como cualquier configuración específica de la aplicación, como el tamaño de entrada, el factor de escala para la normalización, etc., para configurar y utilizar correctamente el modelo con el entorno de ejecución.
En tu aplicación de implementación, normalmente seguirías estos pasos:
- Inicializa OpenVINO creando
core = Core(). - Carga el modelo utilizando el método
core.read_model(). - Compila el modelo utilizando la función
core.compile_model(). - Prepara la entrada (imagen, texto, audio, etc.).
- Ejecuta la inferencia usando
compiled_model(input_data).
Para obtener pasos más detallados y fragmentos de código, consulta la documentación de OpenVINO o el tutorial de la API.
Benchmarks de YOLO26 en OpenVINO#
El equipo de Ultralytics evaluó el rendimiento de YOLO26 en varios formatos de modelos y de precisión, evaluando la velocidad y la precisión en diferentes dispositivos Intel compatibles con OpenVINO.
-
Los resultados de los benchmarks a continuación son de referencia y pueden variar según la configuración exacta del hardware y software de un sistema, así como de la carga de trabajo actual del sistema en el momento en que se ejecutan los benchmarks.
-
Todas las pruebas comparativas se ejecutaron con la versión 2026.2.1 del paquete de Python
openvino. -
Los modelos YOLO26 en NPU solo son compatibles con sistemas Intel® Core™ Ultra™ de la serie 2xxV y serie 3xx y superiores.
Intel® Core™ Ultra#
La serie Intel® Core™ Ultra™ representa un nuevo estándar en la informática de alto rendimiento, diseñada para satisfacer las demandas cambiantes de los usuarios modernos, desde jugadores y creadores hasta profesionales que aprovechan la IA. Esta línea de nueva generación es más que una serie de CPU tradicional; combina potentes núcleos de CPU, capacidades de GPU integrada de alto rendimiento y una NPU (Neural Processing Unit) dedicada en un solo chip, ofreciendo una solución unificada para cargas de trabajo informáticas diversas e intensivas.
En el corazón de la arquitectura Intel® Core Ultra™ se encuentra un diseño híbrido que permite un rendimiento excepcional en tareas de procesamiento tradicionales, cargas de trabajo aceleradas por GPU y operaciones impulsadas por IA. La inclusión de la NPU mejora la inferencia de IA en el dispositivo, permitiendo un aprendizaje automático y un procesamiento de datos más rápidos y eficientes en una amplia gama de aplicaciones.
La familia Core Ultra™ incluye varios modelos adaptados a diferentes necesidades de rendimiento, con opciones que van desde diseños energéticamente eficientes hasta variantes de alta potencia marcadas con la designación "H", ideales para portátiles y formatos compactos que requieren una potencia de cálculo seria. En toda la gama, los usuarios se benefician de la sinergia de la integración de CPU, GPU y NPU, lo que proporciona una eficiencia, capacidad de respuesta y capacidades multitarea notables.
Como parte de la innovación continua de Intel, la serie Core Ultra™ establece un nuevo estándar para la informática preparada para el futuro. Con múltiples modelos disponibles y más en el horizonte, esta serie subraya el compromiso de Intel de ofrecer soluciones de vanguardia para la próxima generación de dispositivos inteligentes mejorados con IA.
Los benchmarks que se muestran a continuación se ejecutan en Intel® Core™ Ultra™ X7 358H, Intel® Core™ Ultra™ 7 258V e Intel® Core™ Ultra™ 7 155H a una precisión de FP32, FP16 e INT8.
Intel® Core™ Ultra™ X7 358H#
Resultados detallados de los benchmarks
| Modelo | Formato | Precisión | Estado | Tamaño (MB) | métricas/mAP50-95(B) | Tiempo de inferencia (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | PyTorch (CPU) | FP32 | ✅ | 5.3 | 0.4765 | 29.28 |
| YOLO26n | OpenVINO | FP32 | ✅ | 9.7 | 0.4762 | 4.09 |
| YOLO26n | OpenVINO | FP16 | ✅ | 5.1 | 0.4762 | 4.03 |
| YOLO26n | OpenVINO | INT8 | ✅ | 3.2 | 0.4634 | 4.24 |
| YOLO26s | PyTorch (CPU) | FP32 | ✅ | 19.5 | 0.5703 | 59.32 |
| YOLO26s | OpenVINO | FP32 | ✅ | 36.7 | 0.5616 | 5.08 |
| YOLO26s | OpenVINO | FP16 | ✅ | 18.7 | 0.5616 | 5.14 |
| YOLO26s | OpenVINO | INT8 | ✅ | 10.0 | 0.5462 | 4.47 |
| YOLO26m | PyTorch (CPU) | FP32 | ✅ | 42.2 | 0.6196 | 143.21 |
| YOLO26m | OpenVINO | FP32 | ✅ | 78.4 | 0.6166 | 7.1 |
| YOLO26m | OpenVINO | FP16 | ✅ | 39.5 | 0.6166 | 7.06 |
| YOLO26m | OpenVINO | INT8 | ✅ | 20.6 | 0.6055 | 5.61 |
| YOLO26l | PyTorch (CPU) | FP32 | ✅ | 50.7 | 0.6215 | 181.16 |
| YOLO26l | OpenVINO | FP32 | ✅ | 95.3 | 0.6205 | 8.45 |
| YOLO26l | OpenVINO | FP16 | ✅ | 48.1 | 0.6205 | 8.49 |
| YOLO26l | OpenVINO | INT8 | ✅ | 25.2 | 0.5938 | 6.25 |
| YOLO26x | PyTorch (CPU) | FP32 | ✅ | 113.2 | 0.6512 | 379.75 |
| YOLO26x | OpenVINO | FP32 | ✅ | 213.3 | 0.6568 | 13.03 |
| YOLO26x | OpenVINO | FP16 | ✅ | 107.1 | 0.6568 | 12.98 |
| YOLO26x | OpenVINO | INT8 | ✅ | 54.8 | 0.6385 | 8.74 |
Intel® Core™ Ultra™ 7 258V#
Resultados detallados de los benchmarks
| Modelo | Formato | Precisión | Estado | Tamaño (MB) | métricas/mAP50-95(B) | Tiempo de inferencia (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | PyTorch (CPU) | FP32 | ✅ | 5.3 | 0.4765 | 27.33 |
| YOLO26n | OpenVINO | FP32 | ✅ | 9.6 | 0.4764 | 3.33 |
| YOLO26n | OpenVINO | FP16 | ✅ | 5.1 | 0.4764 | 3.34 |
| YOLO26n | OpenVINO | INT8 | ✅ | 3.2 | 0.4634 | 3.46 |
| YOLO26s | PyTorch (CPU) | FP32 | ✅ | 19.5 | 0.5703 | 60.2 |
| YOLO26s | OpenVINO | FP32 | ✅ | 36.7 | 0.5616 | 4.66 |
| YOLO26s | OpenVINO | FP16 | ✅ | 18.6 | 0.5616 | 4.65 |
| YOLO26s | OpenVINO | INT8 | ✅ | 10.0 | 0.5462 | 3.99 |
| YOLO26m | PyTorch (CPU) | FP32 | ✅ | 42.2 | 0.6196 | 152.87 |
| YOLO26m | OpenVINO | FP32 | ✅ | 78.4 | 0.6168 | 9.03 |
| YOLO26m | OpenVINO | FP16 | ✅ | 39.5 | 0.6168 | 8.98 |
| YOLO26m | OpenVINO | INT8 | ✅ | 20.6 | 0.6055 | 5.7 |
| YOLO26l | PyTorch (CPU) | FP32 | ✅ | 50.7 | 0.6215 | 201.57 |
| YOLO26l | OpenVINO | FP32 | ✅ | 95.3 | 0.6203 | 11.32 |
| YOLO26l | OpenVINO | FP16 | ✅ | 48.1 | 0.6203 | 11.36 |
| YOLO26l | OpenVINO | INT8 | ✅ | 25.2 | 0.5938 | 7.45 |
| YOLO26x | PyTorch (CPU) | FP32 | ✅ | 113.2 | 0.6512 | 431.04 |
| YOLO26x | OpenVINO | FP32 | ✅ | 213.2 | 0.6568 | 19.08 |
| YOLO26x | OpenVINO | FP16 | ✅ | 107.1 | 0.6568 | 19.63 |
| YOLO26x | OpenVINO | INT8 | ✅ | 54.8 | 0.6385 | 13.69 |
Intel® Core™ Ultra™ 7 155H#
Resultados detallados de los benchmarks
| Modelo | Formato | Precisión | Estado | Tamaño (MB) | métricas/mAP50-95(B) | Tiempo de inferencia (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | PyTorch (CPU) | FP32 | ✅ | 5.3 | 0.4765 | 33.19 |
| YOLO26n | OpenVINO | FP32 | ✅ | 9.6 | 0.4758 | 9.13 |
| YOLO26n | OpenVINO | FP16 | ✅ | 5.1 | 0.4758 | 9.07 |
| YOLO26n | OpenVINO | INT8 | ✅ | 3.2 | 0.4573 | 5.79 |
| YOLO26s | PyTorch (CPU) | FP32 | ✅ | 19.5 | 0.5703 | 70.92 |
| YOLO26s | OpenVINO | FP32 | ✅ | 36.7 | 0.5616 | 16.37 |
| YOLO26s | OpenVINO | FP16 | ✅ | 18.6 | 0.5616 | 16.65 |
| YOLO26s | OpenVINO | INT8 | ✅ | 10.0 | 0.545 | 9.27 |
| YOLO26m | PyTorch (CPU) | FP32 | ✅ | 42.2 | 0.6196 | 192.45 |
| YOLO26m | OpenVINO | FP32 | ✅ | 78.4 | 0.6167 | 34.47 |
| YOLO26m | OpenVINO | FP16 | ✅ | 39.5 | 0.6167 | 35.71 |
| YOLO26m | OpenVINO | INT8 | ✅ | 20.6 | 0.6039 | 15.46 |
| YOLO26l | PyTorch (CPU) | FP32 | ✅ | 50.7 | 0.6215 | 239.19 |
| YOLO26l | OpenVINO | FP32 | ✅ | 95.3 | 0.621 | 43.24 |
| YOLO26l | OpenVINO | FP16 | ✅ | 48.1 | 0.621 | 43.4 |
| YOLO26l | OpenVINO | INT8 | ✅ | 25.2 | 0.5999 | 19.72 |
| YOLO26x | PyTorch (CPU) | FP32 | ✅ | 113.2 | 0.6512 | 511.89 |
| YOLO26x | OpenVINO | FP32 | ✅ | 213.2 | 0.6552 | 79.49 |
| YOLO26x | OpenVINO | FP16 | ✅ | 107.1 | 0.6552 | 79.45 |
| YOLO26x | OpenVINO | INT8 | ✅ | 54.8 | 0.642 | 34.66 |
Reproduce nuestros resultados#
Para reproducir las pruebas comparativas de Ultralytics anteriores en todos los formatos de exportación, ejecuta este código:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml")Ten en cuenta que los resultados de las pruebas comparativas pueden variar según la configuración exacta de hardware y software de un sistema, así como según la carga de trabajo actual del sistema en el momento en que se ejecutan dichas pruebas. Para obtener los resultados más confiables, utiliza un dataset con una gran cantidad de imágenes, es decir, data='coco.yaml' (5000 imágenes de validación).
Conclusión#
Los resultados de los benchmarks demuestran claramente las ventajas de exportar el modelo YOLO26 al formato OpenVINO. En diferentes modelos y plataformas de hardware, el formato OpenVINO supera constantemente a otros formatos en términos de velocidad de inferencia mientras mantiene una precisión comparable.
Los benchmarks subrayan la eficacia de OpenVINO como herramienta para implementar modelos de aprendizaje profundo. Al convertir los modelos al formato OpenVINO, los desarrolladores pueden conseguir mejoras de rendimiento significativas, lo que facilita la implementación de estos modelos en aplicaciones del mundo real.
Para obtener información más detallada e instrucciones sobre el uso de OpenVINO, consulta la documentación oficial de OpenVINO.
FAQ#
¿Cómo puedo exportar modelos YOLO26 al formato OpenVINO?#
Exportar modelos YOLO26 al formato OpenVINO puede mejorar significativamente la velocidad de la CPU y permitir aceleraciones de GPU y NPU en hardware Intel. Para exportar, puedes usar Python o la CLI como se muestra a continuación:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model
model.export(format="openvino") # creates 'yolo26n_openvino_model/'Para obtener más información, consulta la documentación de los formatos de exportación.
¿Cuáles son las ventajas de usar OpenVINO con modelos YOLO26?#
Usar el kit de herramientas OpenVINO de Intel con modelos YOLO26 ofrece varias ventajas:
- Rendimiento: logra una aceleración de hasta 3x en la inferencia de la CPU y aprovecha las GPU y NPU de Intel para la aceleración.
- Optimizador de modelos: convierte, optimiza y ejecuta modelos de frameworks populares como PyTorch, TensorFlow y ONNX.
- Facilidad de uso: hay disponible una gran colección de cuadernos de tutoriales para ayudar a los usuarios a empezar, incluidos algunos para YOLO26.
- Ejecución heterogénea: implementa modelos en varios hardwares de Intel con una API unificada.
Para ver comparaciones de rendimiento detalladas, visita nuestra sección de pruebas comparativas.
¿Cómo puedo ejecutar la inferencia usando un modelo YOLO26 exportado a OpenVINO?#
Después de exportar un modelo YOLO26n al formato OpenVINO, puedes ejecutar la inferencia usando Python o la CLI:
from ultralytics import YOLO
# Load the exported OpenVINO model
ov_model = YOLO("yolo26n_openvino_model/")
# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")Consulta nuestra documentación del modo predict para obtener más detalles.
¿Por qué debería elegir Ultralytics YOLO26 sobre otros modelos para la exportación a OpenVINO?#
Ultralytics YOLO26 está optimizado para la detección de objetos en tiempo real con alta precisión y velocidad. Específicamente, cuando se combina con OpenVINO, YOLO26 proporciona:
- Hasta 3x de aceleración en CPUs Intel
- Implementación fluida en GPUs y NPUs Intel
- Precisión consistente y comparable en varios formatos de exportación
Para un análisis de rendimiento exhaustivo, consulta nuestras pruebas comparativas detalladas de YOLO26 en diferentes hardwares.
¿Puedo hacer benchmarks de modelos YOLO26 en diferentes formatos como PyTorch, ONNX y OpenVINO?#
Sí, puedes hacer benchmarks de modelos YOLO26 en varios formatos, incluyendo PyTorch, TorchScript, ONNX y OpenVINO. Utiliza el siguiente fragmento de código para ejecutar benchmarks en el dataset que elijas:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Benchmark YOLO26n speed and [accuracy](https://www.ultralytics.com/glossary/accuracy) on the COCO8 dataset for all export formats
results = model.benchmark(data="coco8.yaml")Para obtener resultados detallados de las pruebas comparativas, consulta nuestra sección de pruebas comparativas y la documentación de formatos de exportación.