AIHealth
Piattaforma clinica on-premise con LLM locali, RAG su dati FHIR/DICOM, supporto alla diagnosi, follow-up remoto. Architettura progettata per il percorso MDR.
Scopri AIHealth →
Digital Health
Sviluppo di software medicale conforme agli standard normativi CE e MDR. Sistemi di supporto alle decisioni cliniche, integrazione AI nei flussi di lavoro clinici.
Scopri →Da “come migliorare U-Net” a “come non dover scegliere”
Negli anni successivi alla pubblicazione di U-Net (2015), la comunità di medical image segmentation ha prodotto centinaia di architetture variate — Attention U-Net, Residual U-Net, Dense U-Net, varianti 3D, encoder diversi, loss function alternative, strategie di ensemble. Ciascuna publicazione presenta miglioramenti su specifici task, ma il campo soffre di un problema pratico: ciò che funziona bene su un dataset non necessariamente funziona bene su un altro, e la scelta di architettura + preprocessing + iperparametri + strategy di training richiede competenza di deep learning che molti centri clinici non hanno.
Un’osservazione provocatoria, emersa nelle valutazioni sistematiche nei laboratori più attivi, è che i miglioramenti architetturali recenti aggiungono poco a un’U-Net standard ben configurata — la performance finale è dominata dalle scelte di preprocessing (spacing, normalizzazione, patch size), dalle strategy di training (data augmentation, loss function, scheduler), e dall’ensembling più che dall’architettura in sé.
Se è vero che una U-Net standard “ben configurata” è già lo stato dell’arte, il problema non è trovare una nuova architettura: è automatizzare la configurazione. Ed è questo l’obiettivo di nnU-Net.
nnU-Net
nnU-Net — “no new Net” — è stato sviluppato al MIC-DKFZ (Medical Image Computing) di Heidelberg, nel gruppo di Klaus H. Maier-Hein, principalmente da Fabian Isensee. La pubblicazione preprint è di settembre 2018 (arXiv 1809.10486): “nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation”, Isensee et al.
Il tesi centrale: per ogni nuovo dataset medicale, una pipeline ben configurata è più importante di un’architettura nuova. Il lavoro originale non introduce un’architettura nuova; introduce un sistema auto-configurante che, dato un dataset, deriva automaticamente le scelte di pipeline ottimali.
Il data fingerprint
Il cuore concettuale di nnU-Net è il data fingerprint — un profilo del dataset calcolato automaticamente che include:
- Voxel spacing — risoluzione in X, Y, Z dei volumi
- Image shape distribution — dimensioni tipiche e estremi dei volumi
- Intensity distribution — media, deviazione standard, percentili; per modalità CT (HU) vs. MR (non-HU) le strategie di normalizzazione sono diverse
- Class distribution — quante classi, frequenza di ciascuna, squilibrio
- Anatomical region — dataset su organo singolo vs. regione estesa
Da questo fingerprint, nnU-Net deduce con regole euristiche un insieme di decisioni:
- Resampling strategy — se resamplare isotropicamente, quale spacing target
- Patch size — dimensioni del blocco 3D di training (limitato dalla memoria GPU)
- Batch size
- Network topology — profondità della rete, numero di canali iniziale, numero di pooling steps (derivato dal patch size)
- Loss function — Dice + cross-entropy, con Dice-only per classi molto sbilanciate
- Data augmentation — rotazioni, scaling, gamma, noise, ma calibrate sul dominio
- Training schedule — 1000 epoche, learning rate schedule polinomiale
- Number of folds — 5-fold cross-validation
L’utente fornisce il dataset annotato; nnU-Net fa il resto.
Configurazioni supportate
nnU-Net genera fino a tre configurazioni per lo stesso dataset:
- 2d — U-Net 2D classica, addestrata slice-by-slice. Rapida, baseline
- 3d_fullres — U-Net 3D alla risoluzione piena (o al massimo target), con patch che coprono il maggior volume possibile data la memoria
- 3d_lowres + 3d_cascade_fullres — strategia cascata: una prima rete 3D a bassa risoluzione produce una segmentazione grossolana, una seconda rete 3D a piena risoluzione la rifinisce. Utile quando l’organo di interesse è grande e la memoria GPU non consente patch sufficienti
Dopo l’addestramento, un auto-selection sceglie la configurazione migliore in cross-validation, opzionalmente con ensemble di configurazioni diverse per il risultato finale.
Il Medical Segmentation Decathlon
Il banco di prova di nnU-Net è il Medical Segmentation Decathlon (MSD), challenge organizzato nel 2018 da un consorzio di istituzioni internazionali (Lena Maier-Hein et al., con rappresentanti di MIT, KCL, e altri) come parte di MICCAI 2018. Il MSD mette alla prova i metodi su 10 task di segmentazione molto diversi tra loro:
- Brain Tumour (MR multi-modale)
- Heart (MR cardiaco)
- Liver (TC + tumori)
- Hippocampus (MR)
- Prostate (MR multi-modale)
- Lung (TC + noduli)
- Pancreas (TC + tumori)
- Hepatic Vessel (TC + tumori)
- Spleen (TC)
- Colon (TC + cancro)
L’obiettivo del challenge: identificare un metodo che funzioni senza essere specializzato per un task particolare — un metodo generalista. I partecipanti sono stati valutati su Dice e surface distance.
Risultato: nnU-Net vince il Decathlon 2018 sia nella Task Phase (addestramento dedicato per ogni task) sia nella Live Phase (applicazione a nuovi task non noti in anticipo), con margine significativo sui secondi classificati. Vince senza modifiche architetturali — usando esclusivamente la configurazione auto-derivata dai data fingerprint.
Questo risultato — decisivo e riproducibile — ha un impatto immediato sul campo: un sistema senza innovazioni architetturali batte sistematicamente tutti i concorrenti con architetture speciali. Il messaggio è chiaro: la configurazione vale più dell’architettura.
Open source e riproducibilità
nnU-Net è distribuito con licenza Apache 2.0, codice su GitHub (MIC-DKFZ/nnUNet). La filosofia di packaging è plug-and-play:
- L’utente prepara il dataset in una struttura directory standardizzata
- Esegue
nnUNet_plan_and_preprocess— nnU-Net analizza il fingerprint, pianifica la configurazione, esegue il preprocessing - Esegue
nnUNet_trainper ciascuno dei 5 fold di cross-validation nnUNet_find_best_configurationsceglie la miglior configurazionennUNet_predictapplica il modello addestrato a nuovi casi
Non c’è bisogno di scrivere codice PyTorch; la configurazione è totalmente dichiarativa attraverso la struttura del dataset. Questo abbassa drasticamente la soglia per gruppi clinici che vogliono addestrare un segmentatore su dati propri.
Impatto atteso sulla ricerca
Le prime reazioni della comunità osservabili:
- Baseline universalmente adottata — nnU-Net diventerà il metodo di riferimento con cui confrontare qualsiasi nuovo contributo architetturale. Se un metodo nuovo non batte nnU-Net, è difficile giustificarne il valore scientifico
- Challenge MICCAI — gli organizzatori delle challenge future avranno come standard implicito la presenza di una baseline nnU-Net nei confronti
- Laboratori clinici — ospedali universitari che vogliono costruire segmentatori interni su dati propri (per volumetria tumorale, organs at risk per radioterapia, analisi fenotipiche) potranno iniziare con nnU-Net senza necessità di profonde competenze deep learning
- Valutazione della capacità di “data fingerprint” strategy — altre task di medical imaging (detection, classification) potranno estendere lo stesso pattern auto-configurante
Limiti riconosciuti
nnU-Net ha limiti noti:
- Costo computazionale — 5-fold cross-validation completa su un dataset 3D richiede giorni di training su GPU singola (meno con multi-GPU). Non è un sistema lightweight
- Ipotesi di qualità del dataset — il data fingerprint assume che il dataset sia relativamente uniforme (stesso tipo di scanner, popolazione coerente); dataset molto eterogenei possono beneficiare di modifiche custom
- Non ottimizzato per inference — nnU-Net è progettato per ricerca (qualità del risultato); prodotti clinici che richiedono inference in tempo quasi reale hanno bisogno di ottimizzazioni specifiche (TensorRT, mixed precision)
- Architettura U-Net fissa — il framework non esplora architetture radicalmente diverse (Transformer, Mamba — emergenti ma non ancora applicate a imaging medicale). L’assunzione è che le U-Net bastino per segmentazione; valida ma restrittiva
Nel contesto italiano
Gruppi di ricerca italiani di imaging medicale — Politecnico di Milano, Università di Torino, Verona, Bologna, CNR, istituti IRCCS — seguono da vicino lo sviluppo di nnU-Net. L’adozione per progetti di ricerca su dati italiani è attesa nei prossimi mesi, appena la codebase stabilizzi.
Il valore per la clinica italiana sarà principalmente indiretto: i vendor PACS e i servizi radiologici AI-as-a-Service che entreranno sul mercato italiano nei prossimi anni incorporeranno probabilmente pipeline basate su nnU-Net (con eventuali adattamenti e qualifica regolatoria).
Prospettive
Le direzioni future del framework:
- Integrazione con piattaforme di annotazione — ridurre il lavoro manuale di annotazione, abilitando active learning e human-in-the-loop
- Transferability multi-dataset — modelli pretrained che transferiscono tra task diversi
- Uncertainty estimation — stima della confidenza per pixel, essenziale per adozione clinica
- Pipeline per detection e classification oltre segmentazione
- Integrazione in MONAI — il consorzio che sta per annunciare MONAI come framework di riferimento per medical imaging PyTorch sta discutendo l’integrazione con nnU-Net
- Versioni successive (nnU-Net v2) con architetture Transformer alternative e configuration language più espressivo
nnU-Net rappresenta un salto di paradigma dalla ricerca architetturale alla ricerca di sistema: non “qual è la rete migliore” ma “qual è il sistema che configura meglio la rete”. È una lezione che potrebbe estendersi oltre la segmentazione medicale.
Riferimenti: Fabian Isensee et al., “nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation”, preprint ArXiv 1809.10486 (settembre 2018). MIC-DKFZ, Heidelberg (Klaus H. Maier-Hein). Medical Segmentation Decathlon (MSD), MICCAI 2018. Codice: github.com/MIC-DKFZ/nnUNet. Licenza Apache 2.0.