ITK — Insight Toolkit: la libreria open source NIH per segmentazione e registrazione di immagini mediche

Il rilascio di ITK 1.0 nell'ottobre 2002, l'iniziativa NLM Visible Human Project, il consorzio Insight Software Consortium (ISC), l'architettura C++ template-based e il ruolo come fondamento dell'ecosistema open source di image analysis medicale.

Digital HealthR&DOpen Source ITKInsight ToolkitNLMVisible HumanImage AnalysisSegmentazioneRegistrazioneOpen SourceDigital Health

Un programma pubblico di infrastruttura

Le piattaforme per l’analisi di immagini mediche — segmentazione, registrazione, quantificazione — erano, negli anni ‘90, prevalentemente commerciali: Analyze (Mayo Clinic / AnalyzeDirect), Amira, MATLAB Image Processing Toolbox con add-on specialistici. Ogni gruppo di ricerca accademico sviluppava i propri algoritmi in modo ad-hoc, con scarsa condivisione del codice e riproducibilità limitata degli esperimenti. La duplicazione di sforzo era evidente: gli stessi algoritmi di base — livellato di contrasto, filtri anisotropi, trasformata di distanza, level set — venivano reimplementati in decine di laboratori.

A fine anni ‘90, la National Library of Medicine (NLM) degli NIH statunitensi ha deciso di intervenire sulla lacuna. Nel 1999 ha aggiudicato un contratto di sei anni per realizzare una libreria open source di riferimento per l’analisi di immagini mediche, nell’ambito del progetto Visible Human — il dataset NLM di scansioni anatomiche complete (uomo 1994, donna 1995) distribuito come risorsa pubblica. Il contratto è stato affidato a un consorzio guidato da Kitware (azienda spin-off del progetto VTK), con GE Research, Insightful e quattro partner accademici: UNC Chapel Hill (Stephen Aylward), University of Utah, University of Pennsylvania (James Gee) e Columbia University. Nasce così il Insight Toolkit, comunemente ITK.

ITK 1.0: il rilascio

La versione 1.0 di ITK è stata rilasciata a ottobre 2002, completando il primo ciclo del contratto e aprendo la libreria a pubblica disponibilità sotto licenza BSD. Il codice è disponibile dal repository pubblico del consorzio con contribuzioni aperte tramite mailing list e code review.

Le caratteristiche tecniche centrali della 1.0:

  • C++ pesantemente basato su template — ogni filtro è parametrizzato su tipo di pixel e dimensionalità dell’immagine, con risoluzione dei tipi al momento della compilazione. La scelta riflette la filosofia di ispirazione STL — flessibilità con costo zero a runtime
  • Pipeline dataflow — le immagini transitano attraverso concatenamenti di filtri, con propagazione automatica delle richieste di regioni di interesse e riuso di risultati intermedi
  • Supporto dimensionale generico — 2D, 3D, 4D (cioè serie temporali di volumi) con lo stesso codice generico
  • Oggetti di baseImage, Mesh, PointSet, SpatialObject, Transform, Registration, Optimizer
  • Build system CMake — strumento multipiattaforma sviluppato anch’esso da Kitware, che diventa standard de facto per progetti C++ open source negli anni successivi

Algoritmi inclusi

La versione 1.0 copre un vasto insieme di tecniche di riferimento per la comunità di medical image computing:

  • Filtri di smoothing — filtri gaussiani, di Canny, di diffusione anisotropa (Perona-Malik)
  • Morfologia matematica — dilatazione, erosione, apertura, chiusura, top-hat
  • Metodi level set — propagazione di fronti per segmentazione, con schemi narrow-band e fast-marching (Sethian)
  • Segmentazione regionale — region growing, watershed, clustering (K-means, Markov Random Fields)
  • Registrazione — rigida, affine, deformabile (BSpline, diffeomorfismi in sviluppo); ottimizzatori (gradient descent, LBFGS, Powell); metriche (SSD, correlazione, mutual information)
  • Statistiche d’immagine — istogrammi, densità di probabilità, classificatori Bayesiani
  • Input/output — formati principali di imaging medico: DICOM, Analyze/NIfTI, MetaImage (MHA), NRRD, GIPL

La completezza della libreria per un progetto 1.0 è notevole — riflette l’investimento di un consorzio industriale-accademico di prima grandezza per un periodo pluriennale.

Documentazione e manuale

Insieme alla libreria, il consorzio pubblica The ITK Software Guide — un manuale di circa 800 pagine che documenta classi, algoritmi ed esempi. Il Software Guide è disponibile gratuitamente in formato elettronico e distribuito anche come volume cartaceo a prezzo di costo. È uno dei manuali più completi mai prodotti per una libreria open source, e diventa rapidamente riferimento per corsi di laurea e dottorato in medical imaging.

Il consorzio ISC

La gestione del progetto a lungo termine — oltre la durata del contratto iniziale NLM — è affidata all’Insight Software Consortium (ISC), entità no-profit che raccoglie contribuzioni dalla comunità accademica e industriale. Il modello di governance è quello tipico di grandi progetti open source scientifici: committer con permessi di write, release managers, mailing list tecnica moderata, repository Git pubblico (al 2002 ancora CVS), licenza permissiva che consente l’uso anche in prodotti commerciali.

ITK, VTK, CMake: la pila Kitware

ITK non nasce isolato. Kitware aveva già pubblicato VTKVisualization Toolkit — nel 1993, una libreria open source per la visualizzazione di dati scientifici. VTK copre pipeline di rendering 3D (superfici, volume rendering), filtraggio e conversione di formati, widget interattivi. ITK e VTK sono complementari: ITK per l’analisi (segmentazione, registrazione, quantificazione) e VTK per la visualizzazione (rendering 3D dei risultati, interattività).

Il ponte tecnologico è CMake, lo strumento di build che supera le limitazioni di autoconf/automake per progetti C++ multipiattaforma. Insieme, ITK + VTK + CMake compongono la pila Kitware — un insieme di strumenti open source che diventerà, negli anni successivi, la spina dorsale di molti sistemi di medical imaging open source.

Applicazioni immediate

ITK viene adottato rapidamente come infrastruttura di calcolo da parte di progetti accademici di imaging medico:

  • 3D Slicer — piattaforma di imaging medico open source avviata nel 1998-1999 al Brigham and Women’s Hospital (Boston) e al MIT, che adotta ITK + VTK come backbone per segmentazione e visualizzazione
  • MedINRIA — software INRIA (Francia) per neuroimaging, basato su ITK
  • MRIcroN, MRIcroS — strumenti per visualizzazione e analisi MRI, con componenti ITK
  • AMIDE, VolView — viewer medicali con pipeline ITK-based

Numerose pubblicazioni scientifiche nei mesi successivi al rilascio iniziano a citare ITK come piattaforma di implementazione, con il vantaggio della riproducibilità: il codice pubblicato è eseguibile da chi vuole replicare l’esperimento.

Il significato per la ricerca clinica

La disponibilità di una libreria open source matura, documentata e maintained ha effetti strutturali sulla ricerca clinica quantitativa:

  • Riduzione della barriera di ingresso — un laboratorio accademico piccolo può accedere agli stessi strumenti di gruppi meglio finanziati
  • Riproducibilità — condividere un articolo significa poter condividere anche l’implementazione; peer review e replica diventano più rigorosi
  • Interoperabilità — pipeline multi-step tra gruppi diversi sono meno frammentate; l’output di uno strumento è input di un altro con interfaccia nota
  • Uso industriale — la licenza BSD consente a produttori di dispositivi medici di incorporare porzioni di ITK nei propri prodotti, con la possibilità di validare su un codice inspezionabile
  • Insegnamento — il Software Guide e gli esempi rendono ITK una risorsa didattica di prima qualità

Prospettive

Il consorzio ISC sta già lavorando a ITK 2.0, atteso nei prossimi anni, con miglioramenti su registrazione deformabile, supporto multi-core, interfacce verso linguaggi di scripting (Python, Tcl) per accelerare la prototipazione. La combinazione di ITK (analisi) + VTK (visualizzazione) + 3D Slicer (applicazione integrata) si configura come la piattaforma open source di riferimento per l’imaging medicale della prossima decade, con potenziale di ridefinire il mercato che finora è stato dominato da prodotti commerciali.

Per gli sviluppatori europei, inclusi i gruppi italiani di radiologia computazionale e neuroimaging, ITK offre un’infrastruttura che fino a poco tempo fa avrebbe richiesto licenze onerose. La curva di apprendimento del C++ template-based è ripida — ma la documentazione è eccellente e la comunità già attiva.


Riferimenti: Insight Toolkit (ITK) 1.0, rilasciato ottobre 2002. Insight Software Consortium (www.itk.org). National Library of Medicine (NLM), NIH. Consorzio di sviluppo: Kitware, GE Research, Insightful, UNC Chapel Hill, University of Utah, University of Pennsylvania, Columbia University. Licenza BSD. The ITK Software Guide. CMake, VTK (Kitware).

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