Ottimizzare le inferenze di YOLOv8 con il motore DeepSparse di Neural Magic
Quando si distribuiscono modelli di rilevamento degli oggetti come Ultralytics YOLOv8 su diversi hardware, puoi imbatterti in problemi particolari come l'ottimizzazione. È qui che entra in gioco l'integrazione di YOLOv8con il motore DeepSparse di Neural Magic. Trasforma il modo in cui vengono eseguiti i modelli di YOLOv8 e consente di ottenere prestazioni a livello di 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 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 di Neural Magiccon DeepSparse YOLOv8
Prima di scoprire come distribuire YOLOV8 utilizzando DeepSparse, cerchiamo di capire quali sono i vantaggi dell'utilizzo di DeepSparse. Alcuni vantaggi chiave sono:
- Velocità di inferenza migliorata: Raggiunge fino a 525 FPS (su YOLOv8n), velocizzando notevolmente le capacità di inferenza di YOLOv8 rispetto ai metodi tradizionali.
- 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.
-
Prestazioni elevate su CPU standard: Offre prestazioni simili a quelle delle 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 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 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 nella cache della CPU. Questo approccio imita l'efficienza del cervello, riducendo al minimo il movimento dei dati e massimizzando l'uso della cache della CPU.
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:
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
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
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
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.
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 piattaforme CPU, offrendo un'efficienza a livello di GPU 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 Magicsull'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.