Sintonizzati su YOLO Vision 2025!
25 settembre 2025
10:00 — 18:00 BST
Evento ibrido
Yolo Vision 2024

Come utilizzare Ultralytics YOLOv5 con Comet

Il team di Ultralytics

5 minuti di lettura

11 ottobre 2022

Scopri come Ultralytics collabora con Comet per l'ottimizzazione del modello Ultralytics YOLOv5: monitoraggio 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, Comet, sviluppa strumenti che aiutano data scientist, ingegneri e team leader ad accelerare e ottimizzare i modelli di machine learning e deep learning.

Comet è un potente strumento per tracciare modelli, dataset e metriche. Registra anche le variabili di sistema e ambientali per garantire la riproducibilità e un debugging agevole per ogni esecuzione. È come avere un assistente virtuale che sa magicamente quali note conservare. Traccia e visualizza le metriche del modello in tempo reale, salva i tuoi iperparametri, dataset e checkpoint del modello e visualizza le previsioni del tuo modello con i pannelli personalizzati di Comet!

Inoltre, Comet ti assicura di non perdere mai traccia del tuo lavoro e rende facile condividere i risultati e collaborare tra team di tutte le dimensioni!

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

L'integrazione di Comet e YOLOv5 offre 3 funzionalità principali:

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


Questa guida illustrerà come utilizzare YOLOv5 con Comet.

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

Introduzione

1. Installa Comet

Pip install comet_ml

2. Configura le credenziali di Comet

Esistono due modi per configurare Comet con YOLOv5.

Puoi impostare le tue credenziali tramite 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= # Il valore predefinito sarà 'yolov5'


File di configurazione Comet

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

3. Esegui lo script di training

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

Questo è tutto!

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

Esperimenti con YOLOv5 nella dashboard di Comet

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 registrerà i seguenti elementi:

Metriche

  • Box Loss, Object Loss e Classification Loss per i dati di training e validazione
  • Metriche mAP_0.5, mAP_0.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

Configura la registrazione Comet

Comet può essere configurato per registrare dati aggiuntivi tramite 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 per il 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 previsioni di immagini da registrare su 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 se desideri riprendere l'addestramento da un checkpoint diverso. Il valore predefinito è 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Imposta questo se desideri registrare le metriche di addestramento a livello di batch. Il valore predefinito è false.export COMET_LOG_PREDICTIONS=true # Imposta su false per disabilitare la registrazione delle previsioni del modello

Registrazione dei checkpoint con Comet

La registrazione dei modelli su Comet è disabilitata per impostazione predefinita. Per abilitarla, passa l'argomento save-period allo script di addestramento. Questo salverà i checkpoint registrati su 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

Registrazione delle predizioni del modello

Per impostazione predefinita, le predizioni del modello (immagini, etichette ground truth e bounding box) verranno registrate su Comet. È possibile controllare la frequenza delle predizioni registrate e le immagini associate passando l'argomento da riga di comando bbox_interval. Le predizioni possono essere visualizzate utilizzando il pannello personalizzato di Object Detection di Comet. Questa frequenza corrisponde a ogni N-esimo batch di dati per epoca. Nell'esempio seguente, stiamo registrando ogni secondo batch di dati per ogni epoca.

Nota: il caricatore di dati di convalida YOLOv5 utilizzerà per impostazione predefinita una dimensione del batch di 32, quindi sarà 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 coco128.yaml \--weights yolov5s.pt \--bbox_interval 2

Controllo del numero di immagini di predizione registrate su Comet

Quando si registrano le predizioni da YOLOv5, Comet registrerà le immagini associate a ciascun set di predizioni. Per impostazione predefinita, viene registrato un massimo di 100 immagini di convalida. È possibile 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

Utilizzare 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.pt

Caricamento di un set di dati su Comet Artifacts

Se si desidera archiviare i propri dati utilizzando Comet Artifacts, è possibile farlo utilizzando il flag upload_dataset.

Il set di dati è organizzato nel modo descritto nella documentazione di YOLOv5. Il file yaml di configurazione del set di dati 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_dataset

È possibile trovare il set di dati caricato nella scheda Artifacts nel proprio spazio di lavoro Comet

Scheda Comet Artifacts, 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 set di dati.

Registrazione dei metadati dal file YAML in Comet, YOLOv5

Utilizzo di un artefatto salvato

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

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

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

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

Gli Artifact consentono anche di tracciare la derivazione dei dati mentre fluiscono attraverso il flusso di lavoro di sperimentazione. Qui è possibile vedere un grafico che mostra tutti gli esperimenti che hanno utilizzato il set di dati caricato.

Flusso di lavoro di sperimentazione Comet, YOLOv5

Ripresa di un'esecuzione di training

Se l'esecuzione del training viene interrotta per qualsiasi motivo, ad esempio un'interruzione della connessione Internet, è possibile riprenderla utilizzando il flag di ripresa e il percorso di esecuzione di Comet.

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

Questo ripristinerà l'esecuzione allo stato precedente all'interruzione, il che include il ripristino del modello da un checkpoint, il ripristino di tutti gli iperparametri e gli argomenti di training e il download degli Artifact del set di dati Comet se sono stati utilizzati nell'esecuzione originale. L'esecuzione ripresa continuerà a registrare l'Experiment esistente nell'interfaccia utente di Comet.

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

Ricerca di iperparametri con Comet Optimizer

YOLOv5 è anche integrato con Comet's Optimizer, rendendo semplice visualizzare gli sweep degli iperparametri nell'interfaccia utente di Comet.

Configurazione di uno Sweep dell'Optimizer

Per configurare Comet Optimizer, sarà necessario creare un file JSON con le informazioni relative allo 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 si desidera passare argomenti aggiuntivi al proprio sweep, è sufficiente aggiungerli dopo lo script.

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

Esecuzione di 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 del tuo sweep. Dai un'occhiata a un progetto con uno sweep completato qui:

Visualizza i risultati dello sweep in Comet, YOLOv5

Rimani in contatto

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

E, naturalmente, unisciti alla Community di Ultralytics – un luogo dove porre domande e condividere suggerimenti sul training, la convalida e il deployment di YOLOv5.

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis
Link copiato negli appunti