Ultralytics YOLO27:
Integrazioni

Distribuisci Ultralytics YOLOv5 con DeepSparse di Neural Magic per ottenere prestazioni da GPU su CPU

Potenzia l'addestramento e la distribuzione dei modelli Ultralytics YOLOv5 con DeepSparse di Neural Magic, per prestazioni da GPU su CPU. Ottieni distribuzioni YOLOv5 più rapide e scalabili.

NUNuvola Ladi6 min di lettura
Distribuire Ultralytics YOLOv5 su CPU con DeepSparse di Neural Magic

Vuoi accelerare l'addestramento e la distribuzione dei tuoi modelli YOLOv5? Ci pensiamo noi! Ti presentiamo il nostro nuovo partner, Neural Magic. Neural Magic offre strumenti software che puntano a prestazioni ottimali dei modelli e alla semplicità dei flussi di lavoro; è quindi naturale che abbiamo unito le forze per migliorare ulteriormente il processo di distribuzione di YOLOv5.

DeepSparse è il runtime di inferenza CPU di Neural Magic, che sfrutta la sparsità e l'aritmetica a bassa precisione nelle reti neurali per offrire prestazioni eccezionali su hardware standard. Per esempio, rispetto alla configurazione di riferimento di ONNX Runtime, DeepSparse offre un incremento di velocità di 5,8 volte per YOLOv5s sulla stessa macchina!

Confronto del throughput di Ultralytics YOLOv5 con DeepSparse

Per la prima volta, i tuoi carichi di lavoro di deep learning possono soddisfare i requisiti prestazionali degli ambienti di produzione senza la complessità e i costi degli acceleratori hardware. In poche parole, DeepSparse offre le prestazioni delle GPU e la semplicità del software:

  1. Distribuzioni flessibili: esegui i tuoi carichi di lavoro in modo coerente su cloud, data center ed edge, con qualsiasi fornitore hardware
  2. Scalabilità illimitata: amplia la capacità con Kubernetes standard, scala verticalmente fino a centinaia di core o usa un'architettura completamente astratta con serverless
  3. Integrazione semplice: usa API intuitive per integrare il tuo modello in un'applicazione e monitorarlo in produzione

Ottieni prestazioni paragonabili a quelle delle GPU su CPU standard#

DeepSparse sfrutta la sparsità dei modelli per ottenere un aumento delle prestazioni.

La sparsificazione tramite pruning e quantizzazione consente di ridurre di ordini di grandezza le dimensioni e la potenza di calcolo necessarie per eseguire una rete, mantenendo al contempo un'elevata accuratezza. DeepSparse tiene conto della sparsità, evitando le operazioni di moltiplicazione e somma con valori zero e riducendo la quantità di calcolo in un passaggio forward. Poiché il calcolo sparso è limitato dalla memoria, DeepSparse esegue la rete lungo la sua profondità, suddividendo il problema in colonne di tensori, ovvero fasce verticali di calcolo che entrano nella cache.

DeepSparse e rete Ultralytics YOLOv5

Le reti sparse con calcolo compresso, eseguito in cache in profondità, consentono a DeepSparse di offrire prestazioni paragonabili a quelle delle GPU sulle CPU!

Crea una versione sparsa di Ultralytics YOLOv5 addestrata su dati personalizzati#

Il repository di modelli open source di Neural Magic, SparseZoo, contiene checkpoint già resi sparsi per ogni modello YOLOv5. Con SparseML, integrato con Ultralytics, puoi ottimizzare un checkpoint sparso sui tuoi dati con un solo comando CLI.

Distribuisci Ultralytics YOLOv5 con DeepSparse#

Installa DeepSparse#

Esegui il comando seguente per installare DeepSparse. Ti consigliamo di usare un ambiente virtuale con Python.

pip install deepsparse[server,yolo,onnxruntime]

Recupera un file ONNX#

DeepSparse accetta un modello in formato ONNX, fornito in uno dei seguenti modi:

  • Un percorso locale a un modello ONNX
  • Uno stub di SparseZoo che identifica un modello in SparseZoo

Confronteremo il modello YOLOv5s denso standard con il modello YOLOv5s potato e quantizzato, identificato dai seguenti stub di SparseZoo:

zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none
zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Distribuisci un modello#

DeepSparse offre API pratiche per integrare il tuo modello in un'applicazione.

Per provare gli esempi di distribuzione qui sotto, scarica un'immagine di esempio e salvala come basilica.jpg con il seguente comando:

wget -O basilica.jpg https://raw.githubusercontent.com/neuralmagic/deepsparse/main/src/deepsparse/yolo/sample_images/basilica.jpg

API Python#

Le pipeline racchiudono nel runtime le fasi di pre-elaborazione e post-elaborazione dell'output, offrendo un'interfaccia semplice per aggiungere DeepSparse a un'applicazione. L'integrazione di DeepSparse con Ultralytics include una pipeline pronta all'uso che accetta immagini grezze e restituisce i riquadri di delimitazione.

Crea una pipeline ed esegui l'inferenza:

from deepsparse import Pipeline

# elenco di immagini nel filesystem locale
images = ["basilica.jpg"]

# crea la pipeline
model_stub = "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none"
yolo_pipeline = Pipeline.create(
    task="yolo",
    model_path=model_stub,
)

# esegui l'inferenza sulle immagini, ricevi i riquadri di delimitazione e le classi
pipeline_outputs = yolo_pipeline(images=images, iou_thres=0.6, conf_thres=0.001)
print(pipeline_outputs)

Se esegui il codice nel cloud, potresti ricevere un errore che indica che open-cv non trova libGL.so.1. Per installarlo su Ubuntu, esegui il comando seguente:

apt-get install libgl1-mesa-glx

Server HTTP#

DeepSparse Server è basato sul popolare framework web FastAPI e sul server web Uvicorn. Con un solo comando CLI, puoi configurare facilmente un endpoint di servizio del modello con DeepSparse. Il Server supporta qualsiasi pipeline di DeepSparse, incluso il rilevamento di oggetti con Ultralytics YOLOv5, consentendoti di inviare immagini grezze all'endpoint e ricevere i riquadri di delimitazione.

Avvia il Server con il modello YOLOv5s potato e quantizzato:

deepsparse.server \
  --task yolo \
  --model_path zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Un esempio di richiesta con il pacchetto requests di Python:

import requests, json

# elenco di immagini per l'inferenza (file locali sul client)
path = ['basilica.jpg']
files = [('request', open(img, 'rb')) for img in path]

# invia la richiesta tramite HTTP all'endpoint /predict/from_files
url = 'http://0.0.0.0:5543/predict/from_files'
resp = requests.post(url=url, files=files)

# la risposta viene restituita in JSON
annotations = json.loads(resp.text)  # dizionario dei risultati di annotazione
bounding_boxes = annotations["boxes"]
labels = annotations["labels"]

CLI di annotazione#

Puoi anche usare il comando annotate per fare in modo che il motore salvi una foto annotata su disco. Prova --source 0 per annotare il feed della webcam in diretta!

deepsparse.object_detection.annotate --model_filepath zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none --source basilica.jpg

L'esecuzione del comando precedente crea una cartella annotation-results e salva al suo interno l'immagine annotata.

Basilica annotata con Ultralytics YOLOv5

Prestazioni del benchmark#

Con lo script di benchmark di DeepSparse, confronteremo il throughput di DeepSparse con quello di ONNX Runtime su YOLOv5s.

I benchmark sono stati eseguiti su un'istanza AWS c6i.8xlarge (16 core).

Confronto delle prestazioni con batch 32#

Baseline di ONNX Runtime#

Con batch 32, ONNX Runtime raggiunge 42 immagini/sec con il modello YOLOv5s denso standard:

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1 -e onnxruntime

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 32 Scenario: sync Throughput (items/sec): 41.9025

Prestazioni di DeepSparse con modello denso#

DeepSparse offre le prestazioni migliori con modelli sparsi ottimizzati, ma funziona bene anche con il modello YOLOv5s denso standard.

Con batch 32, DeepSparse raggiunge 70 immagini/sec con il modello YOLOv5s denso standard: un miglioramento delle prestazioni di 1,7x rispetto a ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 32 Scenario: sync Throughput (items/sec): 69.5546

Prestazioni di DeepSparse con modello sparso#

Quando il modello viene reso sparso, il vantaggio prestazionale di DeepSparse rispetto a ONNX Runtime aumenta ulteriormente.

Con batch 32, DeepSparse raggiunge 241 immagini/sec con il modello YOLOv5s potato e quantizzato: un miglioramento delle prestazioni di 5,8x rispetto a ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 32 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Size: 32 Scenario: sync Throughput (items/sec): 241.2452

Confronto delle prestazioni con batch 1#

DeepSparse riesce a ottenere un aumento di velocità rispetto a ONNX Runtime anche nello scenario a batch 1, sensibile alla latenza.

Baseline di ONNX Runtime#

Con batch 1, ONNX Runtime raggiunge 48 immagini/sec con il modello YOLOv5s denso standard.

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 1 -nstreams 1 -e onnxruntime

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 1 Scenario: sync Throughput (items/sec): 48.0921

Prestazioni di DeepSparse con modello sparso#

Quando il modello viene reso sparso, il vantaggio prestazionale di DeepSparse rispetto a ONNX Runtime aumenta ulteriormente.

Con batch 1, DeepSparse raggiunge 135 immagini/sec con il modello YOLOv5s potato e quantizzato: un miglioramento delle prestazioni di 2,8x rispetto a ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 1 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Size: 1 Scenario: sync Throughput (items/sec): 134.9468

Poiché le istanze c6i.8xlarge dispongono di istruzioni VNNI, è possibile aumentare ulteriormente il throughput di DeepSparse potando i pesi in blocchi di 4.

Con batch 1, DeepSparse raggiunge 180 elementi/sec con un modello YOLOv5s potato e quantizzato in blocchi da 4: un aumento delle prestazioni di 3,7x rispetto a ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni -s sync -b 1 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni Batch Size: 1 Scenario: sync Throughput (items/sec): 179.7375

Ecco fatto! Ora puoi ottimizzare la distribuzione di YOLOv5 con DeepSparse.

Inizia a usare Ultralytics YOLOv5 e DeepSparse#

Per contattarci, unisciti alla nostra community e inviaci domande e commenti. Dai un'occhiata al repository Ultralytics YOLOv5 e alla documentazione completa di Neural Magic per la distribuzione di YOLOv5.

In Ultralytics collaboriamo a livello commerciale con altre startup per finanziare la ricerca e lo sviluppo dei nostri fantastici strumenti open source, come YOLOv5, e mantenerli gratuiti per tutti. Questo articolo potrebbe contenere link di affiliazione ai nostri partner.

Explore solutions

Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning