Esportazione Intel OpenVINO#
In questa guida, vedremo come esportare i modelli YOLO26 nel formato OpenVINO, che può offrire un aumento della velocità fino a 3 volte sulla CPU, oltre ad accelerare l'inferenza YOLO sull'hardware Intel con GPU e NPU.
OpenVINO, abbreviazione di toolkit per l'ottimizzazione dell'inferenza visiva e delle reti neurali, è un toolkit completo per ottimizzare e distribuire modelli di inferenza AI. Sebbene il nome contenga Visual, OpenVINO supporta anche diverse attività aggiuntive, tra cui linguaggio, audio, serie temporali e altro.
Watch: How to Export Ultralytics YOLO26 to Intel OpenVINO Format for Faster Inference 🚀
Attività supportate#
L'esportazione OpenVINO supporta tutte e sette le attività Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include queste head.
| Attività | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Rilevamento | ✅ | ✅ | ✅ |
| Segmentazione | ✅ | ✅ | ✅ |
| Semantica | ❌ | ❌ | ✅ |
| Profondità | ❌ | ❌ | ✅ |
| Classificazione | ✅ | ✅ | ✅ |
| Posa | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Installazione#
Installa le dipendenze di esportazione di OpenVINO con:
pip install "ultralytics[export-openvino]"Queste dipendenze sono incluse anche in ultralytics[export] e vengono installate automaticamente quando richiesto da un'esportazione.
Esempi di utilizzo#
Il formato OpenVINO supporta le modalità Esportazione, Predizione e Validazione. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne l'accuratezza su CPU Intel, GPU integrata o discreta oppure NPU.
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")Argomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'openvino' | Formato di destinazione del modello esportato, che definisce la compatibilità con diversi ambienti di distribuzione. |
imgsz | int o tuple | 640 | Dimensione desiderata dell'immagine per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche. |
quantize | int o str | None | Precisione della quantizzazione: 16 (FP16) oppure 8 (INT8/PTQ; richiede la data/fraction di calibrazione); 32/non impostato corrisponde a FP32. Sostituisce i flag deprecati half/int8. |
dynamic | bool | False | Consente dimensioni di input dinamiche, aumentando la flessibilità nella gestione di immagini con dimensioni variabili. |
nms | bool, facoltativo | None | Seleziona l'output grezzo (None, predefinito), l'NMS integrato (True) o la testa senza NMS (False). |
batch | int | 1 | Specifica la dimensione del batch di inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. |
data | str | None | Percorso al file YAML del dataset, essenziale per la quantizzazione; la classificazione richiede invece una directory del dataset o il nome di un dataset integrato. Se omesso con quantize=8, Ultralytics seleziona il dataset di calibrazione predefinito per l'attività del modello. |
fraction | float, int o list | 1.0 | Sottoinsieme di calibrazione espresso come rapporto, numero di immagini oppure rapporti/conteggi [train, val, test]. Gli elenchi di due elementi lasciano completo test, mentre 0 lo salta. |
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione Ultralytics sull'esportazione.
OpenVINO™ è compatibile con la maggior parte dei processori Intel®, ma per garantire prestazioni ottimali:
-
Verifica il supporto di OpenVINO™ Controlla se il tuo chip Intel® è ufficialmente supportato da OpenVINO™ usando l'elenco di compatibilità di Intel.
-
Identifica il tuo acceleratore Determina se il tuo processore include una NPU (unità di elaborazione neurale) o una GPU (GPU integrata) consultando la guida hardware di Intel.
-
Installa i driver più recenti Se il tuo chip supporta una NPU o una GPU, ma OpenVINO™ non la rileva, potrebbe essere necessario installare o aggiornare i driver associati. Segui le istruzioni per l'installazione dei driver per abilitare l'accelerazione completa.
Seguendo questi tre passaggi, puoi assicurarti che OpenVINO™ funzioni in modo ottimale sul tuo hardware Intel®.
Vantaggi di OpenVINO#
- Prestazioni: OpenVINO offre un'inferenza ad alte prestazioni sfruttando la potenza delle CPU Intel, delle GPU integrate e discrete e degli FPGA.
- Supporto per l'esecuzione eterogenea: OpenVINO fornisce un'API per scrivere una volta e distribuire su qualsiasi hardware Intel supportato (CPU, GPU, FPGA, VPU ecc.).
- Model Optimizer: OpenVINO fornisce un Model Optimizer che importa, converte e ottimizza modelli provenienti da framework di deep learning diffusi, come PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle e Caffe.
- Facilità d'uso: il toolkit include un'ampia raccolta di notebook tutorial (inclusa l'ottimizzazione di YOLO26) che insegnano diversi aspetti del toolkit.
Struttura dell'esportazione OpenVINO#
Quando esporti un modello nel formato OpenVINO, ottieni una directory contenente quanto segue:
- File XML: descrive la topologia della rete.
- File BIN: contiene i dati binari dei pesi e dei bias.
- File di mapping: contiene la corrispondenza tra i tensori di output del modello originale e i nomi dei tensori OpenVINO.
Puoi usare questi file per eseguire l'inferenza con OpenVINO Inference Engine.
Utilizzo dell'esportazione OpenVINO nella distribuzione#
Dopo aver esportato correttamente il tuo modello nel formato OpenVINO, hai due opzioni principali per eseguire l'inferenza:
-
Usa il pacchetto
ultralytics, che fornisce un'API di alto livello e avvolge OpenVINO Runtime. -
Usa il pacchetto nativo
openvinoper un controllo più avanzato o personalizzato sul comportamento dell'inferenza.
Inferenza con Ultralytics#
Il pacchetto ultralytics ti consente di eseguire facilmente l'inferenza usando il modello OpenVINO esportato tramite il metodo predict. Puoi anche specificare il dispositivo di destinazione (ad esempio, intel:gpu, intel:npu, intel:cpu) usando l'argomento 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 onQuesto approccio è ideale per la prototipazione rapida o la distribuzione quando non hai bisogno del pieno controllo sulla pipeline di inferenza.
Inferenza con OpenVINO Runtime#
OpenVINO Runtime fornisce un'API unificata per l'inferenza su tutto l'hardware Intel supportato. Offre inoltre funzionalità avanzate, come il bilanciamento del carico tra l'hardware Intel e l'esecuzione asincrona. Per ulteriori informazioni sull'esecuzione dell'inferenza, consulta i notebook YOLO26.
Ricorda che ti serviranno i file XML e BIN, oltre a tutte le impostazioni specifiche dell'applicazione, come la dimensione dell'input, il fattore di scala per la normalizzazione e così via, per configurare e usare correttamente il modello con Runtime.
Nella tua applicazione di distribuzione, in genere dovresti seguire questi passaggi:
- Inizializza OpenVINO creando
core = Core(). - Carica il modello usando il metodo
core.read_model(). - Compila il modello usando la funzione
core.compile_model(). - Prepara l'input (immagine, testo, audio ecc.).
- Esegui l'inferenza usando
compiled_model(input_data).
Per passaggi più dettagliati e frammenti di codice, consulta la documentazione OpenVINO o il tutorial API.
Benchmark OpenVINO YOLO26#
Il team Ultralytics ha eseguito benchmark di YOLO26 in vari formati di modello e livelli di precisione, valutando velocità e accuratezza su diversi dispositivi Intel compatibili con OpenVINO.
-
I risultati dei benchmark riportati di seguito sono indicativi e possono variare in base alla configurazione hardware e software specifica di un sistema, nonché al carico di lavoro del sistema al momento dell'esecuzione dei benchmark.
-
Tutti i benchmark sono stati eseguiti con la versione
openvinodel pacchetto Python 2026.2.1. -
I modelli YOLO26 su NPU sono supportati solo sui sistemi Intel® Core™ Ultra™ con serie 2xxV e serie 3xx e successive.
Intel® Core™ Ultra#
La serie Intel® Core™ Ultra™ rappresenta un nuovo punto di riferimento nell'elaborazione ad alte prestazioni, progettato per soddisfare le esigenze in evoluzione degli utenti moderni, dai gamer e creator ai professionisti che sfruttano l'AI. Questa linea di nuova generazione è più di una tradizionale serie di CPU: combina potenti core CPU, funzionalità GPU integrate ad alte prestazioni e un'unità di elaborazione neurale (NPU) dedicata in un singolo chip, offrendo una soluzione unificata per carichi di lavoro informatici diversi e intensivi.
Al centro dell'architettura Intel® Core Ultra™ c'è un design ibrido che consente prestazioni eccezionali nelle attività di elaborazione tradizionali, nei carichi di lavoro accelerati dalla GPU e nelle operazioni basate sull'AI. L'inclusione della NPU migliora l'inferenza AI sul dispositivo, consentendo un apprendimento automatico e un'elaborazione dei dati più rapidi ed efficienti in un'ampia gamma di applicazioni.
La famiglia Core Ultra™ include diversi modelli pensati per esigenze di prestazioni differenti, con opzioni che vanno dai design a basso consumo alle varianti ad alta potenza contrassegnate dalla designazione "H", ideali per laptop e formati compatti che richiedono una notevole potenza di calcolo. In tutta la gamma, gli utenti beneficiano della sinergia dell'integrazione di CPU, GPU e NPU, che offre notevole efficienza, reattività e capacità di multitasking.
Nell'ambito dell'innovazione continua di Intel, la serie Core Ultra™ stabilisce un nuovo standard per l'elaborazione pronta per il futuro. Con diversi modelli disponibili e altri in arrivo, questa serie sottolinea l'impegno di Intel nel fornire soluzioni all'avanguardia per la prossima generazione di dispositivi intelligenti potenziati dall'AI.
I benchmark riportati di seguito sono stati eseguiti su Intel® Core™ Ultra™ X7 358H, Intel® Core™ Ultra™ 7 258V e Intel® Core™ Ultra™ 7 155H con precisione FP32, FP16 e INT8.
Intel® Core™ Ultra™ X7 358H#
Risultati dettagliati dei benchmark
| Modello | Formato | Precision | Stato | Dimensioni (MB) | metrics/mAP50-95(B) | Tempo di inferenza (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#
Risultati dettagliati dei benchmark
| Modello | Formato | Precision | Stato | Dimensioni (MB) | metrics/mAP50-95(B) | Tempo di inferenza (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#
Risultati dettagliati dei benchmark
| Modello | Formato | Precision | Stato | Dimensioni (MB) | metrics/mAP50-95(B) | Tempo di inferenza (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 |
Riproduci i nostri risultati#
Per riprodurre i benchmark Ultralytics precedenti su tutti i formati di esportazione, esegui questo codice:
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")Tieni presente che i risultati dei benchmark possono variare in base alla configurazione hardware e software specifica di un sistema, nonché al carico di lavoro del sistema al momento dell'esecuzione dei benchmark. Per ottenere risultati più affidabili, usa un dataset con un numero elevato di immagini, ad esempio data='coco.yaml' (5000 immagini di validazione).
Conclusioni#
I risultati dei benchmark dimostrano chiaramente i vantaggi dell'esportazione del modello YOLO26 nel formato OpenVINO. Tra diversi modelli e piattaforme hardware, il formato OpenVINO supera costantemente gli altri formati in termini di velocità di inferenza, mantenendo al contempo un'accuratezza comparabile.
I benchmark sottolineano l'efficacia di OpenVINO come strumento per distribuire modelli di deep learning. Convertendo i modelli nel formato OpenVINO, gli sviluppatori possono ottenere miglioramenti significativi delle prestazioni, rendendo più semplice la distribuzione di questi modelli in applicazioni reali.
Per informazioni e istruzioni più dettagliate sull'utilizzo di OpenVINO, consulta la documentazione ufficiale di OpenVINO.
FAQ#
L'esportazione dei modelli YOLO26 nel formato OpenVINO può migliorare significativamente la velocità della CPU e abilitare l'accelerazione tramite GPU e NPU sull'hardware Intel. Per esportare, puoi usare Python o CLI, come mostrato di seguito:
Esempiofrom ultralytics import YOLO # Load a YOLO26n PyTorch model model = YOLO("yolo26n.pt") # Export the model model.export(format="openvino") # creates 'yolo26n_openvino_model/'Per ulteriori informazioni, consulta la documentazione sui formati di esportazione.
L'utilizzo del toolkit OpenVINO di Intel con i modelli YOLO26 offre diversi vantaggi:
- Prestazioni: ottieni un aumento della velocità fino a 3 volte nell'inferenza sulla CPU e sfrutta le GPU e le NPU Intel per l'accelerazione.
- Model Optimizer: converti, ottimizza ed esegui modelli provenienti da framework diffusi come PyTorch, TensorFlow e ONNX.
- Facilità d'uso: è disponibile un'ampia raccolta di notebook tutorial per aiutarti a iniziare, inclusi quelli dedicati a YOLO26.
- Esecuzione eterogenea: distribuisci i modelli su diversi hardware Intel con un'API unificata.
Per confronti dettagliati delle prestazioni, visita la nostra sezione sui benchmark.
Dopo aver esportato un modello YOLO26n nel formato OpenVINO, puoi eseguire l'inferenza usando Python o CLI:
Esempiofrom 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")Per ulteriori dettagli, consulta la nostra documentazione sulla modalità predizione.
Ultralytics YOLO26 è ottimizzato per il rilevamento degli oggetti in tempo reale, con elevata accuratezza e velocità. In particolare, quando combinato con OpenVINO, YOLO26 offre:
- Aumento della velocità fino a 3 volte sulle CPU Intel
- Distribuzione fluida su GPU e NPU Intel
- Accuratezza coerente e comparabile tra diversi formati di esportazione
Per un'analisi approfondita delle prestazioni, consulta i nostri benchmark dettagliati di YOLO26 su hardware diversi.
Sì, puoi eseguire benchmark dei modelli YOLO26 in diversi formati, tra cui PyTorch, TorchScript, ONNX e OpenVINO. Usa il seguente frammento di codice per eseguire i benchmark sul dataset che hai scelto:
Esempiofrom 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")Per risultati dettagliati dei benchmark, consulta la nostra sezione sui benchmark e la documentazione sui formati di esportazione.