Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Come utilizzare Ultralytics YOLOv5 con Comet

Team Ultralytics

5 minuti di lettura

11 ottobre 2022

Scoprite come Ultralytics collabora con Comet per l'ottimizzazione del modello Ultralytics YOLOv5 : tracciamento in tempo reale, collaborazione semplificata e riproducibilità migliorata.

In Ultralytics collaboriamo commercialmente con altre startup per aiutarci a finanziare la ricerca e lo sviluppo dei nostri fantastici strumenti open-source, come YOLOv5, per mantenerli gratuiti per tutti. Questo articolo può contenere link di affiliazione a tali partner.

Il nostro nuovo partner, Cometcostruisce strumenti che aiutano data scientist, ingegneri e team leader ad accelerare e ottimizzare l'apprendimento automatico e i modelli di deep learning.

Comet è uno strumento potente per tracciare i modelli, i set di dati e le metriche. Registra anche le variabili di sistema e di ambiente per garantire la riproducibilità e il debug di ogni singola esecuzione. È come avere un assistente virtuale che magicamente sa quali appunti prendere. Tracciate e visualizzate le metriche del modello in tempo reale, salvate gli iperparametri, i dataset e i checkpoint del modello e visualizzate le previsioni del modello con i pannelli personalizzati diComet !

Inoltre, Comet assicura che non si perda mai track del proprio lavoro e facilita la condivisione dei risultati e la collaborazione tra team di tutte le dimensioni!

YOLOv5 è un ottimo punto di partenza per il vostro viaggio nella computer vision. Per migliorare le prestazioni del modello e renderlo pronto per la produzione, è necessario registrare i risultati in uno strumento di monitoraggio degli esperimenti come Comet.

L'integrazione tra Comet e YOLOv5 offre 3 caratteristiche principali:

  • Funzionalità di registrazione automatica e registrazione personalizzata
  • Salvataggio di dataset e modelli come artefatti per il debug e la riproducibilità
  • Organizzare la vista con i pannelli personalizzati di Comet


Questa guida spiega come utilizzare YOLOv5 con Comet.

Allora, siete pronti a track vostri esperimenti in tempo reale? Cominciamo!

Introduzione

1. Installare Comet

Pip installare comet

2. Configurare le credenziali di Comet

Esistono due modi per configurare Comet con YOLOv5.

È possibile impostare le credenziali attraverso le variabili d'ambiente o creare un filecomet.config nella propria directory di lavoro e impostarvi le credenziali.


Variabili d'ambiente

esportare COMET COMET# Questo sarà il valore predefinitoyolov5'.


File di configurazione di Comet

[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'

3. Esegui lo script di training

# Addestrare YOLOv5s su COCO128 per 5 epochspython train.py --img 640 --batch 16 --epochs 5 --data coco128yaml --weights yolov5s.pt

Questo è tutto!

Comet registra automaticamente gli iperparametri, gli argomenti della riga di comando, le metriche di addestramento e di validazione. È possibile visualizzare e analizzare le esecuzioni nell'interfaccia utente di Comet .

Esperimenti con YOLOv5 in Comet Dashboard

Provalo tu stesso!

Dai un'occhiata a un esempio di un'esecuzione completata qui.

O meglio ancora, provalo tu stesso in questo Colab Notebook.

Registra automaticamente

Per impostazione predefinita, Comet registra i seguenti elementi:

Metriche

  • Box Loss, Object Loss e Classification Loss per i dati di training e validazione
  • metriche mAP,5, mAP,5:0,95 per i dati di validazione
  • Precisione e Recall per i dati di validazione

Parametri

  • Iperparametri del modello
  • Tutti i parametri passati attraverso le opzioni della riga di comando

Visualizzazioni

  • Matrice di confusione delle previsioni del modello sui dati di validazione
  • Grafici per le curve PR e F1 per tutte le classi
  • Correlogramma delle etichette di classe

Configurare la registrazione di Comet

Comet può essere configurato per registrare dati aggiuntivi attraverso i flag della riga di comando passati allo script di addestramento o alle variabili d'ambiente.

export COMET# Imposta se eseguire Comet in modalità 'online' o 'offline'. Il valore predefinito è onlineexport COMET#Impostare il nome del modello salvato. Il valore predefinito è yolov5export COMET# Impostare per disabilitare la registrazione della matrice di confusione Comet . L'impostazione predefinita è trueexport COMET# Controlla il numero totale di predizioni di immagini da registrare in Comet. L'impostazione predefinita è 100.export COMET# Imposta per registrare le metriche di valutazione per ogni classe rilevata alla fine dell'addestramento. L'impostazione predefinita è falseexport COMET# Impostare questo valore se si desidera riprendere l'allenamento da un checkpoint diverso. Il valore predefinito è 'last.pt'export COMET# Impostare questo valore se si desidera registrare le metriche dell'allenamento a livello di batch. L'impostazione predefinita è false.export COMET# Impostare questo valore su false per disabilitare la registrazione delle previsioni del modello.

Registrazione dei punti di controllo con Comet

La registrazione dei modelli in Comet è disabilitata per impostazione predefinita. Per attivarla, passare l'argomento save-period allo script di addestramento. In questo modo i checkpoint registrati verranno salvati in Comet in base al valore dell'intervallo fornito da save-period.

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128yaml \

--weights yolov5s.pt \

--save-period 1

Registrazione delle predizioni del modello

Per impostazione predefinita, le previsioni del modello (immagini, etichette di verità a terra e caselle di delimitazione) vengono registrate in Comet. È possibile controllare la frequenza delle previsioni registrate e delle immagini associate passando l'argomento bbox alla riga di comando. Le previsioni possono essere visualizzate utilizzando il pannello personalizzato Object Detection di Comet. Questa frequenza corrisponde a un batch di dati ogni N per epoca. Nell'esempio che segue, si registra ogni 2º batch di dati per ogni epoca.

Nota: il caricatore di dati di convalida di YOLOv5 ha come impostazione predefinita una dimensione di batch di 32, quindi è necessario impostare la frequenza di registrazione di conseguenza.

Ecco un progetto di esempio che utilizza il pannello.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--pesi yolov5s.pt bbox 2

Controllo del numero di immagini di previsione registrate in Comet

Quando si registrano le previsioni di YOLOv5, Comet registra le immagini associate a ciascun set di previsioni. Per impostazione predefinita, vengono registrate al massimo 100 immagini di convalida. È possibile aumentare o diminuire questo numero utilizzando la variabile d'ambiente COMET.

env COMET train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--pesi yolov5s.pt bbox 1

Registrazione delle metriche a livello di classe

Utilizzare la variabile d'ambiente COMET per registrare mAP, precisione, richiamo e f1 per ciascuna classe.

env COMET python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt

Caricare un set di dati su Comet Artifacts

Se si desidera memorizzare i dati utilizzando gli artefattiComet , è possibile farlo utilizzando il flag upload_dataset.

Il dataset è organizzato nel modo descritto nella documentazione di YOLOv5 . Il file yaml di configurazione del dataset deve seguire lo stesso formato del file coco128yaml .

python train.py \--img 640 \--batch 16 \-epochs 5 \--data coco128yaml \--pesi yolov5s.pt \--upload_dataset

Il dataset caricato si trova nella scheda Artefatti dell'area di lavoro Comet

Scheda Artefatti Comet , YOLOv5

È possibile visualizzare l'anteprima dei dati direttamente nell'interfaccia utente di Comet .

Anteprima dei dati in Comet, YOLOv5

Gli artefatti sono versionati e supportano anche l'aggiunta di metadati sul set di dati. Comet registrerà automaticamente i metadati dal file yaml del dataset.

Metadati di log da file YAML in Comet, YOLOv5

Utilizzo di un artefatto salvato

Se si desidera utilizzare un set di dati da Comet Artifacts, impostare la variabile path nel file yaml del set di dati in modo che punti al seguente URL della risorsa Artifact.

# contenuto del file artifactyaml percorso:comet:///:"

Quindi, passare questo file allo script di training nel modo seguente:

python train.py \--img 640 \--batch 16 \-epochs 5 \--data artifactyaml \--weights yolov5s.pt

Gli artefatti consentono anche di track il percorso dei dati nel flusso di lavoro della sperimentazione. Qui è possibile vedere un grafico che mostra tutti gli esperimenti che hanno utilizzato il set di dati caricato.

Flusso di lavoro per la sperimentazione Comet , YOLOv5

Ripresa di un'esecuzione di training

Se la corsa di allenamento viene interrotta per qualsiasi motivo, ad esempio per un'interruzione della connessione a Internet, è possibile riprendere la corsa utilizzando il flag di ripresa e il Comet Run Path.

Il percorso di esecuzione ha il seguente formato comet:////.

Questa operazione ripristina la corsa allo stato precedente all'interruzione, che comprende il ripristino del modello da un checkpoint, il ripristino di tutti gli iperparametri e degli argomenti di addestramento e il download degli artefatti del set di dati Comet se sono stati utilizzati nella corsa originale. La corsa ripresa continuerà a registrare l'Esperimento esistente nell'interfaccia utente di Comet .

python train.py \--resumecomet://"

Ricerca di iperparametri con l'ottimizzatore Comet

YOLOv5 è inoltre integrato con l'Optimizer di Comet, rendendo semplice la visualizzazione degli sweep degli iperparametri nell'interfaccia utente Comet .

Configurazione di uno Sweep dell'Optimizer

Per configurare Comet Optimizer, è necessario creare un file JSON con le informazioni sullo sweep.

Un file di esempio è stato fornito in:

comet.json python comet.py comet"comet.json"

Lo script hpo.py accetta gli stessi argomenti di train.py. Se si desidera passare argomenti aggiuntivi al proprio sweep, è sufficiente aggiungerli dopo lo script.

python comet.py comet"comet.json" \--save-period 1 bbox 1

Esecuzione di uno Sweep in parallelo

comet optimizer -j comet.py comet.json"

Comet offre molti modi per visualizzare i risultati dell'indagine. Date un'occhiata a un progetto con un'indagine completata qui:

Visualizzare i risultati dello sweep in Comet, YOLOv5

Rimani in contatto

Iniziate a utilizzare la nostra integrazione con Comet per gestire, visualizzare e ottimizzare i vostri modelli YOLOv5 , dai cicli di formazione al monitoraggio della produzione.

E, naturalmente, entrate a far parte della comunitàUltralytics , un luogo dove porre domande e condividere suggerimenti sulla formazione, la convalida e l'implementazione di YOLOv5 .

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis