E’ stato dapprima affrontato il problema della ricostruzione
tridimensionale di immagini biomedicali provenienti da diverse fonti
(come CT, PET, MRI, ecc.); è stata poi presa in considerazione come
tecnica di visualizzazione volumetrica il Direct Volume Rendering, facendo
riferimento al principale algoritmo della famiglia noto come Ray Casting.
Si è passati allo sviluppo di un modulo software in grado di realizzare il
Maximum Intensity Projection ( MIP ), ottenendo dal dato volumetrico
soltanto quei voxel a maggiore intensità . Tale modulo è di particolare
interesse, ed è utilizzabile come tecnica di elaborazione di immagini, per
indagini di tipo non invasive, di esami angiografici . Tale modulo , scritto
in C++, sfrutta i vantaggi della programmazione ad oggetti, e fa uso
delle librerie VTK (“Visualization Toolkit” per la visualizzazione
scientifica) e ITK (“Insight Segmentation and Registration Toolkit” per
la segmentazione, registrazione e la manipolazione di dati medicali ).
Si è poi condotto un dettagliato studio sull’immagine acquisita
implementando due classi per l’elaborazione dell’informazione , come
tipo di pixel e dimensionalità. Tale studio ha consentito di poter
effettuare una classificazione del dato acquisito, per ovviare al problema
della codifica causata dalla modalità di acquisizione, e di utilizzare la
classe VTK, denominata vtkImageShiftScale, tale da poter shiftare i
pixel di quel valore tale da rendere il contenuto dell’immagine tutto
positivo. Ciò ha permesso di poter applicare il modulo MIP senza aver
perdita di informazione; i pixel sono stati ricodificati , presentando
successivamente soltanto valori positivi .
Si è quindi analizzata la prestazione dell’algoritmo MIP applicato ai
DataSet medicali, notando che in assenza completa di un pre-processing
di segmentazione ( ovvero la fase in cui vengono riconosciuti e
classificati i vari tessuti e/o organi ) il processo di ricostruzione risulta
computazionalmente oneroso . Il MIP , non passando attraverso una
rappresentazione intermedia, ricalcola opacità, colore ad ogni variazione
7
del punto di vista, il che vuol dire che senza risorse di calcolo adeguate è
praticamente impossibile avere un modello con cui interagire in tempo
reale. Lo studio di tale problematica ha condotto all’utilizzo di una
particolare classe VTK, denominata vtkRenderWindow, che consente,
durante la fase di campionamento, di poter settare il numero di raggi che
attraversano il DataSet volumetrico permettendo cosi all’utente di avere
una maggiore interazione con il piano di vista a svantaggio della qualità
dell’immagine ; spetterà all’utente trovare il miglior trade-off tra real-time
e qualità dell’immagine in base alla finalità di utilizzo dell’applicativo.
Infine sono state gettate le basi per l’implementazione di codice
parallelizzato tale da poter suddividere e distribuire il carico
computazionale dell’applicativo a diversi computer connessi tramite rete
telematica.
Tale tesi mi ha consentito di poter arricchire il mio bagaglio culturale in
ambito sia della conoscenza di un nuovo ambiente di sviluppo quale
Microsoft .Net sia dell’utilizzo di toolkit per l’elaborazione, la
visualizzazione e l’analisi dell’immagine.
8
Capitolo 1
Introduzione
1.1 Grafica 3D
Fino a qualche tempo fa la grafica 3D veniva trattata solo ed
esclusivamente su hardware dedicato, l'image generation, una macchina che
conteneva un database “visuale” ma in formato chiuso e proprietario. I
programmatori potevano perciò solo manipolare quanto effettivamente
presente nel database, operando esclusivamente rotazioni o traslazioni di
oggetti già disegnati. In seguito la Silicon Graphics realizzò una serie di
funzioni, o meglio una collezione di API (Application Programming
Interface) per la grafica 2D e 3D, con lo scopo di permettere
l'interazione con l'hardware: le OpenGL, oggi divenuto uno standard
aperto supportato da diverse società come Apple, Sun e IBM. Le
OpenGL, quindi, consentono di realizzare applicazioni per la
visualizzazione di una scena 3D. Quest'ultima contiene gli insiemi di dati
che rappresentano gli oggetti tridimensionali e i dati relativi alla loro
illuminazione e posizione rispetto all'osservatore. Gli oggetti possono
essere rappresentati mediante tecniche mesh-based. Una mesh di poligoni è
costituita da una collezione di lati, vertici e poligoni connessi tra loro in
modo tale che ciascun lato sia condiviso da al più due poligoni.
9
Con tale tecnica ogni poligono viene suddiviso e memorizzato come un
insieme di triangoli, in quanto questi ultimi garantiscono la planarità della
figura da essi rappresentata. Il processo di suddivisione di un poligono in
triangoli viene chiamato triangolazione. Ogni solido viene memorizzato
attraverso i poligoni che ne delimitano le facce, e quindi, in ultima analisi,
come un insieme di triangoli adiacenti. Per poter essere processato, ogni
oggetto è in realtà scomposto in una serie di triangoli. Ad ogni triangolo
sono associati i dati che determinano le coordinate sugli assi x, y, z e
quindi la posizione nello spazio. Questa notevole massa di dati viene
quindi inviata alla scheda grfica: il software, che è in esecuzione sulla
CPU (Central Processing Unit), trasferisce i dati al processore grafico.
Questo processo prende il nome di real-time rendering. Più in generale il
rendering è il processo di generazione di un'immagine a partire da una
descrizione di oggetti tridimensionali. La descrizione è data in un
linguaggio o in una struttura dati definiti rigorosamente e deve contenere
la geometria, il punto di vista, le informazioni sulla mappatura delle
superfici visibili e sull'illuminazione. Il risultato è un’immagine digitale e
fornisce l’aspetto finale al modello o all'animazione. Esistono differenti
algoritmi di rendering utilizzati per soddisfare le differenti esigenze di
rappresentazione dei dati; per questo lavoro di tesi, si utilizzerà un
rendering di tipo volumetrico con algoritmo basato su Ray Casting .
1.2 Il Medical Imaging
La medicina fruisce costantemente degli strumenti che le scienze e la
tecnologia mettono a disposizione per una sempre più completa
comprensione dei fenomeni fisici, chimici e biologici che avvengono nel
complesso sistema che è l'organismo umano. Negli ultimi decenni alle
varie discipline scientifiche sopra menzionate, si è affiancata, in maniera
trasversale, l'informatica: fonte d’innovazione per tutte. L'enorme
10
potenzialità di calcolo, la possibilità di modellizzare i fenomeni
complessi, di immagazzinare e recuperare con grande rapidità le
informazioni e di rappresentare in maniera visiva realtà complesse sono
solo alcuni degli esempi più appariscenti del contributo enorme che
l'informatica fornisce alle varie tematiche delle scienze.
Il medical imaging, in italiano la “diagnostica per immagini”, iniziata poco
più di un secolo fa con la scoperta dei raggi X da parte del fisico tedesco
Roentgen, ha avuto negli ultimi decenni un forte impulso, dovuto alle
nuove metodologie d’impiego degli stessi raggi X, che hanno portato alla
Tomografia Assiale Computerizzata, all'impiego d’ultrasuoni (ecografia),
di radio isotopi (scintigrafia, PET), alla scoperta dei fenomeni di
risonanza magnetica ecc. In tutti questi casi si pone in primo luogo il
problema di fornire all'utente finale, sia esso medico o paramedico, uno
strumento d’impiego sufficientemente agevole e sicuro, per utilizzare
appieno queste grandi potenzialità diagnostiche messe a disposizione
dall'evoluzione scientifica e tecnologica. La visualizzazione, infatti,
impegna il più importante apparato sensoriale umano che è quello della
vista e di conseguenza il relativo processo interpretativo della mente
umana che costituisce un mezzo semplice ed efficace per comunicare
informazioni complesse e ricche di contenuti, ma il presupposto
fondamentale è che i dati raccolti dai sensori che analizzano i fenomeni
non siano alterati durante la fase d’elaborazione che deve consentire
all'operatore la più ampia disponibilità di mezzi atti ad esaltare la
comprensione dei fenomeni. A partire dagli anni '70, con la diffusione
delle prime macchine per tomografia assiale computerizzata, si è assistito
ad un'evoluzione sempre più veloce delle modalità con cui si
acquisiscono, si conservano e si analizzano le immagini che servono
come base per la diagnosi medica. La differenza sostanziale che si è avuta
è stato il passaggio da informazioni analogiche, statiche e bidimensionali
come quelle date dalle normali immagini radiografiche (raggi X), ad
11
informazioni numeriche, eventualmente dinamiche e contenenti
informazioni tridimensionali. L'elemento determinante che ha permesso
quest’evoluzione è stata la transizione da sistemi basati su pellicola, come
gli apparecchi radiografici, a sistemi basati su computer. La conseguenza
di questo sviluppo è stata la necessità di generare degli algoritmi e delle
metodologie d’interpretazione dei dati acquisiti che simulino al meglio la
conoscenza del radiologo, che resta, ancora oggi, di gran lunga il più
efficiente sistema d’elaborazione dei dati medicali conosciuto. Si tratta,
quindi, di realizzare, in un sistema computerizzato, le stesse operazioni
che un radiologo opera sui dati a sua disposizione: eliminazione del
rumore (in pratica evitare di prendere in considerazione gli artifici
introdotti dal macchinario d’acquisizione), identificazione dei diversi
tessuti e/o regioni di interesse (confrontando regioni tra loro limitrofe e
sfruttando informazioni morfologiche ed anatomiche) e ricostruzione
della situazione reale tridimensionale a partire da molteplici dati
bidimensionali [1]. Queste operazioni, in effetti, sono spesso compiute
dal radiologo in collaborazione con lo specialista della patologia studiata
(il neurochirurgo, l'oncologo, il chirurgo plastico etc.) [2] .
Il sistema, dunque, deve riprodurre queste caratteristiche di analisi e
sintesi cercando di automatizzare il più possibile la procedura. Purtroppo
siamo ancora molto lontani da una situazione ideale in cui si possano
ottenere dei risultati affidandosi solamente alle capacità deduttive del
computer, ma si può comunque affermare di poter compiere (a livello di
ricerca, se non di routine ospedaliera) diagnosi assistite da calcolatore.
1.2.1 Tipologia dei Dati
Di seguito vengono presentati brevemente i maggiori strumenti per
l’acquisizione di immagini biomedicali e le loro principali caratteristiche.
12
Tomografia assiale computerizzata (CT o TAC) I tomografi CT
sono gli strumenti digitali più utilizzati nel medical imaging, hanno un
costo contenuto per cui la maggior parte degli ospedali ne sono dotati.
L’output di un tomografo è una serie di matrici transassiali (slices)
allineate perpendicolarmente all’asse definito dalla spina dorsale del
paziente. Ogni slice è la rappresentazione di una fetta del corpo del
paziente con uno spessore compreso tra 1 e 10 mm. L’acquisizione delle
immagini è effettuata facendo ruotare una serie di emettitori di raggi X e
di rilevatori in modo solidale tra loro attorno al corpo del paziente. La
risoluzione di una slice può variare tra i 64x64 e i 512x512 pixel
1
. La
dimensione di un pixel varia tra 0.5 e 2 mm ed è omogenea nel piano
transassiale. Il numero di slice varia a seconda dell’estensione del corpo
da esaminare e dalla distanza tra le slice. Ciascun pixel idealmente
rappresenta le caratteristiche di assorbimento di un piccolo volume del
corpo umano individuato dai limiti fisici del pixel stesso.
Risonanza magnetica nucleare (MRI) La risonanza magnetica
nucleare è dal punto di vista tecnologico più avanzato rispetto al
tomografo CT ed è tuttora in fase di sviluppo. L’MRI è una tecnologia
sviluppata da Paul Lauterbur e da Peter Mansfield per la quale hanno
vinto nel 2003 il premio Nobel per la Medicina. Lo schema di
funzionamento è il seguente. Il paziente viene immerso in un campo
magnetico ad alta intensità in modo tale che i momenti magnetici delle
molecole si allineino alla direzione del campo esterno, in seguito
vengono emessi degli impulsi di microonde a basso livello di radiazione
detti “impulsi di eccitazione” che provocano un’oscillazione dei
momenti magnetici del paziente; in questo modo le molecole cominciano
ad emettere microonde dopo ogni impulso. Le remissioni vengono
1
Per pixel si intende l’area elementare analizzata dalla coppia emettitore/rilevatore. Poiché in effetti rappresenta un
volume elementare viene definito in medical imaging come Voxel
13