Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Come addestrare Ultralytics per la segmentazione delle istanze

Scopri come addestrare Ultralytics per la segmentazione delle istanze, dove il modello identifica e separa ogni singolo oggetto utilizzando maschere a livello di pixel.

Grazie ai recenti progressi tecnologici, molti sistemi intelligenti che svolgono un ruolo silenzioso ma significativo nella nostra vita sono alimentati dall'intelligenza artificiale. Ad esempio, quando un'auto passa con il semaforo rosso e una telecamera registra automaticamente l'infrazione, o quando un sistema automatizzato di controllo qualità individua un difetto di fabbricazione su una linea di produzione, l'intelligenza artificiale sta lavorando dietro le quinte.

In particolare, una branca dell'IA nota come visione artificiale consente alle macchine di interpretare e comprendere immagini e video. La visione artificiale consente ai sistemi di riconoscere oggetti, track e analizzare dettagli visivi in tempo reale, rendendola essenziale per applicazioni quali il monitoraggio del traffico, l'ispezione industriale e la robotica.

Queste funzionalità sono rese possibili grazie a modelli di visione artificiale come Ultralytics , che supporta una varietà di attività di visione, tra cui il rilevamento di oggetti e la segmentazione di istanze. Mentre il rilevamento di oggetti identifica gli oggetti utilizzando semplici riquadri di delimitazione, la segmentazione di istanze va oltre, delineando ogni oggetto a livello di pixel, consentendo risultati più accurati e affidabili in scenari reali.

Fig. 1. Segmentazione degli oggetti in un'immagine utilizzando YOLO26

Modelli come YOLO26 sono preaddestrati e in grado di segment oggetti segment come persone, automobili e animali fin dal primo utilizzo. Tuttavia, per applicazioni più specifiche, possono anche essere addestrati su misura. In altre parole, i modelli possono imparare a riconoscere l'aspetto degli oggetti e a delinearne i contorni con precisione.

In questo articolo vedremo come addestrare Ultralytics in modo personalizzato per la segmentazione delle istanze. Cominciamo!

Cos'è la segmentazione di istanza?

Prima di addentrarci nei modelli di addestramento, facciamo un passo indietro e cerchiamo di capire cosa significa effettivamente segmentazione delle istanze.

La segmentazione delle istanze è un'attività di visione artificiale che consente a un modello di individuare ogni singolo oggetto in un'immagine e di delinearne la forma esatta. Anziché limitarsi a identificare la presenza di un oggetto, il modello esamina ogni pixel dell'immagine e decide se appartiene a un oggetto specifico. 

Ciò significa che è in grado di separare gli oggetti anche quando sono sovrapposti o molto vicini tra loro. Un concetto chiave che rende facile visualizzare la segmentazione delle istanze è la maschera. 

Una maschera è un contorno a livello di pixel che copre solo l'area di un oggetto. Puoi immaginarla come se colorassi l'oggetto con un evidenziatore lasciando tutto il resto intatto. 

Ogni oggetto ha una propria maschera, che consente al modello di distinguere un oggetto da un altro, anche se sono dello stesso tipo, come due automobili o due persone in piedi una accanto all'altra. 

Fig. 2. Uno sguardo alla segmentazione delle istanze

Per comprendere meglio cosa sia la segmentazione delle istanze, possiamo confrontarla con altre comuni attività di visione artificiale. Il rilevamento degli oggetti utilizza i riquadri di delimitazione, ovvero semplici rettangoli disegnati attorno agli oggetti. I riquadri di delimitazione sono veloci e utili, ma non catturano la forma esatta di un oggetto. 

Nel frattempo, la segmentazione semantica etichetta ogni pixel dell'immagine in base alla categoria, ma non distingue tra oggetti separati della stessa classe. La segmentazione delle istanze combina il meglio di entrambi gli approcci identificando le categorie di oggetti e assegnando una maschera separata a ogni singolo oggetto.

Poiché la segmentazione delle istanze fornisce informazioni così dettagliate, è particolarmente utile in applicazioni reali come il controllo automatico della qualità, l'imaging medico e la robotica. Le attività che richiedono misurazioni precise, confini accurati o separazione degli oggetti possono trarre vantaggio da questa comprensione a livello di pixel.

Ultralytics supporta la segmentazione delle istanze 

Ultralytics è un modello di visione artificiale all'avanguardia, end-to-end e privo di soppressione non massima (NMS), progettato per gestire in modo rapido ed efficiente attività di visione nel mondo reale. Appartiene allaYOLO di modelli di rilevamento Ultralytics YOLO , in grado di elaborare immagini e video in tempo reale fornendo risultati accurati. 

YOLO26 supporta molteplici attività di visione all'interno di un unico framework, tra cui il rilevamento di oggetti, la stima della posa, la classificazione delle immagini, il rilevamento di riquadri orientati (obb ) e la segmentazione delle istanze. 

YOLO26 è pre-addestrato, il che significa che ha già imparato a riconoscere oggetti comuni come persone, veicoli e oggetti di uso quotidiano da grandi set di dati ampiamente utilizzati come il COCO e il ImageNet . È possibile iniziare a utilizzare il modello immediatamente senza alcun addestramento aggiuntivo.

Tuttavia, quando la tua applicazione coinvolge oggetti unici, ambienti specifici o condizioni di illuminazione insolite, l'addestramento di modelli personalizzati può migliorare significativamente i risultati. Addestrando YOLO26 sulle tue immagini etichettate, puoi insegnare al modello esattamente cosa cercare e come delineare gli oggetti in modo più accurato per il tuo caso d'uso specifico.

Questo processo è noto anche come fine-tuning. Anziché addestrare un modello da zero, il fine-tuning parte da un modello YOLO26 preaddestrato e lo adatta delicatamente utilizzando i dati dell'utente. Poiché il modello comprende già i modelli visivi generali come bordi, forme e texture, richiede un numero molto inferiore di immagini etichettate e molto meno tempo per apprendere gli oggetti specifici dell'utente.

In poche parole, la messa a punto è più veloce, più efficiente e più accessibile rispetto all'addestramento di un modello partendo da zero. L'addestramento personalizzato YOLO26 è un'opzione pratica anche per i principianti o i team che lavorano con dati e risorse di calcolo limitati.

Esplorazione delle applicazioni di segmentazione delle istanze YOLO26

Quindi, in quali situazioni la segmentazione delle istanze può essere efficace? In situazioni in cui è importante distinguere gli oggetti e comprenderne le forme esatte, specialmente quando gli oggetti sono affollati o si sovrappongono.

Ecco alcuni flussi di lavoro comuni in cui la segmentazione delle istanze fa davvero la differenza:

  • Immagini aeree e riprese con droni: questa funzione consente ai droni di separare oggetti quali edifici, veicoli e vegetazione nelle immagini aeree per la mappatura, l'ispezione e il rilevamento.
  • Analisi sportiva: la segmentazione delle istanze aiuta ad analizzare i movimenti e le interazioni dei giocatori separando i singoli atleti dallo sfondo durante le partite o le sessioni di allenamento.
  • Monitoraggio di costruzioni e infrastrutture: aiuta a identificare elementi strutturali, crepe o aree danneggiate in edifici, ponti e strade per la pianificazione della manutenzione.
  • Assistenza sanitaria e imaging medico: la segmentazione delle istanze consente di delineare con precisione cellule, tessuti o strumenti medici, favorendo analisi e diagnosi più accurate.
  • Agricoltura e monitoraggio ambientale: è in grado di identificare e separare colture, frutti o malattie delle piante, facilitando la stima delle rese e l'applicazione di trattamenti mirati.
Fig. 3. Esempio di segmentazione delle erbacce utilizzando YOLO26 (Fonte)

Come funziona l'addestramento personalizzato YOLO26 per la segmentazione delle istanze

Passiamo ora a discutere di come funziona la formazione personalizzata. Sebbene la formazione di un modello possa sembrare un argomento tecnico, il processo complessivo è piuttosto semplice.

È possibile preparare le immagini, etichettare gli oggetti che si desidera che il modello apprenda, configurare un piccolo file di impostazioni e quindi addestrare YOLO26 utilizzando il Python Ultralytics . IlPython Ultralytics è una libreria software che fornisce strumenti pronti all'uso per l'addestramento, il test e l'implementazione YOLO senza dover costruire tutto da zero.

Passaggio 1: preparare il set di dati personalizzato

Il primo passo consiste nel preparare il set di dati di segmentazione personalizzato. Un set di dati è semplicemente una raccolta di immagini che mostrano gli oggetti che si desidera che il modello apprenda. 

Cerca di includere immagini che riflettano condizioni reali, come diverse angolazioni, illuminazione, sfondi e dimensioni degli oggetti. Più le immagini sono varie, migliori saranno le prestazioni del modello.

Per la segmentazione delle immagini, ad esempio, sono necessarie anche delle annotazioni. L'annotazione consiste nell'etichettare gli oggetti presenti in ciascuna immagine in modo che il modello sappia cosa imparare. Anziché disegnare semplici riquadri, disegnerete contorni dettagliati (poligoni) attorno a ciascun oggetto per contrassegnarne la forma esatta. Questi contorni diventano le maschere che il modello impara a prevedere.

Esistono diversi strumenti di annotazione open source che è possibile utilizzare per creare queste etichette. Molti di questi strumenti offrono interfacce intuitive che consentono di caricare immagini e disegnare i contorni degli oggetti direttamente su di esse. 

Una volta che le immagini e le annotazioni sono pronte, è possibile organizzarle in cartelle di addestramento e convalida. Una suddivisione tipica è l'80% delle immagini per l'addestramento e il 20% per la convalida, anche se è comune anche il 70% per l'addestramento e il 30% per la convalida, a seconda delle dimensioni del set di dati. Il set di addestramento insegna al modello, mentre il set di convalida viene utilizzato per misurare le sue prestazioni su immagini che non ha mai visto prima.

È importante mantenere questa suddivisione equilibrata e garantire che entrambe le cartelle contengano una varietà di esempi. Un set di dati pulito e ben etichettato, con una suddivisione adeguata tra addestramento e convalida, costituisce la base di un solido modello di segmentazione delle istanze.

Passaggio 2: Creare un file YAML del set di dati

Dopo aver preparato le immagini e le annotazioni, il passo successivo consiste nel creare un file YAML del set di dati. Questo file evidenzia dove si trova il set di dati e quali classi di oggetti il modello deve apprendere durante l'addestramento.

In questo file è possibile definire la directory principale del set di dati, i percorsi delle cartelle delle immagini di addestramento e convalida e l'elenco dei nomi delle classi. I nomi delle classi devono essere elencati nello stesso ordine dei numeri di classe utilizzati nei file di annotazione, in modo che tutto corrisponda correttamente.

Per qualsiasi domanda sul formato esatto, è possibile consultare la Ultralytics ufficiale Ultralytics per ulteriori dettagli. 

Passaggio 3: installare ilPython Ultralytics

Ora che il set di dati e il file YAML sono pronti, il passo successivo è installare ilPython Ultralytics . 

Questo pacchetto include gli strumenti necessari per addestrare, convalidare, eseguire inferenze ed esportare modelli YOLO26. Offre un modo semplificato per lavorare con YOLO senza dover creare da zero complesse pipeline di addestramento.

Prima di installare ilPython Ultralytics , è importante anche scegliere dove si desidera eseguire il codice. È possibile lavorare con il Ultralytics in diversi ambienti di sviluppo, come ad esempio:

  • Interfaccia a riga di comando (CLI): è un ambiente basato su testo in cui si interagisce con il computer digitando comandi. Invece di fare clic sui pulsanti o navigare nei menu come si farebbe in un'interfaccia grafica, si immettono istruzioni scritte per eseguire programmi e svolgere attività direttamente.
  • Jupyter Notebooks: un ambiente interattivo in cui è possibile scrivere ed eseguire codice in piccole sezioni e vedere immediatamente il risultato. È utile per la sperimentazione e l'apprendimento.
  • Google : una piattaforma notebook basata su cloud che non richiede alcuna installazione locale e fornisce accesso opzionale alle unità di elaborazione grafica (GPU). Spesso questa è l'opzione più semplice per i principianti.

Una volta scelto l'ambiente, è possibile installare ilPython Ultralytics . Per installarlo, eseguire il seguente comando:

pip install ultralytics

Se utilizzi un ambiente basato su notebook come Google o Jupyter Notebook, aggiungi un punto esclamativo all'inizio del comando. In caso di problemi di installazione, puoi consultare la Ultralytics o la guida alla risoluzione dei problemi per soluzioni comuni e suggerimenti sulla configurazione dell'ambiente. 

Dopo l'installazione, sarai pronto per caricare un modello di segmentazione YOLO26 preaddestrato e iniziare l'addestramento.

Passaggio 4: Addestrare YOLO26 per la segmentazione delle istanze

Prima di iniziare l'addestramento, dovrai scegliere una dimensione del modello. I modelli YOLO26 sono disponibili in diverse dimensioni: Nano (n), Small (s), Medium (m), Large (l) ed Extra Large (x). 

I modelli più piccoli si addestrano più rapidamente e funzionano in modo più efficiente sulle unità di elaborazione centrale (CPU) o sui dispositivi periferici, mentre i modelli più grandi offrono in genere una maggiore precisione, ma richiedono più memoria e traggono vantaggio GPU . Se hai appena iniziato o lavori con hardware limitato, la versione Nano (YOLO26n) è una scelta pratica.

Una volta selezionata la dimensione del modello, il passo successivo consiste nel caricare un modello di segmentazione preaddestrato e iniziare ad addestrarlo sul proprio set di dati personalizzato. A tal fine, è necessario specificare il file del modello preaddestrato, il percorso del file YAML del set di dati, il numero di epoche e la dimensione dell'immagine, come mostrato di seguito. 

from ultralytics import YOLO

model = YOLO(""yolo26n-seg.pt")

results = model.train(data="path/to/file.yaml", epochs=100, imgsz=640)

Il numero di epoche determina quante volte il modello esegue l'intero set di dati di addestramento. Ad ogni epoca, il modello effettua previsioni, le confronta con le annotazioni corrette, calcola gli errori e aggiorna i propri parametri interni per migliorare le prestazioni.

Se l'addestramento inizia correttamente, vedrai la configurazione del modello, la scansione del set di dati e l'avanzamento dell'addestramento visualizzati nel tuo terminale o notebook. Man mano che l'addestramento prosegue, i valori di perdita e le metriche di valutazione verranno aggiornati dopo ogni epoca, mostrando come il modello sta migliorando nel tempo.

Passaggio 5: valutare le prestazioni del modello personalizzato

Una volta completato il processo di addestramento, è possibile esaminare e convalidare le metriche di prestazione del modello. In Google , è possibile navigare nella cartella "runs", quindi nella cartella "segmente infine nella cartella "train", dove si trovano i log che mostrano gli indicatori chiave di prestazione.

Per gli utenti che lavorano in un Python , i risultati dell'addestramento vengono salvati per impostazione predefinita nella directory "runs/train/" all'interno della directory di lavoro corrente. Ogni esecuzione dell'addestramento crea una nuova sottodirectory, ad esempio runs/train/exp o runs/train/exp2, dove è possibile trovare i log, i pesi salvati e altri output relativi a quell'esperimento.

Se utilizzi la CLI, puoi accedere e gestire questi risultati utilizzando il comando "yolo . Questo comando ti consente di visualizzare o modificare i percorsi e le configurazioni relativi ai log di addestramento e ai dettagli degli esperimenti.

Tra i risultati salvati, troverai anche i grafici generati durante l'addestramento. Questi grafici mostrano come il modello è migliorato nel tempo. Ad esempio, mostrano come la perdita è diminuita man mano che il modello ha imparato e come le metriche di valutazione quali precisione, richiamo e precisione media sono aumentate nel corso delle epoche.

Fig. 4. Tipi di grafici che è possibile analizzare per valutare il proprio modello (Fonte)

Queste tendenze visive possono aiutarti a capire se il modello è stato addestrato con successo e quanto è migliorato dall'inizio alla fine dell'addestramento. Esaminando sia le metriche numeriche che i grafici, potrai avere un quadro più chiaro delle prestazioni del tuo modello di segmentazione delle istanze prima di passare al test con nuove immagini.

Passaggio 6: Testare il modello ed eseguire inferenze

Dopo aver convalidato il modello, il passaggio finale consiste nel testarlo su nuove immagini. Questo processo è chiamato inferenza, che significa semplicemente utilizzare il modello addestrato per effettuare previsioni su dati non visti.

È possibile eseguire l'inferenza in Python segue:

results = model.predict("path/to/image.jpg", save=True, conf=0.3)

In questo esempio, "path/to/image.jpg" può essere sostituito con il percorso dell'immagine che si desidera testare. 

L'impostazione "save=True" indica al modello di generare e memorizzare una nuova immagine che includa le maschere di segmentazione previste disegnate sull'immagine originale. 

L'impostazione "conf=0.3" controlla la soglia di confidenza, il che significa che il modello mostrerà solo le previsioni che ritiene corrette con una confidenza minima del 30%. Abbassando questo valore è possibile visualizzare un numero maggiore di rilevamenti, mentre aumentandolo il modello diventerà più selettivo.

Dopo aver eseguito il comando, il modello crea una nuova cartella all'interno della directory runs dove salva l'immagine di output. È possibile aprire l'immagine salvata per verificare visivamente quanto bene le maschere di segmentazione seguono i contorni degli oggetti e se gli oggetti sovrapposti sono separati correttamente.

Testare il modello su immagini, sfondi e condizioni di illuminazione diversi può aiutarti a comprendere meglio come funziona al di fuori del set di dati di addestramento. Una volta che i risultati appaiono coerenti e accurati, il modello è pronto per essere esportato e implementato.

Passaggio 7: esportare e distribuire il modello

Dopo aver testato il modello e averne verificato il corretto funzionamento, l'ultimo passo consiste nell'esportarlo e implementarlo. L'esportazione converte il modello YOLO26 addestrato in un formato che può essere eseguito in diversi ambienti, come server di produzione, dispositivi edge o applicazioni mobili.

Ultralytics diversi formati di esportazione, consentendoti di scegliere quello più adatto alla tua configurazione di implementazione. Ad esempio, puoi esportare in ONNX un'ampia compatibilità tra piattaforme, TensorRT GPU ottimizzate su NVIDIA o OpenVINO un'efficiente implementazione CPU su Intel . Queste integrazioni semplificano l'esecuzione del modello al di fuori dell'ambiente di formazione e garantiscono prestazioni in tempo reale elevate.

È possibile esportare il modello in Python il seguente comando:

model.export(format="onnx")

Questo comando converte il modello addestrato nel ONNX . È possibile sostituire "onnx" con altri formati supportati a seconda delle esigenze di distribuzione.

Una volta esportato, il modello può essere integrato in applicazioni quali servizi web, sistemi di visione integrati, piattaforme robotiche o sistemi di ispezione industriale. A questo punto, il modello di segmentazione delle istanze YOLO26 personalizzato può passare dalla fase sperimentale a quella di implementazione nel mondo reale.

Punti chiave

L'addestramento personalizzato Ultralytics per la segmentazione delle istanze offre la flessibilità necessaria per creare un modello che si adatti perfettamente al proprio caso d'uso specifico. Preparando un set di dati chiaro, configurando il file YAML, addestrando il modello con pesi di segmentazione preaddestrati e verificando i risultati, è possibile insegnare al modello a delineare con precisione ogni oggetto a livello di pixel. Una volta testato ed esportato, il modello YOLO26 può passare dalla fase di sviluppo ad applicazioni multiscala nel mondo reale.

Entra a far parte della nostra community e dai un'occhiata al nostro repository GitHub per scoprire di più sull'IA. Se desideri realizzare il tuo progetto di IA visiva, dai un'occhiata alle nostre opzioni di licenza. Scopri di più sulle applicazioni come l'IA nel settore sanitario e l'IA visiva nel settore retail visitando le nostre pagine dedicate alle soluzioni.

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis