Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

U-Net

U-Net è una CNN encoder-decoder a forma di U, le cui connessioni skip consentono una segmentazione precisa a livello di pixel partendo da poche immagini di addestramento. Architettura, varianti e codice.

U-Net è una rete neurale convoluzionale (CNN) per la segmentazione semantica, il compito di assegnare una classe a ogni pixel di un'immagine. Olaf Ronneberger, Philipp Fischer e Thomas Brox dell'Università di Friburgo l'hanno presentata nel 2015 in U-Net: Convolutional Networks for Biomedical Image Segmentation. Un encoder riduce l'immagine per catturare ciò che contiene; un decoder espande il risultato alla risoluzione originale e le connessioni di salto trasferiscono a ogni scala i dettagli più fini dell'encoder al decoder, ottenendo contorni degli oggetti nitidi. U-Net si è addestrata bene con alcune decine di immagini di microscopia annotate, ha vinto con ampio margine due categorie della sfida di tracciamento cellulare ISBI 2015 e rimane un modello standard nell'analisi di immagini mediche. In seguito, la sua architettura è diventata la rete di denoising di molti modelli di diffusione.

Come funziona U-Net#

La rete ha due metà simmetriche, disegnate come le due braccia di una U:

  • Percorso di contrazione (encoder): coppie ripetute di convoluzioni 3×3 con attivazioni ReLU, ciascuna seguita da un max pooling 2×2 che dimezza la risoluzione. Il numero di canali raddoppia a ogni livello, da 64 a 1.024, scambiando così i dettagli spaziali con un campo ricettivo più ampio e caratteristiche più ricche.
  • Percorso di espansione (decoder): a ogni livello, una convoluzione di upsampling 2×2 raddoppia la risoluzione e dimezza i canali; il risultato viene concatenato con la mappa delle caratteristiche dell'encoder allo stesso livello e due convoluzioni 3×3 le fondono. Una convoluzione finale 1×1 converte le caratteristiche di ogni pixel in punteggi di classe.

La rete originale ha 23 strati convoluzionali e quattro passaggi di pooling. Usava convoluzioni senza padding, quindi un ritaglio di input da 572×572 produceva una mappa di segmentazione da 388×388 e le immagini grandi venivano segmentate in ritagli sovrapposti. Oggi la maggior parte delle implementazioni applica il padding alle convoluzioni, in modo che l'output abbia le stesse dimensioni dell'input.

Connessioni di salto#

Il pooling elimina la posizione esatta di ogni caratteristica. Al collo di bottiglia la rete sa che una regione contiene una membrana cellulare, ma non quali pixel attraversa la membrana. Le connessioni di salto copiano la mappa delle caratteristiche ad alta risoluzione di ogni livello dell'encoder attraverso la U fino al decoder, che combina il "cosa" del percorso di upsampling con il "dove" dell'encoder. U-Net concatena le due mappe lungo la dimensione dei canali, mentre le connessioni residue di ResNet sommano le caratteristiche all'interno di un blocco. Questo codice PyTorch crea un livello encoder, un collo di bottiglia e un livello decoder:

import torch
from torch import nn

# One encoder level, a bottleneck, and one decoder level of a U-Net
encoder = nn.Sequential(nn.Conv2d(3, 16, 3, padding=1), nn.ReLU())
bottleneck = nn.Sequential(nn.MaxPool2d(2), nn.Conv2d(16, 32, 3, padding=1), nn.ReLU())
upsample = nn.ConvTranspose2d(32, 16, kernel_size=2, stride=2)
decoder = nn.Sequential(nn.Conv2d(32, 16, 3, padding=1), nn.ReLU())
head = nn.Conv2d(16, 2, kernel_size=1)  # 2 classes, e.g. cell and background

image = torch.randn(1, 3, 128, 128)
skip = encoder(image)  # full-resolution features kept for the decoder
context = bottleneck(skip)  # half resolution, twice the channels, wider context

# Skip connection: concatenate upsampled context with the saved high-resolution features
merged = torch.cat([upsample(context), skip], dim=1)
logits = head(decoder(merged))
print(f"context {tuple(context.shape)} -> merged {tuple(merged.shape)} -> logits {tuple(logits.shape)}")

Stampa context (1, 32, 64, 64) -> merged (1, 32, 128, 128) -> logits (1, 2, 128, 128): i 16 canali di contesto ottenuti con l'upsampling e i 16 canali di salto si combinano in 32, mentre l'output contiene due punteggi di classe per ciascuno dei 128×128 pixel dell'input.

Addestramento con pochi dati#

Il dataset di addestramento originale per le strutture neuronali nella microscopia elettronica conteneva 30 immagini da 512×512 pixel. U-Net ha compensato la scarsità con un'intensa aumentazione dei dati, soprattutto con deformazioni elastiche casuali che imitano la flessione del tessuto, e con una loss di entropia incrociata pesata che enfatizza i sottili spazi di sfondo tra cellule a contatto, separando così le cellule vicine in regioni distinte. Oggi i modelli di segmentazione medica vengono spesso addestrati con la loss Dice, che misura direttamente la sovrapposizione delle maschere e gestisce bene strutture piccole che occupano solo una minima percentuale dei pixel.

Varianti e discendenti#

  • 3D U-Net e V-Net: sostituiscono le operazioni 2D con operazioni 3D per segmentare volumi, come le scansioni TC e MRI.
  • Attention U-Net e UNet++: aggiungono gate di attenzione o percorsi di salto annidati e densamente connessi per affinare le caratteristiche dell'encoder che raggiungono il decoder.
  • nnU-Net: un framework che configura automaticamente il preprocessing, l'architettura e l'addestramento per un nuovo dataset. Uno studio MICCAI del 2024 ha rilevato che, nell'ambito di questo framework, le U-Net basate su CNN ben ottimizzate continuano a superare le architetture Transformer e Mamba più recenti nella segmentazione medica 3D, se convalidate rigorosamente.
  • U-Net di diffusione: DDPM e Stable Diffusion 1.x usano una U-Net per prevedere il rumore in un'immagine o nello spazio latente, con strati di attenzione che permettono al prompt di guidare la generazione; la U-Net di Stable Diffusion 1.x ha circa 860 milioni di parametri e ControlNet si collega all'encoder di questa U-Net. I generatori più recenti sostituiscono U-Net con Transformer di diffusione.
  • Reti completamente convoluzionali (FCN): la FCN del 2014 ha trasformato i classificatori in predittori per pixel e ha fuso le previsioni grossolane e dettagliate sommando le mappe dei punteggi di classe. U-Net ha creato un decoder completo con concatenazione delle caratteristiche a ogni livello.
  • Autoencoder: hanno anch'essi la forma di un encoder e di un decoder, ma vengono addestrati a ricostruire l'input attraverso un collo di bottiglia stretto. Le connessioni di salto permetterebbero a un autoencoder di aggirare il collo di bottiglia, mentre U-Net ne ha bisogno per produrre etichette allineate a ogni pixel.
  • Modelli di segmentazione delle istanze: U-Net produce una classe per pixel, quindi due oggetti a contatto della stessa classe condividono un'etichetta, a meno che l'addestramento o il postprocessing non li separino.

I modelli Ultralytics YOLO26 di segmentazione semantica, contrassegnati dal suffisso -sem, usano una versione ridotta del decoder U-Net. Il loro neck applica due volte l'upsampling all'output del backbone a scala 1/32, concatenando lungo il percorso le caratteristiche del backbone alle scale 1/16 e 1/8; classifica quindi i pixel alla scala 1/8 e applica l'upsampling ai punteggi di classe di 8×, fino alle dimensioni dell'input.

Applicazioni nel mondo reale#

  • Analisi di immagini satellitari: le mappe di copertura del suolo etichettano ogni pixel come acqua, foresta, terreno coltivato o edificio per monitorare la deforestazione e la crescita urbana.
  • Ispezione industriale: le maschere a livello di pixel di graffi, crepe e corrosione misurano le dimensioni e la forma esatte di un difetto, cosa che un riquadro di delimitazione non può fare.
  • Imaging medico: le U-Net delineano organi, tumori e lesioni nelle scansioni TC e MRI per la diagnosi e la pianificazione della radioterapia, e separano le singole cellule in microscopia. Nella sfida di tracciamento cellulare ISBI 2015, U-Net addestrata su 20 immagini parzialmente annotate di cellule HeLa ha raggiunto un IoU medio del 77,5%, contro il 46% del secondo metodo migliore.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning