Vai al contenuto

Ottimizzazione YOLOv8 Inferenze con Neural MagicMotore DeepSparse

Quando si distribuiscono modelli di rilevamento degli oggetti come Ultralytics YOLOv8 su diversi hardware, puoi imbatterti in problemi particolari come l'ottimizzazione. È qui che interviene l'integrazione di YOLOv8 con Neural Magic DeepSparse Engine. Trasforma il modo in cui vengono eseguiti i modelli di YOLOv8 e consente di ottenere prestazioni di livello GPU direttamente sulle CPU.

Questa guida ti mostra come distribuire YOLOv8 utilizzando Neural Magic's DeepSparse, come eseguire le inferenze e come effettuare un benchmark delle prestazioni per assicurarti che sia ottimizzato.

Neural MagicDeepSparse

Neural MagicPanoramica di DeepSparse

Neural MagicDeepSparse è un run-time di inferenza progettato per ottimizzare l'esecuzione delle reti neurali sulle CPU. Applica tecniche avanzate come la sparsità, il pruning e la quantizzazione per ridurre drasticamente i requisiti computazionali mantenendo la precisione. DeepSparse offre una soluzione agile per l'esecuzione efficiente e scalabile di reti neurali su diversi dispositivi.

Vantaggi dell'integrazione Neural MagicDeepSparse con YOLOv8

Prima di approfondire come eseguire la distribuzione YOLOV8 utilizzando DeepSparse, comprendiamo i vantaggi dell'utilizzo di DeepSparse. Alcuni vantaggi chiave includono:

  • Velocità di inferenza migliorata: Raggiunge fino a 525 FPS (su YOLOv8n), velocizzando notevolmente le capacità di inferenza di YOLOv8 rispetto ai metodi tradizionali.

Velocità di inferenza migliorata

  • Efficienza ottimizzata del modello: Utilizza il pruning e la quantizzazione per migliorare l'efficienza di YOLOv8, riducendo le dimensioni del modello e i requisiti computazionali e mantenendo l'accuratezza.

Efficienza del modello ottimizzato

  • Prestazioni elevate su CPU standard: Offre prestazioni simili a quelle di GPU sulle CPU, offrendo un'opzione più accessibile e conveniente per diverse applicazioni.

  • Integrazione e distribuzione semplificate: Offre strumenti di facile utilizzo per integrare facilmente YOLOv8 nelle applicazioni, comprese le funzioni di annotazione di immagini e video.

  • Supporto per vari tipi di modelli: Compatibile con i modelli YOLOv8 sia standard che ottimizzati per la spazialità, per una maggiore flessibilità di implementazione.

  • Soluzione economica e scalabile: Riduce le spese operative e offre una distribuzione scalabile di modelli avanzati di rilevamento degli oggetti.

Come funziona la tecnologia DeepSparse di Neural Magic?

Neural MagicLa tecnologia Deep Sparse si ispira all'efficienza del cervello umano nel calcolo delle reti neurali. Adotta due principi chiave del cervello come segue:

  • Sparsità: Il processo di sparsificazione consiste nel tagliare le informazioni ridondanti dalle reti di apprendimento profondo, per ottenere modelli più piccoli e veloci senza compromettere l'accuratezza. Questa tecnica riduce in modo significativo le dimensioni della rete e il fabbisogno computazionale.

  • Località di riferimento: DeepSparse utilizza un metodo di esecuzione unico, suddividendo la rete in Tensor colonne. Queste colonne vengono eseguite in profondità, inserendosi interamente all'interno della cache di CPU. Questo approccio imita l'efficienza del cervello, riducendo al minimo il movimento dei dati e massimizzando l'uso della cache di CPU.

Come funziona la tecnologia DeepSparse di Neural Magic

Per maggiori dettagli sul funzionamento della tecnologia DeepSparse di Neural Magic, consulta il loro blog.

Creare una versione sparsa di YOLOv8 addestrata su un set di dati personalizzato

SparseZoo, un repository di modelli open-source di Neural Magic, offre una raccolta di checkpoint di modelli pre-sparsificati di YOLOv8 . Con SparseML, perfettamente integrato con Ultralytics, gli utenti possono regolare senza problemi questi checkpoint sparsi sui loro set di dati specifici utilizzando una semplice interfaccia a riga di comando.

Consulta la documentazione diNeural Magic's SparseML YOLOv8 per maggiori dettagli.

Utilizzo: Distribuire YOLOV8 utilizzando DeepSparse

L'implementazione di YOLOv8 con Neural Magic's DeepSparse richiede alcuni semplici passi. Prima di immergerti nelle istruzioni d'uso, assicurati di dare un'occhiata alla gamma di modelli diYOLOv8 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più adatto alle esigenze del tuo progetto. Ecco come iniziare.

Passo 1: Installazione

Per installare i pacchetti necessari, esegui:

Installazione

# Install the required packages
pip install deepsparse[yolov8]

Passo 2: Esportazione di YOLOv8 nel formato ONNX

DeepSparse Engine richiede che i modelli di YOLOv8 siano in formato ONNX . Esportare il tuo modello in questo formato è essenziale per la compatibilità con DeepSparse. Usa il seguente comando per esportare i modelli YOLOv8 :

Modello di esportazione

# Export YOLOv8 model to ONNX format
yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Questo comando salverà i dati yolov8n.onnx modello sul tuo disco.

Passo 3: Distribuzione ed esecuzione delle inferenze

Con il tuo modello YOLOv8 in formato ONNX , puoi distribuire ed eseguire inferenze utilizzando DeepSparse. Questo può essere fatto facilmente con l'intuitiva API di Python :

Distribuzione ed esecuzione delle inferenze

from deepsparse import Pipeline

# Specify the path to your YOLOv8 ONNX model
model_path = "path/to/yolov8n.onnx"

# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)

# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)

Fase 4: Analisi comparativa delle prestazioni

È importante verificare che il tuo modello YOLOv8 funzioni in modo ottimale su DeepSparse. Puoi fare un benchmark delle prestazioni del tuo modello per analizzare il throughput e la latenza:

Benchmarking

# Benchmark performance
deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

Passo 5: Caratteristiche aggiuntive

DeepSparse fornisce ulteriori funzionalità per l'integrazione pratica di YOLOv8 nelle applicazioni, come l'annotazione delle immagini e la valutazione dei set di dati.

Caratteristiche aggiuntive

# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolov8n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolov8n.onnx"

L'esecuzione del comando annotate elabora l'immagine specificata, rilevando gli oggetti e salvando l'immagine annotata con i riquadri di delimitazione e le classificazioni. L'immagine annotata verrà memorizzata in una cartella annotation-results. Questo aiuta a fornire una rappresentazione visiva delle capacità di rilevamento del modello.

Funzione di annotazione delle immagini

Dopo aver eseguito il comando eval, riceverai delle metriche di output dettagliate come precisione, richiamo e mAP (mean Average Precision). Questo fornisce una visione completa delle prestazioni del tuo modello sul set di dati. Questa funzionalità è particolarmente utile per mettere a punto e ottimizzare i modelli di YOLOv8 per casi d'uso specifici, garantendo un'elevata precisione ed efficienza.

Sommario

Questa guida ha analizzato l'integrazione di Ultralytics'YOLOv8 con Neural Magic' DeepSparse Engine. Ha evidenziato come questa integrazione migliori le prestazioni di YOLOv8'su CPU piattaforme, offrendo GPU un'efficienza di livello e tecniche avanzate di sparsità della rete neurale.

Per informazioni più dettagliate e per un utilizzo avanzato, visita la documentazione di DeepSparse diNeural Magic. Inoltre, dai un'occhiata alla documentazione di Neural Magic sull'integrazione con YOLOv8 qui e guarda un'ottima sessione su questo argomento qui.

Inoltre, per una comprensione più ampia delle varie integrazioni di YOLOv8 , visita la pagina della guida all'integrazione diUltralytics , dove potrai scoprire una serie di altre interessanti possibilità di integrazione.

DOMANDE FREQUENTI

Cos'è il motore DeepSparse di Neural Magic e come ottimizza le prestazioni di YOLOv8 ?

Neural MagicDeepSparse Engine è un runtime di inferenza progettato per ottimizzare l'esecuzione delle reti neurali sulle CPU attraverso tecniche avanzate come sparsity, pruning e quantizzazione. Integrando DeepSparse con YOLOv8, è possibile ottenere prestazioni simili a quelle di GPU su CPU standard, migliorando significativamente la velocità di inferenza, l'efficienza del modello e le prestazioni complessive, pur mantenendo l'accuratezza. Per maggiori dettagli, consulta la sezione DeepSparse diNeural Magic.

Come posso installare i pacchetti necessari per distribuire YOLOv8 utilizzando DeepSparse di Neural Magic?

L'installazione dei pacchetti necessari per distribuire YOLOv8 con Neural Magic's DeepSparse è semplice. Puoi installarli facilmente utilizzando il sito CLI. Ecco il comando che devi eseguire:

pip install deepsparse[yolov8]

Una volta installato, segui i passi indicati nella sezione Installazione per configurare il tuo ambiente e iniziare a usare DeepSparse con YOLOv8.

Come posso convertire i modelli di YOLOv8 in formato ONNX per utilizzarli con DeepSparse?

Per convertire i modelli YOLOv8 nel formato ONNX , necessario per la compatibilità con DeepSparse, puoi utilizzare il seguente comando CLI :

yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Questo comando esporta il modello YOLOv8 (yolov8n.pt) a un formato (yolov8n.onnx) che possono essere utilizzati dal motore DeepSparse. Maggiori informazioni sull'esportazione del modello sono disponibili nella sezione Sezione Esportazione del modello.

Come si effettua un benchmark delle prestazioni di YOLOv8 su DeepSparse Engine?

Il benchmark delle prestazioni di YOLOv8 su DeepSparse ti aiuta ad analizzare il throughput e la latenza per assicurarti che il tuo modello sia ottimizzato. Puoi utilizzare il seguente comando CLI per eseguire un benchmark:

deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

Questo comando ti fornirà delle metriche vitali sulle prestazioni. Per maggiori dettagli, consulta la sezione Benchmarking delle prestazioni.

Perché dovrei utilizzare DeepSparse di Neural Magic con YOLOv8 per il rilevamento degli oggetti?

L'integrazione di Neural Magic's DeepSparse con YOLOv8 offre diversi vantaggi:

  • Velocità di inferenza migliorata: Raggiunge fino a 525 FPS, accelerando notevolmente le capacità di YOLOv8.
  • Efficienza ottimizzata del modello: Utilizza tecniche di sparsity, pruning e quantizzazione per ridurre le dimensioni del modello e le esigenze computazionali mantenendo l'accuratezza.
  • Prestazioni elevate su CPU standard: Offre prestazioni simili a quelle di GPU su un hardware conveniente come quello di CPU .
  • Integrazione semplificata: Strumenti di facile utilizzo per semplificare la distribuzione e l'integrazione.
  • Flessibilità: Supporta modelli YOLOv8 sia standard che ottimizzati per la spazialità.
  • Economico: Riduce le spese operative grazie all'utilizzo efficiente delle risorse.

Per un approfondimento su questi vantaggi, visita la sezione Vantaggi dell'integrazione di DeepSparse di Neural Magic con YOLOv8 .



Creato 2023-12-30, Aggiornato 2024-07-05
Autori: glenn-jocher (7), abirami-vina (1)

Commenti