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

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

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.
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.
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.
La convalida è fondamentale per:
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).
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!
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.
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.
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.
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.
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.
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.