Vai al contenuto

Ottimizzare le inferenze di YOLO11 con il motore DeepSparse di Neural Magic

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

Questa guida mostra come distribuire YOLO11 utilizzando DeepSparse di Neural Magic, come eseguire le inferenze e come eseguire il benchmark delle prestazioni per garantire l'ottimizzazione.

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, pur mantenendo l'accuratezza. DeepSparse offre una soluzione agile per l'esecuzione efficiente e scalabile di reti neurali su diversi dispositivi.

Vantaggi dell'integrazione di Neural Magic con DeepSparse YOLO11

Prima di scoprire come distribuire YOLOV8 usando DeepSparse, cerchiamo di capire quali sono i vantaggi dell'uso di DeepSparse. Alcuni vantaggi chiave sono:

  • Maggiore velocità di inferenza: Raggiunge fino a 525 FPS (su YOLO11n), accelerando in modo significativo le capacità di inferenza di YOLO11 rispetto ai metodi tradizionali.

Maggiore velocità di inferenza

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

Modello ottimizzato Efficienza

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

  • Integrazione e distribuzione semplificate: Offre strumenti di facile utilizzo per una facile integrazione di YOLO11 nelle applicazioni, comprese le funzioni di annotazione di immagini e video.

  • Supporto per vari tipi di modelli: Compatibile con i modelli YOLO11 , 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 i due principi chiave del cervello:

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

  • Località di riferimento: DeepSparse utilizza un metodo di esecuzione unico, suddividendo la rete in Tensor colonne. Queste colonne vengono eseguite in profondità, inserendosi interamente nella 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, consultate il loro blog post.

Creazione di una versione sparsa di YOLO11 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 YOLO11 . Con SparseML, perfettamente integrato con Ultralytics, gli utenti possono regolare senza problemi questi checkpoint sparsi sui loro specifici set di dati utilizzando una semplice interfaccia a riga di comando.

Per maggiori dettagli, consultare la documentazione di SparseML YOLO11 diNeural Magic.

Utilizzo: Distribuzione di YOLOV8 con DeepSparse

L'implementazione di YOLO11 con Neural Magic's DeepSparse richiede alcuni semplici passi. Prima di immergervi nelle istruzioni per l'uso, assicuratevi di dare un'occhiata alla gamma di modelli diYOLO11 offerti da Ultralytics. Questo vi aiuterà a scegliere il modello più adatto alle esigenze del vostro progetto. Ecco come iniziare.

Fase 1: installazione

Per installare i pacchetti richiesti, eseguire:

Installazione

# Install the required packages
pip install deepsparse[yolov8]

Passo 2: Esportazione di YOLO11 in formato ONNX

DeepSparse Engine richiede i modelli YOLO11 in formato ONNX . L'esportazione del modello in questo formato è essenziale per la compatibilità con DeepSparse. Utilizzare il seguente comando per esportare i modelli YOLO11 :

Modello di esportazione

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

Questo comando salverà il file yolo11n.onnx modello sul disco.

Passo 3: Distribuzione ed esecuzione delle inferenze

Con il modello YOLO11 in formato ONNX , è possibile distribuire ed eseguire inferenze utilizzando DeepSparse. Questo può essere fatto facilmente con l'intuitiva API Python :

Distribuzione ed esecuzione delle inferenze

from deepsparse import Pipeline

# Specify the path to your YOLO11 ONNX model
model_path = "path/to/yolo11n.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: Benchmarking delle prestazioni

È importante verificare che il modello YOLO11 funzioni in modo ottimale su DeepSparse. È possibile eseguire un benchmark delle prestazioni del modello per analizzare il throughput e la latenza:

Benchmarking

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

Fase 5: Caratteristiche aggiuntive

DeepSparse fornisce funzionalità aggiuntive per l'integrazione pratica di YOLO11 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/yolo11n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo11n.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 viene 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, si riceveranno metriche di output dettagliate come precisione, richiamo e mAP (mean Average Precision). Questo fornisce una visione completa delle prestazioni del modello sul set di dati. Questa funzionalità è particolarmente utile per mettere a punto e ottimizzare i modelli di YOLO11 per casi d'uso specifici, garantendo un'elevata precisione ed efficienza.

Sintesi

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

Per informazioni più dettagliate e per un utilizzo avanzato, visitate la documentazione di DeepSparse diNeural Magic. Inoltre, date un'occhiata alla documentazione di Neural Magic sull'integrazione con YOLO11 qui e guardate una bella sessione su questo argomento qui.

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

FAQ

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

Neural MagicDeepSparse Engine è un runtime di inferenza progettato per ottimizzare l'esecuzione di reti neurali su CPU attraverso tecniche avanzate quali sparsity, pruning e quantizzazione. Integrando DeepSparse con YOLO11, è 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 la precisione. Per maggiori dettagli, consultare la sezione DeepSparse diNeural Magic.

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

L'installazione dei pacchetti necessari per distribuire YOLO11 con DeepSparse di Neural Magic è semplice. È possibile installarli facilmente usando il comando CLI. Ecco il comando da eseguire:

pip install deepsparse[yolov8]

Una volta installato, seguite i passi indicati nella sezione Installazione per configurare l'ambiente e iniziare a usare DeepSparse con YOLO11.

Come si fa a convertire i modelli YOLO11 in formato ONNX per utilizzarli con DeepSparse?

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

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

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

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

Il benchmark delle prestazioni di YOLO11 su DeepSparse consente di analizzare il throughput e la latenza per garantire l'ottimizzazione del modello. Per eseguire un benchmark è possibile utilizzare il seguente comando CLI :

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

Questo comando fornisce metriche vitali sulle prestazioni. Per maggiori dettagli, consultare la sezione Benchmarking delle prestazioni.

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

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

  • Velocità di inferenza migliorata: Raggiunge fino a 525 FPS, accelerando in modo significativo le capacità di YOLO11.
  • 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 economico di CPU .
  • Integrazione semplificata: Strumenti di facile utilizzo per semplificare la distribuzione e l'integrazione.
  • Flessibilità: Supporta modelli YOLO11 sia standard che ottimizzati per la spazialità.
  • Efficiente dal punto di vista dei costi: Riduce le spese operative grazie all'utilizzo efficiente delle risorse.

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

📅C reato 11 mesi fa ✏️ Aggiornato 2 mesi fa

Commenti