Saltar al contenido

Intel OpenVINO Exportar

OpenVINO Ecosistema

En esta gu铆a, cubrimos la exportaci贸n de modelos YOLOv8 al formato OpenVINO que puede proporcionar hasta 3 veces m谩s velocidad de CPU, as铆 como acelerar la inferencia de YOLO en el hardware de GPU y NPU de Intel.

OpenVINO, abreviatura de Open Visual Inference & Neural Network Optimization toolkit, es un completo conjunto de herramientas para optimizar y desplegar modelos de inferencia de IA. Aunque el nombre contiene Visual, OpenVINO tambi茅n admite varias tareas adicionales, como lenguaje, audio, series temporales, etc.



Observa: C贸mo exportar y optimizar un modelo Ultralytics YOLOv8 para inferirlo con OpenVINO.

Ejemplos de uso

Exporta un modelo YOLOv8n al formato OpenVINO y ejecuta la inferencia con el modelo exportado.

Ejemplo

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')

# Export the model
model.export(format='openvino')  # creates 'yolov8n_openvino_model/'

# Load the exported OpenVINO model
ov_model = YOLO('yolov8n_openvino_model/')

# Run inference
results = ov_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

Argumentos

Clave Valor Descripci贸n
format 'openvino' formato al que exportar
imgsz 640 tama帽o de la imagen como escalar o lista (h, w), por ejemplo (640, 480)
half False Cuantificaci贸n FP16

Beneficios de OpenVINO

  1. Rendimiento: OpenVINO ofrece una inferencia de alto rendimiento utilizando la potencia de las CPU de Intel, las GPU integradas y discretas y las FPGA.
  2. Compatibilidad con ejecuci贸n heterog茅nea: OpenVINO proporciona una API para escribir una vez y desplegar en cualquier hardware Intel compatible (CPU, GPU, FPGA, VPU, etc.).
  3. Optimizador de modelos: OpenVINO proporciona un optimizador de modelos que importa, convierte y optimiza modelos de marcos de aprendizaje profundo populares como PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle, y Caffe.
  4. Facilidad de uso: El kit de herramientas viene con m谩s de 80 cuadernos tutoriales (incluida la optimizaci贸nYOLOv8 ) que ense帽an diferentes aspectos del kit de herramientas.

OpenVINO Estructura de exportaci贸n

Cuando exportas un modelo al formato OpenVINO , el resultado es un directorio que contiene lo siguiente:

  1. Archivo XML: Describe la topolog铆a de la red.
  2. Archivo BIN: Contiene los datos binarios de weights and biases .
  3. Archivo de mapeo: Contiene la correspondencia de los tensores de salida del modelo original con los nombres de OpenVINO tensor .

Puedes utilizar estos archivos para ejecutar la inferencia con el motor de inferencia de OpenVINO .

Utilizar la exportaci贸n OpenVINO en la implantaci贸n

Una vez que tengas los archivos OpenVINO , puedes utilizar el Runtime OpenVINO para ejecutar el modelo. El Runtime proporciona una API unificada para la inferencia en todo el hardware Intel compatible. Tambi茅n ofrece funciones avanzadas como el equilibrio de carga en todo el hardware Intel y la ejecuci贸n as铆ncrona. Para m谩s informaci贸n sobre la ejecuci贸n de la inferencia, consulta la Gu铆a de inferencia con OpenVINO Runtime.

Recuerda que necesitar谩s los archivos XML y BIN, as铆 como los ajustes espec铆ficos de la aplicaci贸n, como el tama帽o de la 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 har铆as los siguientes pasos:

  1. Inicializa OpenVINO creando core = Core().
  2. Carga el modelo utilizando la funci贸n core.read_model() m茅todo.
  3. Compila el modelo utilizando la funci贸n core.compile_model() funci贸n.
  4. Prepara la entrada (imagen, texto, audio, etc.).
  5. Ejecuta la inferencia utilizando compiled_model(input_data).

Para pasos m谩s detallados y fragmentos de c贸digo, consulta la documentaci贸n deOpenVINO o el tutorial de la API.

OpenVINO YOLOv8 Puntos de referencia

YOLOv8 El equipo de Ultralytics ejecut贸 las siguientes pruebas de rendimiento en 4 formatos de modelo diferentes, midiendo la velocidad y la precisi贸n: PyTorch, TorchScript, ONNX y OpenVINO. Las pruebas se ejecutaron en GPU Flex y Arc de Intel, y en CPU Xeon de Intel con precisi贸n FP32 (con la funci贸n half=False argumento).

Nota

Los resultados de las pruebas comparativas que se muestran a continuaci贸n son de referencia y pueden variar en funci贸n de la configuraci贸n exacta de hardware y software de un sistema, as铆 como de la carga de trabajo actual del sistema en el momento de ejecutar las pruebas comparativas.

Todas las pruebas se ejecutan con openvino Python versi贸n del paquete 2023.0.1.

GPU Intel Flex

La GPU Intel庐 serie Flex para centros de datos es una soluci贸n vers谩til y robusta dise帽ada para la nube visual inteligente. Esta GPU admite una amplia gama de cargas de trabajo, entre las que se incluyen la transmisi贸n multimedia, los juegos en la nube, la inferencia visual de IA y las cargas de trabajo de infraestructura de escritorio virtual. Destaca por su arquitectura abierta y su compatibilidad integrada con la codificaci贸n AV1, que proporciona una pila de software basada en est谩ndares para aplicaciones de alto rendimiento y arquitectura cruzada. La GPU de la serie Flex est谩 optimizada para la densidad y la calidad, y ofrece alta fiabilidad, disponibilidad y escalabilidad.

Las siguientes pruebas se ejecutan en la GPU Intel庐 Data Center Flex 170 con precisi贸n FP32.

Puntos de referencia de la GPU Flex
Modelo Formato Estado Tama帽o (MB) mAP50-95(B) Tiempo de inferencia (ms/im)
YOLOv8n PyTorch 6.2 0.3709 21.79
YOLOv8n TorchScript 12.4 0.3704 23.24
YOLOv8n ONNX 12.2 0.3704 37.22
YOLOv8n OpenVINO 12.3 0.3703 3.29
YOLOv8s PyTorch 21.5 0.4471 31.89
YOLOv8s TorchScript 42.9 0.4472 32.71
YOLOv8s ONNX 42.8 0.4472 43.42
YOLOv8s OpenVINO 42.9 0.4470 3.92
YOLOv8m PyTorch 49.7 0.5013 50.75
YOLOv8m TorchScript 99.2 0.4999 47.90
YOLOv8m ONNX 99.0 0.4999 63.16
YOLOv8m OpenVINO 49.8 0.4997 7.11
YOLOv8l PyTorch 83.7 0.5293 77.45
YOLOv8l TorchScript 167.2 0.5268 85.71
YOLOv8l ONNX 166.8 0.5268 88.94
YOLOv8l OpenVINO 167.0 0.5264 9.37
YOLOv8x PyTorch 130.5 0.5404 100.09
YOLOv8x TorchScript 260.7 0.5371 114.64
YOLOv8x ONNX 260.4 0.5371 110.32
YOLOv8x OpenVINO 260.6 0.5367 15.02

Esta tabla representa los resultados de referencia de cinco modelos diferentes (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) en cuatro formatos distintos (PyTorch, TorchScript, ONNX, OpenVINO), d谩ndonos el estado, el tama帽o, la m茅trica mAP50-95(B) y el tiempo de inferencia de cada combinaci贸n.

GPU Intel Arc

Intel庐 Arc鈩 representa la incursi贸n de Intel en el mercado de las GPU dedicadas. La serie Arc鈩, dise帽ada para competir con los principales fabricantes de GPU como AMD y Nvidia, se dirige tanto al mercado de los port谩tiles como al de los ordenadores de sobremesa. La serie incluye versiones m贸viles para dispositivos compactos como los port谩tiles, y versiones m谩s grandes y potentes para ordenadores de sobremesa.

La serie Arc鈩 se divide en tres categor铆as: Arc鈩 3, Arc鈩 5 y Arc鈩 7, en las que cada n煤mero indica el nivel de rendimiento. Cada categor铆a incluye varios modelos, y la "M" en el nombre del modelo de GPU significa una variante m贸vil integrada.

Las primeras cr铆ticas han elogiado la serie Arc鈩, en particular la GPU A770M integrada, por su impresionante rendimiento gr谩fico. La disponibilidad de la serie Arc鈩 var铆a seg煤n la regi贸n, y se espera que pronto se lancen modelos adicionales. Las GPU Intel庐 Arc鈩 ofrecen soluciones de alto rendimiento para una amplia gama de necesidades inform谩ticas, desde los juegos hasta la creaci贸n de contenidos.

Las pruebas se ejecutan en la GPU Intel庐 Arc 770 con precisi贸n FP32.

Puntos de referencia de la GPU Arc
Modelo Formato Estado Tama帽o (MB) m茅trica/mAP50-95(B) Tiempo de inferencia (ms/im)
YOLOv8n PyTorch 6.2 0.3709 88.79
YOLOv8n TorchScript 12.4 0.3704 102.66
YOLOv8n ONNX 12.2 0.3704 57.98
YOLOv8n OpenVINO 12.3 0.3703 8.52
YOLOv8s PyTorch 21.5 0.4471 189.83
YOLOv8s TorchScript 42.9 0.4472 227.58
YOLOv8s ONNX 42.7 0.4472 142.03
YOLOv8s OpenVINO 42.9 0.4469 9.19
YOLOv8m PyTorch 49.7 0.5013 411.64
YOLOv8m TorchScript 99.2 0.4999 517.12
YOLOv8m ONNX 98.9 0.4999 298.68
YOLOv8m OpenVINO 99.1 0.4996 12.55
YOLOv8l PyTorch 83.7 0.5293 725.73
YOLOv8l TorchScript 167.1 0.5268 892.83
YOLOv8l ONNX 166.8 0.5268 576.11
YOLOv8l OpenVINO 167.0 0.5262 17.62
YOLOv8x PyTorch 130.5 0.5404 988.92
YOLOv8x TorchScript 260.7 0.5371 1186.42
YOLOv8x ONNX 260.4 0.5371 768.90
YOLOv8x OpenVINO 260.6 0.5367 19

CPU Intel Xeon

La CPU Intel庐 Xeon庐 es un procesador de alto rendimiento para servidores dise帽ado para cargas de trabajo complejas y exigentes. Desde la inform谩tica en la nube y la virtualizaci贸n de gama alta hasta las aplicaciones de inteligencia artificial y aprendizaje autom谩tico, las CPU Xeon庐 proporcionan la potencia, fiabilidad y flexibilidad necesarias para los centros de datos actuales.

En particular, las CPU Xeon庐 ofrecen una alta densidad y escalabilidad inform谩tica, lo que las hace ideales tanto para peque帽as empresas como para grandes compa帽铆as. Al elegir las CPU Intel庐 Xeon庐, las organizaciones pueden gestionar con confianza sus tareas inform谩ticas m谩s exigentes y fomentar la innovaci贸n, manteniendo al mismo tiempo la rentabilidad y la eficiencia operativa.

Las pruebas se ejecutan en una CPU escalable Intel庐 Xeon庐 de 4陋 generaci贸n con precisi贸n FP32.

Puntos de referencia de CPU Xeon
Modelo Formato Estado Tama帽o (MB) m茅trica/mAP50-95(B) Tiempo de inferencia (ms/im)
YOLOv8n PyTorch 6.2 0.3709 24.36
YOLOv8n TorchScript 12.4 0.3704 23.93
YOLOv8n ONNX 12.2 0.3704 39.86
YOLOv8n OpenVINO 12.3 0.3704 11.34
YOLOv8s PyTorch 21.5 0.4471 33.77
YOLOv8s TorchScript 42.9 0.4472 34.84
YOLOv8s ONNX 42.8 0.4472 43.23
YOLOv8s OpenVINO 42.9 0.4471 13.86
YOLOv8m PyTorch 49.7 0.5013 53.91
YOLOv8m TorchScript 99.2 0.4999 53.51
YOLOv8m ONNX 99.0 0.4999 64.16
YOLOv8m OpenVINO 99.1 0.4996 28.79
YOLOv8l PyTorch 83.7 0.5293 75.78
YOLOv8l TorchScript 167.2 0.5268 79.13
YOLOv8l ONNX 166.8 0.5268 88.45
YOLOv8l OpenVINO 167.0 0.5263 56.23
YOLOv8x PyTorch 130.5 0.5404 96.60
YOLOv8x TorchScript 260.7 0.5371 114.28
YOLOv8x ONNX 260.4 0.5371 111.02
YOLOv8x OpenVINO 260.6 0.5371 83.28

CPU Intel Core

La serie Intel庐 Core庐 es una gama de procesadores de alto rendimiento de Intel. La gama incluye Core i3 (gama b谩sica), Core i5 (gama media), Core i7 (gama alta) y Core i9 (rendimiento extremo). Cada serie satisface diferentes necesidades inform谩ticas y presupuestos, desde las tareas cotidianas hasta las cargas de trabajo profesionales m谩s exigentes. Con cada nueva generaci贸n, se introducen mejoras en el rendimiento, la eficiencia energ茅tica y las prestaciones.

Las pruebas se ejecutan en una CPU Intel庐 Core庐 i7-13700H de 13陋 generaci贸n con precisi贸n FP32.

Puntos de referencia de la CPU central
Modelo Formato Estado Tama帽o (MB) m茅trica/mAP50-95(B) Tiempo de inferencia (ms/im)
YOLOv8n PyTorch 6.2 0.4478 104.61
YOLOv8n TorchScript 12.4 0.4525 112.39
YOLOv8n ONNX 12.2 0.4525 28.02
YOLOv8n OpenVINO 12.3 0.4504 23.53
YOLOv8s PyTorch 21.5 0.5885 194.83
YOLOv8s TorchScript 43.0 0.5962 202.01
YOLOv8s ONNX 42.8 0.5962 65.74
YOLOv8s OpenVINO 42.9 0.5966 38.66
YOLOv8m PyTorch 49.7 0.6101 355.23
YOLOv8m TorchScript 99.2 0.6120 424.78
YOLOv8m ONNX 99.0 0.6120 173.39
YOLOv8m OpenVINO 99.1 0.6091 69.80
YOLOv8l PyTorch 83.7 0.6591 593.00
YOLOv8l TorchScript 167.2 0.6580 697.54
YOLOv8l ONNX 166.8 0.6580 342.15
YOLOv8l OpenVINO 167.0 0.0708 117.69
YOLOv8x PyTorch 130.5 0.6651 804.65
YOLOv8x TorchScript 260.8 0.6650 921.46
YOLOv8x ONNX 260.4 0.6650 526.66
YOLOv8x OpenVINO 260.6 0.6619 158.73

Reproducir nuestros resultados

Para reproducir las pruebas anteriores de Ultralytics en todos los formatos de exportaci贸n, ejecuta este c贸digo:

Ejemplo

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results= model.benchmarks(data='coco8.yaml')
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

Ten en cuenta que los resultados de las pruebas comparativas pueden variar en funci贸n de la configuraci贸n exacta de hardware y software de un sistema, as铆 como de la carga de trabajo actual del sistema en el momento de ejecutar las pruebas comparativas. Para obtener resultados m谩s fiables, utiliza un conjunto de datos con un gran n煤mero de im谩genes, es decir data='coco128.yaml' (128 val images), ordata='coco.yaml'` (5000 im谩genes val).

Conclusi贸n

Los resultados de las pruebas comparativas demuestran claramente las ventajas de exportar el modelo YOLOv8 al formato OpenVINO . En diferentes modelos y plataformas de hardware, el formato OpenVINO supera sistem谩ticamente a los dem谩s formatos en cuanto a velocidad de inferencia, manteniendo una precisi贸n comparable.

En la serie Intel庐 Data Center GPU Flex, el formato OpenVINO fue capaz de ofrecer velocidades de inferencia casi 10 veces m谩s r谩pidas que el formato original PyTorch . En la CPU Xeon, el formato OpenVINO fue dos veces m谩s r谩pido que el formato PyTorch . La precisi贸n de los modelos se mantuvo casi id茅ntica en los distintos formatos.

Las pruebas comparativas 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 m谩s detallada e instrucciones sobre el uso de OpenVINO, consulta la documentaci贸n oficial de OpenVINO .



Creado 2023-11-12, Actualizado 2024-04-18
Autores: glenn-jocher (9), abirami-vina (1), RizwanMunawar (1), Burhan-Q (1)

Comentarios