Come addestrare, validare, prevedere, esportare e fare benchmark con i modelli Ultralytics YOLO

Nuvola Ladi

3 minuti di lettura

24 luglio 2024

Imparate come addestrare, validare, prevedere, esportare e fare benchmark con i modelli YOLO di Ultralytics!

Immergiamoci nel mondo di Ultralytics ed esploriamo le diverse modalità disponibili per i vari modelli YOLO. Sia che stiate addestrando modelli di rilevamento di oggetti personalizzati o che stiate lavorando sulla segmentazione, la comprensione di queste modalità è un passo fondamentale. Facciamo un salto nel buio!

Nella documentazione di Ultralytics troverete diverse modalità che potete utilizzare per i vostri modelli, che si tratti di addestramento, validazione, previsione, esportazione, benchmark o tracciamento. Ognuna di queste modalità ha uno scopo unico e aiuta a ottimizzare le prestazioni e la distribuzione del modello.

Modalità treno

Per prima cosa analizziamo la modalità treno. È qui che si costruisce e si perfeziona il modello. La documentazione contiene istruzioni dettagliate e guide video che facilitano l'avvio della formazione dei modelli personalizzati.

L'addestramento del modello consiste nel fornire a un modello un nuovo set di dati, consentendogli di apprendere vari modelli. Una volta addestrato, il modello può essere utilizzato in tempo reale per rilevare nuovi oggetti su cui è stato addestrato. Prima di iniziare il processo di addestramento, è essenziale annotare il dataset in formato YOLO.

Modalità di convalida

Passiamo quindi alla modalità di convalida. La convalida è essenziale per mettere a punto gli iperparametri e garantire il buon funzionamento del modello. Ultralytics offre una serie di opzioni di validazione, tra cui impostazioni automatiche, supporto multimetrico e compatibilità con l'API Python. È anche possibile eseguire la convalida direttamente attraverso l'interfaccia a riga di comando (CLI) con il comando seguente.

Perché convalidare?

La convalida è fondamentale per:

  • Precisione: Garantire che il modello rilevi con precisione gli oggetti.
  • Convenienza: Semplificazione del processo di convalida.
  • Flessibilità: Offre diversi metodi di convalida.
  • Regolazione degli iperparametri: Ottimizzare il modello per ottenere prestazioni migliori.

Ultralytics fornisce anche esempi utente che possono essere copiati e incollati nei propri script Python. Questi esempi includono parametri come la dimensione dell'immagine, la dimensione del batch, il dispositivo (CPU o GPU) e l'intersezione su unione (IoU).

Modalità di previsione

Una volta che il modello è stato addestrato e convalidato, è il momento di fare previsioni. La modalità Predict consente di eseguire l'inferenza su nuovi dati e di vedere il modello in azione. Questa modalità è perfetta per testare le prestazioni del modello su dati reali.

Con il frammento di codice python qui sotto sarete in grado di eseguire previsioni sulle vostre immagini!

Modalità di esportazione

Dopo la convalida e la previsione, è possibile distribuire il modello. La modalità di esportazione consente di convertire il modello in vari formati, come ONNX o TensorRT, rendendo più facile la distribuzione su diverse piattaforme.

Modalità Benchmark

Infine, abbiamo la modalità benchmark. Il benchmark è essenziale per valutare le prestazioni del modello in vari scenari. Questa modalità aiuta a prendere decisioni informate sull'allocazione delle risorse, sull'ottimizzazione e sull'efficienza dei costi.

Come fare benchmark

Per eseguire un benchmark, è possibile utilizzare gli esempi utente forniti nella documentazione. Questi esempi coprono le metriche chiave e i formati di esportazione, compresi ONNX e TensorRT. È inoltre possibile specificare parametri come la quantizzazione in numeri interi (INT8) o in virgola mobile (FP16) per vedere l'impatto delle diverse impostazioni sulle prestazioni.

Esempio di benchmarking nel mondo reale

Vediamo un esempio reale di benchmark. Quando eseguiamo il benchmark del nostro modello PyTorch, notiamo una velocità di inferenza di 68 millisecondi su una GPU RTX 3070. Dopo l'esportazione in TorchScript, la velocità di inferenza scende a 4 millisecondi, evidenziando un miglioramento significativo.

Per i modelli ONNX, otteniamo una velocità di inferenza di 21 millisecondi. Testando questi modelli su una CPU (un Intel i9 di 13a generazione), vediamo risultati diversi. TorchScript funziona a 115 millisecondi, mentre ONNX ottiene risultati migliori con 84 millisecondi. Infine, OpenVINO, ottimizzato per l'hardware Intel, raggiunge uno straordinario 23 millisecondi.

__wf_reserved_inherit
Figura 1. Nicolai Nielsen mostra come eseguire il benchmarking con Ultralytics YOLO Models.

L'importanza del benchmarking

Il benchmarking dimostra come hardware e formati di esportazione diversi possano influire sulle prestazioni del modello. È fondamentale eseguire il benchmark dei modelli, soprattutto se si prevede di distribuirli su hardware personalizzato o su dispositivi edge. Questo processo assicura che il modello sia ottimizzato per l'ambiente di destinazione, fornendo le migliori prestazioni possibili.

Conclusione

In sintesi, le modalità presenti nella documentazione di Ultralytics sono strumenti potenti per la formazione, la convalida, la previsione, l'esportazione e il benchmarking dei modelli YOLO. Ogni modalità svolge un ruolo fondamentale nell'ottimizzazione del modello e nella sua preparazione per la distribuzione.

Non dimenticate di esplorare e unirvi alla nostra comunità e di provare gli snippet di codice forniti nei vostri progetti. Con questi strumenti è possibile creare modelli ad alte prestazioni e garantirne l'esecuzione efficiente in qualsiasi ambiente.

Costruiamo insieme il futuro
dell'IA!

Iniziate il vostro viaggio nel futuro dell'apprendimento automatico

Iniziare gratuitamente
Link copiato negli appunti