Una guida all'architettura U-Net e alle sue applicazioni
Scopri l'architettura U-Net, come supporta la segmentazione delle immagini, le sue applicazioni e perché è importante nell'evoluzione della computer vision.

La visione artificiale è un ramo dell'intelligenza artificiale (AI) che si concentra sull'analisi dei dati visivi. Ha aperto la strada a molti sistemi all'avanguardia, come l'automazione del processo di ispezione dei prodotti nelle fabbriche e l'assistenza ai veicoli autonomi nella navigazione sulle strade.
Uno dei compiti di visione artificiale più conosciuti è il rilevamento degli oggetti. Questo compito consente ai modelli di localizzare e identificare gli oggetti all'interno di un'immagine utilizzando riquadri di delimitazione. Sebbene i riquadri di delimitazione siano utili per diverse applicazioni, forniscono solo una stima approssimativa della posizione di un oggetto.
Tuttavia, in ambiti come quello sanitario, dove la precisione è fondamentale, i casi d'uso dell'AI per la visione richiedono più della semplice identificazione di un oggetto. Spesso richiedono anche informazioni relative alla forma e alla posizione esatte degli oggetti.
È proprio questo l'obiettivo del compito di visione artificiale chiamato segmentazione. Invece di utilizzare riquadri di delimitazione, i modelli di segmentazione rilevano gli oggetti a livello di pixel. Nel corso degli anni, i ricercatori hanno sviluppato modelli di visione artificiale specializzati per la segmentazione.
Uno di questi modelli è U-Net. Sebbene modelli più recenti e avanzati ne abbiano superato le prestazioni, U-Net occupa un posto importante nella storia della visione artificiale. In questo articolo esamineremo più da vicino l'architettura U-Net, il suo funzionamento, i contesti in cui è stata utilizzata e il confronto con i più moderni modelli di segmentazione oggi disponibili.

Fig. 1. Un esempio di segmentazione utilizzando il modello di deep learning U-Net. (Fonte)
La storia della segmentazione delle immagini#
Prima di approfondire il funzionamento di U-Net, vediamo innanzitutto come si sono evoluti i modelli di segmentazione delle immagini.
Inizialmente, la visione artificiale si basava su tecniche tradizionali come il rilevamento dei bordi, la sogliatura o la crescita delle regioni per separare gli oggetti in un'immagine. Queste tecniche venivano utilizzate per rilevare i contorni degli oggetti tramite i bordi, separare le regioni in base all'intensità dei pixel e raggruppare i pixel simili. Funzionavano nei casi semplici, ma spesso fallivano quando le immagini presentavano rumore, forme sovrapposte o contorni poco definiti.
In seguito alla diffusione del deep learning nel 2012, nel 2014 i ricercatori introdussero il concetto di reti completamente convoluzionali (FCNs) per attività come la segmentazione semantica. Questi modelli sostituivano alcune parti di una rete convoluzionale per consentire al computer di esaminare un'immagine intera in una sola volta, invece di suddividerla in parti più piccole. Ciò rese possibile per il modello creare mappe dettagliate che mostrano più chiaramente il contenuto di un'immagine.

Fig. 2. L'evoluzione degli algoritmi di segmentazione basati sul deep learning. (Fonte)
Basandosi sulle FCNs, U-Net fu introdotto nel 2015 da ricercatori dell'Università di Friburgo. In origine era stato progettato per la segmentazione di immagini biomediche. In particolare, U-Net era stato progettato per funzionare bene in situazioni in cui i dati annotati sono limitati.
Nel frattempo, versioni successive come UNet++ e TransUNet hanno aggiunto miglioramenti quali livelli di attenzione e una migliore estrazione delle caratteristiche. I livelli di attenzione aiutano il modello a concentrarsi sulle regioni chiave, mentre l'estrazione delle caratteristiche ottimizzata cattura informazioni più dettagliate.
Che cos'è U-Net e come fluiscono le caratteristiche nel modello?#
U-Net è un modello di deep learning progettato specificamente per la segmentazione delle immagini. Riceve un'immagine in input e produce una maschera di segmentazione che classifica ogni pixel in base all'oggetto o alla regione di appartenenza.
Il modello prende il nome dalla sua architettura a forma di U. È composto da due parti principali: un encoder che comprime l'immagine e ne apprende le caratteristiche, e un decoder che la espande nuovamente fino alle dimensioni originali. Questo design crea una forma a U simmetrica, che aiuta il modello a comprendere sia la struttura generale di un'immagine sia i suoi dettagli più fini.
Una caratteristica fondamentale di U-Net è l'utilizzo delle connessioni skip, che consentono di passare direttamente al decoder le informazioni provenienti dall'encoder. In questo modo, il modello può preservare dettagli importanti che potrebbero andare persi durante la compressione dell'immagine.
Una panoramica dell'architettura U-Net#
Ecco una panoramica del funzionamento dell'architettura U-Net:
- Immagine in input: U-Net inizia con un'immagine 2D, come una scansione medica o una foto satellitare. L'obiettivo è assegnare un'etichetta di classe a ogni pixel dell'immagine.
- Downsampling: L'immagine passa attraverso livelli convoluzionali che apprendono importanti caratteristiche visive. Man mano che l'immagine attraversa i diversi livelli, la sua risoluzione diminuisce e il modello identifica schemi più generali.
- Livello collo di bottiglia: Al centro della rete, le mappe delle caratteristiche raggiungono la risoluzione spaziale minima, catturando al contempo caratteristiche semantiche di alto livello. In parole semplici, questa rappresentazione compressa delle mappe delle caratteristiche costituisce il contesto complessivo dell'input.
- Upsampling: La rete ricostruisce quindi l'immagine aumentando gradualmente la risoluzione. Le convoluzioni trasposte aiutano a riportare le mappe delle caratteristiche verso le dimensioni originali.
- Connessioni skip: Le mappe delle caratteristiche del percorso di downsampling vengono concatenate con quelle del percorso di upsampling. Ciò aiuta a preservare i dettagli spaziali più fini integrando al contempo le informazioni contestuali di alto livello.
- L'output è una mappa di segmentazione: L'output finale è una maschera di segmentazione pixel per pixel delle stesse dimensioni dell'input. Ogni pixel viene classificato in una categoria come oggetto, sfondo o regione di interesse.

Fig. 3. Diagramma dell'architettura U-Net. (Fonte)
Comprendere la differenza tra ViT e U-Net#
Esplorando U-Net, potresti chiederti in cosa differisca da altri modelli di deep learning, come il Vision Transformer (ViT), che può anch'esso eseguire attività di segmentazione. Sebbene entrambi i modelli possano svolgere attività simili, differiscono per il modo in cui sono costruiti e gestiscono la segmentazione.
U-Net funziona elaborando le immagini a livello di pixel attraverso livelli convoluzionali in una struttura encoder-decoder. Viene spesso utilizzato per attività che richiedono una segmentazione precisa, come le scansioni mediche o le scene di auto a guida autonoma.
Il Vision Transformer (ViT), invece, suddivide le immagini in patch e le elabora simultaneamente attraverso meccanismi di attenzione. Utilizza la self-attention (un meccanismo che consente al modello di ponderare l'importanza delle diverse parti dell'immagine rispetto l'una all'altra) per catturare le relazioni tra le diverse parti dell'immagine, a differenza dell'approccio convoluzionale di U-Net.
Un'altra differenza importante è che generalmente ViT ha bisogno di più dati per funzionare bene, ma è eccellente nel riconoscere schemi complessi. U-Net, invece, offre buone prestazioni con dataset più piccoli, si addestra più rapidamente e spesso richiede meno tempo di addestramento.
Applicazioni del modello U-Net#
Ora che abbiamo compreso meglio cos'è U-Net e come funziona, esploriamo come U-Net è stato applicato in diversi ambiti.
Segmentazione delle emorragie cerebrali nelle immagini mediche#
U-Net è diventato un metodo affidabile per la segmentazione a livello di pixel di immagini mediche complesse, in particolare durante il suo periodo di maggiore diffusione nella ricerca. I ricercatori lo hanno utilizzato per evidenziare aree chiave nelle scansioni mediche, come tumori e segni di emorragie interne nelle immagini CT e MRI. Questo approccio ha migliorato significativamente l'accuratezza delle diagnosi e semplificato l'analisi di dati medici complessi negli ambiti di ricerca.
Un esempio dell'impatto di U-Net nella ricerca sanitaria è il suo utilizzo per identificare ictus ed emorragie cerebrali nelle scansioni mediche. I ricercatori potevano utilizzare U-Net per analizzare le scansioni della testa ed evidenziare le aree problematiche, consentendo di identificare più rapidamente i casi che richiedevano un'attenzione immediata.

Fig. 4. Segmentazione delle lesioni da ictus emorragico utilizzando 3D U-Net. (Fonte)
Segmentazione delle colture in agricoltura#
Un altro ambito in cui i ricercatori hanno utilizzato U-Net è l'agricoltura, in particolare per la segmentazione di colture, erbe infestanti e terreno. Aiuta gli agricoltori a monitorare la salute delle piante, stimare i raccolti e prendere decisioni migliori su vaste aree agricole. Ad esempio, U-Net può separare le colture dalle erbe infestanti, rendendo più efficiente l'applicazione degli erbicidi e riducendo gli sprechi.
Per affrontare sfide come la sfocatura da movimento nelle immagini acquisite dai droni, i ricercatori hanno migliorato U-Net con tecniche di deblur delle immagini. Ciò garantisce una segmentazione più chiara anche quando i dati vengono raccolti durante il movimento, ad esempio nel corso di rilievi aerei.

Fig. 5. Separazione delle colture dalle erbe infestanti nei campi agricoli con U-Net. (Fonte)
Guida autonoma#
Prima dell'introduzione di modelli di AI più avanzati, U-Net ha svolto un ruolo fondamentale nell'esplorazione di come la segmentazione potesse migliorare la guida autonoma. Nei veicoli autonomi, la segmentazione semantica di U-Net può essere utilizzata per classificare ogni pixel di un'immagine in categorie come strada, veicolo, pedone e segnaletica orizzontale. Ciò offre all'auto una visione chiara dell'ambiente circostante, favorendo una navigazione sicura e un processo decisionale efficace.

Fig. 6. Una scena stradale in cui l'area percorribile è segmentata utilizzando U-Net. (Fonte)
Pro e contro di U-Net#
Ancora oggi, U-Net rimane una valida scelta per la segmentazione delle immagini tra i ricercatori grazie al suo equilibrio tra semplicità, accuratezza e adattabilità. Ecco alcuni dei principali vantaggi che lo distinguono:
- Adattabile a diverse modalità: U-Net è stato adattato a diversi tipi di dati, tra cui scansioni mediche 3D, immagini satellitari e persino fotogrammi video.
- Inferenza rapida se ottimizzato: Se regolato correttamente, U-Net può funzionare in modo efficiente, risultando adatto ad applicazioni in tempo reale o quasi in tempo reale.
- Open source e community: U-Net è disponibile nelle principali librerie di deep learning ed è supportato da una vasta community di sviluppatori e ricercatori.
Sebbene U-Net abbia molti punti di forza, presenta anche alcune limitazioni da tenere a mente. Ecco alcuni fattori da considerare:
- Sensibile alla qualità dei dati: Le prestazioni di U-Net possono risentire negativamente di dati di scarsa qualità, come immagini rumorose o a bassa risoluzione.
- Incline all'overfitting con dataset piccoli: Sebbene U-Net offra buone prestazioni con dati limitati, è comunque soggetto al rischio di overfitting se non viene regolarizzato correttamente, soprattutto quando il dataset è troppo piccolo o privo di diversità.
- Risorse computazionali: U-Net può richiedere notevoli risorse computazionali, soprattutto quando lavora con dataset di grandi dimensioni, rendendo necessarie risorse hardware significative per l'addestramento.
Punti chiave#
U-Net è stato una tappa fondamentale nell'evoluzione della segmentazione delle immagini. Ha dimostrato che i modelli di deep learning possono fornire risultati accurati utilizzando dataset più piccoli, soprattutto in ambiti come l'imaging medico.
Questa svolta ha aperto la strada ad applicazioni più avanzate in diversi settori. Con la continua evoluzione della visione artificiale, i modelli di segmentazione come U-Net rimangono fondamentali per consentire alle macchine di comprendere e interpretare i dati visivi con elevata precisione.
Vuoi realizzare i tuoi progetti di visione artificiale? Esplora il nostro repository GitHub per approfondire l'AI e consulta le nostre opzioni di licenza. Scopri come la visione artificiale nel settore sanitario sta migliorando l'efficienza ed esplora l'impatto dell'AI nel commercio al dettaglio visitando le nostre pagine dedicate alle soluzioni! Unisciti subito alla nostra community in continua crescita!









