Circa 10 anni fa feci una proposta per provare a capire se visivamente gli indicatori di texture hanno un correlato visivo/matematico: generare delle immagini al computer mediante un algoritmo basato su una semplice formula matematica, ove ogni parametro possa essere deciso dallo sperimentatore, e vedere come gli indicatori di texture prelevati da queste immagini cambiavano in funzione delle variabili decise dallo sperimentatore. La proposta in questione ha generato all’epoca più ilarità che apprezzamenti (in quanto questo esperimento è adatto ad “esperti di videogiochi” e non a medici…), tuttavia dopo tutto questo tempo finalmente sono riuscito a portare a termine questo lavoro…con molta soddisfazione per i risultati ottenuti!
La formula matematica utilizzata per generare le immagini di questo studio è il rumore di Perlin, un tipo di frattale molto adatto come base per generare immagini di “cose” naturali. Non sorprende quindi che alcuni gruppi di ricerca sulla radiomica abbiano utilizzato il rumore di Perlin nella creazione dei loro algoritmi (esempi:
Il database di questo studio appena possibile sarà reso disponibile su GalactiChan (adesso la seedbox è in manutenzione straordinaria).
Per comprendere la matematica degli indicatori texturali si raccomanda la lettura della voce Radiomica su WikiPedia.
Materiali e metodi
Le immagini del rumore di Perlin sono state generate mediante il software open source NeoTextureEdit in risoluzione 1024×1024 pixel utilizzando i seguenti parametri:
- impostazioni di default (StartBand=1, EndBand=8, ValueScale=1000, ScaleX=0, ScaleY=0)
- settaggi di default ma modificando il ValueScale da 125 a 2000 (modifica il contrasto dell’immagine)
- settaggi di default ma modificando StartBand ed EndBand da 1 a 8 (modifica l’entità del rumore nell’immagine)
- settaggi di default utilizzando ScaleX e ScaleY fino a 8 (per produrre immagini dall’aspetto sempre più anisotropo lungo uno dei due assi)
Per ogni settaggio sono state generate le immagini con 3 semi ben definiti (+1, +2 e +3) in modo da stimare l’effetto della componente randomica sui risultati
E’ stato quindi utilizzato il software LIFEx 7.2 per creare manualmente una ROI (Regione di Interesse) quadrata da utilizzare per la stima di tutti i parametri texturali forniti dal software mediante un range di grigi da 0 a 255 (size of bin pari a 1, 256 livelli totali)
I dati sono stati quindi tutti copiati in fogli di calcolo LibreOffice per la stima delle regressioni in funzione dei parametri studiati, con rilevazione dell’equazione polinomiale di secondo grado di migliore approssimazione e del relativo R2. Le curve ricavate sono anche state descritte visivamente e utilizzate per confermare o smentire le ipotesi a priori sui dati.
Risultati
Modifica del valore ValueScale

Le regressioni con diversi tipi di GLCM entropia (qui mostrata la GLCM entropia somma) mostrano un aumento dell’indicatore all’aumentare del ValueScale fino a circa 1000, per poi mostrare una sua riduzione. La parte di ascesa della curva mostra un R2 prossimo a 1, mentre la seconda parte è più influenzata dai differenti semi.
Simili andamenti in ascesa si osservano anche con il GLCM ed il NGTDM contrasto, ove però i singoli semi oltre i 1000 di ValueScale mostrano andamenti fortemente divergenti.

Modifica del parametro EndBand

Aumentando il parametro EndBand da 2 a 8 l’immagine si fa sempre più definita. A ciò si associa un vistoso incremento degli indicatori GLCM sum entropy, GLCM contrast e NGTDM contrast. GLCM sum entropy e NGTDM contrast risultano molto influenzati dal seme a sinistra della curva, con conseguente minore R2, mentre GLCM contrast risulta l’indicatore quasi per nulla influenzato dal seme, anche se a crescita molto “tardiva”.

Modifica del parametro StartBand

Aumentando il parametro StartBand l’immagine diventa meno contrastata e più finemente disomogenea (uno degli articoli citati in introduzione paragona questo aspetto alle lesioni TC “a vetro smerigliato” tipici della COVID-19). Tale aspetto si associa ad una netta riduzione dei parametri GLCM entropy sum e contrast, evidente però solo nella parte estrema più a destra della curva. NGTDM contrast è invece molto influenzato dal seme nella parte sinistra della curva (in cui sembra apprezzarsi un netto calo) per poi mostrare un tenue incremento nella parte finale a destra, con R2 molto vicino a 1 solo nell’estrema destra della curva.

Modifica dei parametri ScaleX e ScaleY

Le immagini ottenute modificando i parametri Scale producono come si vede un aspetto anisotropo su uno dei due assi cartesiani. Qui viene mostrato solo ScaleX in quanto ScaleY produce risultati sovrapponibili a livello degli indicatori.
All’aumentare dell’anisotropia visiva si osserva una riduzione del parametro texturale GLRLM_LongRunsEmphasis, un aumento del GLRLM_ShortRunsEmphasis ed un aumento di GLRLM_RunLengthNonUniformity. Tali parametri denotano all’aumentare del parametro ScaleX un aumento della disomogeneità associato all’anisotropia visiva

Anche l’incremento all’aumentare di ScaleX dei parametri GLCM contrast, GLCM entropy sum ed NGTDM contrast depongono per lo stesso dato (si osserva tuttavia per i parametri GLCM contrast ed NGTDM contrast una lieve flessione al valore 8 di ScaleX di difficile interpretazione. Influenza del seme o no?)

A confronto è stata fatta l’analisi di regressione del parametro GLRLM_LongRunsEmphasis anche per le immagini generate variando gli altri parametri.



Discussione
I dati ottenuti mostrano non poche sorprese, inaspettate nelle ipotesi a priori che mi ero posto prima dello studio.
Ad esempio ipotizzavo che all’aumentare dei valori di ValueScale, StartBand ed EndBand ed al regredire di ScaleX e ScaleY si osservasse un aumento degli indicatori di disordine (GLCM entropia e contrasto, NGTDM contrasto). Ho dovuto invece constatare che spesso gli andamenti di questi indicatori sono complessi e non lineari, inoltre all’aumentare dei valori di ScaleX/Y il comportamento si è rivelato esattamente opposto. In particolare l’andamento progressivo per gli indicatori di disordine è come previsto per valori bassi/intermedi di ValueScale, mentre inverte la propria tendenza verso valori elevati dello stesso indicatore, verosimilmente a causa dello “sbiancamento” delle immagini, con molti più pixel fissati al valore massimo di 256, e di conseguenza con un aumento dell’omogeneità. Questo dato potrebbe essere ad esempio importante nello studio di tessuti come l’osso compatto in TC o di lesioni fortemente iperintense in RM. Anche il comportamento che si osserva per gli indicatori di disordine all’aumentare di StartBand è esattamente opposto a quanto avevo preventivato, ed è probabilmente dovuto alla creazione di un background omogeneo su cui si sviluppano le fini disomogeneità delle immagini generate. Questo comportamento potrebbe essere molto utile per lo studi delle lesioni polmonari “a vetro smerigliato” (in conformità a quanto già fatto da e collaboratori). Il debole incremento nella parte destra della curva in questo caso per l’indicatore NGTDM contrast è verosimilmente da attribuire alla particolarità della matrice NGTDM (Neighborhood Gray Tone Difference Matrix) che mostra contrasto più elevato quando singoli pixel sono circondati da un intorno con un valore molto diverso da quello preso in esame (cosa che accade con immagini a StartBand elevato)
La più grande sorpresa tuttavia è stato il comportamento dell’indicatore GLRLM_LongRunsEmphasis che mi aspettavo aumentasse sempre più per le immagini anisotrope (dato che correla con la presenza di “file” di pixel dello stesso livello di grigio) e che regredisse ad aumentare di ValueScale ed End Band; invece si osserva in maniera sorprendente un suo incremento all’aumentare di ValueScale, StartBand e ScaleX/Y. Anche questo comportamento è a mio avviso da attribuire per i casi descritti poco sopra all’aumento dell’omogenetà di fondo delle immagini (da “saturazione” per ValueScale o per creazione di un background omogeneo aumentando StartBand). Analogamente aumentando ScaleX/Y la disomogeneità a pensarci bene aumenta perchè l’uso di questi valori inevitabilmente porta a sovrapporte più componenti del rumore di Perlin fra loro. La domanda quindi ora da porsi è: l’utilizzo dei parametri ScaleX/Y è un modo attendibile per generare immagini anisotrope simili a quelle reali? oppure l’effetto osservato è dovuto ad un errore del modello sperimentale utilizzato per creare l’anisotropia? A tal fine sarebbe utile un confronto fatto con immagini “reali” anisotrope visivamente simili (per esempio lo studio di tavole di legno).
Conclusioni
Lo studio qui mostrato evidenzia non solo che la simulazione di immagini per lo studio degli indicatori texturali è un metodo molto efficace per provare a dargli una base “logica/visiva”, ma anche che è possibile molto spesso studiare come questi variano in maniera molto precisa al variare dell’aspetto qualitativo delle immagini stesse (in molti casi si osservano andamenti nettamente differenti ed indicatori con valori di R2 elevati, mentre in altri un R2 più basso correla con una grossa influenza della randomicità data da seme sui risultati). Usando quindi questi modelli di regressione potrebbe essere possibile scegliere a priori quali indicatori utilizzare per lo studio di un determinato tipo di immagini, in funzione dell’ “aspetto qualitativo” che si vuole valutare caso per caso.
Bibliografia
. Breast MRI radiomics and machine learning-based predictions of response to neoadjuvant chemotherapy – How are they affected by variations in tumor delineation?
Tomic et al. 2023. Simulation of breast lesions based upon fractal Perlin noise
Bae et al. 2018. A Perlin Noise-Based Augmentation Strategy for Deep Learning with Small Data Samples of HRCT Images
Klyuzhin et al. 2022. Testing the Ability of Convolutional Neural Networks to Learn Radiomic Features
. Learning from pseudo-lesion: a self-supervised framework for COVID-19 diagnosis