Scoprite come Ultralytics collabora con Comet per l'ottimizzazione del modello Ultralytics YOLOv5: tracciamento in tempo reale, collaborazione semplificata e riproducibilità migliorata.

Scoprite come Ultralytics collabora con Comet per l'ottimizzazione del modello Ultralytics YOLOv5: tracciamento 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 ultimo partner, Comet, costruisce strumenti che aiutano i data scientist, gli ingegneri e i team leader ad accelerare e ottimizzare i modelli di machine learning e deep learning.
Comet è uno strumento potente per tracciare i 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. Tracciate e visualizzate le metriche del modello in tempo reale, salvate gli iperparametri, i dataset e i checkpoint del modello e visualizzate le previsioni del modello con i pannelli personalizzati di Comet!
Inoltre, Comet garantisce che non si perda mai traccia del proprio lavoro e facilita la condivisione dei risultati e la collaborazione tra team di tutte le dimensioni!
YOLOv5 è un ottimo punto di partenza per il vostro viaggio nella computer vision. Per migliorare le prestazioni del modello e renderlo pronto per la produzione, è necessario registrare i risultati in uno strumento di monitoraggio degli esperimenti come Comet.
L'integrazione tra Comet e YOLOv5 offre 3 caratteristiche principali:
Questa guida spiega come utilizzare YOLOv5 con Comet.
Allora, siete pronti a monitorare i vostri esperimenti in tempo reale? Cominciamo!
Pip installare comet_ml
Esistono due modi per configurare Comet con YOLOv5.
È possibile impostare le credenziali attraverso le variabili d'ambiente o creare un file .comet.config nella propria directory di lavoro e impostarvi le credenziali.
esportare COMET_API_KEY=esportare COMET_PROJECT_NAME= # Questo sarà il valore predefinito 'yolov5'.
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Addestrare YOLOv5s su COCO128 per 5 epochspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt
Ecco fatto!
Comet registra automaticamente gli iperparametri, gli argomenti della riga di comando, le metriche di addestramento e di validazione. È possibile visualizzare e analizzare le esecuzioni nell'interfaccia utente di Comet.
Guardate qui un esempio di una corsa completata.
O meglio, provate voi stessi con questo taccuino Colab.
Per impostazione predefinita, Comet registra i seguenti elementi:
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= #Impostare il nome del modello salvato. Il valore predefinito è yolov5export COMET_LOG_CONFUSION_MATRIX=false # Impostare per disabilitare la registrazione della matrice di confusione di Comet. L'impostazione predefinita è trueexport COMET_MAX_IMAGE_UPLOADS= # Controlla il numero totale di predizioni di immagini da registrare in Comet. L'impostazione predefinita è 100.export COMET_LOG_PER_CLASS_METRICS=true # Imposta per registrare le metriche di valutazione per ogni classe rilevata alla fine dell'addestramento. L'impostazione predefinita è falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Impostare questo valore se si desidera riprendere l'allenamento da un checkpoint diverso. Il valore predefinito è 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Impostare questo valore se si desidera registrare le metriche dell'allenamento a livello di batch. L'impostazione predefinita è false.export COMET_LOG_PREDICTIONS=true # Impostare questo valore su false per disabilitare la registrazione delle previsioni del modello.
La registrazione dei modelli in Comet è disabilitata per impostazione predefinita. Per attivarla, passare l'argomento save-period allo script di addestramento. 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
Per impostazione predefinita, le previsioni del modello (immagini, etichette di verità a terra e caselle di delimitazione) vengono registrate in Comet. È possibile controllare la frequenza delle previsioni registrate e delle immagini associate passando l'argomento bbox_intervalli alla riga di comando. Le previsioni possono essere visualizzate utilizzando il pannello personalizzato Object Detection di Comet. Questa frequenza corrisponde a un batch di dati ogni N per epoca. Nell'esempio che segue, si registra ogni 2º batch di dati per ogni epoca.
Nota: il caricatore di dati di convalida di YOLOv5 ha come impostazione predefinita una dimensione di batch di 32, quindi è necessario 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
Quando si registrano le previsioni di YOLOv5, Comet registra le immagini associate a ciascun set di previsioni. Per impostazione predefinita, vengono registrate al massimo 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 \--pesi yolov5s.pt \--bbox_interval 1
Utilizzare la variabile d'ambiente COMET_LOG_PER_CLASS_METRICS per registrare mAP, precisione, richiamo e f1 per ciascuna classe.
env COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt
Se si desidera memorizzare i dati utilizzando gli artefatti Comet, è possibile 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
Il dataset caricato si trova nella scheda Artefatti dell'area di lavoro Comet.
È possibile visualizzare l'anteprima dei dati direttamente nell'interfaccia utente di Comet.
Gli artefatti sono versionati e supportano anche l'aggiunta di metadati sul set di dati. Comet registrerà automaticamente i metadati dal file yaml del dataset.
Se si desidera utilizzare un set di dati da Comet Artifacts, impostare la variabile path nel file yaml del set di dati in modo che punti al seguente URL della risorsa Artifact.
# contenuto del file artifact.yaml percorso: "comet:///:"
Passare quindi questo file allo script di addestramento nel modo seguente:
python train.py \--img 640 \--batch 16 \-epochs 5 \--data artifact.yaml \--weights yolov5s.pt
Gli artefatti consentono anche di tracciare il percorso dei dati nel flusso di lavoro della sperimentazione. Qui è possibile vedere un grafico che mostra tutti gli esperimenti che hanno utilizzato il set di dati caricato.
Se la corsa di allenamento viene interrotta per qualsiasi motivo, ad esempio per un'interruzione della connessione a Internet, è possibile riprendere la corsa utilizzando il flag di ripresa e il Comet Run Path.
Il percorso di esecuzione ha il seguente formato: comet:////.
Questa operazione ripristina la corsa allo stato precedente all'interruzione, che comprende il ripristino del modello da un checkpoint, il ripristino di tutti gli iperparametri e degli argomenti di addestramento e il download degli artefatti del set di dati Comet se sono stati utilizzati nella corsa originale. La corsa ripresa continuerà a registrare l'Esperimento esistente nell'interfaccia utente di Comet.
python train.py \--resume "comet://"
YOLOv5 è inoltre integrato con l'Optimizer di Comet, rendendo semplice la visualizzazione degli sweep degli iperparametri nell'interfaccia utente di Comet.
Per configurare Comet Optimizer, è necessario 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 si desidera passare altri argomenti allo 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
comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"
Comet offre molti modi per visualizzare i risultati dell'indagine. Date un'occhiata a un progetto con un'indagine completata qui:
Iniziate a utilizzare la nostra integrazione con Comet per gestire, visualizzare e ottimizzare i vostri modelli YOLOv5, dai cicli di formazione al monitoraggio della produzione.
E, naturalmente, entrate a far parte della comunità Ultralytics, un luogo dove porre domande e condividere suggerimenti sulla formazione, la convalida e l'implementazione di YOLOv5.