Come usare Ultralytics YOLOv5 con Comet
Scopri come Ultralytics collabora con Comet per ottimizzare i modelli Ultralytics YOLOv5: tracciamento in tempo reale, collaborazione semplificata e maggiore riproducibilità.
Nuvola Ladi6 min di lettura
Noi di Ultralytics collaboriamo a livello commerciale con altre startup per finanziare la ricerca e lo sviluppo dei nostri strumenti open source, come YOLOv5, e mantenerli gratuiti per tutti. Questo articolo potrebbe contenere link di affiliazione ai nostri partner.
Il nostro nuovo partner, Comet, sviluppa strumenti che aiutano data scientist, ingegneri e responsabili dei team ad accelerare e ottimizzare i modelli di machine learning e deep learning.
Comet è uno strumento potente per monitorare i tuoi modelli, dataset e metriche. Registra anche le variabili di sistema e dell'ambiente, garantendo riproducibilità e un debug agevole per ogni esecuzione. Monitora e visualizza le metriche dei modelli in tempo reale, salva gli iperparametri, i dataset e i checkpoint dei modelli e visualizza le previsioni del tuo modello con i pannelli personalizzati di Comet!
Inoltre, Comet ti aiuta a tenere traccia del tuo lavoro e semplifica la condivisione dei risultati e la collaborazione tra team di qualsiasi dimensione!
YOLOv5 è un ottimo punto di partenza per il tuo percorso nella visione artificiale. Per migliorare le prestazioni del modello e prepararlo per la produzione, dovrai registrare i risultati in uno strumento di monitoraggio degli esperimenti come Comet.
L'integrazione tra Comet e YOLOv5 offre 3 funzionalità principali:
- Funzionalità di registrazione automatica e personalizzata
- Salvataggio di dataset e modelli come artefatti per il debug e la riproducibilità
- Organizzazione della visualizzazione con i pannelli personalizzati di Comet
Questa guida spiega come usare YOLOv5 con Comet.
Allora, sei pronto a monitorare i tuoi esperimenti in tempo reale? Iniziamo!
Per iniziare#
1. Installa Comet#
pip install comet_ml2. Configura le credenziali di Comet#
Esistono due modi per configurare Comet con YOLOv5.
Puoi impostare le credenziali tramite variabili d’ambiente oppure creare un file .comet.config nella directory di lavoro e inserirvi le credenziali.
Variabili d’ambiente#
export COMET_API_KEY=<Your API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'File di configurazione di Comet#
[comet]
api_key=<Your API Key>
project_name=<Your Comet Project Name> # This will default to 'yolov5'3. Esegui lo script di training#
# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.ptEcco fatto!
Comet registrerà automaticamente gli iperparametri, gli argomenti della riga di comando, le metriche di training e quelle di convalida. Puoi visualizzare e analizzare le tue esecuzioni nell’interfaccia di Comet.

Provalo tu stesso!#
Dai un'occhiata a un esempio di esecuzione completata.
O meglio ancora, provalo tu stesso nel notebook Colab di YOLOv5.
Registrazione automatica#
Per impostazione predefinita, Comet registra i seguenti elementi:
Metriche#
- Box Loss, Object Loss e Classification Loss per i dati di training e convalida
- Metriche mAP50, mAP50-95 per i dati di convalida
- Precisione e richiamo per i dati di convalida
Parametri#
- Iperparametri del modello
- Tutti i parametri passati tramite le opzioni della riga di comando
Visualizzazioni#
- Matrice di confusione delle previsioni del modello sui dati di convalida
- Grafici delle curve PR e F1 per tutte le classi
- Diagramma di correlazione delle etichette di classe
Configura la registrazione di Comet#
Puoi configurare Comet per registrare dati aggiuntivi tramite flag della riga di comando passati allo script di training o variabili d’ambiente.
export COMET_MODE=online # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME=<your model name> # Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=<number of allowed images to upload to Comet> # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME=<your checkpoint filename> # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true # Set this to false to disable logging model predictionsRegistrazione dei checkpoint con Comet#
La registrazione dei modelli su Comet è disabilitata per impostazione predefinita. Per abilitarla, passa l’argomento save-period allo script di training. I checkpoint registrati verranno così salvati su Comet secondo l’intervallo specificato da save-period.
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--save-period 1Registrazione delle previsioni del modello#
Per impostazione predefinita, le previsioni del modello (immagini, etichette di ground truth e riquadri di delimitazione) vengono registrate su Comet. Puoi controllare la frequenza di registrazione delle previsioni e delle immagini associate passando l’argomento della riga di comando bbox_interval. Puoi visualizzare le previsioni con il pannello personalizzato di Comet per il rilevamento degli oggetti. Questa frequenza corrisponde a ogni N-esimo batch di dati per epoca. Nell’esempio seguente, registriamo un batch di dati ogni 2 per ciascuna epoca.
Nota: il data loader di convalida di YOLOv5 usa per impostazione predefinita una dimensione del batch pari a 32, quindi dovrai impostare di conseguenza la frequenza di registrazione.
Ecco un progetto di esempio che usa il pannello.
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--bbox_interval 2Controllare il numero di immagini delle previsioni registrate su Comet#
Quando registra le previsioni di YOLOv5, Comet registra anche le immagini associate a ciascun gruppo di previsioni. Per impostazione predefinita, vengono registrate al massimo 100 immagini di convalida. Puoi aumentare o ridurre questo numero usando la variabile d’ambiente COMET_MAX_IMAGE_UPLOADS.
env COMET_MAX_IMAGE_UPLOADS=200 python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--bbox_interval 1Registrazione delle metriche per 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.ptCaricare un dataset negli artefatti di Comet#
Se vuoi archiviare i tuoi dati usando Comet Artifacts, puoi farlo tramite il flag upload_dataset.
Il dataset è organizzato secondo quanto 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 \
--weights yolov5s.pt \
--upload_datasetPuoi trovare il dataset caricato nella scheda Artifacts del tuo Workspace Comet.

Puoi visualizzare un'anteprima dei dati direttamente nell'interfaccia di Comet.

Gli artefatti sono versionati e consentono anche di aggiungere metadati sul dataset. Comet registrerà automaticamente i metadati dal file YAML del dataset.

Usare un Artifact salvato#
Se vuoi usare un dataset dagli artefatti di Comet, imposta la variabile path nel file YAML del dataset in modo che punti al seguente URL della risorsa Artifact.
# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"Quindi passa questo file allo script di training nel modo seguente:
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data artifact.yaml \
--weights yolov5s.ptGli artefatti ti consentono anche di monitorare la provenienza dei dati man mano che attraversano il flusso di lavoro sperimentale. Qui puoi vedere un grafico che mostra tutti gli esperimenti che hanno utilizzato il dataset caricato.

Riprendere un'esecuzione di training#
Se l'esecuzione del training viene interrotta per qualsiasi motivo, ad esempio per una connessione Internet instabile, puoi riprenderla usando il flag resume e il Comet Run Path.
Il Run Path ha il seguente formato comet://<your workspace name>/<your project name>/<experiment id>.
In questo modo l'esecuzione tornerà allo stato in cui si trovava prima dell'interruzione: verrà ripristinato il modello da un checkpoint, saranno ripristinati tutti gli iperparametri e gli argomenti di training e saranno scaricati gli Artifact del dataset Comet, se usati nell'esecuzione originale. L'esecuzione ripresa continuerà a registrare i dati nell'Experiment esistente nell'interfaccia di Comet.
python train.py \
--resume "comet://<your run path>"Ricerca degli iperparametri con Comet Optimizer#
YOLOv5 è integrato anche con Comet Optimizer, così puoi visualizzare facilmente le ricerche degli iperparametri nell'interfaccia di Comet.
Configurare una ricerca con Optimizer#
Per configurare Comet Optimizer, devi creare un file JSON con le informazioni sulla ricerca.
È disponibile un file di esempio 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 alla 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 1Eseguire una ricerca in parallelo#
comet optimizer -j <num_workers> utils/loggers/comet/hpo.py \
utils/loggers/comet/optimizer_config.jsonComet offre molti modi per visualizzare i risultati della sweep. Dai un'occhiata a un progetto con una sweep completata:

Restiamo in contatto#
Inizia a usare la nostra integrazione con Comet per gestire, visualizzare e ottimizzare i tuoi modelli YOLOv5, dalle esecuzioni di training al monitoraggio in produzione.
E, naturalmente, unisciti alla community Ultralytics, un luogo dove fare domande e condividere consigli sul training, la convalida e la distribuzione di YOLOv5.
Scritto da
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.










