Scopri YOLO26: vision AI di prossima generazione.
Ultralytics
Integrazioni

Addestra e monitora da remoto YOLOv5 di Ultralytics utilizzando ClearML

Esplora la nostra partnership con ClearML per un'esperienza YOLOv5 di Ultralytics migliorata, con integrazione ML senza interruzioni, tracciamento degli esperimenti e molto altro.

TETeam Ultralytics
4 min read
Addestramento e monitoraggio di YOLOv5 con ClearML

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.

ClearML è il nostro nuovo partner: un toolbox open-source progettato per farti risparmiare tempo.

Con la missione di accelerare l'adozione del ML, ClearML rende il ML semplice da integrare in qualsiasi prodotto software e hardware esistente.

Questa integrazione rende ancora più semplice addestrare un modello YOLOv5 e usare il gestore di esperimenti di ClearML per monitorarlo automaticamente. Puoi specificare facilmente un ID di versione del dataset ClearML come input dei dati e verrà utilizzato automaticamente per addestrare il tuo modello.

Link to this sectionPorta il monitoraggio dei tuoi esperimenti al livello successivo#

  • Monitora ogni esecuzione di addestramento di YOLOv5 nel gestore di esperimenti.
  • Gestisci le versioni e accedi facilmente ai tuoi dati di addestramento personalizzati con lo strumento integrato ClearML Data Versioning.
  • Ottieni il miglior mAP possibile usando l'ottimizzazione degli iperparametri di ClearML.
  • Trasforma il tuo modello YOLOv5 appena addestrato in un'API con pochi comandi usando ClearML Serving.

Sta a te decidere quanti di questi strumenti vuoi utilizzare; puoi limitarti al gestore di esperimenti o concatenarli tutti in una pipeline impressionante.

Link to this sectionConfigurazione#

Per tenere traccia dei tuoi esperimenti e dati, ClearML deve comunicare con un server. Hai due opzioni per farlo: o ti registri gratuitamente al ClearML Hosted Service oppure configuri il tuo server, consulta la documentazione per il deployment di ClearML Server.

Anche il server è open-source, quindi se gestisci dati sensibili, non c'è problema!

  1. Installa il pacchetto python clearml: pip install clearml
  2. Connetti l'SDK di ClearML al server creando le credenziali (vai in alto a destra su Impostazioni → Workspace → Crea nuove credenziali), quindi esegui il comando seguente e segui le istruzioni: clearml-init

Ed ecco fatto! Sei pronto per iniziare...

Link to this sectionAddestrare YOLOv5 con ClearML#

Per abilitare il monitoraggio degli esperimenti con ClearML, installa semplicemente il pacchetto pip di ClearML.

pip install clearml

Questo abiliterà l'integrazione con lo script di addestramento di YOLOv5. Ogni esecuzione di addestramento d'ora in avanti verrà catturata e archiviata dal gestore di esperimenti di ClearML. Se vuoi modificare project_name o task_name, vai al nostro logger personalizzato, dove puoi cambiarli: utils/loggers/clearml/clearml_utils.py

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

Questo catturerà:

  • Codice sorgente + modifiche non committate
  • Pacchetti installati
  • (Iper)parametri
  • File del modello (usa --save-period n per salvare un checkpoint ogni n epoche)
  • Output della console
  • Scalari (mAP_0.5, mAP_0.5:0.95, precision, recall, perdite, tassi di apprendimento, ...)
  • Informazioni generali come dettagli della macchina, runtime, data di creazione, ecc.
  • Tutti i grafici prodotti come il correlogramma delle etichette e la matrice di confusione
  • Immagini con bounding box per epoca
  • Mosaico per epoca
  • Immagini di validazione per epoca

Niente male! Ora possiamo visualizzare tutte queste informazioni nell'interfaccia utente di ClearML per avere una panoramica dell'avanzamento del nostro addestramento. Aggiungi colonne personalizzate alla vista tabella (come ad esempio mAP_0.5) in modo da poter ordinare facilmente in base al modello con le prestazioni migliori. Oppure seleziona più esperimenti e confrontali direttamente!

C'è ancora altro che possiamo fare con tutte queste informazioni, come l'ottimizzazione degli iperparametri e l'esecuzione remota, quindi continua a leggere per scoprire come!

Link to this sectionGestione delle versioni del dataset#

Gestire le versioni dei tuoi dati separatamente dal tuo codice è generalmente una buona idea e rende facile acquisire anche l'ultima versione. Questo repository supporta l'inserimento di un ID di versione del dataset e si assicurerà di recuperare i dati se non sono ancora presenti. Oltre a ciò, questo flusso di lavoro salva anche l'ID del dataset utilizzato come parte dei parametri dell'attività, così saprai sempre con certezza quali dati sono stati usati in quale esperimento!

Link to this sectionPrepara il tuo dataset#

Il repository YOLOv5 supporta diversi dataset utilizzando file YAML contenenti le loro informazioni. Per impostazione predefinita, i dataset vengono scaricati nella cartella ../datasets in relazione alla cartella radice del repository. Quindi, se hai scaricato il dataset coco128 usando il link nel file YAML o con gli script forniti da yolov5, otterrai questa struttura di cartelle:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

Ma può essere qualsiasi dataset tu voglia. Sentiti libero di usare il tuo, a patto di mantenere questa struttura di cartelle.

Successivamente, ⚠️copia il file YAML corrispondente nella radice della cartella del dataset⚠️. Questi file YAML contengono le informazioni di cui ClearML avrà bisogno per utilizzare correttamente il dataset. Puoi crearlo anche da solo, ovviamente, basta seguire la struttura degli esempi YAML.

Fondamentalmente, ci servono le seguenti chiavi: path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← HERE!
        |_ LICENSE
        |_ README.txt

Link to this sectionCarica il tuo dataset#

Per inserire questo dataset in ClearML come dataset versionato, vai alla cartella radice del dataset ed esegui il seguente comando:

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .

Il comando clearml-data sync è in realtà un comando abbreviato. Potresti anche eseguire questi comandi uno dopo l'altro:

# Optionally add --parent if you want to base
# this version on another dataset version, so no duplicate files are uploaded!

clearml-data create --name coco128 --project YOLOv5

clearml-data add --files .

clearml-data close

Link to this sectionEsegui l'addestramento usando un dataset ClearML#

Ora che hai un dataset ClearML, puoi usarlo molto semplicemente per addestrare modelli YOLOv5 personalizzati.

python train.py --img 640 --batch 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache

Link to this sectionOttimizzazione degli iperparametri#

Ora che abbiamo i nostri esperimenti e la versione dei dati, è tempo di dare un'occhiata a cosa possiamo costruire sopra!

Usando le informazioni sul codice, i pacchetti installati e i dettagli dell'ambiente, l'esperimento stesso è ora completamente riproducibile. Infatti, ClearML ti consente di clonare un esperimento e persino modificarne i parametri. Possiamo quindi semplicemente rieseguirlo con questi nuovi parametri automaticamente; questo è sostanzialmente ciò che fa l'HPO!

Per eseguire l'ottimizzazione degli iperparametri localmente, abbiamo incluso uno script pre-fatto per te. Assicurati solo che un'attività di addestramento sia stata eseguita almeno una volta, in modo che sia presente nel gestore di esperimenti di ClearML; essenzialmente lo cloneremo e ne cambieremo gli iperparametri.

Dovrai inserire l'ID di questa attività modello nello script che trovi in utils/loggers/clearml/hpo.py e poi eseguirlo. Puoi cambiare task.execute_locally() in task.execute() per inserirlo in una coda di ClearML e far sì che un agente remoto ci lavori sopra invece.

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

Link to this sectionEsecuzione remota (Avanzato)#

Eseguire l'HPO localmente è molto comodo, ma cosa succede se vogliamo eseguire i nostri esperimenti su una macchina remota? Forse hai accesso a una macchina con GPU molto potente in loco, o hai un budget per usare GPU nel cloud. È qui che entra in gioco ClearML Agent.

Dai un'occhiata a cosa può fare l'agente qui:

In breve: ogni esperimento monitorato dal gestore di esperimenti contiene informazioni sufficienti per riprodurlo su una macchina diversa (pacchetti installati, modifiche non committate, ecc.). Quindi un agente ClearML fa esattamente questo: ascolta una coda in attesa di attività in arrivo e, quando ne trova una, ricrea l'ambiente e la esegue continuando a riportare scalari, grafici ecc. al gestore di esperimenti.

Puoi trasformare qualsiasi macchina (una VM cloud, una macchina GPU locale, il tuo laptop) in un agente ClearML eseguendo semplicemente:

clearml-agent daemon --queue [--docker]

Link to this sectionClonazione, modifica e messa in coda#

Con il nostro agente in esecuzione, possiamo dargli del lavoro. Ricordi dalla sezione HPO che possiamo clonare un'attività e modificarne gli iperparametri? Possiamo farlo anche dall'interfaccia!

🪄 Clona l'esperimento facendo clic con il tasto destro

🎯 Modifica gli iperparametri come desideri

⏳ Metti l'attività in coda facendo clic con il tasto destro

Link to this sectionEsecuzione di un'attività da remoto#

Ora puoi clonare un'attività come spiegato sopra, oppure contrassegnare semplicemente il tuo script corrente aggiungendo task.execute_remotely() e, all'esecuzione, verrà inserita in una coda affinché l'agente inizi a lavorarci!

Per eseguire lo script di addestramento di YOLOv5 da remoto, tutto ciò che devi fare è aggiungere questa riga allo script train.py dopo che il logger di ClearML è stato istanziato:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE

Hai domande? Unisciti alla nostra community e lascia la tua domanda oggi stesso!

Explore solutions

Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più
Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più
Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'AI!

Inizia il tuo viaggio con il futuro del machine learning