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

Noi di Ultralytics collaboriamo commercialmente con altre startup per contribuire a finanziare la ricerca e lo sviluppo dei nostri straordinari strumenti open source, come YOLOv5, così da mantenerli gratuiti per tutti. Questo articolo può contenere link affiliati a tali partner.
Il nostro partner più recente, Comet, crea 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 per garantire la riproducibilità e un debug fluido di ogni esecuzione. È come avere un assistente virtuale che sa magicamente quali note conservare. Monitora e visualizza le metriche del modello in tempo reale, salva gli iperparametri, i dataset e i checkpoint del modello e visualizza le predizioni del modello con i Comet Custom Panels!
Inoltre, Comet fa in modo che tu non perda mai di vista il 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 computer vision. Per migliorare le prestazioni del tuo modello e renderlo pronto per la produzione, dovrai registrare i risultati in uno strumento di monitoraggio degli esperimenti come Comet.
L'integrazione di Comet e YOLOv5 offre 3 funzionalità principali:
- Funzionalità di registrazione automatica e personalizzata
- Salvataggio di dataset e modelli come artifact 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 impostarle al suo interno.
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.ptTutto qui!
Comet registrerà automaticamente gli iperparametri, gli argomenti della riga di comando e le metriche di training e validazione. Puoi visualizzare e analizzare le tue esecuzioni nell'interfaccia di Comet.

Provalo tu stesso!#
Dai un'occhiata a un esempio di esecuzione completata qui.
O, ancora meglio, provalo tu stesso in questo Notebook Colab.
Registrazione automatica#
Per impostazione predefinita, Comet registrerà i seguenti elementi:
Metriche#
- Box Loss, Object Loss e Classification Loss per i dati di training e validazione
- Metriche mAP_0.5 e mAP_0.5:0.95 per i dati di validazione
- Precision e Recall per i dati di validazione
Parametri#
- Iperparametri del modello
- Tutti i parametri passati tramite le opzioni della riga di comando
Visualizzazioni#
- Matrice di confusione delle predizioni del modello sui dati di validazione
- Grafici delle curve PR e F1 per tutte le classi
- Correlogramma delle etichette delle classi
Configura la registrazione con Comet#
Comet può essere configurato 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. In questo modo i checkpoint registrati verranno salvati su Comet in base all'intervallo indicato da save-period.
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--save-period 1Registrazione delle predizioni del modello#
Per impostazione predefinita, le predizioni del modello (immagini, etichette di ground truth e riquadri di delimitazione) vengono registrate su Comet. Puoi controllare la frequenza delle predizioni registrate e delle immagini associate passando l'argomento della riga di comando bbox_interval. Le predizioni possono essere visualizzate usando il pannello personalizzato Object Detection di Comet. Questa frequenza corrisponde a ogni N-esimo batch di dati per epoca. Nell'esempio seguente registriamo ogni secondo batch di dati per ciascuna epoca.
Nota: il data loader di validazione di YOLOv5 utilizzerà 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 predizioni registrate su Comet#
Quando registra le predizioni da YOLOv5, Comet registrerà le immagini associate a ciascun insieme di predizioni. Per impostazione predefinita, viene registrato un massimo di 100 immagini di validazione. Puoi aumentare o diminuire 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 a livello di classe#
Usa la variabile d'ambiente COMET_LOG_PER_CLASS_METRICS per registrare mAP, precision, recall 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.ptCaricamento di un dataset negli artifact di Comet#
Se vuoi archiviare i tuoi dati usando gli artifact di Comet, puoi farlo usando 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 in anteprima i dati direttamente nell'interfaccia di Comet.

Gli artifact sono sottoposti a versionamento e supportano anche l'aggiunta di metadati sul dataset. Comet registrerà automaticamente i metadati dal file yaml del dataset.

Usare un artifact salvato#
Se vuoi usare un dataset dagli artifact 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 artifact ti consentono anche di monitorare la provenienza 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 dataset caricato.

Riprendere un'esecuzione di training#
Se la tua esecuzione di training viene interrotta per qualsiasi motivo, ad esempio a causa di una connessione Internet interrotta, 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 verrà ripristinata allo stato precedente all'interruzione, incluso il ripristino del modello da un checkpoint, di tutti gli iperparametri e degli argomenti di training e il download degli artifact del dataset Comet, se utilizzati nell'esecuzione originale. L'esecuzione ripresa continuerà a registrare 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 Optimizer di Comet, semplificando la visualizzazione delle scansioni degli iperparametri nell'interfaccia di Comet.
Configurazione di una scansione di Optimizer#
Per configurare Comet Optimizer, dovrai creare un file JSON con le informazioni sulla scansione.
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 argomenti aggiuntivi alla scansione, 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 scansione 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 scansione. Dai un'occhiata a un progetto con una scansione completata qui:

Resta 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 di Ultralytics, un luogo dove porre domande e condividere suggerimenti sul training, la validazione e il deployment di YOLOv5.









