La segmentazione delle immagini è una tecnica di computer vision che suddivide un'immagine digitale in gruppi di pixel (segmenti di immagine) per informare il rilevamento degli oggetti e le attività correlate. Analizzando i dati visivi complessi di un'immagine in segmenti appositamente modellati, la segmentazione delle immagini consente un'elaborazione delle immagini più rapida e avanzata.
Le tecniche di segmentazione dell'immagine vanno dall'analisi euristica semplice e intuitiva all'implementazione all'avanguardia del deep learning. Gli algoritmi convenzionali di segmentazione delle immagini elaborano le caratteristiche visive di alto livello di ciascun pixel, come il colore o la luminosità, per identificare i confini degli oggetti e le regioni di sfondo. Il machine learning, che sfrutta i set di dati annotati, viene utilizzato per addestrare i modelli a classificare con precisione i tipi specifici di oggetti e regioni contenuti in un'immagine.
Essendo un metodo altamente versatile e pratico di computer vision, la segmentazione delle immagini ha un'ampia varietà di casi d'uso dell'intelligenza artificiale, dall'aiuto alla diagnosi nell'imaging medico all'automazione della locomozione per la robotica e le auto a guida autonoma fino all'identificazione di oggetti di interesse nelle immagini satellitari.
La segmentazione delle immagini rappresenta un'evoluzione avanzata sia della classificazione delle immagini che del rilevamento degli oggetti, oltre a una serie distinta di funzionalità uniche di computer vision.
La classificazione delle immagini applica un'etichetta di classe a un'intera immagine. Ad esempio, un semplice modello di classificazione delle immagini potrebbe essere addestrato a classificare le immagini di veicoli come "auto" o "camion". I sistemi convenzionali di classificazione delle immagini hanno un livello di sofisticazione limitato, poiché non elaborano separatamente le singole caratteristiche dell'immagine.
Il rilevamento degli oggetti combinando la classificazione delle immagini con la localizzazione degli oggetti, produce regioni rettangolari denominate "bounding boxes" nelle quali sono localizzati gli oggetti: piuttosto che etichettare semplicemente un'immagine di un veicolo come "auto" o "camion", un modello di rilevamento degli oggetti può indicare dove nell'immagine si trovano le auto o i camion. Anche se il rilevamento degli oggetti è in grado di classificare più elementi all'interno di un'immagine e approssimare la larghezza e l'altezza di ciascun elemento, non può rilevare confini o forme precisi. Ciò limita la capacità dei modelli di rilevamento degli oggetti convenzionali di delineare oggetti strettamente raggruppati con riquadri di delimitazione sovrapposti.
La segmentazione delle immagini elabora i dati visivi a livello di pixel, utilizzando diverse tecniche per annotare singoli pixel come appartenenti a una specifica classe o istanza. Le tecniche di segmentazione delle immagini "classiche" determinano le annotazioni analizzando le qualità intrinseche di ciascun pixel (chiamate "euristiche") come il colore e l'intensità, mentre i modelli di deep learning impiegano complesse reti neurali per un riconoscimento sofisticato dei modelli. Gli output di questa annotazione sono maschere di segmentazione che rappresentano il confine e la forma specifica, pixel per pixel, di ciascuna classe, solitamente corrispondente a diversi oggetti, caratteristiche o regioni dell'immagine.
In generale, la segmentazione delle immagini viene utilizzata per tre tipi di attività: segmentazione semantica, segmentazione delle istanze e segmentazione panottica.
La differenza tra ogni tipo di attività di segmentazione delle immagini risiede nel modo in cui trattano le classi semantiche: le categorie specifiche a cui può appartenere un determinato pixel.
Nel linguaggio della computer vision, esistono due tipi di classi semantiche. Ciascuna si presta a tecniche diverse per una segmentazione accurata ed efficace.
Le cose sono classi di oggetti con forme caratteristiche, come "auto" o "albero" o "persona". In genere, hanno istanze chiaramente definite che sono numerabili. Hanno variazioni di dimensioni relativamente piccole da un caso all'altro e parti costitutive distinte dalla cosa stessa: per esempio, tutte le auto hanno le ruote, ma una ruota non è un'auto.
Gli elementi sono una classe semantica dalle forme amorfe e dalle dimensioni altamente variabili, come il "cielo", "acqua" o "erba". In genere, questi oggetti non hanno istanze individuali chiaramente definite e numerabili. A differenza delle cose, gli elementi non hanno parti distinte: un filo d'erba e un prato sono entrambi ugualmente "erba".
Alcune classi, in determinate condizioni di immagine, possono essere sia cose che elementi. Ad esempio, un grande gruppo di persone può essere interpretato come più "persone", ciascuna una cosadalla forma distinta e numerabile, oppure come una singola "folla" dalla forma amorfa.
Sebbene la maggior parte degli sforzi di rilevamento degli oggetti si concentri principalmente sulle classi "cose", è importante considerare che gli oggetti "elementi" (cielo, muri, pavimenti, terreno) costituiscono la maggior parte del nostro contesto visivo. La classe "elementi" è un dato essenziale per identificare le cose e viceversa: una cosa metallica su una strada è di solito un'automobile; lo sfondo blu dietro una barca è probabilmente acqua, mentre lo sfondo blu dietro un aereo è probabilmente il cielo. Ciò è di particolare importanza per i modelli di deep learning.
La segmentazione semantica è il tipo più semplice di segmentazione delle immagini. Un modello di segmentazione semantica assegna una classe semantica a ogni pixel, ma non genera altri contesti o informazioni (come gli oggetti).
La segmentazione semantica tratta tutti i pixel come "elementi" ; non fa differenza tra "elementi" e "cose".
Ad esempio, un modello di segmentazione semantica addestrato per identificare determinate classi in una strada cittadina produrrebbe maschere di segmentazione che indicano i confini e i contorni per ciascuna classe rilevante di "cose" (come veicoli o pali della luce) ed "elementi" (come strade e marciapiedi), ma non creerebbe alcuna distinzione tra (o conterebbe il numero di) più istanze della stessa classe. Ad esempio, le auto parcheggiate una di fronte all'altra potrebbero essere trattate semplicemente come un unico, lungo segmento di "auto".
La segmentazione delle istanze inverte le priorità della segmentazione semantica: mentre gli algoritmi di segmentazione semantica prevedono solo la classificazione semantica di ciascun pixel (senza considerare le singole istanze), la segmentazione delle istanze delinea la forma esatta di ogni istanza di oggetto separata.
La segmentazione delle istanze isola le "cose" dagli "elementi",che ignora, e può quindi essere intesa come una forma evoluta di rilevamento degli oggetti che produce una maschera di segmentazione precisa invece di un riquadro di delimitazione approssimativo.
È un compito più difficile della segmentazione semantica: anche quando elementi della stessa classe si toccano o addirittura si sovrappongono, i modelli di segmentazione delle istanze devono essere in grado di separare e determinare la forma di ciascuno di essi, mentre i modelli di segmentazione semantica possono semplicemente raggrupparli insieme. Consideriamo, ad esempio, come i due diversi modelli trattano le auto parcheggiate in questa immagine di una strada di città.
Gli algoritmi di segmentazione delle istanze generalmente adottano un approccio a due stadi o one-shot al problema. I modelli a due stadi, come le reti neurali convoluzionali basate su regioni (R-CNN), eseguono il rilevamento convenzionale degli oggetti per generare riquadri di delimitazione per ogni istanza proposta, quindi eseguono una segmentazione e una classificazione più raffinate all'interno di ciascun riquadro di delimitazione. I modelli one-shot, come YOLO (You Only Look Once), consentono di segmentare le istanze in tempo reale eseguendo contemporaneamente il rilevamento, la classificazione e la segmentazione degli oggetti.
Gli approcci one-shot offrono una maggiore velocità (con un compromesso in termini di precisione), mentre gli approcci in due fasi offrono una maggiore precisione (con un compromesso in termini di velocità).
I modelli di segmentazione panottica determinano la classificazione semantica di tutti i pixel e differenziano ogni istanza di oggetto in un'immagine, combinando i vantaggi della segmentazione semantica e di istanza.
In un'attività di segmentazione panottica, ogni pixel deve essere annotato sia con un'etichetta semantica che con un "ID istanza". I pixel che condividono la stessa etichetta e lo stesso ID appartengono allo stesso oggetto; per i pixel determinati come elemento, l'ID istanza viene ignorato.
La segmentazione panottica fornisce quindi ai sistemi di computer vision una comprensione completa e olistica di una determinata immagine. Sebbene la sua attrattiva sia ovvia, ottenere la segmentazione panottica in modo coerente ed efficiente dal punto di vista computazionale è una sfida imponente.
La sfida consiste nell'unificare due metodologie contraddittorie: i modelli di segmentazione semantica trattano tutti i pixel come "elementi", ignorando le singole istanze delle cose; i modelli di segmentazione dell'istanza isolano le singole cose, ignorando gli elementi. Nessuno dei due tipi di modello può assorbire adeguatamente le responsabilità dell'altro.
I tentativi iniziali di modelli di segmentazione panottica combinavano semplicemente i due modelli, eseguendo ogni compito separatamente e quindi combinando i risultati in una fase di post-elaborazione. Questo approccio presenta due principali inconvenienti: richiede un notevole sovraccarico di calcolo e presenta discrepanze tra i punti dati ottenuti dalla rete di segmentazione semantica e i punti dati ottenuti dalla rete di segmentazione delle istanze.
Le nuove architetture di segmentazione panottica mirano a evitare questi inconvenienti con un approccio più unificato al deep learning. La maggior parte si basa su una rete "dorsale", come una Feature Pyramid Network (FPN), che estrae le caratteristiche dall'immagine di input, inserisce i dati estratti in rami paralleli (come un "ramo in primo piano" e un "ramo di sfondo", o una "head di semantica" e una "head di istanza") e quindi combina l'output di ogni ramo utilizzando un sistema ponderato. Le architetture panottiche proposte includono EfficientPS, OANet, PanopticFPN, UPSNet, SOGNet, BGRNet, AUNet, FPSNet e SpatialFlow.
Le tecniche tradizionali di segmentazione delle immagini utilizzano le informazioni provenienti dai valori di colore di un pixel (e dalle caratteristiche correlate come luminosità, contrasto o intensità) per l'estrazione delle caratteristiche e possono essere rapidamente addestrate con semplici algoritmi di apprendimento automatico per attività come la classificazione semantica.
Sebbene i metodi di segmentazione basati sul deep learning siano in grado di fornire una maggiore precisione e un'analisi delle immagini più sofisticata (soprattutto attività come la segmentazione panottica che richiedono una grande quantità di informazioni contestuali), i metodi tradizionali sono molto meno costosi e impegnativi dal punto di vista computazionale e possono risolvere determinati problemi in modo più efficiente.
Le comuni tecniche di segmentazione delle immagini tradizionali (o "classiche") includono:
Addestrate su un dataset di immagini annotato, le reti neurali dei modelli di segmentazione delle immagini di deep learning scoprono i modelli sottostanti nei dati visivi e distinguono le caratteristiche salienti più rilevanti per la classificazione, il rilevamento e la segmentazione.
Nonostante i compromessi in termini di requisiti di elaborazione e tempi di addestramento, i modelli di deep learning superano costantemente i modelli tradizionali e costituiscono la base della maggior parte dei progressi continui nella computer vision.
I principali modelli di deep learning utilizzati nella segmentazione delle immagini includono:
Non solo per mappare i confini dei segmenti di immagini, ma anche per prevedere quale elemento o cosa rappresenta ciascun segmento, i modelli di deep learning vengono addestrati su set di dati di grandi dimensioni e annotati per riconoscere classi semantiche specifiche. Da queste immagini pre-etichettate, i modelli di deep learning deducono i modelli e i valori dei pixel tipici di ciascuna etichetta.
Compiti diversi richiedono dati di addestramento diversi: un sistema di computer vision per auto a guida autonoma viene addestrato su immagini etichettate con classi semantiche come "persona", "auto", "corsia" e "stop", mentre i modelli di diagnostica per immagini richiedono l'ottimizzazione al fine di riconoscere classi specifiche di tessuti del corpo umano, come tumori e altre patologie.
I dataset di addestramento devono essere attentamente pre-etichettati da esperti umani, il che può essere estremamente laborioso. La maggior parte dei modelli di segmentazione delle immagini utilizza dataset di grandi dimensioni open source. Questi dataset pubblici fungono anche da "verità fondamentale" quando si valuta il successo dei modelli addestrati: le metriche delle prestazioni sono spesso espresse come percentuale di risultati che corrispondono accuratamente alle annotazioni nel dataset di addestramento.
I dataset di addestramento più diffusi per i modelli di segmentazione delle immagini di deep learning includono:
La segmentazione delle immagini è diventata uno strumento essenziale in una varietà di campi.
Abbiamo intervistato 2.000 organizzazioni in merito alle loro iniziative di AI per scoprire cosa funziona, cosa non funziona e come giocare d’anticipo.
IBM Granite è la nostra famiglia di modelli AI aperti, efficienti e affidabili, su misura per le aziende e ottimizzati per scalare le applicazioni di AI. Esplora le opzioni di linguaggio, codice, serie temporali e guardrail.
Accedi al nostro catalogo completo di oltre 100 corsi online acquistando oggi stesso un abbonamento individuale o multiutente che ti consentirà di ampliare le tue competenze su una gamma di prodotti a un prezzo contenuto.
Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io