Controllo verde
Link copiato negli appunti

Come utilizzare Ultralytics YOLOv5 con Comet

Scopri come Ultralytics collabora con Comet per Ultralytics YOLOv5 l'ottimizzazione dei modelli: tracciamento in tempo reale, collaborazione semplificata e riproducibilità migliorata.

Noi di 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 questi partner.

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

Comet è un potente strumento per tracciare i tuoi 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. Traccia e visualizza le metriche del modello in tempo reale, salva gli iperparametri, i dataset e i checkpoint del modello e visualizza le previsioni del modello con i pannelli personalizzati diComet !

Inoltre, Comet ti permette di non perdere mai traccia del tuo lavoro e di condividere facilmente i risultati e collaborare con team di ogni dimensione!

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

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

  • Funzioni di registrazione automatica e di registrazione personalizzata
  • Salvare i set di dati e i modelli come artefatti per il debugging e la riproducibilità
  • Organizzare la vista con i pannelli personalizzati di Comet


Questa guida spiega come utilizzare YOLOv5 con Comet.

Allora, sei pronto a monitorare i tuoi esperimenti in tempo reale? Cominciamo!

Come iniziare

1. Installa Comet

Pip installa comet_ml

2. Configurare le credenziali di Comet

Esistono due modi per configurare Comet con YOLOv5.

Puoi impostare le tue credenziali attraverso le variabili d'ambiente oppure creare un file .comet.config nella tua directory di lavoro e impostare lì le tue credenziali.


Variabili d'ambiente

export COMET_API_KEY=export COMET_PROJECT_NAME= # Questo sarà il valore predefinito di 'yolov5'.


Comet File di configurazione

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

3. Esegui lo script di formazione

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

Ecco fatto!

Comet registrerà automaticamente gli iperparametri, gli argomenti della riga di comando, le metriche di formazione e di validazione. Puoi visualizzare e analizzare le tue esecuzioni nell'interfaccia utente di Comet .

Esperimenti con YOLOv5 in Comet Dashboard

Provalo tu stesso!

Guarda qui un esempio di una corsa completata.

O meglio ancora, provalo tu stesso con questo taccuino Colab.

Registra automaticamente

Per impostazione predefinita, Comet registra i seguenti elementi:

Metriche

  • Perdita di scatola, perdita di oggetto e perdita di classificazione per i dati di formazione e di convalida
  • metriche mAP_0.5, mAP_0.5:0.95 per i dati di validazione
  • Precisione e richiamo per i dati di convalida

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 convalida
  • Grafici per le curve PR e F1 di 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_MODE=online # Imposta se eseguire Comet in modalità "online" o "offline". Il valore predefinito è onlineexport COMET_MODEL_NAME= #Imposta il nome del modello salvato. Il valore predefinito è yolov5export COMET_LOG_CONFUSION_MATRIX=false # Imposta per disabilitare la registrazione di una matrice di confusione Comet . Il valore predefinito è trueexport COMET_MAX_IMAGE_UPLOADS= # Controlla il numero totale di predizioni di immagini da registrare in Comet. Il valore predefinito è 100.export COMET_LOG_PER_CLASS_METRICS=true # Imposta per registrare le metriche di valutazione per ogni classe rilevata alla fine dell'addestramento. Il valore predefinito è falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Imposta questo valore se vuoi riprendere l'allenamento da un checkpoint diverso. Il valore predefinito è 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Imposta questo valore se vuoi registrare le metriche dell'allenamento a livello di batch. L'impostazione predefinita è false.export COMET_LOG_PREDICTIONS=true # Imposta questo valore a false per disabilitare la registrazione delle predizioni del modello.

Registrazione dei punti di controllo con Comet

La registrazione dei modelli su Comet è disabilitata per impostazione predefinita. Per attivarla, inserisci l'argomento save-period nello script di formazione. 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 coco128.yaml \

--weights yolov5s.pt \

--save-period 1

Previsioni del modello di registrazione

Per impostazione predefinita, le previsioni del modello (immagini, etichette di verità a terra e caselle di delimitazione) saranno registrate su Comet. Puoi controllare la frequenza delle previsioni registrate e delle immagini associate inserendo l'argomento della riga di comando bbox_interval. Le previsioni possono essere visualizzate utilizzando il pannello personalizzato Object Detection di Comet. Questa frequenza corrisponde a un lotto di dati ogni N per epoca. Nell'esempio seguente, registriamo ogni 2 lotti di dati per ogni epoca.

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

Ecco un esempio di progetto che utilizza il Pannello.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--pesi yolov5s.pt \--bbox_interval 2

Controllo del numero di immagini di predizione a cui ci si collega Comet

Quando si registrano le previsioni di YOLOv5, Comet registra le immagini associate a ogni serie di previsioni. Per impostazione predefinita, vengono registrate un massimo di 100 immagini di convalida. Puoi aumentare o diminuire questo numero utilizzando la variabile d'ambiente COMET_MAX_IMAGE_UPLOADS.

env COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1

Registrazione delle metriche a livello di classe

Usa la variabile d'ambiente COMET_LOG_PER_CLASS_METRICS per registrare mAP, precisione, richiamo e f1 per ogni classe.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt

Caricare un set di dati su Comet Artifacts

Se vuoi memorizzare i tuoi dati utilizzando Comet Artifacts, puoi 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 coco128.yaml.

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

Puoi trovare il dataset caricato nella scheda Artefatti dell'area di lavoro Comet .

Comet Scheda Artefatti, YOLOv5

Puoi 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 dataset. 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 vuoi utilizzare un set di dati da Comet Artifacts, imposta la variabile path nel tuo file yaml del dataset in modo che punti al seguente URL della risorsa Artifact.

# contenuto del file artifact.yaml percorso: "comet:///:"

Quindi passa questo file al tuo script di formazione nel modo seguente:

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

Gli artefatti ti permettono anche di tracciare il percorso dei dati mentre attraversano il tuo flusso di lavoro di sperimentazione. Qui puoi vedere un grafico che mostra tutti gli esperimenti che hanno utilizzato il tuo set di dati caricato.

Comet flusso di lavoro della sperimentazione, YOLOv5

Riprendere una corsa di allenamento

Se la corsa di allenamento viene interrotta per qualsiasi motivo, ad esempio per un'interruzione della connessione a internet, puoi riprendere la corsa utilizzando il flag di ripresa e il percorso di corsa Comet .

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

Questo ripristina la corsa allo stato precedente all'interruzione, il che include il ripristino del modello da un checkpoint, il ripristino di tutti gli iperparametri e degli argomenti di formazione e il download degli artefatti del dataset Comet se sono stati utilizzati nella corsa originale. L'esecuzione ripresa continuerà a registrare l'Esperimento esistente nell'interfaccia utente di Comet .

python train.py \--resume "comet://"

Ricerca di iperparametri con l'ottimizzatore Comet

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

Configurare una sweep dell'ottimizzatore

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

Un file di esempio è stato fornito in:

utils/loggers/comet/optimizer_config.json python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

Lo script hpo.py accetta gli stessi argomenti di train.py. Se vuoi passare altri argomenti al tuo sweep, aggiungili semplicemente dopo lo script.

python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \--save-period 1 \--bbox_interval 1

Eseguire uno sweep in parallelo

comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"

Comet offre molti modi per visualizzare i risultati della tua indagine. Dai un'occhiata a un progetto con un'indagine completata qui:

Visualizza i risultati dello sweep in Comet, YOLOv5

Resta in contatto

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

E, naturalmente, unisciti alla Community diUltralytics : un luogo dove fare domande e condividere consigli sulla formazione, la convalida e l'implementazione di YOLOv5 .

Logo di FacebookLogo di TwitterLogo di LinkedInSimbolo di copia-link

Leggi tutto in questa categoria

Costruiamo insieme il futuro
di AI!

Inizia il tuo viaggio nel futuro dell'apprendimento automatico