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

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 potrebbe contenere link di affiliazione a quei partner.
Il nostro nuovo partner, Comet, crea strumenti che aiutano data scientist, ingegneri e team leader ad accelerare e ottimizzare i modelli di machine learning e deep learning.
Comet è uno strumento potente per tracciare i tuoi modelli, dataset e metriche. Registra persino le variabili di sistema e di ambiente per garantire la riproducibilità e una facile fase di debugging per ogni singola esecuzione. È come avere un assistente virtuale che sa magicamente quali appunti conservare. Traccia e visualizza le metriche del modello in tempo reale, salva i tuoi iperparametri, dataset e checkpoint del modello, e visualizza le predizioni del modello con i Comet Custom Panels!
Inoltre, Comet ti assicura di non perdere mai traccia del tuo lavoro e facilita la condivisione dei risultati e la collaborazione tra team di ogni 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 tracciamento degli esperimenti come Comet.
L'integrazione tra Comet e YOLOv5 offre 3 funzionalità principali:
- Funzionalità di logging automatico e personalizzato
- Salvataggio di dataset e modelli come artefatti per il debugging e la riproducibilità
- Organizzazione della tua visualizzazione con i pannelli personalizzati di Comet
Questa guida spiegherà come utilizzare YOLOv5 con Comet.
Allora, sei pronto a tracciare i tuoi esperimenti in tempo reale? Cominciamo!
Link to this sectionPer iniziare#
Link to this sectionInstalla Comet#
pip install comet_mlLink to this sectionConfigura le credenziali di Comet#
Ci sono 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 impostarvi le credenziali.
Link to this sectionVariabili d'ambiente#
export COMET_API_KEY=<Your API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'Link to this sectionFile di configurazione di Comet#
[comet]
api_key=<Your API Key>
project_name=<Your Comet Project Name> # This will default to 'yolov5'Link to this sectionEsegui lo script di addestramento#
# 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 i tuoi iperparametri, gli argomenti della riga di comando e le metriche di addestramento e validazione. Puoi visualizzare e analizzare le tue esecuzioni nell'interfaccia utente di Comet.

Link to this sectionProvalo tu stesso!#
Dai un'occhiata a un esempio di un'esecuzione completata qui.
O ancora meglio, provalo tu stesso in questo Colab Notebook.
Link to this sectionLogging automatico#
Per impostazione predefinita, Comet registrerà i seguenti elementi:
Link to this sectionMetriche#
- Box Loss, Object Loss e Classification Loss per i dati di addestramento e validazione
- Metriche mAP_0.5, mAP_0.5:0.95 per i dati di validazione
- Precision e Recall per i dati di validazione
Link to this sectionParametri#
- Iperparametri del modello
- Tutti i parametri passati tramite le opzioni della riga di comando
Link to this sectionVisualizzazioni#
- Matrice di confusione delle predizioni del modello sui dati di validazione
- Grafici per le curve PR e F1 per tutte le classi
- Correlogramma delle etichette di classe
Link to this sectionConfigurare il logging di Comet#
Comet può essere configurato per registrare dati aggiuntivi tramite flag della riga di comando passati allo script di addestramento 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 predictionsLink to this sectionLogging dei checkpoint con Comet#
Il logging dei modelli su Comet è disabilitato per impostazione predefinita. Per abilitarlo, 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 1Link to this sectionLogging delle predizioni del modello#
Per impostazione predefinita, le predizioni del modello (immagini, etichette ground truth e bounding box) verranno registrate su Comet. Puoi controllare la frequenza delle predizioni registrate e le relative immagini passando l'argomento della riga di comando bbox_interval. Le predizioni possono essere visualizzate utilizzando il pannello personalizzato Object Detection di Comet. Questa frequenza corrisponde all'N-esimo batch di dati per epoca. Nell'esempio seguente, registriamo ogni secondo batch di dati per ogni epoca.
Nota: Il data loader di validazione di YOLOv5 userà per impostazione predefinita una dimensione del batch di 32, quindi dovrai impostare la frequenza di logging 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 2Link to this sectionControllo 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, vengono registrate al massimo 100 immagini di validazione. Puoi aumentare o diminuire questo numero utilizzando 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 1Link to this sectionLogging 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.ptLink to this sectionCaricamento di un dataset su Comet Artifacts#
Se desideri archiviare 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 \
--weights yolov5s.pt \
--upload_datasetPuoi trovare il dataset caricato nella scheda Artifacts nel tuo Workspace Comet

Puoi visualizzare in anteprima i dati direttamente nell'interfaccia utente di Comet.

Gli artefatti sono dotati di versionamento e supportano anche l'aggiunta di metadati sul dataset. Comet registrerà automaticamente i metadati dal tuo file yaml del dataset.

Link to this sectionUtilizzo di un artefatto salvato#
Se vuoi utilizzare un dataset da Comet Artifacts, imposta la variabile del percorso nel tuo 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 al tuo script di addestramento nel seguente modo:
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data artifact.yaml \
--weights yolov5s.ptGli artefatti ti consentono anche di tracciare la provenienza dei dati man mano che fluiscono attraverso il tuo flusso di lavoro di sperimentazione. Qui puoi vedere un grafico che ti mostra tutti gli esperimenti che hanno utilizzato il tuo dataset caricato.

Link to this sectionRipresa di un'esecuzione di addestramento#
Se la tua esecuzione di addestramento viene interrotta per qualsiasi motivo, ad esempio una connessione Internet interrotta, puoi riprendere l'esecuzione utilizzando il flag resume e il percorso dell'esecuzione Comet (Comet Run Path).
Il Run Path ha il seguente formato comet://<your workspace name>/<your project name>/<experiment id>.
Ciò ripristinerà l'esecuzione allo stato precedente l'interruzione, il che include il ripristino del modello da un checkpoint, il ripristino di tutti gli iperparametri e gli argomenti di addestramento, e il download degli Artefatti del dataset di Comet se sono stati utilizzati nell'esecuzione originale. L'esecuzione ripresa continuerà a registrare i dati nell'Esperimento esistente nell'interfaccia utente di Comet.
python train.py \
--resume "comet://<your run path>"Link to this sectionRicerca degli iperparametri con il Comet Optimizer#
YOLOv5 è anche integrato con il Comet Optimizer, rendendo semplice visualizzare le scansioni (sweep) degli iperparametri nell'interfaccia utente di Comet.
Link to this sectionConfigurazione di una scansione dell'ottimizzatore#
Per configurare il 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 desideri passare argomenti aggiuntivi alla tua 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 1Link to this sectionEsecuzione di 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 tua scansione. Dai un'occhiata a un progetto con una scansione completata qui:

Link to this sectionRimani in contatto#
Inizia a utilizzare la nostra integrazione con Comet per gestire, visualizzare e ottimizzare i tuoi modelli YOLOv5, dalle esecuzioni di addestramento al monitoraggio in produzione.
E, naturalmente, unisciti alla Community di Ultralytics – un luogo dove porre domande e condividere suggerimenti su addestramento, validazione e deployment di YOLOv5.






