Scopri cos'è la segmentazione delle istanze, come funziona, come si usa in varie applicazioni di computer vision e quale impatto può avere.
Le applicazioni di computer vision stanno diventando sempre più comuni nella nostra vita quotidiana, dalle telecamere per il traffico che monitorano le condizioni stradali ai sistemi di self-checkout nei negozi. Consentendo alle macchine di comprendere i dati visivi in modo simile agli esseri umani, la Vision AI sta avendo un impatto in una serie di settori.
Molte di queste applicazioni si basano sul rilevamento degli oggetti, un'attività di computer vision che posiziona dei riquadri di delimitazione intorno agli oggetti chiave nelle immagini. Anche se questo approccio spesso funziona bene, alcune soluzioni di analisi delle immagini richiedono una precisione ancora maggiore.
Ad esempio, la diagnostica per immagini in campo medico richiede molto di più del semplice rilevamento di un tumore: è fondamentale delinearne la forma esatta. Allo stesso modo, nella robotica, le macchine devono riconoscere i contorni esatti di un oggetto per afferrarlo correttamente. Per affrontare queste sfide, la segmentazione delle istanze offre una soluzione più precisa.
La segmentazione delle istanze è un'attività di computer vision progettata per supportare i casi d'uso in cui l'individuazione degli oggetti non è sufficiente, ma fornisce una precisione a livello di pixel. Modelli di visione artificiale come Ultralytics YOLO11 possono essere utilizzati per applicare facilmente la segmentazione delle istanze a immagini e video.
In questa guida spiegheremo come funziona la segmentazione delle istanze, le sue applicazioni e come Ultralytics YOLO11 può essere addestrato in modo personalizzato per attività di segmentazione specifiche.
Supponiamo che ci sia una foto di gruppo di persone vicine. Il rilevamento degli oggetti può aiutare a disegnare dei riquadri intorno a ciascuna persona, ma non ci dice la loro forma esatta.
La segmentazione delle istanze, invece, è simile a un'attenta tracciatura intorno a ogni persona in modo da poterne vedere l'intera sagoma, anche se si sovrappone. Invece di segnare semplicemente il punto in cui si trova un oggetto con un riquadro, identifica la forma esatta di ogni oggetto a livello di pixel, rendendo più facile la comprensione di immagini complesse.
Il risultato è una maschera dettagliata che riempie la forma di un oggetto, individuando esattamente i pixel che ne fanno parte. Questo livello di precisione è utile in molte applicazioni del mondo reale in cui è importante capire la forma esatta e i confini degli oggetti.
Esplorando la segmentazione delle istanze, potresti imbatterti nel concetto di segmentazione semantica.
Entrambe le tecniche aiutano i computer a comprendere le immagini a livello di pixel, ma hanno scopi diversi. La segmentazione semantica etichetta ogni pixel in base alla sua categoria, raggruppando tutti gli oggetti dello stesso tipo. Ad esempio, in un'immagine con più automobili, la segmentazione semantica le contrassegnerebbe tutte come "auto" senza distinguere i singoli veicoli.
La segmentazione delle istanze, invece, fa un passo avanti identificando ogni oggetto separatamente. Assegna etichette uniche alle singole istanze e crea maschere precise intorno alle loro forme. Quindi, nella stessa immagine, la segmentazione delle istanze non si limiterebbe a etichettare tutto come "auto", ma riconoscerebbe e delineerebbe ogni auto singolarmente.
La differenza principale tra i due è che la segmentazione semantica raggruppa gli oggetti per categoria, mentre la segmentazione per istanza distingue ogni oggetto come un'entità unica con confini chiari. La scelta di quale attività utilizzare dipende dall'applicazione specifica: se è sufficiente sapere cosa c'è in un'immagine o se è importante differenziare i singoli oggetti.
Al giorno d'oggi esistono diversi modelli di segmentazione delle istanze a disposizione della comunità di Vision AI. Alcuni sono più veloci, altri più precisi e altri ancora più facili da usare.
Queste opzioni, pur essendo utili, possono portare alla domanda: qual è quella giusta da utilizzare per un compito specifico? Tra le opzioni disponibili, i modelli Ultralytics YOLO sono piuttosto popolari perché si concentrano sulla velocità e sull'accuratezza.
Inoltre, questi modelli si sono evoluti in modo significativo nel corso degli anni. Ad esempio, Ultralytics YOLOv5 ha semplificato l'implementazione utilizzando framework come PyTorch, rendendo la Vision AI avanzata accessibile a un pubblico più ampio senza richiedere una profonda competenza tecnica.
Sulla base di questo successo, Ultralytics YOLOv8 ha introdotto un supporto migliorato per le attività di computer vision come la segmentazione delle istanze, la stima della posa e la classificazione delle immagini.
Ora YOLO11 porta le prestazioni a un nuovo livello. Raggiunge una precisione media superiore (mAP) sul set di dati COCO con il 22% di parametri in meno rispetto a YOLOv8m, il che significa che può riconoscere gli oggetti in modo più preciso utilizzando meno risorse.
In poche parole, YOLO11 offre un'accuratezza all'avanguardia senza compromettere l'efficienza, rendendolo un vero e proprio cambiamento sul campo.
Quindi, analizziamo come funziona di solito la segmentazione delle istanze. I vecchi modelli di computer vision utilizzano un approccio in due fasi.
Per prima cosa, rilevano gli oggetti disegnando dei riquadri di delimitazione intorno ad essi. Poi, generano una maschera a livello di pixel per delineare la forma esatta di ogni oggetto. Un esempio ben noto è Mask R-CNN, che si basa sui modelli di rilevamento degli oggetti aggiungendo una fase di predizione della maschera. Sebbene questo metodo sia efficace, può essere lento perché elabora l'immagine in più fasi, rendendo più difficili le applicazioni in tempo reale.
Nel frattempo, modelli come YOLO11 elaborano le immagini in una sola volta, prevedendo contemporaneamente i riquadri di delimitazione degli oggetti e le maschere di segmentazione delle istanze. Questo approccio semplificato lo rende molto più veloce, pur mantenendo un'elevata precisione. Di conseguenza, è particolarmente utile per applicazioni in tempo reale come la guida autonoma, l'analisi video e la robotica, dove velocità e precisione sono fondamentali.
YOLO11 viene fornito come modello pre-addestrato. È stato addestrato sul set di dati COCO-Seg, che comprende oggetti di uso quotidiano per la segmentazione. Tuttavia, il pacchetto Ultralytics Python supporta l'addestramento personalizzato, essenziale per le applicazioni specializzate che richiedono la segmentazione di oggetti unici.
Perché è importante la formazione personalizzata o la messa a punto di un modello? La formazione personalizzata sfrutta l'apprendimento per trasferimento basandosi sulle conoscenze già incorporate nei modelli pre-addestrati. Invece di partire da zero, adatta un modello esistente a nuovi compiti utilizzando set di dati più piccoli e meno risorse di calcolo, il tutto mantenendo un'elevata precisione.
Ecco un'analisi più approfondita delle fasi di messa a punto di YOLO11 per la segmentazione:
La segmentazione delle istanze può essere utilizzata per risolvere le sfide del mondo reale, aiutando le macchine a vedere e comprendere gli oggetti in modo più accurato. Dal miglioramento dell'automazione alla protezione dell'ambiente, svolge un ruolo fondamentale in molti campi. Vediamo alcuni esempi di come sta avendo un impatto.
La segmentazione delle istanze può essere una parte fondamentale per garantire la sicurezza e l'efficienza nei cantieri. Ad esempio, può essere utilizzata per monitorare i macchinari pesanti.
YOLO11 può essere ottimizzato per segmentare e identificare con precisione diversi tipi di macchinari, come gru, escavatori e bulldozer, e tracciare le loro posizioni in tempo reale. In questo modo i responsabili dei cantieri possono assicurarsi che i macchinari operino rigorosamente all'interno delle aree designate e non invadano zone in cui sono presenti lavoratori o pericoli.
Inoltre, l'integrazione di queste soluzioni con sistemi di allarme in tempo reale consente di intraprendere azioni correttive in tempi rapidi. Inoltre, le informazioni raccolte possono aiutare a ottimizzare il layout del sito e il flusso di lavoro, riducendo ulteriormente i rischi e aumentando la produttività.
Il monitoraggio del comportamento animale aiuta i ricercatori, gli allevatori e gli ambientalisti a prendersi cura degli animali in ambienti diversi. La segmentazione delle istanze svolge un ruolo utile in questi sistemi, identificando e segmentando i singoli animali negli allevamenti, negli zoo e negli habitat naturali. A differenza del rilevamento tradizionale degli oggetti che utilizza i riquadri di delimitazione, la segmentazione delle istanze fornisce una delimitazione a livello di pixel di ciascun animale, particolarmente utile quando gli animali sono vicini.
La segmentazione dettagliata facilita il tracciamento più accurato dei movimenti e dei comportamenti. Gli animali sovrapposti o strettamente raggruppati possono essere riconosciuti distintamente e fornire un'analisi più precisa delle interazioni, delle valutazioni della salute e dei modelli di attività. In generale, una conoscenza più approfondita del comportamento degli animali migliora le pratiche di cura e gestione degli stessi.
Il tracciamento preciso dei giocatori e degli eventi è una parte fondamentale dell'analisi sportiva. I metodi di tracciamento tradizionali si basano sull'etichettatura manuale, che potrebbe non catturare le interazioni dettagliate. La computer vision può essere utilizzata per segmentare i dettagli di ogni giocatore, palla ed evento chiave a livello di pixel per ottenere informazioni dettagliate.
Ad esempio, la segmentazione delle istanze può aiutare a rilevare eventi come falli o incidenti fuori dalla palla, separando chiaramente ogni giocatore e oggetto. Questo monitoraggio granulare consentito da modelli come YOLO11 offre agli analisti informazioni più chiare per studiare i modelli di movimento, il posizionamento spaziale e le interazioni con grande precisione. Un vantaggio fondamentale di queste informazioni è che aiutano le squadre a perfezionare le loro strategie e a migliorare le prestazioni complessive.
Ecco alcuni dei principali vantaggi che la segmentazione delle istanze può apportare a diversi settori:
Se da un lato questi vantaggi evidenziano l'impatto della segmentazione delle istanze sui diversi casi d'uso, dall'altro è fondamentale considerare le sfide che comporta la sua implementazione.
Ecco alcuni dei principali limiti della segmentazione delle istanze:
La segmentazione delle istanze permette di distinguere con precisione i singoli oggetti, anche quando si sovrappongono. Catturando i confini degli oggetti a livello di pixel, fornisce una comprensione più profonda dei dati visivi rispetto alle attività tradizionali di computer vision come il rilevamento degli oggetti.
I recenti progressi nella computer vision hanno reso la segmentazione delle istanze più veloce e facile da usare. In particolare, i modelli di computer vision come Ultralytics YOLO11 semplificano il processo, consentendo la segmentazione in tempo reale con una configurazione minima, rendendola più accessibile per diversi settori e applicazioni.
Sei curioso di conoscere l'intelligenza artificiale? Visita il nostro repository GitHub e connettiti con la nostra comunità per continuare a esplorare. Scopri le innovazioni come l'IA nelle auto a guida autonoma e l'IA di visione in agricoltura sulle nostre pagine dedicate alle soluzioni. Scopri le nostre opzioni di licenza e inizia a lavorare a un progetto di computer vision!
Inizia il tuo viaggio nel futuro dell'apprendimento automatico