Vai al contenuto

Intel OpenVINO Esportazione

OpenVINO Ecosistema

In questa guida, trattiamo l'esportazione YOLO11 modelli nel formato OpenVINO , che può fornire una velocità CPU fino a 3 volte superiore, oltre ad accelerare YOLO inferenza su Intel Hardware GPU e NPU .

OpenVINO, abbreviazione di Open Visual Inference & Neural Network Optimization toolkit, è un toolkit completo per l'ottimizzazione e la distribuzione di modelli di inferenza AI. Anche se il nome contiene Visual, OpenVINO supporta anche diversi compiti aggiuntivi, tra cui lingua, audio, serie temporali, ecc.



Guarda: Come esportare e ottimizzare un modello Ultralytics YOLOv8 per l'inferenza con OpenVINO.

Esempi di utilizzo

Esportare un modello YOLO11n in OpenVINO formattare ed eseguire l'inferenza con il modello esportato.

Esempio

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

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

# Load the exported OpenVINO model
ov_model = YOLO("yolo11n_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")
# Export a YOLO11n PyTorch model to OpenVINO format
yolo export model=yolo11n.pt format=openvino # creates 'yolo11n_openvino_model/'

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

# Run inference with specified device, available devices: ["intel:gpu", "intel:npu", "intel:cpu"]
yolo predict model=yolo11n_openvino_model source='https://ultralytics.com/images/bus.jpg' device="intel:gpu"

Argomenti di esportazione

Argomento Tipo Predefinito Descrizione
format str 'openvino' Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione.
imgsz int o tuple 640 Dimensione desiderata dell'immagine per l'input del modello. Può essere un numero intero per le immagini quadrate o una tupla (height, width) per le dimensioni specifiche.
half bool False Abilita la quantizzazione FP16 (a mezza precisione), riducendo le dimensioni del modello e potenzialmente accelerando l'inferenza sull'hardware supportato.
int8 bool False Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e velocizzando l'inferenza con una perdita minima di precisione, soprattutto per i dispositivi edge.
dynamic bool False Consente di inserire dimensioni dinamiche, migliorando la flessibilità nella gestione di immagini di dimensioni diverse.
nms bool False Aggiunge la soppressione non massima (NMS), essenziale per una post-elaborazione accurata ed efficiente del rilevamento.
batch int 1 Specifica la dimensione dell'inferenza batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in predict modalità.
data str 'coco8.yaml' Percorso verso il set di dati file di configurazione (predefinito: coco8.yaml), essenziale per la quantizzazione.
fraction float 1.0 Specifica la frazione del set di dati da utilizzare per la calibrazione della quantizzazione INT8. Consente di calibrare su un sottoinsieme dell'intero set di dati, utile per gli esperimenti o quando le risorse sono limitate. Se non viene specificato con INT8 abilitato, verrà utilizzato l'intero set di dati.

Per maggiori dettagli sul processo di esportazione, visitare la pagina di documentazioneUltralytics sull'esportazione.

Avvertenze

OpenVINO™ è compatibile con la maggior parte dei processori Intel®, ma per garantire prestazioni ottimali:

  1. Verifica il supporto di OpenVINO™ Controlla se il tuo chip Intel® è ufficialmente supportato da OpenVINO™ utilizzando l'elenco di compatibilità di Intel .

  2. Identifica il tuo acceleratore Determina se il tuo processore include una NPU (Neural Processing Unit) integrata o GPU (integrato GPU ) consultando la guida hardware di Intel .

  3. Installa i driver più recenti Se il tuo chip supporta una NPU o GPU ma OpenVINO™ non lo rileva, potrebbe essere necessario installare o aggiornare i driver associati. Seguire le istruzioni di 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

  1. Prestazioni: OpenVINO offre un'inferenza ad alte prestazioni utilizzando la potenza delle CPU Intel , delle GPU integrate e discrete e delle FPGA.
  2. Supporto per l'esecuzione eterogenea: OpenVINO fornisce un'API per scrivere una volta e distribuire su qualsiasi hardware supportato da Intel (CPU, GPU, FPGA, VPU, ecc.).
  3. Ottimizzatore di modelli: OpenVINO fornisce un ottimizzatore di modelli che importa, converte e ottimizza modelli da framework di deep learning popolari come PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle, e Caffe.
  4. Facilità d'uso: il toolkit viene fornito con più di 80 quaderni di esercitazioni (compresa l'ottimizzazione diYOLOv8 ) che insegnano diversi aspetti del toolkit.

OpenVINO Struttura di esportazione

Quando si esporta un modello in formato OpenVINO , si ottiene una directory contenente quanto segue:

  1. File XML: Descrive la topologia della rete.
  2. File BIN: Contiene i dati binari di weights and biases .
  3. File di mappatura: Contiene la mappatura dei tensori di output del modello originale con i nomi di OpenVINO tensor .

È possibile utilizzare questi file per eseguire l'inferenza con il motore di inferenza OpenVINO .

Utilizzo dell'esportazione di OpenVINO nella distribuzione

Una volta che il modello è stato esportato correttamente nel OpenVINO formato, hai due opzioni principali per eseguire l'inferenza:

  1. Utilizzare il ultralytics pacchetto, che fornisce un'API di alto livello e racchiude il OpenVINO Durata.

  2. Utilizzare il nativo openvino pacchetto per un controllo più avanzato o personalizzato sul comportamento dell'inferenza.

Inferenza con Ultralytics

IL ultralytics il pacchetto consente di eseguire facilmente l'inferenza utilizzando l'esportato OpenVINO modello tramite il metodo predict. È anche possibile specificare il dispositivo di destinazione (ad esempio, intel:gpu, intel:npu, intel:cpu) utilizzando l'argomento dispositivo.

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolo11n_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 on

Questo approccio è ideale per la prototipazione o l'implementazione rapida quando non è necessario il controllo completo sulla pipeline di inferenza.

Inferenza con OpenVINO Durata

IL openvino Runtime fornisce un'API unificata per l'inferenza su tutti i supportati Intel hardware. Fornisce inoltre funzionalità avanzate come il bilanciamento del carico su Intel Hardware ed esecuzione asincrona. Per ulteriori informazioni sull'esecuzione dell'inferenza, fare riferimento ai notebook YOLO11 .

Per impostare e utilizzare correttamente il modello con il Runtime, è necessario disporre dei file XML e BIN e di tutte le impostazioni specifiche dell'applicazione, come le dimensioni dell'input, il fattore di scala per la normalizzazione e così via.

Nell'applicazione di distribuzione, in genere si eseguono le seguenti operazioni:

  1. Inizializzare OpenVINO creando core = Core().
  2. Caricare il modello utilizzando il metodo core.read_model() metodo.
  3. Compilare il modello utilizzando il metodo core.compile_model() funzione.
  4. Preparare l'input (immagine, testo, audio, ecc.).
  5. Eseguire l'inferenza utilizzando compiled_model(input_data).

Per passi più dettagliati e frammenti di codice, consultare la documentazione diOpenVINO o l'esercitazione API.

OpenVINO YOLO11 Punti di riferimento

IL Ultralytics squadra sottoposta a benchmark YOLO11 attraverso vari formati di modello e precisione , valutando velocità e accuratezza su diversi Intel dispositivi compatibili con OpenVINO .

Nota

I risultati dei benchmark riportati di seguito sono di riferimento e possono variare in base all'esatta configurazione hardware e software di un sistema, nonché al carico di lavoro corrente del sistema al momento dell'esecuzione dei benchmark.

Tutti i benchmark vengono eseguiti con openvino Python versione del pacchetto 2025.1.0.

Intel Nucleo CPU

La serie Intel® Core® è una gamma di processori ad alte prestazioni di Intel. La gamma comprende Core i3 (entry-level), Core i5 (mid-range), Core i7 (high-end) e Core i9 (extreme performance). Ogni serie si rivolge a esigenze di elaborazione e budget diversi, dalle attività quotidiane ai carichi di lavoro professionali più impegnativi. Con ogni nuova generazione vengono apportati miglioramenti alle prestazioni, all'efficienza energetica e alle funzionalità.

I benchmark sottostanti sono basati su Intel® Core® i9-12900KS di 12a generazione CPU con precisione FP32.

Parametri di riferimento Core CPU
Modello Formato Stato Dimensione (MB) metriche/mAP50-95(B) Tempo di inferenza (ms/im)
YOLO11n PyTorch 5.4 0.61 28.73
YOLO11n TorchScript 10.5 0.6082 36.27
YOLO11n ONNX 10.2 0.6082 19.62
YOLO11n OpenVINO 10.4 0.6082 12.72
YOLO11s PyTorch 18.4 0.7526 35.28
YOLO11s TorchScript 36.6 0.74 54.57
YOLO11s ONNX 36.3 0.74 37.91
YOLO11s OpenVINO 36.4 0.74 34.38
YOLO11m PyTorch 38.8 0.7598 82.46
YOLO11m TorchScript 77.3 0.7643 121.66
YOLO11m ONNX 76.9 0.7643 87.21
YOLO11m OpenVINO 77.1 0.7643 78.94
YOLO11l PyTorch 49.0 0.743 111.51
YOLO11l TorchScript 97.7 0.725 161.36
YOLO11l ONNX 97.0 0.725 109.23
YOLO11l OpenVINO 97.3 0.725 100.42
YOLO11x PyTorch 109.3 0.8288 241.93
YOLO11x TorchScript 218.1 0.8308 307.04
YOLO11x ONNX 217.5 0.8308 205.75
YOLO11x OpenVINO 217.8 0.8308 211.69

Processore Intel® Core™ Ultra

La serie Intel® Core™ Ultra™ rappresenta un nuovo punto di riferimento nel computing ad alte prestazioni, progettata per soddisfare le esigenze in continua evoluzione degli utenti moderni, dai gamer e creatori di contenuti ai professionisti che sfruttano l'intelligenza artificiale. Questa gamma di nuova generazione è più di una semplice soluzione tradizionale. CPU serie; combina potenti CPU core, alte prestazioni integrate GPU capacità e un'unità di elaborazione neurale (NPU) dedicata all'interno di un singolo chip, offrendo una soluzione unificata per carichi di lavoro di elaborazione diversificati e intensivi.

Il cuore dell'architettura Intel® Core Ultra™ è un design ibrido che consente prestazioni eccezionali nelle attività di elaborazione tradizionali, GPU Carichi di lavoro accelerati e operazioni basate sull'intelligenza artificiale. L'inclusione della NPU migliora l'inferenza dell'intelligenza artificiale 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™ comprende diversi modelli pensati per diverse esigenze prestazionali, con opzioni che spaziano da modelli a basso consumo energetico a varianti ad alta potenza contrassegnate dalla sigla "H", ideali per laptop e dispositivi compatti che richiedono una potenza di elaborazione elevata. In tutta la gamma, gli utenti beneficiano della sinergia di CPU , GPU e integrazione NPU, garantendo efficienza, reattività e capacità multitasking straordinarie.

Come parte di Intel Grazie alla continua innovazione di, la serie Core Ultra™ stabilisce un nuovo standard per l'informatica a prova di futuro. Con diversi modelli disponibili e altri in arrivo, questa serie sottolinea Intel l'impegno di fornire soluzioni all'avanguardia per la prossima generazione di dispositivi intelligenti dotati di intelligenza artificiale.

I benchmark riportati di seguito sono eseguiti su Intel® Core™ Ultra™ 7 258V con precisione FP32 e INT8.

Processore Intel® Core™ Ultra™ 7 258V

Parametri di riferimento

Modello Formato Precisione Stato Dimensione (MB) metriche/mAP50-95(B) Tempo di inferenza (ms/im)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6112 19.59
YOLO11n OpenVINO INT8 3.3 0.6219 14.43
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7414 16.274
YOLO11s OpenVINO INT8 9.8 0.7086 19.436
YOLO11m PyTorch FP32 38.8 0.7642 286.281
YOLO11m OpenVINO FP32 77.1 0.7642 18.69
YOLO11m OpenVINO INT8 20.2 0.7445 21.74
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7264 31.90
YOLO11l OpenVINO INT8 25.7 0.7376 25.64
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 45.12
YOLO11x OpenVINO INT8 55.9 0.8156 32.57

Intel Parametri di riferimento del Core Ultra GPU

Modello Formato Precisione Stato Dimensione (MB) metriche/mAP50-95(B) Tempo di inferenza (ms/im)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6082 30.21
YOLO11n OpenVINO INT8 3.3 0.6256 17.98
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7400 81.09
YOLO11s OpenVINO INT8 9.8 0.7488 41.04
YOLO11m PyTorch FP32 38.8 0.7642 286.28
YOLO11m OpenVINO FP32 77.1 0.7642 204.31
YOLO11m OpenVINO INT8 20.2 0.7504 109.51
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7249 319.97
YOLO11l OpenVINO INT8 25.7 0.7318 136.44
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 742.98
YOLO11x OpenVINO INT8 55.9 0.819 288.02

Intel Parametri di riferimento del Core Ultra CPU

Modello Formato Precisione Stato Dimensione (MB) metriche/mAP50-95(B) Tempo di inferenza (ms/im)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6096 11.58
YOLO11n OpenVINO INT8 3.3 0.6380 12.60
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7430 15.15
YOLO11s OpenVINO INT8 9.8 0.744 21.22
YOLO11m PyTorch FP32 38.8 0.7642 286.28
YOLO11m OpenVINO FP32 77.1 0.7642 32.92
YOLO11m OpenVINO INT8 20.2 0.7445 21.74
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7264 43.15
YOLO11l OpenVINO INT8 25.7 0.7313 42.27
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 74.33
YOLO11x OpenVINO INT8 55.9 0.8211 59.41

Intel Parametri di riferimento della NPU Core Ultra

Riprodurre i risultati

Per riprodurre i benchmark di Ultralytics su tutti i formati di esportazione, eseguite questo codice:

Esempio

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and accuracy on the COCO8 dataset for all export formats
results = model.benchmark(data="coco8.yaml")
# Benchmark YOLO11n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolo11n.pt data=coco8.yaml

Si noti che i risultati dei benchmark possono variare in base all'esatta configurazione hardware e software di un sistema, nonché al carico di lavoro corrente del sistema al momento dell'esecuzione dei benchmark. Per ottenere i risultati più affidabili, utilizzare un set di dati con un numero elevato di immagini, ad es. data='coco128.yaml' (128 immagini val), oppure data='coco.yaml' (5000 immagini val).

Conclusione

I risultati del benchmarking dimostrano chiaramente i vantaggi dell'esportazione YOLO11 modello per il OpenVINO formato. Su diversi modelli e piattaforme hardware, il OpenVINO il formato supera costantemente gli altri formati in termini di velocità di inferenza, mantenendo al contempo una precisione comparabile.

I benchmark sottolineano l'efficacia di OpenVINO come strumento per la distribuzione di modelli di deep learning. Convertendo i modelli nel formato OpenVINO , gli sviluppatori possono ottenere miglioramenti significativi delle prestazioni, rendendo più semplice l'implementazione di questi modelli nelle applicazioni reali.

Per informazioni e istruzioni più dettagliate sull'uso di OpenVINO, consultate la documentazione ufficiale di OpenVINO .

FAQ

Come faccio a esportare? YOLO11 modelli a OpenVINO formato?

Esportazione YOLO11 modelli per il OpenVINO il formato può migliorare significativamente CPU velocità e abilitazione GPU e accelerazioni NPU su Intel hardware. Per esportare, puoi utilizzare Python O CLI come mostrato di seguito:

Esempio

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolo11n_openvino_model/'
# Export a YOLO11n PyTorch model to OpenVINO format
yolo export model=yolo11n.pt format=openvino # creates 'yolo11n_openvino_model/'

Per ulteriori informazioni, consultare la documentazione sui formati di esportazione.

Quali sono i vantaggi dell'utilizzo OpenVINO con YOLO11 modelli?

Utilizzo Intel 'S OpenVINO kit di strumenti con YOLO11 i modelli offrono diversi vantaggi:

  1. Prestazioni: Raggiungete una velocità fino a 3 volte superiore sull'inferenza di CPU e sfruttate le GPU e le NPU di Intel per l'accelerazione.
  2. Ottimizzatore di modelli: Converte, ottimizza ed esegue modelli da framework popolari come PyTorch, TensorFlow e ONNX.
  3. Facilità d'uso : sono disponibili oltre 80 quaderni tutorial per aiutare gli utenti a iniziare, compresi quelli per YOLO11 .
  4. Esecuzione eterogenea: Distribuzione dei modelli su vari hardware Intel con un'API unificata.

Per un confronto dettagliato delle prestazioni, visitate la nostra sezione dedicata ai benchmark.

Come posso eseguire l'inferenza utilizzando un YOLO11 modello esportato in OpenVINO ?

Dopo aver esportato un modello YOLO11n in OpenVINO formato, è possibile eseguire l'inferenza utilizzando Python O CLI :

Esempio

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolo11n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model=yolo11n_openvino_model source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli, consultare la documentazione sulla modalità di previsione.

Perché dovrei scegliere Ultralytics YOLO11 rispetto ad altri modelli per OpenVINO esportare?

Ultralytics YOLO11 è ottimizzato per il rilevamento di oggetti in tempo reale con elevata precisione e velocità. In particolare, se combinato con OpenVINO , YOLO11 fornisce:

  • Velocità fino a 3 volte superiore su CPU Intel
  • Implementazione senza problemi su GPU e NPU di Intel
  • Accuratezza coerente e comparabile tra i vari formati di esportazione

Per un'analisi approfondita delle prestazioni, consulta i nostri benchmark YOLO11 dettagliati su hardware diverso.

Posso effettuare il benchmark YOLO11 modelli su diversi formati come PyTorch , ONNX , E OpenVINO ?

Sì, puoi effettuare il benchmark YOLO11 modelli in vari formati tra cui PyTorch , TorchScript , ONNX , E OpenVINO Utilizza il seguente frammento di codice per eseguire benchmark sul set di dati scelto:

Esempio

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and [accuracy](https://www.ultralytics.com/glossary/accuracy) on the COCO8 dataset for all export formats
results = model.benchmark(data="coco8.yaml")
# Benchmark YOLO11n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolo11n.pt data=coco8.yaml

Per i risultati dettagliati dei benchmark, consultare la sezione benchmark e la documentazione sui formati di esportazione.



📅C reato 1 anno fa ✏️ Aggiornato 1 giorno fa

Commenti