MONAI: il framework open source PyTorch per medical imaging AI

Il lancio di MONAI — Medical Open Network for AI — nell'aprile 2020, il consorzio fondatore (NVIDIA, King's College London, Mass General, Stanford, Vanderbilt, Warwick, NTU), l'architettura PyTorch e gli obiettivi di standardizzazione.

Digital HealthR&DOpen SourceAI MONAIMedical ImagingDeep LearningPyTorchNVIDIAKing's College LondonOpen SourceDigital Health

Il bisogno di un framework dedicato

Al 2020 il deep learning per imaging medicale è una disciplina matura sul piano scientifico ma frammentata sul piano infrastrutturale. La comunità lavora con PyTorch (framework ormai dominante dopo il superamento di TensorFlow 1.x nella ricerca) e scripts ad-hoc per ogni laboratorio: ogni gruppo reimplementa le trasformazioni per dati medici (spaziatura, orientamento, normalizzazione HU per TC, bias field correction per MR, patch-based training), le loss function specifiche (Dice, Focal, Tversky), le metriche cliniche (Dice, Hausdorff, surface distance). Il codice è raramente riutilizzabile tra laboratori, la duplicazione è enorme.

Parallelamente, NVIDIA — il principale fornitore hardware per AI — ha sviluppato a partire dal 2018 Clara Train SDK come piattaforma end-to-end per training di modelli su imaging medicale, integrata con l’ecosistema Clara per deployment. Clara Train è potente ma proprietaria e legata allo stack NVIDIA: non soddisfa il requisito di ecosistema aperto e neutrale.

A metà aprile 2020, un consorzio di istituzioni ha annunciato una risposta: MONAIMedical Open Network for AI.

Il consorzio fondatore

MONAI è stato annunciato pubblicamente il 24 aprile 2020 come progetto open source collaborativo guidato congiuntamente da:

  • NVIDIA — competenze deep learning su GPU, codice donato da Clara Train
  • King’s College London (KCL) — School of Biomedical Engineering & Imaging Sciences (BMEIS), con M. Jorge Cardoso e Sebastien Ourselin come figure chiave; storico contributor open source in medical imaging
  • Massachusetts General Hospital / Brigham and Women’s Hospital — contesto clinico di eccellenza, collegato al Surgical Planning Laboratory (che ospita 3D Slicer)
  • Stanford University
  • Vanderbilt University
  • University of Warwick
  • Nanyang Technological University (Singapore)

Altri centri — incluso DKFZ (Maier-Hein group di nnU-Net) — collaborano in modo non-formale con MONAI, mantenendo i propri progetti paralleli ma contribuendo componenti rilevanti.

Il progetto è distribuito con licenza Apache 2.0 e ospitato su GitHub (Project-MONAI/MONAI).

Prima release

La versione iniziale MONAI 0.1 è stata rilasciata in aprile 2020; la 0.2 è in preparazione con ulteriori componenti. Nelle prime settimane dalla pubblicazione, il repository ha accumulato centinaia di stelle GitHub e contributor esterni cominciano ad aprire pull request con nuove trasformazioni, reti, loss function.

Architettura

MONAI è costruito come libreria Python sopra PyTorch, con integrazione opzionale di PyTorch Ignite per il training loop. La struttura del framework:

monai.data

Caricamento di dataset medicali: supporto nativo per NIfTI, DICOM via ITK/SimpleITK, NRRD, MetaImage. DataLoader che preserva metadati (spacing, origin, orientation) attraverso la pipeline. CacheDataset, PersistentDataset per ottimizzazione di IO su dataset grandi.

monai.transforms

La libreria di trasformazioni è il cuore del valore pratico di MONAI. Dedicate specificamente al contesto medicale:

  • Spaziali: Spacing (resampling a voxel spacing target), Orientation (allineamento RAS/LAS/LPS), Resize, CenterSpatialCrop, RandSpatialCrop
  • Intensità: ScaleIntensity, ScaleIntensityRange (HU in TC), NormalizeIntensity, HistogramNormalize
  • IO-aware: LoadImage come trasformazione di pipeline
  • Augmentation: RandFlip, RandRotate, RandAffine, RandGaussianNoise, RandGaussianSmooth, RandShiftIntensity, RandScaleIntensity, Rand3DElastic
  • Dictionary-based transforms: ogni trasformazione ha una variante “d” (es. SpacingD) che opera su dizionari {image, label} preservando l’associazione

La pipeline tipica è descritta come lista di trasformazioni componibili, con supporto a compose deterministico e stocastico.

monai.networks

Architetture CNN pronte all’uso, specifiche o adattate al domain:

  • UNet (2D/3D) — implementazione standard
  • DynUNet — adattamento dinamico del depth/features alla dimensione dell’input, ispirato a nnU-Net
  • SegResNet — residual U-Net
  • HighResNet — high-resolution residual network
  • DenseNet variants
  • AHNet, VNet, RegNet, Classifier architectures

I moduli base (Convolution, ResidualUnit, UpSample) consentono di costruire reti custom riutilizzando primitive.

monai.losses

Loss function specifiche per segmentazione medicale:

  • DiceLoss — classica per segmentazione
  • DiceCELoss — combinazione Dice + cross-entropy (tipica in nnU-Net-style training)
  • FocalLoss, TverskyLoss, FocalTverskyLoss per classi molto sbilanciate
  • GeneralizedDiceLoss — pesata per frequenza di classe

monai.metrics

Metriche standard di valutazione:

  • DiceMetric — coefficiente di Dice
  • HausdorffDistanceMetric — distanza 95° percentile o max
  • SurfaceDistanceMetric — distanza media alla superficie
  • IoU, Sensitivity, Specificity, Confusion matrix
  • ConfusionMatrixMetric per tutte le metriche derivate (F1, PPV, NPV)

monai.apps

Applicazioni end-to-end pronte, che scaricano dataset pubblici (MedNIST per demo, BRATS, MSD tasks) e forniscono pipeline di training di riferimento.

monai.engines

Integrazione con PyTorch Ignite per training loop strutturato: SupervisedTrainer, SupervisedEvaluator, handlers per logging, checkpointing, early stopping.

La filosofia di design

MONAI non vuole essere un competitor di nnU-Net, 3D Slicer, MITK. È concepito come infrastruttura comune sopra la quale diversi progetti specialistici possono essere costruiti. La comunità invita:

  • Gruppi di ricerca — ad usare MONAI per le proprie pipeline, contribuendo modifiche utili alla comunità
  • Developer — a contribuire trasformazioni, reti, loss function specifiche al proprio dominio (neuroimaging, istopatologia, cardiologia, oftalmologia)
  • Vendor commerciali — a integrare MONAI come base infrastrutturale dei propri prodotti, con la licenza Apache 2.0 che lo consente
  • Ospedali universitari — ad adottare MONAI per costruire in-house capabilities AI su dati clinici interni

La visione dichiarata è che MONAI diventi per il medical imaging ciò che PyTorch è per il deep learning in generale: la piattaforma standard sopra cui tutti lavorano, lasciando spazio a soluzioni specialistiche nei livelli superiori.

Rapporto con altri progetti

L’ecosistema complementare:

  • nnU-Net (MIC-DKFZ) — non è inglobato in MONAI; rimane framework separato self-configuring. Collaborazione su componenti condivisi è attesa
  • 3D Slicer — piattaforma applicativa user-facing; un ponte SlicerMONAI è in sviluppo per importare modelli MONAI in Slicer
  • MITK — simile, con discussione di integrazione
  • NVIDIA Clara — Clara Train SDK continua ad esistere come distribuzione ottimizzata di MONAI per lo stack NVIDIA (Clara Deploy, DGX, tensor cores), con componenti condivisi con MONAI aperto
  • TorchIO — libreria parallela sviluppata indipendentemente (Fernando Pérez-García, UCL), focalizzata su transforms 3D e augmentation, con considerevole sovrapposizione di scope. Cooperazione/integrazione in discussione

Impatto atteso

Le aspettative per i prossimi anni:

  • Standardizzazione de-facto della pipeline PyTorch per medical imaging
  • Riproducibilità — articoli che usano MONAI sono più facilmente riproducibili, poiché le trasformazioni e i training loop sono noti
  • Transfer learning cross-task — modelli addestrati in MONAI più facilmente condivisibili
  • Ingresso di vendor nel deployment di MONAI-based pipeline in prodotti clinici certificati
  • Educazione — MONAI diventerà base didattica per corsi di medical imaging AI
  • Espansione a dominio non-imaging — estensioni a tabular data, signal data (ECG/EEG), forse NLP clinico in futuro

Limiti iniziali

Essendo MONAI al 2020 un progetto giovane:

  • Documentazione in crescita — tutorial e esempi aumentano di settimana in settimana
  • API in fase di consolidamento — la 0.1 potrebbe non essere totalmente stabile sul piano API; la 1.0 è attesa nel corso del 2021
  • Gap con nnU-Net per segmentazione — nnU-Net resta il gold standard di out-of-the-box performance; MONAI richiede maggiore configurazione manuale
  • Deploy production — MONAI è primariamente research-focused; il pezzo “deploy” sarà oggetto di un sotto-progetto futuro (annunci emergenti su MONAI Deploy per il 2022)

Nel contesto italiano

Gruppi italiani di imaging medicale AI hanno cominciato a seguire MONAI:

  • Politecnico di Milano — integrazione in pipeline cardiovascolari e mammografiche
  • Università di Torino, Verona, Bologna
  • CNR / IFC Pisa — progetti di retinoscopia
  • Istituti IRCCS — adozione sperimentale in progetti di radiomics e segmentazione

L’adozione operativa richiederà alcuni mesi per stabilizzarsi; le prime pubblicazioni italiane basate su MONAI sono attese entro fine 2020-inizio 2021.

Prospettive

Il successo di MONAI nei prossimi anni dipenderà da:

  • Velocità di consolidamento della governance tecnica
  • Quantità e qualità dei contributi esterni — misura della salute di un progetto open source
  • Integrazione con stack commerciali — MONAI deve essere adottato sia in ricerca sia in prodotti
  • Copertura clinica — estensione oltre segmentazione (detection, classification, image-to-image, generative)
  • Sub-progetti coordinatiMONAI Label per annotazione, MONAI Deploy per deployment, MONAI Stream per ingestione real-time — tutti annunciati ma non ancora rilasciati

Il modello è promettente: un consorzio multi-istituzionale, licenza aperta, appoggio di un vendor hardware di prima grandezza, comunità clinica e accademica di primo piano. MONAI al 2020 è nella fase iniziale di quello che potrebbe essere il framework definitivo per medical imaging AI del decennio.


Riferimenti: MONAI (Medical Open Network for AI), lanciato aprile 2020, monai.io. Repository: github.com/Project-MONAI/MONAI. Licenza Apache 2.0. Consorzio fondatore: NVIDIA, King’s College London, Mass General / Brigham and Women’s, Stanford University, Vanderbilt University, University of Warwick, Nanyang Technological University. Basato su PyTorch.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi