Pagina 44 di 104 CAPITOLO 3–METODI IMPLEMENTATI
CAPITOLO 3
Metodi implementati
Questo terzo capitolo descrive il protocollo sperimentale adottato in questo lavoro di ricerca e i metodi di elaborazione delle immagini implementati. Quando si lavora con immagini mediche, la prima fase di elaborazione delle immagini prevede un pre-processing ai fini del miglioramento delle immagini o della preparazione delle stesse ad analisi successive. Tipiche operazioni di pre-elaborazione sono il filtraggio, la normalizzazione dei livelli d’intensità, la registrazione d’immagini. Completata la fase preliminare del trattamento delle immagini, si passa alla fase successiva che essenzialmente consiste nell’estrazione delle caratteristiche d’interesse dell’immagine. In questo lavoro di tesi la fase di pre-elaborazione prevede un’operazione di allineamento tra l’immagine acquisita prima della seduta in camera iperbarica e l’immagine acquisita dopo ai fini di poterle confrontare correttamente. La fase successiva consiste nella segmentazione dell’immagine, nell’estrazione dei profili dalle immagini di saturazione di ossigeno e nel calcolo della distance transform.
Pagina 45 di 104
3.1 Protocollo sperimentale.
Stato dell’arte.
Attualmente il trattamento iperbarico è usato per aumentare la velocità di guarigione dei pazienti affetti da ulcere venose che non rispondono ai trattamenti tradizionali (come la terapia compressiva). Tuttavia l’evidenza clinica dell’efficacia della terapia è più empirica che provata scientificamente, infatti, gli studi, fino ad oggi condotti, presentano differenti imperfezioni nella pianificazione dello studio e i risultati sono affetti da diversi bias [46]. Risulta, dunque, importante documentare accuratamente l’efficacia di questa terapia “high tech” e la gestione del suo dosaggio attraverso un approccio “evidence based medicine”, e infine, è altresì importante fornire una documentazione che descriva in modo oggettivo e bene accurato il miglioramento che la terapia iperbarica, rispetto ai trattamenti convenzionali, ha apportato nello stato di ossigenazione dei tessuti lesi e nella velocità di guarigione delle ulcere venose.
Obbiettivi dello studio.
Questo studio ha tre scopi:
1. valutazione dei benefici apportati dalla terapia iperbarica (HBOT) al processo di guarigione delle ulcere cutanee rispetto ai trattamenti convenzionali;
2. verifica della possibilità di aumento della velocità di guarigione delle ulcere per i pazienti trattati due volte al giorno rispetto a quelli sottoposti alla terapia una volta al giorno, considerando un numero uguale di sedute;
3. verifica dell’utilità della NIRS per la valutazione dei cambiamenti di saturazione di ossigeno nelle zone lese prime e dopo la terapia iperbarica e durante il periodo del trattamento.
Pazienti reclutati e durata dello studio.
I pazienti coinvolti in questo studio sono affetti da ulcera venosa, di classe sei (pigmentazione, eczema venoso, lipodermatosclerosi e/o atrofia bianca) secondo la classificazione CEAP (Clinica, Eziologia, Anatomia, Patogenesi). Questo studio prevede il reclutamento di 81 pazienti da smistare casualmente in uno dei tre seguenti gruppi, ognuno dei quali sarà formato da 27 pazienti:
A. pazienti che eseguono la terapia due volte al giorno, una la mattina e una la sera; B. pazienti che sono sottoposti alla terapia una volta al giorno;
Pagina 46 di 104 Lo studio avrà una durata di 30 giorni per il gruppo B, 15 giorni per il gruppo A (sia i pazienti del gruppo A sia quelli del gruppo B sono trattati con 30 sessioni HBOT), e 30 giorni per il gruppo C.
Tutti i pazienti saranno trattati secondo le linee guide Association for the Advancement
of Wound Care (AAWC – Malvern, Pennsylvania, USA) – Venous Ulcer Guideline (December 2010) accessibile su HYPERLINK [47]. Le ferite saranno per prima cosa pulite strofinando
delicatamente con un tampone di garza contenente soluzione fisiologica (4-15 psi equivalenti a 275,6 – 1033 millibar or 207 – 775 mmHg); le ferite secche saranno inumidite con soluzione salina fisiologica (NaCl 0,9%) o con una soluzione di glucosio prima del trattamento.
I pazienti possono o non possono essere trattati con terapia iperbarica secondo i seguenti criteri d’inclusione o esclusione.
Criteri d’inclusione:
- sesso sia maschile sia femminile, - età compresa tra i 18 e gli 85 anni,
- pazienti con ulcere venose di area tra 3 e 30 , - pazienti che hanno dato il consenso informato scritto. Criteri di esclusione:
- uso concomitante di farmaci avanzati, - immunodeficienza,
- insufficienza severa renale e/o epatica, - osso esposto,
- gravidanza,
- partecipazione a un altro studio sperimentale.
Criteri di valutazione.
Per tutti i pazienti sono effettuate misure settimanali della dimensione della ferita utilizzando la planimetria digitale (Visitrak). Per i pazienti sottoposti alla terapia iperbarica, inoltre, sono ricavate le immagini di saturazione di ossigeno prima e dopo la terapia di ogni seduta adoperando la camera NIRS (Kent immagini Inc, Calgary, Alberta, Canada); per informazioni riguardanti la camera leggere il capitolo 2 (paragrafo 2.1). Uno strumento software in Matlab sarà adoperato per elaborare, analizzare le immagini e confrontare i risultati ottenuti. In particolare lo strumento permette di selezionare manualmente la regione d’interesse (ROI), di ottenere i profili dalla mappa di saturazione di ossigeno per valutare i cambiamenti dell’ossigenazione del tessuto leso prima e dopo la terapia HBOT e durante il
Pagina 47 di 104 periodo del trattamento, e comprende anche il calcolo dell’area della ROI che poi sarà confrontato con la misura ottenuta dalla planimetria digitale.
Aspetti innovativi dello studio.
Questo studio clinico è uno tra i primi a testare l’efficacia della terapia iperbarica su pazienti affetti da ulcera venosa cronica (in CEAP classe 6) rispetto al trattamento AAWC normobarico e a valutare l’efficacia della terapia in applicazioni di due volte al giorno rispetto ad applicazioni di una volta al giorno. Infine, per la prima volta è adoperata la metodica di imaging NIRS 2D per determinare i cambiamenti di ossigenazione dei tessuti e la vascolarizzazione nei pazienti con ulcere cutanee venose trattati con ossigenoterapia iperbarica.
3.2 Metodi di elaborazione delle immagini NIRS.
Ai fini della tesi sono stati considerati sei pazienti: tre appartenenti al gruppo A e tre del gruppo B. Le immagini (le quattro immagini alle quattro lunghezze d’onda e l’immagine di saturazione) raccolte per ogni paziente nelle diverse sedute, per mezzo della camera KENT (prima e dopo la terapia iperbarica), sono state elaborate utilizzando il programma Matlab
R2016. Nei sottoparagrafi successivi sono descritti i metodi di allineamento e segmentazione
utilizzati in questo lavoro di tesi.
3.2.1 pre-processing: allineamento.
La fase di pre-elaborazione consiste in un processo di allineamento delle immagini di saturazione post-terapia con quella pre-terapia. La matrice di trasformazione ottenuta dal processo di allineamento è stata adoperata per allineare le immagini alle quattro lunghezze d’onda post-terpia con le rispettive immagini pre-terapia.
Per il processo di allineamento si potrebbe scegliere arbitrariamente una delle due immagini di saturazione come immagine di riferimento, in quanto le immagini provengono dalla stessa modalità di imaging: è stata scelta l’immagine pre-terapia come immagine di riferimento.
Due metodi di allineamento sono stati confrontati: il primo è un allineamento basato sulla selezione, da parte dell’utente, di punti corrispondenti nelle due immagini, il secondo è basato sulle proprietà dei voxel. Il primo passo per eseguire l’allineamento basato sui punti di controllo consiste nella selezione di questi punti: è utilizzato il comando cpselect presente in MATLAB che apre una finestra Control Point Selection Tool in cui sono visualizzate l’immagine fissa e l’immagine mobile una di fianco all’altra, in questa finestra l’utente deve selezionare le coppie di punti omologhi in ordine: si prende il punto uno dalla figura a destra e l’omologo nella figura a sinistra ecc. Il numero di punti da selezionare dipende dal tipo di
Pagina 48 di 104 trasformazione che si vuole adoperare per l’immagine mobile, nel nostro caso è utilizzata una trasformazione “nonreflective similarità” (costituita da quattro parametri incogniti: traslazione lungo asse x e lungo l’asse y, l’angolo di rotazione e il fattore di scala), che richiede la selezione di almeno due punti omologhi. Questo tipo di trasformazione è scelta sotto l’ipotesi che l’ulcera non cambi morfologia durante l’intervallo di tempo che va dall’acquisizione dell’immagine pre-terapia all’acquisizione post-terapia dello stesso giorno. Inoltre, al contrario di altre strutture in cui si possono verificare notevoli deformazioni durante l’acquisizione dell’immagine, come la rete vascolare, in questo caso la struttura anatomica non si deforma; le uniche deformazioni che possono presentarsi sono dovute a eccesivi movimenti del paziente (ad esempio se il paziente piega la gamba), ma quest’ultimo è posizionato nello stesso modo durante le due acquisizioni, disteso su un lettino, e quindi si è ipotizzato di trascurare le deformazioni della zona anatomica d’interesse. Sotto queste ipotesi si è adoperata una trasformazione non deformabile, che ha condotto a risultati soddisfacenti (se i risultati non fossero stati accettabili si sarebbe dovuto adoperare un tipo di trasformazione elastica). Le immagini a disposizione non presentano punti corrispondenti facilmente individuabili, quindi l’utente potrebbe selezionare dei punti non esattamente omologhi; di conseguenza il processo di allineamento non sarà molto accurato in quanto le immagini potrebbero essere leggermente o del tutto disallineate e sarà pertanto necessario ripetere la procedura. La figura sottostante mostra la finestra Control Point Selection Tool attraverso la quale è possibile selezionare i punti (Fig.3.1).
Fig. 3.1 -Finestra Control Point Selection Tool: selezione dei punti omologhi (punto uno parte superiore, punto due parte inferiore). Selezionati i punti premere su File e dopo su Close Control Point Selection.
Pagina 49 di 104 Conclusa la selezione dei punti, la funzione cpselect restituisce due vettori contenenti le coordinate dei punti scelti nell’immagine; questi vettori, assieme all’immagine da trasformare spazialmente e al nome del tipo di trasformazione che si vuole adoperare, sono passati in ingresso alla funzione cp2tform, che ritorna in uscita una struttura tform contenente i parametri per la funzione di trasformazione. L’algoritmo sfrutta le coordinate delle coppie di punti di controllo per trovare i parametri della trasformazione. Il problema consiste nel risolvere il seguente sistema:
[u v]=[x y 1]*[sc –ss ; ss sc; tx ty] ; v=x*(-ss) +y*sc+ty u=x*sc +y*ss+tx
Dove (u,v) e (x,y) sono le coordinate dei punti selezionati, tx e ty la traslazione lungo asse x e y (in numero di pixel) e sc=sclae*cos(angle), ss=scale*sin(angle) in cui “angole” è l’angolo di rotazione e “scale” il fattore di scala.
Il sistema è costituto da quattro incognite, dunque servono due coppie di punti omologhi (quindi quattro punti) per trovare i parametri. Se l’utente seleziona più punti, allora l’algoritmo stima il valore dei parametri in modo da minimizzare la somma dei quadrati delle distanze tra le coppie di punti.
La struttura tform, calcolata in precedenza con il comando cp2tform, assieme all’immagine da trasformare, è passata in ingresso alla funzione imtransform, che restituisce in uscita l’immagine trasformata. Per controllare l’efficacia dell’allineamento si usa il comando imshowpair, che mostra in un’unica figura la combinazione delle due immagini sovrapposte; le parti delle immagini sovrapposte e con la stessa intensità appaiono in livelli di grigio mentre quelle non sovrapposte appaiano colorate. La figura sottostante (Fig.3.2), ottenuta con l’uso di imshowpair, mostra un esempio di allineamento tra due immagini.
Fig. 3.2 - Esempio risultato allineamento: a sinistra sovrapposizione immagine pre-allineamento, a destra sovrapposizione immagine post-allineamento.
Pagina 50 di 104 In questo studio, per eseguire la registrazione d’immagini basata sulle proprietà dei voxel, è stato adoperato l’algoritmo di ottimizzazione locale del simplesso di Nelder-Meade (spiegato a fine paragrafo) e sono stati confrontati due tipi di metrica: la somma dei quadrati delle differenze delle intensità (SSD) e la mutua informazione (MI). Quando si adopera le SSD come metrica l’algoritmo di ottimizzazione deve trovare la trasformazione che minimizza la SSD tra due immagini. Le immagini usate in questo studio, anche se provengono dalla stessa modalità di acquisizione e non è usato nessun mezzo di contrasto, dovrebbero esibire una variazione dell’intensità del segnale: l’immagine post-trattamento iperbarico dovrebbe mostrare un aumento dell’intensità del segnale nella zona lesa (un livello di rosso maggiore) che corrisponde a un aumento dell’ossigenazione tissutale (aumenta sia l’ossigeno nel plasma e sia, anche se in modo meno significativo, quello legato all’emoglobina). L’utilizzo di questa metrica, quindi, potrebbe condurre a un alto errore di registrazione, tuttavia si è osservato che in alcuni casi questa metrica porta a risultati accettabili (lieve disallineamento), probabilmente sia perché alcune coppie d’immagini, tra quelle analizzate, presentano dei valori d’intensità del segnale simili e sia perché l’allineamento parte da buone condizioni iniziali.
Quando si utilizza la mutua informazione come metrica l’algoritmo di ottimizzazione deve determinare la trasformazione che massimizzi questa funzione (utilizzando l’algoritmo di ricerca del simplesso di Nelder-Mead per ottenere la massimizzazione di una funzione f(x) basta cercare: min(-f(x))).
L’algoritmo di ottimizzazione, indipendentemente dal tipo di metrica utilizzata, partendo da un punto iniziale ovvero dai valori iniziali dei parametri della trasformazione (in questo caso si è utilizzata una trasformazione rigida: traslazione e rotazione), tenta di trovare il minimo della funzione di similitudine. I valori iniziali dei parametri (la traslazione lungo asse x e y , l’angolo di rotazione), non avendo nessuna informazione sulla posizione dell’immagine rispetto al paziente (nel formato DICOM non era presente questa informazione), sono stati inserti dall’utente scegliendo, tra diversi tentativi, il vettore dei parametri iniziali che ha portato a un buon allineamento. Per implementare l’algoritmo di ottimizzazione di Nelder-Mead è stata usata la funzione fminsearch di MATLAB:
[scale,Fval]=fminsearch(@(x) f(x),xo,opt);
fminsearch, partendo dalle condizioni iniziali rappresentate dalla variabile xo (contiene
in ordine: angolo di rotazione, traslazione lungo asse x, traslazione lungo asse y), ricerca il minimo della funzione f(x). Nella struttura opt, ottenuta con il comando optmiset (“Display”,
Pagina 51 di 104 ottimizzazione. L’ottimizzatore restituisce la soluzione (scale, contiene i valori dei parametri cercati) e il valore della funzione obbiettivo (Fvall) per i parametri trovati. La funzione f(x) è una delle due metriche o la mutua informazione (f(x)=MI(x,im1,im2,100),xo,opt)) implementata nel file MI.m o la SDD (f(x)= SSD(x, im1, im2)), descritta nel file SSD.m (le funzioni MI.m e SDD.m non sono delle funzioni proprie di matlab ma sono state implementate).
Partendo dai valori dei parametri restituiti dall’ottimizzatore, è costruita la matrice di trasformazione (in questo caso rotazione e traslazione: T=[ cos (teta1) sin (teta1) 0;-(sin (teta1)) cos (teta1) 0; dx1 dy1 1]). Questa è adoperata per la roto traslazione dell’immagine che si esegue usando la funzione imtransform (I, t), dove I è l’immagine da trasformare geometricamente, t è una struttura ottenuta con il comando: t=maketform (“affine”, T).
Imtransform assegna un valore, chiamato valore di riempimento, per i pixel introdotti dalla
trasformazione, di default tale valore è impostato a zero, ma è possibile specificare un valore differente utilizzando il parametro “fill”. La funzione di default mostra l’uscita usando il sistema di coordinate dell’uscita; per scegliere lo spazio di uscita nel quale mostrare il risultato sono usati i parametri “XData”, “YData”. La forma d’interpolazione adoperata di default è “bilinear”.
La figura sottostante mostra un esempio di un’immagine prima e dopo l’allineamento, utilizzando entrambe le metriche. Si noti come la MI porta a un risultato migliore, questo perché la MI, al contrario delle SSD, non richiede nessuna ipotesi sulla relazione tra le intensità delle immagini e quindi conduce a un buon risultato, anche se le immagini non hanno un’uguale distribuzione dell’intensità del segnale.
Fig.3.3 - Esempio allineamento: a sinistra sovrapposizione immagine post-allineamento con metrica SSD, a destra sovrapposizione immagine post-allineamento con metrica MI.
Pagina 52 di 104 I due metodi di allineamento adoperati mostrano entrambi delle difficoltà operative. La registrazione basata sulle proprietà dei voxel ha il problema di una corretta inizializzazione dei valori per i parametri della trasformazione: questi valori sono inseriti dall’utente, quindi se non sono scelti in modo opportuno, il processo di registrazione non va a buon fine. L’allineamento attraverso i punti caratteristici, invece, ha il problema dell’individuazione dei punti di controllo: le immagini a disposizione non presentano punti omologhi facilmente individuabili quindi le immagini, dopo il processo di allineamento, potrebbero presentarsi leggermente disallineate o completamente disallineate, il risultato dipende dalla precisione dell’utente nel selezionare i punti omologhi. A causa delle problematiche evidenziate, si è deciso di eseguire un primo allineamento con un approccio “feautres”, in modo da trovare una matrice di trasformazione dalla quale estrarre i parametri della trasformazione, che saranno usati come condizioni iniziali dell’algoritmo di ottimizzazione della registrazione, basato sulle proprietà dei voxel. Utilizzando l’approccio sopra descritto, quindi, non è più necessario che l’utente fornisca i valori iniziali dei parametri. Tuttavia, l’utente deve comunque selezionare con accuratezza i punti omologhi durante la fase di allineamento attraverso le feauters, poiché se tali punti sono scelti in modo del tutto casuale (cioè non corrispondenti) si compromette l’intero processo di registrazione. La figura sottostante mostra un esempio di questo processo di allineamento.
Fig. 3.4- Esempio allineamento: a sinistra sovrapposizione immagine post-allineamento con metrica MI, a destra sovrapposizione immagine post-allineamento con metrica SSD.
Algoritmo Nelder-Mead (fminsearch).
L’algoritmo utilizza un simplesso di n+1 punti, dove n è la dimensione del vettore x contenente i parametri della funzione da minimizzare. Il simplesso iniziale è calcolato in un intorno di xo (punto di partenza) e viene valutata la funzione obiettivo in corrispondenza di
Pagina 53 di 104 esso (se qualche elemento di xo è nullo, è posto a 0,00025). L’algoritmo modifica il simplesso secondo la seguente procedura:
a) x (i) contiene l’elenco dei punti nel simplesso corrente, i = 1, ..., n + 1.
b) Vengono ordinati i punti del simplesso secondo il valore della funzione: dal valore della funzione più basso f (x (1)) a più alto f (x (n + 1)). Ad ogni passo l’algoritmo scarta il punto peggiore x (n + 1) dove la funzione assume valore massimo. Per spostarsi verso valori più bassi occorre allontanarsi da x(n+1), un modo è quello di considerare un punto r detto punto riflesso.
c) È calcolato il punto riflesso: r = 2 m - x (n + 1),
dove
m = Σ x ( i )/ n , i = 1... n e l’algoritmo valuta f (r).
d) Se f (x (1)) ≤ f (r) <f (x (n)), è accettato c e terminare questa iterazione. e) Se f (r) <f (x (1)), è calcolato il punto di espansione s
s = m + 2 (m - x (n + 1)), Ed è valutato f (s).
Se f (s) <f (r), è accettato s e terminare l’iterazione. In caso contrario, è accettato r e terminare l'iterazione.
f) Se f (r) ≥ f (x (n)), l’algoritmo esegue una contrazione compresa fra il punto m, il miglior punto migliore di x (n + 1) e r:
Se f (r) <f (x (n + 1)) (cioè, r è meglio di x (n + 1)), è calcolato c = m + (r - m) / 2
Ed è valutato f (c). Se f (c) <f (r), è accettato c e terminare l’iterazione, altrimenti si passa al punto g.
Se f (r) ≥ f (x (n + 1)), e calcola cc = m + (x (n + 1) - m) / 2
e calcola f (cc). Se f (cc) <f (x (n +1)), è accettato c e terminare l'iterazione, in caso contrario, passare al punto g.
g) Calcola i punti n v (i) = x (1) + (x (i) - x (1)) / 2
ed è calcolato f (v (i)), i = 2, .., n + 1.
Pagina 54 di 104 La figura seguente mostra i punti che fminsearch potrebbe calcolare nella procedura, insieme a ogni possibile nuovo simplesso. Il simplesso originale ha un contorno in grassetto. Le iterazioni procedono fino a che non soddisfano un criterio di arresto.
Fig.3.5 Illustrazione dei i punti che la funzione fminsearch potrebbe calcolare
3.2.2 Metodi di segmentazione adottati.
Le immagini alle quattro lunghezze d’onda presentano degli artefatti da riflesso che non sono causati da fonti luminose nella stanza, ma dalla luce emessa dalla macchina KENT. L’immagine di saturazione derivante da queste quattro immagini, di conseguenza, in corrispondenza dei pixel di artefatto, mostra un valore di saturazione di ossigeno falsato, quindi è opportuno individuare i suddetti pixel e non considerarli in valutazioni successive. Le figure sottostanti mostrano l’immagine di saturazione (Fig.3.6) e le quattro immagini (Fig.3.7) del paziente tre in data 06-03-2016. Per individuare i pixel di artefatto sono stati proposti due metodi di segmentazione semi-automatici: la segmentazione a soglia e il Fuzzy-C-means. In uscita dal processo di segmentazione si ottiene una mappa dei pixel di artefatto che consente di determinare tali pixel nell’immagine ed etichettarli con un valore opportuno, in modo da poterli identificare e non considerarli nelle analisi successive.
Fig. 3.6-Immagine di saturazione di ossigeno derivante dalle quattro immagini alle quattro lunghezze d’onda.
Pagina 55 di 104
Fig. 3.7- L’immagini alle quattro lunghezze d’onda: i pixel di colore bianco sono pixel di artefatti da riflesso.
Le immagini alle quattro lunghezze d’onda, come si osserva dalla Fig.3.7, presentano parti non d’interesse (come ad esempio, la gamba, il lettino) quindi è opportuno selezionare la regione d’interesse (ROI) sia per l’immagine pre-terarpia sia per l’immagine post-terapia, prima di procedere con il processo di segmentazione. La ROI è selezionata dall’utente attraverso la funzione matlab ROI.m (che è stata implementa). In questa funzione, dopo la lettura dei file DICOM, attraverso il comando getpst l’immagine alla prima lunghezza d’onda (poteva essere scelta indifferentemente una delle quattro lunghezze d’onda) è mostrata in una finestra e l’utente può selezionare alcuni punti del contorno. La funzione getpst ritorna in uscita le coordinate dei pixel selezionati. Queste coordinate, assieme al numero di righe e colonne dell’immagine, sono passate in ingresso alla funzione poly2mask che restituisce l’immagine binaria della ROI. Successivamente è eseguita un’operazione di moltiplicazione, elemento per elemento, tra la maschera e ciascuna delle immagini alle quattro lunghezze d’onda, in modo da ottenere le quattro ROI (immagine in cui i pixel non appartenenti all’ulcera sono posti a zero). La figura sottostante illustra l’immagine (sempre relativa allo
stesso paziente) con sovrapposti i punti selezionati, la maschera binaria e la ROI ottenuta.
Pagina 56 di 104
Fig. 3.8 - Immagine con sovrapposti i punti selezionati, la maschera binaria e la ROI.
Utilizzando le ROI delle quattro immagini alle quattro lunghezze d’onda è stato eseguito un clustering multidimensionale adoperando l’algoritmo Fuzzy-C-means, con lo scopo di ottenere una “mappa dei pixel di artefatto da riflesso”, ovvero un’immagine binaria, della stessa dimensione dell’immagine di partenza, in cui i pixel di artefatto sono posti a uno e i rimanenti pixel sono uguali a zero. Eseguendo un’operazione di clustering, tutti i pixel con intensità simile sono raggruppati nella stessa classe, dunque i pixel di artefatto da riflesso, che mostrano un valore d’intensità superiore rispetto ai rimanenti pixel (in tutte e quattro le immagini hanno lo stesso comportamento), dovrebbero essere raggruppati nella stessa classe. Per eseguire l’algoritmo Fuzzy C-means è stata utilizzata la funzione presente in matlab fcm:
[center, U, obj_fcn] = fcm (x1, k), dove le variabili d’ingresso sono il numero di classi (k) e la
matrice (x1) avente quattro colonne contenenti ognuna una delle quattro ROI “srotolate” (vettore monodimensionale). In uscita la funzione ritorna i centroidi (center), la matrice di appartenenza (U) e il valore della funzione obbiettivo (J) ottenuti durante l’esecuzione dell’algoritmo. Il centroide con valore maggiore rappresenta il valore caratteristico del segnale dei pixel dell’immagine con intensità maggiore (i pixel di artefatto), e la colonna della matrice U corrispondente a questo centroide è la maschera associata ai pixel di artefatto, in cui ogni elemento ha un valore compreso tra zero e uno; tale valore rappresenta il grado di appartenenza del pixel al cluster (zero nessuna appartenenza, uno massima appartenenza). Partendo da questa maschera è stata ricavata la maschera binaria dei pixel di artefatto attraverso un’operazione di thresholding del 60%, cioè i pixel della maschera con valore maggiore o uguale a 0.6 sono posti a uno, e ai rimanenti pixel è assegnato valore zero. Per determinare il numero di cluster, da fornire in ingresso alla funzione fcm, è stata eseguita una prima ispezione visiva della ROI dell’immagine alla prima lunghezza d’onda, in modo da
Pagina 57 di 104 avere un’idea del numero di gruppi in cui si vogliono suddividere i pixel dell’immagine, in base al valore dell’intensità del segnale. Per confermare l’ipotesi sul numero di gruppi dedotto è stata eseguita un’analisi dell’istogramma della stessa ROI. Considerando, ad esempio, sempre il paziente tre seduta 06-03-2016, nella ROI (Fig.3.8) sono identificati tre gruppi: il primo relativo ai pixel di fondo (quindi valore zero) di colore nero, il secondo comprende regioni di colore grigio chiaro, quasi bianco, (pixel con intensità alta) e l’ultimo riguarda le regioni di colore grigio scuro (pixel a intensità bassa). L’istogramma della ROI, escludendo il picco associato al fondo (Fig.3.9), è caratterizzato da un modo dominate e termina con una coda dovuta al contributo dei pixel di artefatto, in quanto questi sono caratterizzati da valori alti d’intensità. Il numero di classi scelto per effettuare la segmentazione, come intuito dall’ispezione visiva sull’immagine e dall’istogramma, è pari a tre (il picco del fondo, il picco relativo al tessuto e la coda terminale).
Fig. 3.9- Istogramma ROI (escluso il fondo).
La funzione fmc, in questo caso, restituisce il vettore dei centroidi e la matrice delle appartenenze U di dimensioni rispettivamente 3x4 (dove tre è il numero di classi scelto dall’utente e dato in ingresso alla funzione fcm e quattro è la dimensione del clustering) e 3xN (in cui 3 è il numero di cluster e N il numero di pixel dell’immagine, nel nostro caso N=360000). La figura sottostane mostra la maschera dei pixel di artefatto, ottenuta come descritto, sempre per lo stesso paziente.
Pagina 58 di 104
Fig.3.10- In alto: ROI; in basso: maschera dei pixel di artefatto.
Il numero di classi può essere fissato pari a tre per tutte le immagini del paziente tre acquisite nelle diverse sedute, in quanto le immagini analizzate mostrano un andamento dell’istogramma simile a quello raffigurato nella Fig.3.9. Tuttavia, il numero di classi non può essere sempre lo stesso per le immagini di pazienti diversi, in quanto un’immagine può esibire un numero differente di regioni con intensità diverse, come ad esempio una zona a bassa intensità (tipica di tessuti poco vitali); di conseguenza, l’istogramma dell’immagine mostra un andamento differente rispetto al caso del paziente tre seduta 06-03-2016. Il numero di cluster, inoltre, potrebbe cambiare, anche considerando immagini acquisite per lo stesso paziente in sedute avvenute in tempi molto distanti (ad esempio a distanza di mesi), a causa di un’eventuale variazione dello stato dell’ulcera. Considerando, ad esempio, il paziente due seduta 27-05-2016 e osservando la ROI mostrata nella Fig. 3.11 possono essere individuate tre o quattro gruppi. I primi tre gruppi, facilmente identificabili, sono relativi rispettivamente ai pixel neri (fondo), pixel grigio chiaro, quasi bianco, (ad alta intensità), pixel grigio. Il quarto gruppo, individuato da un osservatore esperto, è caratterizzato da pixel grigio scuro quasi nero. L’istogramma della ROI (Fig.3.12), escludendo il picco relativo al segnale di “fondo”, in questo caso è caratterizzato da una coda finale e da tre ulteriori picchi, anche se non nettamente distinguibili. Bisogna, infatti, considerare che in questa immagine non abbiamo tre tessuti con segnale omogeneo differente, ma sempre lo stesso tessuto, caratterizzato da piccoli gruppi di pixel che mostrano un segnale a diversa intensità, quindi l’istogramma dell’immagine non può essere caratterizzato da tre modi dominanti. In questo caso, dunque, il numero delle classi non è facilmente deducibile né da un’ispezione visiva, che consiglia un numero di classi pari a quattro, né dall’istogramma, la cui coda terminale, i tre picchi secondari e il picco relativo al fondo, suggeriscono un numero di cluster uguale a
Pagina 59 di 104 cinque. La discordanza tra il numero di classi ipotizzato attraverso un’ispezione visiva e il numero di classi suggerito dall’istogramma è dovuta all’incapacità dell’osservatore di distinguere cinque regioni con intensità differente nell’immagine; inoltre cambiando osservatore cambia il numero di classi ipotizzato nell’ispezione visiva, quindi è più appropriato scegliere come numero di cluster quello dedotto dall’analisi dell’istogramma. La maschera dei pixel di artefatto ottenuta con la funzione fcm è illustrata nella Fig.3.13.
Fig. 3.11 - Immagine con sovrapposti i punti selezionati, la maschera binaria e la ROI.
Pagina 60 di 104
Fig.3.13- In alto: ROI; In basso: maschera dei pixel di artefatto.
La difficoltà maggiore riscontrata durante la segmentazione, come emerge dai due esempi descritti, è la stima del numero di classi. Per risolvere questo problema si potrebbe pensare di eseguire l’algoritmo più volte con un numero di classi differente e trovare tra le configurazioni ottenute quella con funzione obiettivo minima. Tuttavia per queste immagini la soluzione in corrispondenza al minimo della funzione costo potrebbe non coincidere con il risultato migliore. Aumentando il numero di cluster, l’algoritmo fornisce risultati corretti dal punto di vista teorico, ossia riesce a raggruppare pixel d’intensità sempre più simile: i pixel di artefatto con intensità più alta sono raccolti assieme e pixel di artefatto con intensità miniore sono raggruppati in un’altra classe, che può comprendere anche pixel di tessuto con intensità simile ai pixel di artefatto con valore minore. Pertanto la maschera dei pixel di artefatto, derivante dalla classe relativa ai pixel con intensità maggiore, perde dei pixel di artefatto. Ad esempio nelle figure sottostanti è mostrata per il paziente tre seduta 06-07-2016 la soluzione aumentando il numero di classi da tre a quattro. Sebbene, in questo esempio, la funzione costo diminuisca aumentando il numero di classi (da 2.7326e+009 a 1.4604e+009) la maschera che descrive la distruzione dei pixel di artefatto (y1), cioè i pixel con intensità del segnale alta, perde dei pixel di artefatto, i quali sono associati a una seconda maschera (y2) che comprende sia qualche pixel di artefatto, quelli con intensità minore, sia i pixel di tessuto (Fig.3.14). Utilizzando un numero di cluster pari tre, invece, si ottiene una maschera che include sicuramente tutti i pixel di artefatto, ma anche qualche pixel di tessuto, quelli a intensità più alta (Fig.3.15). Pertanto, nel primo caso sono sottostimati i pixel di artefatto nel secondo, invece, sono sovrastimati. Sovrastimando i pixel di artefatto si eliminano tutti i pixel “non buoni”, quindi saranno analizzati solo i pixel di segnale utile; tuttavia in alcuni casi,
Pagina 61 di 104 sovrastimando il numero di pixel di artefatto, molti pixel relativi al tessuto (quindi contenente segnale utile) saranno associati alla maschera dei pixel di artefatto e perciò questi non saranno presi in considerazione per consecutive valutazioni sull’immagine. Sottostimando i pixel di artefatto, invece, si conservano dei pixel “non buoni” e questi potrebbero alterare studi susseguenti. Ad esempio: nel calcolo della media nella ROI dell’ulcera i pixel di artefatto non eliminati, avendo segnale maggiore rispetto ai rimanenti pixel, potrebbero alzare il valore medio. La scelta tra i due approcci, a prescindere dal valore della funzione costo, dipende da quanto questa incida sulle analisi successive delle immagini.
In conclusione: non è possibile, per questo tipo d’immagini, trovare un criterio o una metrica per determinare il numero di cluster ottimale, ma l’utente, per via empirica, provando più volte l’algoritmo con numero di classi differente, dovrà scegliere la soluzione migliore.
Fig.3.14- Esempio di segmentazione con numero di classi pari a quattro: (da dx a sx) ROI e maschere.
Pagina 62 di 104 Un secondo metodo di segmentazione proposto è una segmentazione a soglia globale. La soglia è scelta in modo che i pixel dell’immagine di partenza, aventi valore maggiore della soglia, siano posti a uno così da ottenere una maschera che rappresenti la distribuzione dei pixel di artefatto. Per individuare la soglia è stata implementata una funzione soglia.m, nella quale attraverso il comando ginput è chiesto all’utente di selezionare almeno cinque pixel di artefatto (che presentino valori d’intensità diversa) nell’immagine di partenza. La funzione
ginput ritorna le coordinate del punto selezionato dall’utente, in corrispondenza delle quali è
valutato il valore del pixel, attraverso il comando sub2ind (prende in ingresso la dimensione dell’immagine e le coordinate del punto: sub2ind (size (immagine), round(yi), round(xi))), e questo valore è salvato in un vettore. Terminata la selezione dei punti di artefatto, dunque, si ottiene un vettore contenente i valori dei pixel selezionati; del suddetto vettore è valutato il valore minimo, che rappresenta il più basso valore che un pixel di artefatto può assumere, ed è scelto come valore soglia. Ottenuta la soglia si procede con l’operazione di segmentazione, ponendo uguale a uno tutti i pixel dell’immagine di partenza che hanno valore maggiore o uguale al valore soglia. Questa tecnica è veloce, ma dipende dall’utente la scelta dei punti da cui calcolare il valore soglia. La figura sottostante illustra le maschere ottenute per il paziente tre seduta 06-03-2016 con la segmentazione a soglia. Confrontando questa maschera con quella ricavata dalla segmentazione Fuzzy-C-means con numero di cluster pari a tre per lo stesso paziente (Fig.3.10), si osserva che adoperando una segmentazione a soglia s’individua un minore numero di pixel di artefatto (4% pixel segmentazione a soglia, e 9.89% segmentazione Fuzzy). Questo significa o che la segmentazione a soglia erroneamente non ha considerato dei pixel come pixel di artefatto, in quanto caratterizzati da un valore sotto la soglia, oppure che la segmentazione Fuzzy-C-means ha raggruppato nella classe relativa ai pixel di artefatto anche pixel di tessuto con intensità alta simile a quella dei pixel di artefatto. Pertanto, nel caso in cui l’utente scelga la maschera derivante dalla segmentazione Fuzzy, i pixel di artefatto sono sovrastimati, mentre, nel caso in cui sia scelta la maschera ottenuta dalla segmentazione soglia i pixel di artefatto sono sottostimati. Come descritto in precedenza, la scelta tra quale metodo adoperare dipende da quanto questo influenza le analisi successive.
Pagina 63 di 104
Fig.3.16- In alto: ROI; in basso: maschera dei pixel di artefatto.
Terminato il processo di segmentazione (indipendentemente dalla scelta: segmentazione a soglia oppure quella Fuzzy) si ottiene una mappa dei pixel di artefatto. Partendo da questa è possibile identificare la posizione dei pixel nell’immagine di saturazione e sostituire a tutti i pixel di artefatto un valore fuori scale (-1), in modo da poterli identificare e non considerarli nelle elaborazioni successive.
Un modo per determinare l’efficacia dell’algoritmo di segmentazione adoperato consiste nel confrontare alcune misure ricavate da quest’ultimo con quelle ottenute da una segmentazione manuale [48]. La mappa manuale, se pur tracciata da un osservatore non esperto, rappresenta un riferimento attendibile, in quanto sono individuati manualmente la maggioranza dei pixel di artefatto presenti nell’immagine. Per la valutazione degli algoritmi di segmentazione si possono calcolare le seguenti quantità: i veri positivi(VP), i veri negativi (VN), i falsi positivi (FP) e i falsi negativi (FN). A partire da queste quantità sono stimati gli indici (in valori percentuali) di sensitività e specificità e può essere calcolato anche l’indice
dice (ci sono due formulazioni alternative, come descritto in seguito).
VERI POSITIVI-VP: pixel identificati come pixel di artefatto nella ROI sia della segmentazione semi-automatica adoperata (a soglia, o Fuzzy-c-means) e sia della segmentazione manuale;
VERI NEGATIVI-VN: pixel non considerati di artefatto nella maschera tracciata manualmente e correttamente individuati dalla segmentazione semi-automatica; FALSI NEGATIVI-FN: pixel di artefatto individuati dalla segmentazione manuale
Pagina 64 di 104 FALSI POSITIVI-FP: pixel “buoni” identificati dalla segmentazione manuale e
valutati come pixel di artefatto dalla segmentazione semi-automatica.
La specificità rappresenta la percentuale di pixel non di artefatto correttamente individuata, cioè il rapporto tra il numero di pixel non di artefatto individuati sia dalla segmentazione semiautomatica sia da quella manuale e il numero totale di pixel considerati non di artefatto dalla segmentazione manuale (insieme VN + FP):
La sensitività rappresenta la percentuale di pixel di artefatto correttamente individuata, cioè il numero di VP su l’insieme di pixel considerati di artefatto dalla segmentazione manuale (insieme: VP + FN)
Il dice è uno tra gli indici più riportato in letteratura [48][49], e adoperato per valutare il grado di sovrapposizione tra due maschere ottenute da due algoritmi differenti di segmentazione. È definito come segue:
Dove A e B rappresentano le due maschere ottenute con due metodi di segmentazioni diversi, indica l’overlapping area (OA), cioè il numero di pixel comuni tra le due immagini, e è la media del numero di pixel delle due maschere.
L’indice dice può tuttavia essere scritto in modo alternativo:
Se la maschera manuale e la maschera derivante dalla segmentazione semi-automantica sono perfettamente coincidenti, questi tre indici risultano pari a uno (in termini percentuali: 100%).
In questo tipo d’immagini non bisogna segmentare delle strutture anatomiche ben evidenti o estrarre i contorni degli “oggetti”, ma bisogna identificare i pixel di artefatto, distribuiti in gruppi in maniera sparsa nell’immagine. Spesso alcuni gruppi sono di dimensioni piccolissime (un paio di pixel), pertanto non tutti i pixel di artefatto sono facilmente percepiti dall’utente. L’operatore, dunque, selezionerà sempre qualche pixel di
Pagina 65 di 104 artefatto in più o in meno rispetto all’algoritmo di segmentazione adoperato, quindi ci saranno sempre dei falsi positivi o dei falsi negativi, e di conseguenza la specificità, la sensitività e l’indice dice non raggiungeranno mai un valore pari a uno (in percentuale: 100%).
3.3 Distance transform.
La distance transform è un processo che a ogni pixel della maschera d’ingresso, che
rappresenta la struttura anatomica, nel nostro caso l’ulcera, assegna un valore pari alla sua distanza (tipi di distanza che si possono usare: euclidea, quasi-euclidea, chessboard, cityblock) dal più vicino pixel appartenente allo sfondo. Il risultato di questo processo è la mappa di distanze, cioè un’immagine in scala di grigi delle stesse dimensioni della maschera di partenza in cui i pixel più chiari sono quelli più lontani dal fondo. Generalmente la distance
transform è utilizzata nell’operazione di skelethonization in quanto i pixel centrali, cioè quelli
con valore più alto, rappresentano lo skeleton; effettuando un’operazione di thresholding si può ottenere lo skeleton definitivo. La skelethonization è un’operazione morfologica che trasforma un oggetto di un’immagine binaria in un suo sottoinsieme di pixel, chiamato “scheletro”, conservando la connettività degli stessi [50]. Attraverso il processo di skelethonization, quindi, partendo dalla maschera che rappresenta la struttura anatomica è possibile ottenere una sua forma minima, cioè una struttura più semplice (tipicamente costituita da linee) che conserva le caratteristiche principali, con l’obbiettivo di caratterizzarla dal punto di vista geometrico. In questo lavoro di tesi la distance transform non è usata per ottenere lo “scheletro” dell’ulcera ma per ricavare un’informazione sul valore di saturazione di ossigeno dall’immagine. Nella mappa di distanze tutti i pixel con lo stesso valore, cioè quelli che hanno uguale distanza dal fondo della maschera che rappresenta l’ulcera, sono stati identificati ed estratti dall’immagine di saturazione (la posizione di suddetti pixel nella mappa coincide con quella nell’immagine di saturazione) in modo tale da poter calcolare il loro valore mediano. Alla fine della procedura descritta, si ottiene un vettore, in cui ogni elemento rappresenta il valore mediano di saturazione di ossigeno delle regioni dell’ulcera che hanno stessa distanza dal contorno. Per calcolare la mappa delle distanze è stata usata la funzione matlab bwdist, che riceve in ingresso la maschera che rappresenta l’ulcera e il tipo di distanza da usare (in questo caso la chessbord) e ritorna in uscita la mappa delle distanze. Questa funzione assegna ad ogni pixel non nullo dell’immagine d’ingresso un valore progressivo pari alla distanza dal più vicino pixel non nullo, pertanto la maschera d’ingresso deve essere invertita, cioè i pixel della ROI (ulcera) sono posti a zero e i pixel del fondo a uno. La figura sottostante illustra un esempio di mappa di distanze (la figura è relativa al paziente tre seduta
Pagina 66 di 104 06-10-2016). È possibile notare come i pixel che hanno stessa distanza dal fondo mostrano lo stesso “colore” (intensità) e i pixel più chiari sono quelli più centrali.
A) B) C)
Fig.3.17 -A) ROI: ULCERA, B) MASCHERA INEVERTITA C) MAPPA DI DISTANZE.
Attraverso la funzione distanza.m (implementata) partendo dalla mappa delle distanze sono stati identificati i pixel con uguale valore (escludendo i pixel con valore pari a zero in quanto sono il fondo) e questi sono stati estratti dall’immagine di saturazione (scartando i pixel di artefatto, i quali sono stati precedentemente etichettati con valore paria -1) e sono stati raggruppati. Infine, per ogni gruppo è stato calcolato il valore mediano e salvato in un vettore che è stato graficato così da mostrare l’andamento dei valori mediani andando dal centro verso l’esterno dell’ulcera. Viene poi riportata una figura in cui alla ROI dell’ulcera dell’immagine di saturazione sono sovrapposte le curve d’isolivello calcolate dalla mappa delle distanze attraverso il comando matlab contour, che di default stima dieci curve. Ogni curva rappresenta i pixel che hanno stessa distanza dal fondo della maschera, quindi, può essere associata ad uno dei gruppi precedentemente ricavati, pertanto il valore mediano è come se fosse stato calcolato su ognuna di queste curve. Tuttavia, il numero di curve scelto (pari a 10 solo per avere una buona visualizzazione) non è detto che sia pari al numero dei gruppi, quindi, il vettore contente i valori mediani dei vari gruppi potrà avere una lunghezza maggiore rispetto al numero delle curve, di conseguenza non sono raffigurate un numero di curve pari al numero dei gruppi. Nella figura di seguito è mostrato un esempio dei risultati ottenuti: nell’immagine a destra è illustrata la ROI con sovrapposte le curve d’isolivello e nell’immagine a sinistra è disegnato l’andamento del valore mediano di St di queste curve. Le curve d’isolivello sono state etichettate in modo da poter identificare nel grafico adiacente
Pagina 67 di 104 il corrispondente valore mediano di saturazione di ossigeno, ad esempio per la curva con etichetta pari a due il suo valore mediano, osservando la figura accanto, corrisponde al valore nell’asse delle ordinate associato al valore due nell’asse delle ascisse, quindi, questo è il valore mediano dei pixel che hanno distanza pari a 2 mm dal centro dell’ulcera.
Fig.3.18- Sinistra: vettore dei valori mediani, destra: ROI dell’ulcera con sovrapposte le curve d’isolivello.
3.4 Profili d’intensità dell’immagine
Per estrarre un profilo d’intensità (valore dei pixel lungo un segmento) dall’immagine di saturazione di ossigeno è stato creato uno script nel quale, dopo il caricamento dell’immagine pre-terapia e dell’immagine post-terapia allineata, attraverso la funzione
improfile, è data la possibilità all’utente di tracciare il profilo d’intensità: la funzione calcola e
disegna il profilo lungo il segmento individuato dai due punti cliccati dall’utente nell’immagine pre-terapia. Sfruttando le coordinate del suddetto segmento è riutilizzata la funzione per disegnare il profilo nell’immagine post-terapia. Senza richiedere l’intervento dell’utente, inoltre, sono disegnati i profili relativi alla riga centrale e alla colonna centrale sia per l’immagine pre-terapia sia per l’immagine post-terapia. Le figure sottostanti illustrano un esempio dei profili disegnati nelle immagini (le figure sono relative al paziente quattro seduta 07-08-2016). Nella Fig. 3.19 in alto sono mostrate le immagini di saturazione pre-terapia e l’immagine post-terapia con sopra disegnato il segmento tracciato manualmente dall’utente, in basso sono raffigurati, sovrapposti, i profili d’intensità delle due immagini: di colore verde il profilo dell’immagine pre-terapia e di colore blu quello dell’immagine post-terapia, nei due profili sono evidenziati con dei punti rossi i pixel di artefatto. Nella Fig. 3.20 in alto sono illustrate le immagini con sopra i segmenti relativi alla riga e alla colonna centrale, e in basso sono mostrati i profili ottenuti.
Pagina 68 di 104
Fig. 3.19- In alto: immagine pre e post terapia con sovrapposto il segmento che individua il profilo; in basso: profili d’intensità.
Fig. 3.20- In alto: immagine pre e post terapia con sovrapposto i segmenti riga centrale e colonna centrale; in basso: profili d’intensità.