• Non ci sono risultati.

Sviluppo dei metodi di analis

3.3. Implementazione algoritmi automatici n-SD e FWHM

3.3.1. Analisi istogramma

La prima fase dell’implementazione, comune ad entrambi i metodi di detezione FWHM e n-SD, è consistita nel modellizzare il segnale del miocardio remoto in modo da poter estrarre i parametri che lo descrivono tramite una procedura di fitting sull’istogramma del miocardio totale.

Innanzitutto, è stata implementata una funzione esterna ricepdf per creare il modello della distribuzione di Rice da utilizzare nella procedura di fitting. La funzione implementa il seguente modello non lineare a tre parametri:

𝑝(𝑥|𝑘𝑟, 𝐴, 𝜎) = 𝑘𝑟[ 𝑥 𝜎2 𝑒 −(𝑥 2+𝐴2) 2𝜎2 𝐼 0( 𝑥𝐴 𝜎2)] dove:

• x è il vettore dei dati forniti in ingresso alla funzione

• kr è il fattore moltiplicativo del modello che tiene conto dell’ampiezza dell’istogramma;

• A e σ sono i parametri che descrivono la PDF di Rice che tengono conto rispettivamente del fenomeno dell’annullamento del miocardio remoto e della presenza del processo di rumore; • I0 è la funzione di Bessel che è stata implementata tramite una funzione messa a disposizione

dal software.

Una volta creato il modello, si procede con il calcolo dell’istogramma dell’immagine del miocardio segmentato, fornita in ingresso all’algoritmo. A questo punto si passa alla procedura di fitting della curva così ottenuta in modo da trovare i parametri del modello che descrivono meglio i dati. La procedura utilizzata si basa sull’algoritmo di minimizzazione dei quadrati di Levenberg-Marquardt. Si tratta di una funzione che forniti come input i dati sui quali effettuare il fitting e il modello da utilizzare, restituisce i parametri stimati.

Durante il lavoro sono state effettuate diverse prove per ottimizzare i risultati ottenuti dall’algoritmo. Infatti, trattandosi di algoritmi di ottimizzazione locale, il risultato dipende molto dai parametri iniziali forniti in ingresso. Inizialmente erano stati scelti dei valori verosimili a quelli che si hanno nella pratica clinica, ovvero un valore di A prossimo allo zero, nullo nel caso in cui il miocardio remoto è perfettamente annullato, e un valore di σ dell’ordine delle decine, sotto l’ipotesi di lavorare su dati con rumore non troppo elevato. Per quanto riguarda invece il valore del fattore k era stato fissato a un valore pari a cento volte il valore massimo dell’istogramma.

42 Tuttavia, applicando la funzione ad un fantoccio con A variabile da 0 a 20 e un σ pari a 15, per valori di A inferiori a 15 l’errore quadratico medio è elevato, contro un errore di fitting minore per il parametro σ, come mostrato in Figura 3.3.

Per ridurre l’errore sono stati utilizzati due approcci. Innanzitutto, si è sfruttata la conoscenza teorica dei valori dei parametri ideali per limitare il range di variabilità. In particolare, sono stati posti i seguenti limiti:

• il fattore k può assumere solo valori positivi compresi tra 0 e il numero totale dei pixel dell’immagine;

• il parametro A può assumere solo valori positivi compresi tra 0.01 (caso ideale in cui il miocardio è perfettamente annullato) e 100 (tipicamente l’intensità dei pixel appartenenti al miocardio remoto non va oltre tale valore);

• il parametro σ può assumere solo valori positivi compresi tra 1 e 100.

In questo modo si è ottenuto un primo miglioramento ottenendo un errore inferiore, come mostrato in Figura 3.4.

Figura 3.3.Rappresentazione andamento dei parametri stimati dalla procedura di fitting per valori crescenti del parametro A: A (in alto a sinistra), σ (in alto a destra), errore di fitting su A (in basso a sinistra) e su σ (in basso a destra)

Figura 3.4. Rappresentazione andamento dei parametri stimati dalla procedura di fitting per valori crescenti del parametro A, dopo la prima

43 Dopo questa prima ottimizzazione è stata creata una funzione esterna multimpfitfun che esegue la procedura di fitting un numero n di volte, valore fornito in input alla funzione stessa. Ad ogni iterazione i parametri iniziali sono estratti da una distribuzione uniforme casuale in modo da essere differenti da quelli usati nell’iterazione precedente. Per ogni iterazione viene calcolato l’errore di fitting commesso e al raggiungimento delle n iterazioni la procedura restituisce il risultato migliore, ovvero la stima dei parametri che hanno prodotto l’errore di fitting minore. Applicando la funzione. con n pari a 20, nelle stesse condizioni dell’esperimento precedente si riduce ulteriormente l’errore di fitting come mostrato in Figura 3.5.

Nonostante l’ulteriore ottimizzazione, la procedura di fitting per valori di A al di sotto di 10 non riesce a stimare correttamente il parametro corrispondente, ed in particolare il valore stimato è prossimo allo zero. Ciò potrebbe essere dovuto alla similarità tra la distribuzione di Rice con A nullo e quelle con A inferiori alla decina.

Figura 3.5. Rappresentazione andamento dei parametri stimati con la funzione multimpfitfun per valori crescenti del parametro A: A (in alto a

sinistra), σ (in alto a destra), errore di fitting su A (in basso a sinistra) e su σ (in basso a destra)

44 Conclusa la procedura di fitting si passa all’implementazione dei due blocchi successivi, ovvero gli algoritmi di segmentazione.

3.3.2. Metodi n-SD

Come indicato in letteratura, per il metodo di detezione n-SD la soglia è definita come: 𝑡ℎ = 𝜇 + 𝑛 ∗ 𝑑𝑒𝑣 con n = 2,3, … ,6

dove µ e dev sono rispettivamente il valor medio e la SD del miocardio remoto. L’obiettivo dunque è quello di ricavare tali valori a partire dai parametri A e σ restituiti dalla procedura di fitting. Per computare tali valori vengono sfruttate le relazioni per la definizione dei momenti di una distribuzione di Rice, mostrate nel Capitolo 2. Per implementare tali formule è stata creata una funzione esterna

pol_laguerre per il calcolo del polinomio di Laguerre di ordine 1 2

presente nelle formule sopra citate.

Memorizzati tali valori, si procede con il calcolo delle soglie per diversi valori di n appartenenti all’intervallo 2÷6, in quanto non si può sapere a priori quale sia il metodo migliore. Per ogni metodo viene memorizzata la soglia corrispondente che viene poi utilizzata per eseguire la segmentazione dell’immagine. Per tale scopo è stata implementata una funzione mask_soglia che, dati in ingresso l’immagine che si desidera segmentare e il valore di soglia da utilizzare, restituisce in uscita un’immagine binaria che ha valore nullo in corrispondenza dei pixel con intensità inferiore/uguale alla soglia e valore unitario in corrispondenza di quelli con intensità superiore. A questo punto si hanno a disposizione 5 maschere contenenti il miocardio patologico segmentato.

Figura 3.7. Esempio di maschere ottenute applicando i metodi n-SD ad un fantoccio (in alto a sinistra) creato per simulare un’immagine di

45

3.3.3. Metodo FWHM

Per l’algoritmo FWHM le linee guida suggeriscono come valore soglia il 50% del valore massimo dell’intensità dei pixel appartenenti alla regione di DE. Tuttavia, utilizzare tale approccio nell’algoritmo automatico non è la tecnica migliore. Infatti, nella procedura automatica si ha a disposizione solo l’istogramma totale del miocardio, quindi non possiamo essere certi che il massimo valore di intensità sia associato a un pixel di DE in quanto potrebbe trattarsi di un pixel di blood pool (incluso per errore nella segmentazione del miocardio) o di pixel spuri dovuti per esempio alla presenza di PVE. Per questa ragione si è utilizzato un altro approccio che si basa sull’idea di trovare quel valore di intensità di segnale per cui si ha la stessa probabilità che un determinato pixel appartenga al miocardio remoto o alla regione di DE, ovvero quel valore di intensità che separa le due classi. A tale scopo si procede con il calcolo dell’area sottesa dalla curva dell’istogramma integrando la curva da due direzioni opposte: dal minimo al massimo valore di intensità per la distribuzione Riciana e il viceversa per la Gaussiana, spostandosi di un pixel alla volta. Il valore cercato sarà quello in cui le due aree sono uguali. In realtà, per motivi computazionali non si riesce a trovare un punto in cui le due aree sono uguali, quindi si approssima la soglia come l’ultimo valore in cui la somma delle due aree è inferiore all’area sottesa dall’istogramma complessivo.

Figura 3.8. Esempio di maschere ottenute applicando i metodi n-SD ad un fantoccio (in alto a sinistra) creato per simulare un’immagine di miocardio

46 Trovata la soglia, anche in questo caso si procede con la segmentazione dell’immagine, tramite la funzione usata per il metodo n-SD. In questo caso sarà restituita una sola maschera contenente la segmentazione del miocardio patologico.

Figura 3.9. Esempio di maschera (a destra) ottenuta applicando il metodo FWHM ad un fantoccio (a sinistra) creato per simulare un’immagine di

47

Documenti correlati