Exportación a Intel OpenVINO
En esta guía, explicamos cómo exportar modelos YOLO26 al formato OpenVINO, que puede proporcionar hasta 3 veces más velocidad en CPU, además de acelerar la inferencia de YOLO en hardware GPU y NPU de Intel.
OpenVINO, abreviatura de Open Visual Inference & Neural Network Optimization toolkit, es un kit de herramientas integral para optimizar y desplegar modelos de inferencia de IA. Aunque el nombre contenga "Visual", OpenVINO también admite diversas tareas adicionales, como lenguaje, audio, series temporales, etc.
Watch: How to Export Ultralytics YOLO26 to Intel OpenVINO Format for Faster Inference 🚀
Ejemplos de uso
Exporta un modelo YOLO26n al formato OpenVINO y ejecuta la inferencia con el modelo exportado.
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model
model.export(format="openvino") # creates 'yolo26n_openvino_model/'
# Load the exported OpenVINO model
ov_model = YOLO("yolo26n_openvino_model/")
# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Run inference with specified device, available devices: ["intel:gpu", "intel:npu", "intel:cpu"]
results = ov_model("https://ultralytics.com/images/bus.jpg", device="intel:gpu")Argumentos de exportación
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'openvino' | Formato de destino para el modelo exportado, que define la compatibilidad con varios 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. |
half | bool | False | Habilita la cuantización FP16 (precisión media), lo que reduce el tamaño del modelo y potencialmente acelera la inferencia en hardware compatible. |
int8 | bool | False | Activa la cuantización INT8, comprimiendo aún más el modelo y acelerando la inferencia con una pérdida mínima de precisión, principalmente para dispositivos de borde. |
dynamic | bool | False | Permite tamaños de entrada dinámicos, lo que mejora 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 de detección preciso y eficiente. |
batch | int | 1 | Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que procesará simultáneamente en modo predict. |
data | str | 'coco8.yaml' | Ruta al archivo de configuración del dataset (predeterminado: coco8.yaml), esencial para la cuantización. |
fraction | float | 1.0 | Especifica la fracción del conjunto de datos a utilizar para la calibración de cuantización INT8. Permite calibrar sobre 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 procesadores Intel®, pero para garantizar un rendimiento óptimo:
-
Verifica la compatibilidad con OpenVINO™ Comprueba si tu chip Intel® es oficialmente compatible con OpenVINO™ utilizando la lista de compatibilidad de Intel.
-
Identifica tu acelerador Determina si tu procesador incluye una NPU (Neural Processing Unit) o GPU integrada consultando la guía de hardware de Intel.
-
Instala los controladores más recientes Si tu chip admite una NPU o GPU pero OpenVINO™ no lo detecta, es posible que necesites instalar o actualizar los controladores asociados. Sigue las instrucciones de instalación de controladores para habilitar la aceleración completa.
Al seguir estos tres pasos, puedes asegurarte de que OpenVINO™ se ejecute de manera óptima en tu hardware Intel®.
Ventajas de OpenVINO
- Rendimiento: OpenVINO ofrece una inferencia de alto rendimiento utilizando la potencia de las CPUs, GPUs integradas y discretas, y FPGAs de Intel.
- Soporte para ejecución heterogénea: OpenVINO proporciona una API para escribir una vez y desplegar en cualquier hardware Intel compatible (CPU, GPU, FPGA, VPU, etc.).
- Model Optimizer: OpenVINO ofrece un optimizador de modelos (Model Optimizer) que importa, convierte y optimiza modelos de frameworks de deep learning populares como PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle y Caffe.
- Facilidad de uso: El kit de herramientas incluye más de 80 cuadernos de tutoriales (incluyendo la optimización de YOLO26) que enseñan diferentes aspectos del kit de herramientas.
Estructura de exportación de OpenVINO
Cuando exportas un modelo al formato OpenVINO, se genera 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 (weights and biases).
- Archivo de asignación (Mapping): Contiene la asignación de los tensores de salida del modelo original a los nombres de los tensores de OpenVINO.
Puedes utilizar estos archivos para ejecutar la inferencia con el motor de inferencia de OpenVINO.
Uso de la exportación a OpenVINO en el despliegue
Una vez que el modelo se ha exportado correctamente al formato OpenVINO, tienes dos opciones principales para ejecutar la inferencia:
-
Utilizar el paquete
ultralytics, que proporciona una API de alto nivel y envuelve el Runtime de OpenVINO. -
Utilizar el paquete
openvinonativo para 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) usando 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 el despliegue cuando no necesitas un control total sobre el pipeline de inferencia.
Inferencia con el Runtime de OpenVINO
El Runtime de OpenVINO proporciona una API unificada para la inferencia en todo el hardware 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 inferencia, 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 Runtime.
En tu aplicación de despliegue, normalmente realizarías los siguientes pasos:
- Inicializa OpenVINO creando
core = Core(). - Carga el modelo usando el método
core.read_model(). - Compila el modelo usando 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 con OpenVINO
El equipo de Ultralytics evaluó YOLO26 en varios formatos de modelo y precisión, analizando la velocidad y la exactitud 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 de hardware y software del sistema, así como de la carga de trabajo actual del sistema en el momento en que se ejecutan los benchmarks.
-
All benchmarks were run with
openvinoPython package version 2026.2.0.dev20260501. We will update benchmarks with stable build once version 2026.2.0 is released. -
Los modelos YOLO26 en NPU solo se admiten en sistemas Intel® Core™ Ultra™ con series 2xxV y 3xx y superiores.
Intel® Core™ Ultra
La serie Intel® Core™ Ultra™ representa un nuevo punto de referencia en la computación de alto rendimiento, diseñada para satisfacer las demandas cambiantes de los usuarios modernos, desde jugadores y creadores hasta profesionales que utilizan IA. Esta línea de próxima 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 unidad de procesamiento neuronal (NPU) dedicada en un solo chip, ofreciendo una solución unificada para diversas e intensivas cargas de trabajo informáticas.
En el corazón de la arquitectura Intel® Core Ultra™ hay 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, lo que permite 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 de bajo consumo energético hasta variantes de alta potencia marcadas con la designación "H", ideales para portátiles y factores de forma compactos que requieren una potencia de computación seria. En toda la línea, los usuarios se benefician de la sinergia de la integración de CPU, GPU y NPU, ofreciendo 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 computación 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 a continuación se ejecutaron en Intel® Core™ Ultra™ X7 358H, Intel® Core™ Ultra™ 7 258V e Intel® Core™ Ultra™ 7 155H con precisiones FP32, FP16 e INT8.
Intel® Core™ Ultra™ X7 358H
Resultados detallados de los benchmarks
| Modelo | Formato | Precisión | Estado | Tamaño (MB) | metrics/mAP50-95(B) | Tiempo de inferencia (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | PyTorch (CPU) | FP32 | ✅ | 5.3 | 0.4765 | 25.18 |
| YOLO26n | OpenVINO | FP32 | ✅ | 9.6 | 0.4763 | 2.67 |
| YOLO26n | OpenVINO | FP16 | ✅ | 5.1 | 0.4763 | 2.64 |
| YOLO26n | OpenVINO | INT8 | ✅ | 3.2 | 0.4625 | 2.73 |
| YOLO26s | PyTorch (CPU) | FP32 | ✅ | 19.5 | 0.5703 | 50.09 |
| YOLO26s | OpenVINO | FP32 | ✅ | 36.7 | 0.5615 | 3.57 |
| YOLO26s | OpenVINO | FP16 | ✅ | 18.6 | 0.5615 | 3.55 |
| YOLO26s | OpenVINO | INT8 | ✅ | 10.0 | 0.547 | 3.09 |
| YOLO26m | PyTorch (CPU) | FP32 | ✅ | 42.2 | 0.6196 | 135.1 |
| YOLO26m | OpenVINO | FP32 | ✅ | 78.3 | 0.6168 | 5.64 |
| YOLO26m | OpenVINO | FP16 | ✅ | 39.5 | 0.6168 | 5.85 |
| YOLO26m | OpenVINO | INT8 | ✅ | 20.5 | 0.5994 | 4.14 |
| YOLO26l | PyTorch (CPU) | FP32 | ✅ | 50.7 | 0.6215 | 169.75 |
| YOLO26l | OpenVINO | FP32 | ✅ | 95.3 | 0.6206 | 8.14 |
| YOLO26l | OpenVINO | FP16 | ✅ | 48.1 | 0.6206 | 8.18 |
| YOLO26l | OpenVINO | INT8 | ✅ | 25.2 | 0.5999 | 4.67 |
| YOLO26x | PyTorch (CPU) | FP32 | ✅ | 113.2 | 0.6512 | 407.56 |
| YOLO26x | OpenVINO | FP32 | ✅ | 213.2 | 0.6569 | 13.11 |
| YOLO26x | OpenVINO | FP16 | ✅ | 107.1 | 0.6569 | 13.15 |
| YOLO26x | OpenVINO | INT8 | ✅ | 54.8 | 0.6374 | 9.24 |
Intel® Core™ Ultra™ 7 258V
Resultados detallados de los benchmarks
| Modelo | Formato | Precisión | Estado | Tamaño (MB) | metrics/mAP50-95(B) | Tiempo de inferencia (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | PyTorch (CPU) | FP32 | ✅ | 5.3 | 0.4765 | 31.43 |
| YOLO26n | OpenVINO | FP32 | ✅ | 9.6 | 0.4762 | 3.57 |
| YOLO26n | OpenVINO | FP16 | ✅ | 5.1 | 0.4762 | 3.53 |
| YOLO26n | OpenVINO | INT8 | ✅ | 3.2 | 0.4625 | 3.65 |
| YOLO26s | PyTorch (CPU) | FP32 | ✅ | 19.5 | 0.5703 | 60.4 |
| YOLO26s | OpenVINO | FP32 | ✅ | 36.7 | 0.5616 | 5.02 |
| YOLO26s | OpenVINO | FP16 | ✅ | 18.6 | 0.5616 | 5.01 |
| YOLO26s | OpenVINO | INT8 | ✅ | 10.0 | 0.547 | 4.31 |
| YOLO26m | PyTorch (CPU) | FP32 | ✅ | 42.2 | 0.6196 | 173.31 |
| YOLO26m | OpenVINO | FP32 | ✅ | 78.3 | 0.6191 | 9.48 |
| YOLO26m | OpenVINO | FP16 | ✅ | 39.5 | 0.6168 | 9.6 |
| YOLO26m | OpenVINO | INT8 | ✅ | 20.5 | 0.5994 | 6.03 |
| YOLO26l | PyTorch (CPU) | FP32 | ✅ | 50.7 | 0.6173 | 224.52 |
| YOLO26l | OpenVINO | FP32 | ✅ | 95.3 | 0.3725 | 11.88 |
| YOLO26l | OpenVINO | FP16 | ✅ | 48.1 | 0.6201 | 12.0 |
| YOLO26l | OpenVINO | INT8 | ✅ | 25.2 | 0.5999 | 8.47 |
| YOLO26x | PyTorch (CPU) | FP32 | ✅ | 113.2 | 0.6512 | 595.72 |
| YOLO26x | OpenVINO | FP32 | ✅ | 213.2 | 0.6567 | 20.26 |
| YOLO26x | OpenVINO | FP16 | ✅ | 107.1 | 0.6454 | 20.25 |
| YOLO26x | OpenVINO | INT8 | ✅ | 54.8 | 0.6374 | 14.77 |
Intel® Core™ Ultra™ 7 155H
Resultados detallados de los benchmarks
| Modelo | Formato | Precisión | Estado | Tamaño (MB) | metrics/mAP50-95(B) | Tiempo de inferencia (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | PyTorch (CPU) | FP32 | ✅ | 5.3 | 0.4765 | 38.77 |
| YOLO26n | OpenVINO | FP32 | ✅ | 9.6 | 0.4774 | 9.87 |
| YOLO26n | OpenVINO | FP16 | ✅ | 5.1 | 0.4774 | 9.84 |
| YOLO26n | OpenVINO | INT8 | ✅ | 3.2 | 0.4705 | 5.86 |
| YOLO26s | PyTorch (CPU) | FP32 | ✅ | 19.5 | 0.5703 | 69.54 |
| YOLO26s | OpenVINO | FP32 | ✅ | 36.7 | 0.5616 | 17.29 |
| YOLO26s | OpenVINO | FP16 | ✅ | 18.6 | 0.5616 | 17.06 |
| YOLO26s | OpenVINO | INT8 | ✅ | 10.0 | 0.5452 | 10.33 |
| YOLO26m | PyTorch (CPU) | FP32 | ✅ | 42.2 | 0.6196 | 192.22 |
| YOLO26m | OpenVINO | FP32 | ✅ | 78.3 | 0.6187 | 34.64 |
| YOLO26m | OpenVINO | FP16 | ✅ | 39.5 | 0.6187 | 34.75 |
| YOLO26m | OpenVINO | INT8 | ✅ | 20.5 | 0.6073 | 15.99 |
| YOLO26l | PyTorch (CPU) | FP32 | ✅ | 50.7 | 0.6215 | 245.62 |
| YOLO26l | OpenVINO | FP32 | ✅ | 95.3 | 0.6202 | 43.7 |
| YOLO26l | OpenVINO | FP16 | ✅ | 48.1 | 0.6202 | 44.65 |
| YOLO26l | OpenVINO | INT8 | ✅ | 25.2 | 0.6048 | 20.31 |
| YOLO26x | PyTorch (CPU) | FP32 | ✅ | 113.2 | 0.6512 | 513.06 |
| YOLO26x | OpenVINO | FP32 | ✅ | 213.2 | 0.6544 | 80.19 |
| YOLO26x | OpenVINO | FP16 | ✅ | 107.1 | 0.6544 | 79.83 |
| YOLO26x | OpenVINO | INT8 | ✅ | 54.8 | 0.6393 | 35.16 |
Reproduce nuestros resultados
Para reproducir los benchmarks 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 del benchmarking pueden variar según la configuración exacta del hardware y del software de un sistema, así como de la carga de trabajo actual del sistema en el momento en que se ejecutan los benchmarks. Para obtener los resultados más fiables, utiliza un conjunto de datos con un gran número de imágenes, por ejemplo data='coco.yaml' (5000 imágenes de validación).
Conclusión
Los resultados del benchmarking 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, manteniendo al mismo tiempo una precisión comparable.
Los benchmarks subrayan la eficacia de OpenVINO como herramienta para desplegar modelos de aprendizaje profundo. Al convertir los modelos al formato OpenVINO, los desarrolladores pueden conseguir importantes mejoras de rendimiento, lo que facilita el despliegue de estos modelos en aplicaciones del mundo real.
Para obtener información e instrucciones más detalladas sobre el uso de OpenVINO, consulta la documentación oficial de OpenVINO.
Preguntas frecuentes
¿Cómo exporto 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 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 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: Consigue 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 marcos populares como PyTorch, TensorFlow y ONNX.
- Facilidad de uso: Hay disponibles más de 80 cuadernos de tutoriales para ayudar a los usuarios a empezar, incluidos algunos para YOLO26.
- Ejecución heterogénea: Despliega modelos en varios hardware Intel con una API unificada.
Para comparaciones de rendimiento detalladas, visita nuestra sección de benchmarks.
¿Cómo puedo ejecutar la inferencia utilizando un modelo YOLO26 exportado a OpenVINO?
Después de exportar un modelo YOLO26n al formato OpenVINO, puedes ejecutar la inferencia usando Python o 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 de predicción para 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 gran precisión y velocidad. Específicamente, cuando se combina con OpenVINO, YOLO26 proporciona:
- Hasta 3 veces más velocidad en CPU Intel
- Despliegue sin interrupciones en GPU y NPU de Intel
- Precisión constante y comparable entre varios formatos de exportación
Para un análisis de rendimiento detallado, consulta nuestros benchmarks de YOLO26 en diferentes hardware.
¿Puedo hacer benchmarks de modelos YOLO26 en diferentes formatos como PyTorch, ONNX y OpenVINO?
Sí, puedes realizar benchmarks de modelos YOLO26 en varios formatos, incluidos PyTorch, TorchScript, ONNX y OpenVINO. Utiliza el siguiente fragmento de código para ejecutar benchmarks en el conjunto de datos 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 los benchmarks, consulta nuestra sección de benchmarks y la documentación de formatos de exportación.