scieee AI-readable full text Open interactive document viewer

Segmentación de Imágenes Médicas aplicando ICA y Kernelized Fuzzy c-Means

García Noguer, Ana Isabel

Abstract

La segmentación de tejidos cerebrales es un reto importante, a la vez que tedioso, debido a que las imágenes de resonancia magnética tomadas de tejidos cerebrales presentan niveles de escala de grises muy similares, lo que hace que se puedan confundir unos tejidos con otros con cierta facilidad. En este trabajo se desarrollan diversas técnicas como K-Means, Fuzzy C-Means y clúster kernelizado con fuzzy c-means (KFCM) combinado con análisis de componentes independientes (ICA) que obtienen una segmentación de los distintos tejidos o regiones de interés en las imágenes cerebrales de resonancia magnética (MRI). El método propuesto parte imágenes cebrebrales multimodales denominadas T1-Weighted, T2- Weigthed y PD-Weighted. En primera instancia, se aplica a estas imágenes un pre-procesado en el que se elimina el cráneo de las imágenes cerebrales. A través del análisis ICA se extraen tres componentes independientes. Como las imágenes multimodales son consideradas como una combinación lineal de señales, aplicar ICA hace que se produzca una mejora en el contraste de las imágenes cerebrales. El resultado de extraer las tres componentes independientes será la entrada de los distintos algoritmos de clasificación para extraer los tejidos cerebrales. Haciendo un análisis de los resultados del experimento, el método propuesto es capaz de extraer con precisión formas complicadas de los tejidos cerebrales.

Full text

1 Equation Chapter 1 Section 1 Segmentación de Imágenes Médicas aplicando ICA y Kernelized Fuzzy c-Means Autora: Ana Isabel García Noguer Tutora: Susana Hornillo Mellado Trabajo Fin de Ma ster Máster Universitario en Ingeniería de Telecomunicación Dpto. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 2 3 Trabajo Fin de Máster Máster Universitario en Ingeniería de Telecomunicación Segmentación de Imágenes Médicas aplicando ICA y Kernelized Fuzzy c-Means Autora: Ana Isabel Garcí a Noguer Tutora: Susana Hornillo Mellado Profesora Contratada Doctora Dpto. de Teorí a de la Sen al y Comunicaciones Escuela Te cnica Superior de Ingenierí a Universidad de Sevilla Sevilla, 2019 4 5 Trabajo Fin de Ma ster: Segmentacio n de Ima genes Me dicas aplicando ICA y Kernelized Fuzzy c-Means Autora: Ana Isabel Garcí a Noguer Tutora: Susana Hornillo Mellado El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente/a: Vocales: Secretario/a: Acuerdan otorgarle la calificacio n de: Sevilla, 2019 El/La Secretario/a del Tribunal 6 7 AGRADECIMIENTOS A Mamá, Papá y Rafalito. Ana Isabel García Noguer Sevilla, 2019 9 RESUMEN La segmentacio n de tejidos cerebrales es un reto importante, a la vez que tedioso, debido a que las ima genes de resonancia magne tica tomadas de tejidos cerebrales presentan niveles de escala de grises muy similares, lo que hace que se puedan confundir unos tejidos con otros con cierta facilidad. En este trabajo se desarrollan diversas te cnicas como K-Means, Fuzzy C-Means y clu ster kernelizado con fuzzy c-means (KFCM) combinado con ana lisis de componentes independientes (ICA) que obtienen una segmentacio n de los distintos tejidos o regiones de intere s en las ima genes cerebrales de resonancia magne tica (MRI). El me todo propuesto parte ima genes cebrebrales multimodales denominadas T1-Weighted, T2- Weigthed y PD-Weighted. En primera instancia, se aplica a estas ima genes un pre-procesado en el que se elimina el cra neo de las ima genes cerebrales. A trave s del ana lisis ICA se extraen tres componentes independientes. Como las ima genes multimodales son consideradas como una combinacio n lineal de sen ales, aplicar ICA hace que se produzca una mejora en el contraste de las ima genes cerebrales. El resultado de extraer las tres componentes independientes sera la entrada de los distintos algoritmos de clasificacio n para extraer los tejidos cerebrales. Haciendo un ana lisis de los resultados del experimento, el me todo propuesto es capaz de extraer con precisio n formas complicadas de los tejidos cerebrales. 17 NOTACIÓN ICA Independent Component Analysis MRF Markov Random Fields BSS Blind Source Separation MRI Magnetic Resonance Imaging TAC Tomografía Axial Computerizada CT Computerized Tomography SPECT Single Photon Emission Computed Tomography PET Positron Emission Tomography US Ultrasound KFCM Kernelized Fuzzy c-Means PCA Principal Component Analysis ICAMM Independent Component Analysis Mixture Model EICAMM Enhanced ICA Mixture Model KICA Kernelized Independent Component Analysis FCM Fuzzy C-Means MEPFC Maximum Entropy Principle-based Fuzzy Clustering PNFCM Possibilistic Neurofuzzy C-Means Algorithm PCM Possibilistic C-Means Algorithms GKFCM Gaussian Kernel Fuzzy C-Means RSF Region Scalable Fitting KWFLICM Kernel Weigthed Fuzzy Factor Local Information C-Means 18 SKFCM Spatial constraint Kernelized Fuzzy C-Means GRBF Gaussian Radial Base Function Vo xel Volumetric Píxel WM White Matter GM Gray Matter CSF CerebroSpinal Fluid VP Verdaderos Positivos FP Falsos Positivos FN Falsos Negativos VN Verdaderos Negativos TPR True Positive Rate ACC Accuracy TNR True Negative Rate PPV Positive Predictive Value NPV Negative Predictive Value 19 ESTADO DEL ARTE medida que han ido avanzando las tecnologí as del tratamiento de imagen me dica, se ha producido en paralelo un aumento de la demanda de medios visuales que sean ma s sofisticados y puedan servir de ayuda a la inspeccio n anato mica de estructuras, identificacio n de enfermedades, ana lisis de caracterí sticas en una regio n de intere s de una imagen me dica y registro y reconstruccio n de ima genes. De entre las distintas tecnologí as desarrolladas para satisfacer esta demanda, la segmentacio n de ima genes juega un papel indispensable. Las ima genes me dicas esta n principalmente limitadas por bajo contraste, presencia de ruidos, intensidad no homoge nea y otras ambigu edades que complican enormemente esta tarea de segmentacio n. Adema s, si comparamos las ima genes me dicas con el resto de las ima genes, las primeras tienden a presentar mayor dificultad a la hora de recuperar las distintas formas a segmentar, haciendo necesario el uso de te cnicas ma s precisas que ayuden a realizar esta tarea. La segmentacio n de imagen hace referencia a la te cnica que divide una imagen en diferentes regiones y se usa tí picamente para identificar regiones de intere s. En la literatura se pueden encontrar diversos algoritmos que se han venido empleando para segmentar ima genes, como el Ana lisis en Componentes Independientes (ICA, Independent Component Analysis) [1] [2] , fuzzy clustering [3], me todos basados en level set [4] [5], campo aleatorio de Markov (MRF, Markov Random Fields) [6] y redes neuronales [7], entre otras, cada una con sus ventajas y desventajas. La mayorí a de las ima genes me dicas se toman mediante te cnicas de adquisicio n especiales tales como la resonancia magne tica (MRI, Magnetic Resonance Imaging), en la que se prestara especial intere s en este trabajo, la tomografí a axial computerizada (TAC o CT, Computerized Axial Tomography), tomografí a por emisio n de un u nico foto n (SPECT, Single Photon Emission Computed Tomography), la tomografí a por emisio n de positrones (PET, Positron Emission Tomography) y ultrasonidos (US, Ultrasound). Debido a sus ventajas sobre otras te cnicas de A Nadie puede construir un mundo mejor sin mejorar a las personas. Cada uno debe trabajar para su propia mejora. - Marie Curie - 20 20 diagno stico por imagen [8] , la resonancia magne tica ha sido ampliamente utilizada para la segmentacio n. Es por ello, como bien se ha mencionado anteriormente, que las ima genes con las que se va a trabajar en este proyecto sera n las MRI. En el Capí tulo 3 se detallara co mo se adquieren estas ima genes. Para reducir la amplia incertidumbre presente en las ima genes me dicas, este estudio se esfuerza por integrar el ana lisis de componentes independientes (ICA) junto con la te cnica de separacio n de conjuntos llamada kernelized fuzzy c-means (KFCM) y el preprocesado de ima genes como algoritmo computacional para usar en la segmentacio n de ima genes me dicas. Como te cnica estadí stica y computacional para revelar factores ocultos que subyacen a conjuntos de variables aleatorias, mediciones o sen ales, nace ICA, que define un modelo de generacio n para combinaciones de datos provenientes de mu ltiples variables, asumiendo que son mezclas de algunas variables latentes desconocidas. Fue desarrollado originalmente como medio para resolver el problema de la separacio n ciega de fuentes o BSS (Blind Source Separation) [9]. El problema de la separacio n ciega de fuentes consiste en estimar un conjunto de sen ales fuente de las que no tenemos informaci o n a priori, es decir, a partir de mezclas de sen ales sin tener conocimiento alguno de los mecanismos de mezclas utilizados para la combinacio n de estas. Para desarrollar una clasificacio n de estas sen ales sin supervisio n, los datos se modelan como una mezcla de clases descrita por combinaciones lineales de sen ales independientes no gausianas. ICA se ha utilizado de forma exitosa para separar sen ales multivariadas, pero se deben cumplir para ello dos limitaciones estadí sticas. El Ana lisis de Componentes Independientes (ICA, Independent Component Analysis) es un me todo para la separacio n ciega de fuentes, basado en la independencia estadí stica de dichas fuentes. A diferencia del Ana lisis de Componentes Principales (PCA, Principal Component Analysis) en ICA, no se supone que las componentes del me todo sean ortogonales para su separacio n y u nicamente se asume la independencia estadí stica de las componentes. Lee et al. [10] proponen el modelo de mezclas ICA (ICAMM, ICA Mixture Model) para superar una de las limitaciones de ICA, que es suponer que las sen ales fuente son independientes. El algoritmo ICAMM encuentra los componentes independientes y la matriz de mezclas para cada clase y calcula la probabilidad de pertenencia a la clase para cada patro n en el conjunto de datos. Las reglas de aprendizaje para el ICAMM se obtuvieron utilizando el me todo de ascenso de gradiente para maximizar la funcio n de datos de probabilidad de registro. Para intentar mejorar el rendimiento de ICAMM, Oliveira y Romero [1] propusieron una mejora del modelo de mezclas ICA que denotaron como EICAMM (Enhanced ICA Mixture Model). Este algoritmo implementa algunas modificaciones en las reglas de aprendizaje del algoritmo ICAMM original. EICAMM es similar al algoritmo ICAMM original, ya que ambos esta n enfocados en la maximizacio n de la informacio n mutua propuesta por Bell y Sejnowski [11]. 21 ICA y su extensio n ICAMM han sido ampliamente aplicados en diversos campos de investigacio n [12]. Jenssen y Eltoft [2] utilizaron ICA para generar un banco de filtros de datos estadí sticamente dependientes para la segmentacio n de texturas. A la salida del banco de filtros se tienen ima genes ICA (estadí sticamente independientes) fruto del aprendizaje a su paso por el mismo a partir de ima genes de texturas. De esta manera el me todo es capaz de segmentar la imagen en las distintas texturas. Tateyama et al. [13] propusieron un me todo basado en el kernel del modelo de ana lisis de componentes independientes (KICA, Kernelized Independent Component Analysis) para clasificacio n de ima genes MRI. KICA, basado en una aproximacio n no lineal para extraer componentes independientes en ima genes, parecí a producir una mejora significativa en los conjuntos de datos de resonancia magne tica cerebral clasificando correctamente las distintas texturas de las ima genes MRI cerebrales. Continuando con la investigacio n acerca de otros me todos utilizados para la segmentacio n de ima genes de resonancia magne tica, el fuzzy clustering (o agrupacio n difusa si se traduce al espan ol) resulta considerablemente beneficiosa gracias a su capacidad de retener mucha ma s informacio n de la imagen original que los me todos para la segmentacio n de ima genes mencionados anteriormente. En el caso particular de las ima genes me dicas, los algoritmos de clustering tratan de asociar cada pí xel de cada imagen a una clase de tejido aplicando la nocio n de similitud a una clase. Por lo tanto, se puede adoptar esta misma postura para la segmentacio n de ima genes en funcio n de sus tejidos. A diferencia del me todo de clasificacio n K-means [14], el algoritmo Fuzzy C-Means (FCM) permite a los pí xeles pertenecer a mu ltiples clases variando el grado de pertenencia a cada una de las clases. Por lo tanto, los algoritmos basados en Fuzzy C-Means son particularmente adecuados para manejar un problema de incertidumbre relacionado con la segmentacio n de ima genes me dicas multimodales. Masulli and Schenone [15], despue s de realizar algunas pruebas con algoritmos de clustering que contení an el algoritmo FCM tales como Maximum Entropy Principle-based Fuzzy Clustering (MEPFC) [16] y dos versiones de Possibilistic C-Means Algorithms (PCMs) [17]- [18], introdujeron su algoritmo de clustering llamado Possibilistic Neurofuzzy C-Means Algorithm (PNFCM). El algoritmo KFCM (Kernelized Fuzzy C-Means) [19]- [20] se desarrollo sustituyendo la distancia Euclí dea original usada en el algoritmo FCM (Fuzzy C-Means) por una distancia inducida mediante un kernel (o kernel-induced) y aplicando una penalizacio n espacial en las funciones de pertenencia a un grupo. Kannan et al. [21] proponen un algoritmo FCM con kernel basado en la tangente hiperbo lica para segmentar ima genes de resonancia magne tica de mama. El algoritmo fue desarrollado integrando el kernel, es decir, la funcio n tangente hiperbo lica, y los me todos basados en Lagrange con el algoritmo FCM actuando como funcio n objetivo obteniendo así una segmentacio n efectiva. 22 22 Gupta et al. [3] presentaron un me todo de segmentacio n hí brida que combinaba un clustering basado en FCM con Kernel Gaussiano (GKFCM, Gaussian Kernel Fuzzy C-Means) [22] con un modelo de contornos activos impulsado por una funcio n de energí a basada en Region Scalable Fitting (RSF) [23] para segmentar ima genes me dicas de ultrasonido. En este me todo, el resultado obtenido del me todo GKFCM es utilizado para inicializar el contorno que, mediante el modelo de contornos activos, se extiende para identificar las regiones estimadas. GKFCM tambie n ayuda a estimar los para metros de control usados en los procesos de curva de evolucio n y consigue mejores resultados sustituyendo la distancia Euclí dea por la distancia kernel-induced. La funcio n RSF es la responsable de atraer el contorno hacia los lí mites del objeto y no requiere de un proceso de reinicializacio n cuando la curva esta evolucionando. Gong et al. [24] propusieron una mejora para FCM llamada KWFLICM (Kernel Weigthed Fuzzy Factor Local Information C-Means), introduciendo un factor difuso ponderado de compensacio n y un kernel (Kernel Weigthed Fuzzy Factor). El factor de compensacio n, dependiendo de la distancia espacial de un pí xel con todos los pí xeles vecinos y de su diferencia de nivel de gris, es introducido en la funcio n objetivo para garantizar que no haya presencia de ruido y conservar la precisio n de la imagen. Para mejorar la robustez frente al ruido y evitar los valores atí picos en la segmentacio n, el algoritmo KWFLICM incorpora adema s una medida de distancia del kernel en su funcio n objetivo. De esta forma, el algoritmo consigue buenos resultados aplicados a la segmentacio n de ima genes y es robusto frente a diversos tipos de ruido. A pesar de las ventajas que presentan los me todos mencionados anteriormente, capaces de segmentar de forma ma s homoge nea, reduciendo los falsos positivos y eliminando rudio, la mayorí a de ellos todaví a necesitan de conocimientos previos acerca del nu mero de clu sters en los que se dividen las ima genes a segmentar. Este dato puede no ser un dato conocido en futuras ima genes a segmentar. Existen numerosos criterios de validacio n [25] diferentes para estimar el nu mero de clu steres que ayudan a alcanzar mayor precisio n en la segmentacio n de una imagen dada cuando se procesan mediante los me todos KFCM o SKFCM (Spatial constraint Kernelized Fuzzy C-Means) [26]- [27]. 23 ALGORITMOS DE CLASIFICACIÓN l aprendizaje de ma quina (Machine Learning) estudia el aprendizaje automa tico a partir de datos (data-driven, gobernado por los datos) para conseguir hacer predicciones precisas a partir de observaciones con datos previos. La clasificacio n automa tica de objetos o datos es uno de los objetivos del aprendizaje de ma quina [28]. En este contexto, se pueden considerar tres tipos de algoritmos. • Clasificación supervisada: disponemos de un conjunto de datos (por ejemplo, ima genes de letras escritas a mano) que vamos a llamar datos de entrenamiento y cada dato esta asociado a una etiqueta (a que letra corresponde cada imagen). Construimos un modelo en la fase de entrenamiento (training) utilizando dichas etiquetas, que nos dicen si una imagen esta clasificada correcta o incorrectamente por el modelo. Una vez construido el modelo podemos utilizarlo para clasificar nuevos datos que, en esta fase, ya no necesitan etiqueta para su clasificacio n, aunque sí la necesitan para evaluar el porcentaje de objetos bien clasificados. • Clasificación semisupervisada: algunos datos de entrenamiento tienen etiquetas, pero no todos. Este u ltimo caso es muy tí pico en clasificacio n de ima genes, donde es habitual disponer de muchas ima genes en su mayorí a no etiquetadas. Estos se pueden considerar algoritmos supervisados que no necesitan todas las etiquetas de los datos de entrenamiento. • Clasificación no supervisada: los datos no tienen etiquetas (o no queremos utilizarlas) y estos se clasifican a partir de su estructura interna (propiedades, caracterí sticas). E Me gusta la gente que lucha contra las adversidades. Me gusta la gente que busca soluciones. Me gusta la gente que valora a sus semejantes no por un estereotipo social ni por cómo lucen. - Mario Benedetti - 24 24 Los me todos que se van a usar en esta investigacio n se situ an en los algoritmos de clasificacio n no supervisada. En este capí tulo se van a desarrollar, de entre todos, los distintos me todos de clustering que se han empleado en este trabajo para realizar la segmentacio n de ima genes MRI cerebrales en sus distintos tejidos. 2.1. El Método K-Means K-means [28]- [29] es un algoritmo de clasificacio n no supervisada (clustering) que agrupa objetos en 𝑘 grupos basa ndose en sus caracterí sticas. El agrupamiento se realiza minimizando la suma de distancias entre cada objeto y el centroide de su grupo o clu ster. Se suele usar la distancia cuadra tica. Para ejecutar el algoritmo se debe pasar como entrada el conjunto de datos y un valor 𝑘. El conjunto de datos sera n las caracterí sticas (features) para cada punto. El me todo se puede describir en tres pasos: 1. Inicialización: Las posiciones iniciales de los 𝑘 centroides sera n asignadas de manera aleatoria de cualquier punto del conjunto de datos de entrada. A partir de aquí se realiza un proceso de iteracio n en 2 pasos. 2. Asignación objetos a los centroides: cada objeto de los datos es asignado a su centroide ma s cercano. 3. Actualización de los centroides: se actualiza la posicio n del centroide de cada grupo tomando como nuevo centroide la posicio n del promedio de los objetos pertenecientes a dicho grupo. El algoritmo itera entre estos dos u ltimos pasos hasta cumplir un criterio de detencio n: • si no hay cambios en los puntos asignados a los grupos, • si la suma de las distancias se minimiza, • o si se alcanza un nu mero ma ximo de iteraciones. Se resuelve un problema de optimizacio n, siendo la funcio n para optimizar (minimizar) la suma de las distancias euclí deas cuadra ticas de cada objeto al centroide de su clu ster. Los objetos se representan con vectores reales de 𝑑 dimensiones (𝑥1,𝑥2,…,𝑥𝑛) y el algoritmo k-means construye k grupos donde se minimiza la suma de distancias de los objetos, dentro de cada grupo 𝑆={𝑆1,𝑆2,…,𝑆𝑘} a su centroide. El problema se puede formular de la siguiente forma: 25 min 𝑆𝐸(𝜇𝑖)=min 𝑆∑∑‖𝑥𝑗−𝜇𝑖‖2 Χ𝑗∈𝑆𝑖 𝑘 𝑖=1 (1) donde 𝑆 es el conjunto de datos cuyos elementos son los objetos 𝑥𝑗 representados por los vectores, donde cada uno de sus elementos representa una caracterí stica o atributo. Se tienen k grupos o clu steres con sus correspondientes centroides 𝜇𝑖. En cada actualizacio n de los centroides, desde el punto de vista matema tico, se impone la condicio n necesaria de extremo a la funcio n 𝐸(𝜇𝑖) que, para la funcio n cuadra tica (1) es: 𝛿𝐸 𝛿𝜇𝑖=0⟹ 𝜇𝑖𝑡+1=1 |𝑆𝑖(𝑡)|· ∑𝑥𝑗 Χ𝑗∈𝑆𝑖(𝑡) (2) y se toma el promedio de los elementos de cada grupo como nuevo centroide, donde t indica el nu mero de iteracio n. Las principales ventajas del me todo k-means son que es un me todo sencillo y ra pido. Pero es necesario decidir el valor de k y el resultado final depende de la inicializacio n de los centroides. En principio no converge al mí nimo global sino a un mí nimo local. Para esclarecer estos conceptos serí a interesante ver un caso pra ctico [30]. Este ejemplo ha sido implementado en Matlab R2017a. 2.1.1 Clasificación de la Flor Iris en sus tres variantes mediante K-Means. El set de datos de la flor del Iris (o Fisher Iris dataset) es un conjunto de datos multivariante introducido por Ronald Fisher en su artí culo de 1936 [31] como un ejemplo de ana lisis discriminante lineal. El set de datos contiene 50 muestras de cada una de tres especies de Iris: Iris setosa, Iris virginica e Iris versicolor. A continuacio n, se representan las tres especies. Figura 1. Ejemplo K-means- Especies de Iris [32] Para cada una de estas especies se midieron cuatro rasgos de cada muestra: 32 32 ‖Φ(𝑥𝑖)−Φ(𝑐𝑗)‖2= 𝐾(𝑥𝑖,𝑥𝑖)−2𝐾(𝑥𝑖,𝑐𝑗)+𝐾(𝑐𝑗,𝑐𝑗) (13) Considerando que 𝐾(𝑥,𝑐)=exp(−‖𝑥−𝑐‖2/𝜎2), que la funcio n entre un punto y sí mismo 𝐾(𝑥𝑖,𝑥𝑖) es igual a uno, que la funcio n ente un centroide y sí mismo 𝐾(𝑐𝑗,𝑐𝑗) es igual a uno y que ΦT(xi)Φ(cj) es igual a Φ(xi)ΦT(cj), se puede reescribir la expresio n (10) como 𝐽𝑚=2∑∑𝑢𝑖𝑗 𝑚·(1−𝐾(𝑥𝑖,𝑐𝑗)) 𝑐 𝑗=1 ,1≤𝑚≤∞ 𝑛 𝑖=1 (14) Como se ha desarrollado en el apartado anterior para el algoritmo FCM (Fuzzy C-Means), la funcio n objetivo (14) se puede minimizar sujeta a la rescriccio n de U (p. e., ∑𝜇𝑖𝑗=1,∀ 𝑗= 𝑐𝑖=1 1,2,…,𝑁). La matriz de membresí a U se puede obtener de la expresio n siguiente. 𝑢𝑖𝑗=∑(1−𝐾(𝑥𝑖,𝑐𝑘))1/(𝑚−1) 𝑐𝑘=1 (1−𝐾(𝑥𝑖,𝑐𝑗))1/(𝑚−1) (15) Donde c es el nu mero de clu steres; 𝑐𝑗 y 𝑐𝑘 son los centroides de los clu sters difusos j y k, respectivamente y el para metro m (conocido como fuzzifier) es un factor de peso exponencial para cada uno de los elementos 𝑢𝑖𝑗. El centroide 𝑐𝑗 se obtiene a partir de la expresio n 𝑐𝑗=∑𝑢𝑖𝑗 𝑚·𝐾(𝑥𝑖,𝑐𝑗)·𝑥𝑖 𝑢𝑖𝑗 𝑚·𝐾(𝑥𝑖,𝑐𝑗) 𝑛 𝑖=1 (16) 2.3.1. Aplicación KFCM. Segmentación de regiones en imágenes. Siguiendo la dina mica de los apartados anteriores, se presenta un ejemplo de aplicacio n del algoritmo KFCM implementado en Matlab R2017a. Con motivo de facilitar la comprensio n de este algoritmo, se ha elegido un ejemplo aplicado a la segmentacio n de ima genes. En este caso se va a utilizar el algoritmo para segmentar regiones en una imagen de resonancia magne tica de un corte cerebral que se pasa como para metro de entrada. Los pí xeles de la imagen son, para este ejemplo, el conjunto de datos a clasificar. Se representa, a continuacio n, la imagen o dataset de entrada. 33 Figura 5. Ejemplo KFCM - Imagen MRI de entrada. Los para metros escogidos para la funcio n objetivo son: • Número de Clústeres: 4 • Valor del exponente 𝒎: 2 • Número máximo de Iteraciones: 500 • Epsilon 𝜺: 10−5 • Delta: 10 El co digo empleado para ejecutar este ejemplo es el siguiente: %Cargamos la imagen de entrada y la representamos Img = imread('1.bmp'); figure (1),imshow(Img,[]); % Datos de entrada cluster_n=4; % número de clústeres m=2; % valor del exponente m iter_max=500; % número máximo de iteraciones e=1e-5; % epsilon delta=10; % valor de delta (enre 5 y 15) %Preparamos los datos para introducirlos en el algoritmo kfcm Vinit=KFCM_init(Img,cluster_n); %Aplicamos el algoritmo KFCM Img_label=KFCM_Img(Img,Vinit,cluster_n,m,iter_max,e,delta); %Representamos el clúster completo en que ha dividido el algoritmo figure(2); imshow(Img_label,[]); %Representamos cada uno de los clústeres (cada uno es un tejido) figure(3);imshow(Img_label==1); figure(4);imshow(Img_label==2); figure(5);imshow(Img_label==3); figure(6);imshow(Img_label==4); La funciones empleadas en este ejemplo se incluyen en los Anexos de este trabajo. Como resultado de aplicar el algoritmo kfcm se obtienen las siguientes ima genes. En primer lugar, Img_label representa todas las clases o clu steres superpuestos. 34 34 Figura 6. Ejemplo KFCM – Clases superpuestas resultados de algoritmo KFCM Si separamos estos clu steres o clases por colores (o etiquetas) en distintas ima genes se pueden observar los distintos tejidos cerebrales segmentados. Se puede observar este resultado en la siguiente figura. (a) (b) (c) (d) Figura 7. Ejemplo KFCM Resultados De (a) a (c) Distintos tejidos cerebrales segmentados. (d) Fondo segmentado 2.4. El Análisis de Componentes Independientes (ICA) El Ana lisis de Componentes Independientes (ICA, Independent Component Analysis) es un me todo para la separacio n ciega de fuentes, basado en la independencia estadí stica de dichas fuentes. A diferencia del Ana lisis de Componentes Principales (PCA, Principal Component Analysis) en ICA, no se supone que las componentes del me todo sean ortogonales para su separacio n y u nicamente se asume la independencia estadí stica de las componentes. A continuacio n, se detalla una motivacio n para el me todo, así como la teorí a necesaria para su construccio n y aplicacio n [35]. 35 2.4.1. Mezcla de Fuentes, el efecto Cocktail Party Se supone una reunio n donde se encuentran varias personas hablando al mismo tiempo (de aquí el nombre Cocktail Party). Suponer que so lo se tiene intere s en escuchar a una de las personas que esta hablando, pero lo que se percibe realmente es una mezcla de todas las voces y sonidos presentes en la reunio n. Sin embargo, el cerebro humano tiene la valiosa capacidad de aislar o separar los diferentes sonidos que esta escuchando y concentrarse u nicamente en la voz que se encuentra interesado. Se considera ahora la siguiente situacio n, hay dos locutores (1 y 2) y cada uno de ellos esta hablando, por lo tanto, se generan dos sen ales acu sticas s1 y s2. Junto con los dos locutores, se encuentran dos micro fonos que graban el sonido que se genera cerca a ellos. Los micro fonos no reciben independientemente cada una de las sen ales s1 y s2 que se esta n generando. En lugar de eso reciben una mezcla de las dos sen ales. El me todo ICA permite recuperar las dos sen ales originales. Las sen ales pueden ser reprentadas como 𝒔𝟏={𝒔𝟏𝟏,𝒔𝟏𝟐,…,𝒔𝟏𝑵} y 𝒔𝟐= {𝒔𝟐𝟏,𝒔𝟐𝟐,…,𝒔𝟐𝑵} donde N es el nu mero de muestras en el tiempo y 𝒔𝒊𝒋 representa la amplitude de la sen al 𝑠𝑖 en cada instante de tiempo j-e simo. Ambas sen ales pueden verse de forma matricial: 𝑆=(𝑠1 𝑠2)=((𝒔𝟏𝟏,𝒔𝟏𝟐,…,𝒔𝟏𝑵) (𝒔𝟐𝟏,𝒔𝟐𝟐,…,𝒔𝟐𝑵)) (17) donde 𝑆∈𝑅𝑝𝑥𝑁 representa el espacio que esta definido por las sen ales fuentes y p indica el nu mero de sen ales fuente. Las sen ales fuente 𝑠1 y 𝑠2, se pueden mezclar formando combinaciones lineales de las primeras, por ejemplo, de la siguiente forma 𝑥1=𝑎×𝑠1+𝑏×𝑠2 𝑥2=𝑐×𝑠1+𝑑×𝑠2 (18) Con a, b, c y d son coeficientes de mezcla, cada uno de ellos diferentes, teniendo en cuenta que provienen de distintos sensores localizados en diferentes puntos, por lo que cada sensor ha capturado una sen al diferente, mezcla de las originales. La ecuacio n (18) se puede reescribir de la siguiente manera. 𝑋=(𝑥1 𝑥2)= (𝑎𝑠1+𝑏𝑠2 𝑐𝑠1+𝑑𝑠2)=(𝑎 𝑏 𝑐 𝑑)(𝑠1 𝑠2)=𝐴𝑠 (19) 36 36 Figura 8. Representacio n gra fica del proceso de mezcla de las dos sen ales s1 y s2. [36] En la pra ctica, so lo conocemos el vector de mezclas X que se genera al muestrear algu n evento. El me todo ICA consiste en aplicar un algoritmo que nos permita encontrar una matriz de separacio n W de tal modo que 𝑦=𝑊𝑥 sea una buena aproximacio n del vector s, es decir 𝑦≃𝑠. 2.4.2. Condiciones para el buen funcionamiento del método ICA Para construir el algoritmo para el me todo, debemos asumir las siguientes condiciones [35] que son necesarias para que el me todo genere buenos resultados: • Independencia Estadística La independencia estadí stica es la idea primordial para toda la construccio n del me todo, ya que queremos encontrar dentro de nuestras sen ales mezcladas, aquellas que son estadí sticamente ma s independientes respecto a las dema s. Podemos definir la independencia estadí stica como sigue: Sean 𝑥1,𝑥2,…,𝑥𝑚 un conjunto de variables aleatorias con funcio n de densidad de probabilidad 𝑓(𝑥1,𝑥2,…,𝑥𝑚), entonces estas variables son mutuamente independientes si 𝑓(𝑥1,𝑥2,…,𝑥𝑚)=𝑓1(𝑥1)𝑓2(𝑥2)…𝑓𝑚(𝑥𝑚) (20) donde 𝑓𝑖 es la funcio n de desidad marginal de 𝑥𝑖. Para la construccio n del me todo se asumira que cada una de las sen ales 𝑠𝑖 sea estadí sticamente independiente respecto a las dema s. • Función de densidad de probabilidad no Gaussiana Las sen ales fuente independientes deben tener funcio n de densidad de probabilidad no Gaussiana, de esta forma se garantiza que las componentes independientes efectivamente se pueden separar. Esto se puede ver en las siguientes figuras: La Figura 9 muestra una combinacio n lineal de dos sen ales aleatorias con funcio n de densidad de porbabilidad no Gaussiana. En e sta se observan claramente que las aristas determinan la combinacio n lineal de los datos, po lo que es posible separar las sen ales independientes 37 originales. Si la condicio n no se cumple, es decir si las sen ales tienen funcio n de densidad Gaussiana, los datos estaran agrupados cerca a la media estadí stica de cada sen al y no sera posible separar las sen ales independientes. La Figura 10 ilustra esto. Figura 9. Combinacio n de sen ales con densidad de probabilidad no gaussiana [35] Figura 10. Combinacio n de sen ales con densidad de probabilidad gaussiana [35] 2.4.3. Construcción del método ICA 2.4.3.1. Centrado y Blanqueo de los datos El pre-procesado de blanqueo de datos antes del algoritmo del me todo ICA ayuda a garantizar la convergencia de e ste y tambie n facilita algunas condiciones para la construccio n del algoritmo. 38 38 El primer paso para el blanqueo consiste en centrar los datos restando la media de todas las sen ales. Dada una mezcla de sen ales (X), la media es 𝜇 y el proceso de centrado se puede calcular de la siguiente forma: 𝐷=𝑋−𝜇=(𝑑1 𝑑2 ⋮ 𝑑𝑛)=(𝑥1−𝜇 𝑥2− 𝜇 ⋮ 𝑥𝑛−𝜇) (21) donde D es la sen al fruto de la mezcla de sen ales despue s del proceso de centrado. Se puede volver a sumar la media tras el finalizer todo el proceso de ICA. Una vez centrados, el siguiente paso es blanquear los datos, lo que significa transformar las sen ales en sen ales no correlacionadas y luego reescalarlas para que tengan varianza unidad. Este paso incluye dos pasos principales, que son: • Incorrelación: El objetivo de este paso es incorrelar los datos, es decir, hacer que una sen al sea no correlacionada con otra y viceversa. Dos variables son incorreladas si su covarianza es cero. Para hacer este proceso de incorrelacio n ICA usa la te cnica de PCA. Se calculan los autovectores que van a formar el nuevo espacio PCA. El primer paso es calcular la martriz de covarianza. La matriz de covarianza de dos variables (𝑥𝑖,𝑥𝑗) cualesquiera se expresa como Σ𝑖𝑗=𝐸{𝑥𝑖,𝑥𝑗}−𝐸{𝑥𝑖}𝐸{𝑥𝑗}=𝐸[(𝑥𝑖−𝜇𝑖)(𝑥𝑗−𝜇𝑗)]. Cuando se tienen muchas variables, la matriz de covarianza se calcula como Σ=E[𝐷𝐷𝑇], donde D son los datos centrados. La matriz se obtiene caculando los autovalores (𝜆) y los autovectores (𝑉), sabiendo que 𝑉Σ=𝜆𝑉. Los autovectores representan los componentes principales que son las direcciones del espacio de componentes principales y los autovalores son los escalares que indican la magnitud de los autovectores. El autovector que tiene el autovalor mas alto es el primer componente principal (𝑃𝐶1) y tiene ma xima varianza. Para incorrelar los datos, se proyectan en el nuevo espacio calculado como 𝑈=𝑉·𝐷. • Escalado: A continuacio n se reescalan cada sen al no correlacionada para conseguir que tengan varianza unidad. Por tanto, cada vector U se reescala mediante la expresio n 𝑍= 𝜆12·𝑈=𝜆12·𝑉·𝐷, siendo Z los datos blanqueados. En la figura Figura 11 se muestra el procedimiento de pre-procesado de forma esquema tica. 2.4.3.2. Teorema del Límite Central Como se ha mencionado anteriormente, la idea principal para el me todo ICA es la bu squeda de independencia estadí stica entre las variables. Pues bien, el siguiente teorema nos da una relacio n entre la medida de gaussianidad para variables aleatorias y la independencia estadí stica. 39 Figura 11. Representacio n esquema tica de la fase de pre-procesado en ICA [36] Teorema del Limite Central: Sea 𝑥1,𝑥2,…,𝑥𝑛 una muestra aleatoria de taman o n, es decir, una secuencia de variables aleatorias independientes e ide nticamente distribuidas con valores esperados dados por 𝜇 y varianzas finitas dadas por 𝜎2. Suponiendo que interesa el promedio de la muestra 𝑆𝑛 de estas variables aleatorias. 𝑆𝑛=(𝑥1+⋯+𝑥𝑛) 𝑛 (22) Por la ley de los grandes nu meros, los promedios de la muestra convergen en probabilidad y casi seguramente al valor esperado 𝜇 cuando 𝑛 tiende a infinito. El teorema del lí mite central afirma que a medida que 𝑛 se hace ma s grande, la distribucio n de la diferencia entre la media de la muestra 𝑆𝑛 y su lí mite 𝜇, cuando 𝑛 es muy grande, se aproxima a la distribucio n normal con media 0 y varianza 𝜎2. Por el teorema del limite central, las sen ales mezcladas 𝑥 siempre van a ser ma s gaussianas que las sen ales independientes originales 𝑠. El trabajo del me todo consistira entonces en tratar de reducir la gaussianidad que presentan las sen ales mezcladas para encontrar las sen ales 40 40 independientes, geome tricamente, es casi como “girar” los datos hacia los ejes que determinan las componentes independientes y de esta forma minimizar la gaussianidad entre las sen ales. 2.4.3.3. Negentropia y medida de No-gaussianidad ¿Co mo se logra entonces reducir la gaussianidad? La medida de gaussianidad esta relacionada con la independencia estadí stica entre las variables. Cuanto mayor sea la gaussianidad ma s informacio n comparten las variables y menos independientes son entre si. Se define primero el concepto de Entropí a H para un valor aleatorio 𝑦=[𝑦1,…,𝑦𝑛]: 𝐻(𝑦)=−∫𝑓(𝑦)·𝑙𝑜𝑔𝑓(𝑦)𝑑𝑦 (23) La entropí a se puede considerar como una medida de cantidad de informacio n mutua que ontienen los elementos del vector. En base a la entropí a H podemos definir la funcio n de negentropí a 𝐽 como: 𝐽(𝑦)=𝐻(𝑦𝑔𝑎𝑢𝑠𝑠)−𝐻(𝑦) (24) donde 𝑦𝑔𝑎𝑢𝑠𝑠 es un vector aleatorio gaussiano con la misma matriz de covarianza de 𝑦. Si la entropí a mide la cantidad de informacio n mutua en el vector, la negentropí a determina la cantidad de informacio n no mutua entre los elementos del vector. Es decir, a mayor negentropí a, menor es la gaussianidad de los elementos del vector. La negentropí a la se puede considerar como una medida de no-gaussianidad. Dado que la esperanza de una variable aleatoria se define como: 𝐸[𝑋]=∫𝑥𝑓(𝑥)𝑑𝑥, se puede utilizar una aproximacio n de la negentropí a a trave s de la esperanza del vector aleatorio de la siguiente forma [35]: 𝐽(𝑦𝑖)≈𝑐[𝐸{𝐺(𝑦𝑖)}−𝐸{𝐺(𝑉)}] (25) donde G es una funcio n llamada funcio n de constraste, c es una constante irrelevante y v es una variable gaussiana con media cero y varianza uno. Esta aproximacio n de la funcio n de negentropí a ayuda a definir el objetivo del me todo ICA, si se hace 𝑦𝑖=𝑤𝑇𝑥, donde x es una de las componentes mezcladas y 𝑤𝑇 es el vector desmezclado para este 𝑥. La meta sera maximizar la funcio n 𝐽 dada por: 𝐽(𝑤)≈[𝐸{𝐺(𝑤𝑇𝑥)}−𝐸{𝐺(𝑣)}] (26) donde w es el vector m−dimensional de mezcla de forma que 𝐸{𝐺(𝑤𝑇𝑥)2}=1. Esta u ltima condicio n es simplemente de escala, para que los vectores no crezcan arbitrariamente. 41 Ahora se puede generalizar la funcio n anterior para toda la matriz de desmezclado W, teniendo en cuenta que se maximizan cada una de las negentropí as cuando la suma de todas ellas es ma xima. El problema final de maximizacio n sera el siguiente: max∑𝐽(𝑤𝑖) 𝑚 𝑖=1 s.a. 𝐸{𝐺(𝑤𝑘𝑇𝑥)}−𝐸{𝐺(𝑤𝑗𝑇𝑥)}=𝛿𝑗𝑘 (27) La restriccio n del problema de maximizacio n garantiza que cada una de las componentes de desmezclado 𝑤𝑗 no este correlacionada con las dema s. Dos vectores aleatorios 𝑦𝑖,𝑦𝑗 esta n no correlacionados si 𝐸[(𝑦𝑖)(𝑦𝑗)]−𝐸(𝑦𝑖)𝐸(𝑦𝑗)=0. Dado que los datos han sido blanqueados, la media de cada vector es cero. Por consiguiente, 𝐸(𝑦𝑖)=0 y la condicio n de no correlacio n se reduce a E[(𝑦𝑖)(𝑦𝑗)]=𝛿𝑗𝑘 (28) donde 𝛿𝑗𝑘={1 𝑠𝑖 𝑗=𝑘 0 𝑠𝑖 𝑗≠𝑘 (29) 2.4.3.4. Algoritmo ICA en una dimensión Se observa que el o ptimo de 𝐽(𝑤) se obtiene en un o ptimo de 𝐸{𝐺(𝑤𝑇𝑥)}. Aplicando el me todo de multiplicadores de Langrange, el o ptimo de 𝐸{𝐺(𝑤𝑇𝑥)} bajo las condiciones 𝐸{𝐺(𝑤𝑇𝑥)2}= 1,‖𝑤‖2=1 se obtiene cuando ∇(𝐸{𝐺(𝑤𝑇𝑥)})=𝛽∇(‖𝑤‖2) (30) 𝐸{𝑥𝑔(𝑤𝑇𝑥)}−𝛽𝑤=0 (31) Donde 𝑔=𝐺′,𝛽 sera entonces: 𝛽=𝑤0𝑇𝐸{𝑥𝑔(𝑤0𝑇𝑥)} (32) 𝛽=𝐸{𝑤0𝑇𝑥𝑔(𝑤0𝑇𝑥)} (33) con 𝑤0 el valor o ptimo de 𝑤. Para solucionar la ecuacio n 𝐸{𝑥𝑔(𝑤𝑇𝑥)}−𝛽𝑤=0 y encontrar el o ptimo 𝑊0, aplicaremos el me todo de Newton. Se denota el lado izquiero de la ecuacio n anterior como F y se obtiene el Jacobiano 𝐽𝐹 como 𝐽𝐹(𝑤)=𝐸{𝑥𝑥𝑇𝑔′(𝑤𝑇𝑥)}−𝛽𝐼 (34) Para simplificar la expresio n, se aproxima el te rmino 𝐸{𝑥𝑥𝑇𝑔′(𝑤𝑇𝑥)}, como 𝐸{𝑥𝑥𝑇}· 𝐸{𝑔′(𝑤𝑇𝑥)}≃ 𝐸{𝑔′(𝑤𝑇𝑥)}𝐼. Esto es así debido a que se garantiza la independencia entre los datos. Ahora la matriz Jacobiana es diagonal y puede representarse como: 48 48 Figura 16. Esquema de la fase de pre-procesado La segmentacio n del cra neo es un paso esencial en la mayorí a de los ana lisis cuativativos de la estructura cerebral. Esta segmentacio n consiste en eliminar tanto la estructura o sea del cra neo como las meninges, que son las membranas de tejido conectivo que cubren todo el sistema nervioso central, an adie ndole una proteccio n blanda que complementa a la dura de las estructuras o seas. Para realizar esta tarea, se calcula un umbral que separara los tejidos cerebrales de los tejidos no cerebrales acorde con el histograma de la imagen en escala de grises. Con este umbral se transforma la imagen en una imagen binaria, es decir, se binariza la imagen. Para eliminar objetos falsos aislados y huecos que queden como resultado de esta binarizacio n, se aplican 49 operaciones morfolo gicas obteniendo una nueva imagen binarizada. Para eliminar los pí xeles blancos del fondo que no son de intere s se realiza una operacio n morfolo gica de erosio n. El u ltimo paso es construir una ma scara que servira para eliminar el cra neo de la imagen original. Por otro lado, se puede obtener el cra neo segmentado aplicando la ma scara inversa. En resumen, los pasos a seguir serí an los siguientes: • Paso 1. Tomar el volumen de entrada y seleccionar la slice 94. • Paso 2. Rotar la imagen 180 grados • Paso 3. Reescalar la imagen para que sus valores este n entre 0 y 255. • Paso 4. Pasar la imagen a valores uint8. • Paso 5. Seleccionar un valor umbral y pasar la imagen a binaria. • Paso 6. Realizar operaciones morfolo ficas para rellenar los huecos. Con esto ya se tiene la ma scara para segmentar el tejido cerebral. • Paso 7. Calcular la ma scara complementaria. Se obtiene entonces la ma scara para segmentar el cra neo. • Paso 8. Aplicar ambas ma scaras a la imagen original y segmentar el cerebro y el cra neo. En los Anexos se adjunta el co digo correspondiente a este procedimiento. A continuacio n, se muestra un diagrama de los pasos descritos. Figura 17. Pre-procesado. Procedimiento de Eliminacio n del Cra neo 50 50 En las siguientes figuras se pueden observar los resultados de aplicar el proceso de la eliminacio n del cra neo a los tres tipos de ima genes multimodales (T1-weighted, T2-weighted y PD-weighted, respectivamente). (a) (b) (c) Figura 18. Eliminacio n del cra neo en Imagen T1-weigthed: (a) Imagen Original, (b) Ma scara, (c) Imagen segmentada. (a) (b) (c) Figura 19. Eliminacio n del cra neo en Imagen T2-weigthed: (a) Imagen Original, (b) Ma scara, (c) Imagen segmentada. (a) (b) (c) Figura 20. Eliminacio n del cra neo en Imagen PD-weigthed: (a) Imagen Original, (b) Ma scara, (c) Imagen segmentada. 51 Una vez se tiene el cra neo segmentado en las ima genes T1-weighted, T2-weighted y PD- weighted hay que pasar a aplicar el centrado y el blanqueado de los datos. Para ello, como es costoso trabajar con las ima genes en forma matricial y por separado, lo primero es almacenar en una variable X estos datos para su posterior procesamiento. Por tanto, se define la variable X como el set de ima genes o sen ales observadas representadas por 𝑥𝑛 con n=1, 2 y 3, respectivamente. 𝑋=[𝑥1,𝑥2,𝑥3]𝑇 (40) El proceso de centrado de los datos es tan sencillo como restar a la variable X el valor de su media 𝐸[𝑋]. Figura 21. Centrado de los datos X Tras realizar el centrado, hay que completar el proceso de preprocesado con el blanqueado de los datos. Para ello se emplea sobre los datos centrados la funcio n fastica, en Matlab, en su modalidad de blanqueado de datos, esto es: %Blanqueado de los datos [whitesig, wm, dwm] = fastica(X, 'only', 'white'); %Reajuste de los datos para mostrar en las 3 imágenes multimodales ws1=reshape(whitesig(1,:),M,N); ws2=reshape(whitesig(2,:),M,N); ws3=reshape(whitesig(3,:),M,N); El proceso de blanqueado de datos se detalla en el Capí tulo 2, en la seccio n 2.4.3. titulada Construcción del método ICA. Los resultados de aplicar este blanqueado a las tres ima genes multimodales se muestran a continuacio n, en la siguiente figura. (a) (b) (c) Figura 22. Ima genes Blanqueadas: (a)T1-Weigthed, (b) T2-Weigthed y (c) PD-Weighted 52 52 3.2.2. Análisis de Componentes Independientes Las sen ales a la salida del proceso sera n almacenadas en la variable S, descrita por 𝑆𝑝 con p=1, 2 y 3, respectivamente. Cada una de ellas representara un tejido cerebral: WM (White Matter o materia blanca), GM (Gray Matter o materia gris) y CSF (CerebroSpinal Fluid o lí quido cefalorraquí deo). 𝑆=[𝑠1,𝑠2,𝑠3]𝑇 (41) La relacio n entre las ima genes X y los tejidos cerebrales S se pueden representar mediante la siguiente expresio n: 𝑋=𝐴𝑆 (42) Donde A es la matriz de mezclado y tiene dimensiones 3x3. Si se tiene la capacidad de obtener la matriz A, entonces los tejidos cerebrales pueden extraerse de la siguiente forma: 𝑆=𝐴−1𝑋 (43) Sin embargo, la matriz A es todaví a desconocida. Se puede conseguir una aproximacio n de la matriz A mediante el ana lisis de la independencia estadí stica y mediante operaciones matema ticas. Con la matriz inversa 𝑊=𝐴−1 (conocida como matriz de separacio n) se puede predecir una aproximacio n de 𝑆, denotada como 𝑆󰆹, que representarí a la aproximacio n de los tejidos cerebrales. Se puede expresar con la siguiente expresio n matema tica: 𝑆≃𝑆󰆹=𝑊𝑋 (44) En este trabajo se emplea el algoritmo FastICA para calcular la matriz W y poder analizar ma s a fondo cada pí xel en la imagen multiespectral para una correcta clasificacio n del tejido cerebral. Ya se menciona en el Capí tulo anterior que FastICA [12]- [18] utiliza un me todo de descenso de gradiente para maximizar la medida de No-gaussianidad, acelerando así la estimacio n de los componentes independientes de las sen ales fuente. Este resultado sera utilizado en la siguiente fase del me todo para poder estudiar los casos de clasificacio n mediante las te cnicas K-Means, FCM y KFCM con y sin ICA, pudiendo analizar si los resultados son mejores o peores en funcio n de si se aplica previamente ICA o no. En la siguiente 53 figura se puede observar el resultado de aplicar ICA a los datos, donde se aprecian en forma de imagen, las tres componentes independientes obtenidas a partir de las tres ima genes multimodales T1-weighted, T2-weighted y PD-weighted. (a) (b) (c) Figura 23. Ana lisis de componentes independientes. (a), (b) y (c) son las tres componentes independientes resultado de aplicar FastICA al conjunto de datos blanqueados. Las tres componentes independientes se corresponden con los tejidos WM (White Matter o materia blanca), GM (Gray Matter o materia gris) y CSF (CerebroSpinal Fluid o lí quido cefalorraquí deo). Estas ima genes no dan mucha informacio n a simple vista, pero son de alta importancia para los siguientes pasos del me todo, necesarios para poder aplicar ciertas te cnicas de segmentacio n. En los Anexos se recoge el co digo correspondiente a este apartado de ana lisis de componentes independientes. 3.2.3. Segmentación de tejidos cerebrales Teniendo en cuenta todo lo explicado anteriormente, sobre las ima genes pre-procesadas (con o sin ICA) se aplican los siguientes me todos de clasificacio n: • K-Means • FCM, Fuzzy C-Means • KFCM, Kernelized Fuzzy C-Means Primero se aplican todos los me todos a las ima genes pre-procesadas sin aplicar ICA y posteriormente se aplican los mismos me todos a las ima genes despue s de haberlas pasado por la funcio n ICA. Por tanto, tenemos 6 segmentaciones diferentes que posteriormente habra que estudiar para valorar cua l de ellas es la que tiene un mejor resultado. Si se quiere estudiar la implementacio n de estos algoritmos en Matlab, en los Anexos se recoge el co digo correspondiente a este apartado del me todo. 55 RESULTADOS n este Capí tulo se mostrara n los resultados obtenidos despue s de aplicar tres me todos de segmentacio n: K-Means, FCM y KFCM aplicado directamente a los datos en crudo o aplicado a los datos despue s de aplicarles el algoritmo FastICA, de manera que en el primer caso las ima genes son variables dependientes unas de otras y en el segundo caso se trabaja con componentes independientes. Tambie n se realizara un ana lisis de estos resultados, donde se determinara que me todo es el ma s eficiente para segmentar esta clase de ima genes me dicas. Para ello se calculara n el grado de similitud entre la imagen resultado de la segmentacio n y su verdad de referencia tomada de la base de datos BrainWeb. El primer resultado que se va a mostrar es el que se obtiene de aplicar al corte central (numero 94) el pre-procesado y los distintos algoritmos con y sin FastICA a las ima genes de entrada. Posteriormente, como estudio adicional, se han hecho pruebas para distintos cortes, que no sean el corte central del volumen cerebral. De esta manera podemos hacer un estudio ma s completo de los resultados de la clasificacio n. En la Figura 24, de (a) hasta (c) se muestran las ima genes originales T1-weighted, T2-weighted y PD-weighted. De (e) hasta (f) se pueden observar los resultados de las ima genes sin la regio n del cra neo, tras pasar por el proceso de segmentacio n de la fase de pre-procesado. De (g) hasta (i) los resultados de las ima genes tras centrar y blanquear los datos y aplicar la extraccio n de componentes independientes mediante el algoritmo FastICA. E Una persona ingeligente resuelve un problema. Una persona sabia lo evita. - Albert Einstein - 56 56 (a) (b) (c) (d) (e) (f) (g) (h) (i) Figura 24. Componentes Independientes extraí das mediante algoritmo FastICA. Antes de mostrar los resultados de la segmentacio n serí a interesante conocer cua les son las ima genes o verdades de referencia en las que se va a basar el estudio de viabilidad de esta segmentacio n. Las verdades de referencia son las que delimitan de forma fiable (lo que un me dico podrí a indicar) los distintos tejidos. En la siguiente figura se observan las verdades de referencia de los distintos tejidos. 57 (a) (b) (c) (d) (e) (f) Figura 25. Verdades de Referencia En (a) se observa la imagen T1-weigthed original. (b) corresponde con el cra neo, (c) es el lí quido cefalorraquí deo, (d) es el fondo, (e) la materia blanca y (f) la materia gris. Con estos datos ya podemos analizar tanto a simple vista como cuantitativamente la calidad de los resultados de las segmentaciones que se mostrara n a continuacio n. En las siguientes figuras se van a mostrar los resultados de segmentar, con los distintos me todos indicados anteriormente, las ima genes MRI cerebrales mencionadas anteriormente, no aplicando el me todo FastICA, en primera instancia, y, posteriormente, aplicando el me todo FastICA para estudiar así las diferencias. 64 64 4.3.3. Análisis de calidad del método KFCM sin aplicar ICA Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 95,31 % 95,83 % 95,98 % 87,32 % 98,60 % 83,72 % Gray Matter 86,56 % 94,36 % 95,72 % 77,99 % 97,60 % 69,57 % CSF 95,92 % 97,54 % 97,65 % 73,34 % 99,71 % 71,12 % Average 92,59 % 95,91 % 96,45 % 79,55 % 98,63 % 74,80 % Tabla 4. Ana lisis de calidad del me todo KFCM sin aplicar ICA Los porcentajes de similitud o similarity tambie n medidas muy importantes. Este valor representa, valga la redundancia, el grado de similitud entre dos conjuntos, sea cual sea el tipo de elementos. Para el caso de K-Means no se obtiene un buen resultado de clasificacio n del tejido. Ya se podí a apreciar visualmente en el apartado 4.1. que no se estaba distinguiendo entre la materia blanca y la materia gris correctamente. Por tanto, se podrí a decir que el K-Means no sera un clasificador definitivo para este tipo de estudio. Para el caso de FCM y KFCM se tienen mejores resultados. Se puede decir que una similitud por encima del 70% es un buen resultado de clasificacio n. Se procede, a continuacio n, al estudio de calidad de los mismos algoritmos tras aplicar el me todo FastICA a las ima genes resultado del pre-procesado. 65 4.3.4. Análisis de calidad del método K-Means con ICA Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 99,66 % 82.66 % 77.73 % 56.49 % 99.87 % 56.38 % Gray Matter 5,89 % 83,01 % 96,51 % 22,83 % 85,41 % 4,91 % CSF 84,85 % 98,03 % 98,92 % 84,14 % 98,98 % 73,15 % Average 63,46 % 87,90 % 91,05 % 54,48% 94,75 % 44,81 % Tabla 5. Ana lisis de calidad del me todo K-Means con ICA 4.3.5. Análisis de calidad del método FCM con ICA (ICFCM) Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 94,04 % 96,58 % 97,32 % 91,07 % 98,25 % 86,10 % Gray Matter 86,55 % 94,68 % 96,11 % 79,57 % 97,60 % 70,81 % CSF 87,76 % 97,93 % 98,62 % 81,08 % 99,17 % 72,84 % Average 89,45 % 96,39 % 97,35 % 83,90 % 98,34 % 76,58 % Tabla 6. Ana lisis de calidad del me todo ICFCM Se aprecian resultados similares al caso anterior, pero mejorados estos dos primeros casos al aplicar ICA. Buenos resultados de precisio n o accuracy y mejora considerable en los resultados de similitud o similarity. De igual forma, no K-Means no serí a un buen algoritmo de clasificacio n y FCM sí . 66 66 4.3.6. Análisis de calidad del método KFCM con ICA (ICKFCM) Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 95,51 % 96,11 % 96,28 % 88,17 % 98,66 % 84,67 % Gray Matter 86,67 % 92,00 % 92,93 % 68,23 % 97,55 % 61,75 % CSF 62,31 % 96,54 % 98,84 % 78,36 % 97,49 % 53,17 % Average 81,49 % 94,88 % 96,01 % 78,25 % 97,90 % 66,53 % Tabla 7. Ana lisis de calidad del me todo ICKFCM Para el caso de KFCM con ICA (ICKFCM) se obtiene una disminucio n de la similitud del 4% que da a entender que aplicar FastICA no ayudarí a a mejorar el resultado de la clasificacio n de los tejidos. Sin embargo, el porcentaje de accuracy esta por encima del 90%, lo que indica que el porcentaje de pí xeles bien clasificados es muy elevado. Habra que hacer una valoracio n final para ver que esta ocurriendo con este caso. 67 4.4. Pruebas adicionales Para completar au n ma s el estudio se han realizado una serie de pruebas adicionales a los me todos de clasificacio n implementados que sirvan para comprobar la veracidad de los mismos. Se ha probado, por tanto, el algoritmo con otros cortes (slices) distintos al corte 94, que es en el que se ha centrado el estudio, por ser un corte central y donde se visualizan de forma ma s clara los distintos tejidos. Se mostrara n los resultados para los cortes 85 y 75. En primer lugar se muestran los resultados del pre-procesado. En la siguiente figura se puede observar como se comporta el algoritmo de pre-procesado con estos nuevos cortes. 4.4.1. Resultados del pre-procesado para el corte número 85. (a) (b) (c) Figura 28. Eliminacio n del cra neo en Imagen T1-weigthed: (a) Imagen Original, (b) Ma scara, (c) Imagen segmentada. (a) (b) (c) Figura 29. Eliminacio n del cra neo en Imagen T2-weigthed: (a) Imagen Original, (b) Ma scara, (c) Imagen segmentada. 68 68 (a) (b) (c) Figura 30. Eliminacio n del cra neo en Imagen PD-weigthed: (a) Imagen Original, (b) Ma scara, (c) Imagen segmentada. 4.4.2. Resultados del pre-procesado para el corte número 75 Se aplica el mismo procedimiento para el corte nu mero 75 y se muestran en la siguientes figuras los resultados obtenidos. (a) (b) (c) Figura 31. Eliminacio n del cra neo en Imagen T1-weigthed: (a) Imagen Original, (b) Imagen segmentada, (c) Ma scara Se aprecia una buena segmentacio n del cra neo y del tejido cerebral tanto para el corte nu mero 75 como para el corte nu mero 85. Esto sirve para justificar el buen funciamiento de este primer proceso de segmentacio n, no importando la forma que tenga el cra neo para hacer una buena segmentacio n de este. 69 (a) (b) (c) Figura 32. Eliminacio n del cra neo en Imagen T2-weigthed: (a) Imagen Original, (b) Imagen segmentada, (c) Ma scara (a) (b) (c) Figura 33. Eliminacio n del cra neo en Imagen PD-weigthed: (a) Imagen Original, (b) Imagen segmentada, (c) Ma scara A continuacio n, se muestran los distintos resultados tras aplicar todos los me todos en los dos cortes seleccionados para el estudio. Previamente se muestran las verdades de referencia para poder visualizar la calidad del resultado. 70 70 4.4.3. Resultados para los distintos métodos con el corte número 85. El procedimiento seguido para hacer el ana lisis de resultados es el mismo que se ha realizado para el corte central. Se partira de las verdades de referencia de los distintos tejidos para el corte nu mero 85 y se comparara n con los tejidos resultantes mediante los para metros de calidad descritos al principio de este capí tulo. Por tanto, a continuacio n, se representan las verdades de referencia para el corte objeto de estudio. (a) (b) (c) (d) (e) (f) Figura 34. Verdades de Referencia para el corte nu mero 85 En (a) se observa la imagen T1-weigthed original. (b) corresponde con el cra neo, (c) es el lí quido cefalorraquí deo, (d) es el fondo, (e) la materia blanca y (f) la materia gris. Con estos datos ya podemos analizar tanto a simple vista como cuantitativamente la calidad de los resultados de las segmentaciones que se mostrara n a continuacio n. 71 Algoritmo K-Means (a) (b) (c) Figura 35. Resultados de la segmentacio n del corte 85 para el algoritmo K-Means De la (a) a la (c) los resultados de la segmentacio n aplicando K-Means. Se puede observar que no hace una buena segmentacio n de los tejidos que se esta n buscando, al igual que ocurrí a con el corte central inicial. Ana lisis de Resultados de K-Means Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 99,92 % 77,17% 71,60 % 46,30 % 99,97 % 46,28 % Gray Matter 0,05 % 80,86 % 99,06 % 1,31 % 81,48 % 0,05 % CSF 90,96 % 96,40 % 96,74 % 63,98 % 99,41 % 60,16 % Average 63,64 % 84,81 % 89,13 % 37,19 % 93,62 % 35,49 % Tabla 8. Ana lisis de calidad del me todo K-means para el corte 85 72 72 Algoritmo FCM (a) (b) (c) Figura 36. Resultados de la segmentacio n del corte 85 para el algoritmo FCM De la (a) a la (c) los resultados de la segmentacio n aplicando FCM (Fuzzy C-Means). Ahora sí se aprecian, respectivamente, la materia blanca, la materia gris y el lí quido cefalorraquí deo o CSF. Ana lisis de Resultados de FCM Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 93,44 % 95,65 % 96,19 % 85,74 % 98,35 % 80,87 % Gray Matter 89,37 % 92,84 % 93,62 % 75,92 % 97,50 % 69,64 % CSF 85,42 % 97,13 % 97,87 % 71,87 % 99,06 % 64,02 % Average 89,41 % 95,20 % 95,89 % 77,84 % 98,30 % 71,51 % Tabla 9. Ana lisis de calidad del me todo FCM para el corte 85 73 Algoritmo KFCM (a) (b) (c) Figura 37. Resultados de la segmentacio n del corte 85 para el algoritmo KFCM. De la (a) a la (c) los resultados de la segmentacio n aplicando KFCM (Kernelized Fuzzy C-Means). Se aprecian bien los tres tejidos, materia blanca, materia gris y fluí do cefalorraquí deo (CSF), respectivamente. Ana lisis de Resultados de KFCM Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 92,27 % 95,64 % 96,46 % 86,48 % 98,07 % 80,64 % Gray Matter 90,06 % 92,50 % 93,05 % 74,50 % 97,65 % 68,84 % CSF 89,68 % 96,73 % 97,18 % 66,89 % 99,33 % 62,11 % Average 90,67 % 94,95 % 95,56 % 75,95 % 98,35 % 70,53 % Tabla 10. Ana lisis de calidad del me todo KFCM para el corte 85 80 80 Algoritmo KFCM (a) (b) (c) Figura 44. Resultados de la segmentacio n del corte 75 para el algoritmo KFCM Ana lisis de Resultados para KFCM Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 94,78 % 94,79 % 94,79 % 81,06 % 98,72 % 77,60 % Gray Matter 87,41 % 88,16 % 88,34 % 64,92 % 96,60 % 59,37 % CSF 9,18 % 93,35 % 98,74 % 31,86 % 94,43 % 7,67 % Average 63,79 % 92,1 % 93,95 % 59,28 % 96,58 % 48,21 % Tabla 16. Ana lisis de calidad del me todo KFCM para el corte 75 81 Algoritmo K-Means con ICA (a) (b) (c) Figura 45. Resultados de la segmentacio n del corte 75 para el algoritmo K-Means con ICA Ana lisis de Resultados para K-Means con ICA Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 95,04 % 94,84 % 94,79 % 81,09 % 98,78 % 77,80 % Gray Matter 89,28 % 92,23 % 92,96 % 75,79 % 97,23 % 69,47 % CSF 83,70 % 96,98 % 97,83 % 71,22 % 98,94 % 62,55 % Average 89,34 % 94,68 % 95,19 % 76,03 % 98,31 % 69,94 % Tabla 17. Ana lisis de calidad del me todo K-Means con ICA para el corte 75 82 82 Algoritmo FCM con ICA (ICFCM) (a) (b) (c) Figura 46. Resultados de la segmentacio n del corte 75 para el algoritmo ICFCM Ana lisis de Resultados para ICFCM Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 93,72 % 95,43 % 95,83 % 84,08 % 98,48 % 79,60 % Gray Matter 86,54 % 92,83 % 94,39 % 79,19 % 96,60 % 70,51 % CSF 77,61 % 97,19 % 98,44 % 76,19 % 98,56 % 62,46 % Average 85,95 % 95,15 % 96,22 % 79,82 % 97,88 % 70,85 % Tabla 18. Ana lisis de calidad del me todo ICFCM para el corte 75 83 Algoritmo KFCM con ICA (ICKFCM) (a) (b) (c) Figura 47. Resultados de la segmentacio n del corte 75 para el algoritmo ICKFCM Ana lisis de Resultados para ICKFCM Sensitivity Accuracy Specificity PPV NPV Similarity White Matter 97,49 % 91,84 % 90,51 % 70,70 % 99,35 % 69,44 % Gray Matter 85,95 % 92,05 % 93,56 % 76,71 % 96,42 % 68,16 % CSF 73,08 % 97,27 % 98,82 % 79,91 % 98,28 % 61,74 % Average 85,50 % 93,72 % 94,29 % 75,77 % 98,01 % 66,44 % Tabla 19. Ana lisis de calidad del me todo ICKFCM para el corte 75 84 84 4.5. Síntesis final de los resultados Se hace una comparativa, en media, de los porcentajes de calidad obtenidos como Similitud o Similarity (coeficiente de Jaccard) para los distintos me todos aplicados al corte central (94) y a los dos adicionales (75 y 85), Con esto, se puede hacer una sí ntesis final que sirva como conclusio n del estudio realizado. 4.5.1. Síntesis final para el corte central (corte 94) K-Means FCM KFCM ICA K-Means ICFCM ICKFCM White Matter 55,64 % 84,37 % 83,72 % 56.38 % 86,10 % 69,44 % Gray Matter 0,00 % 69,59 % 69,57 % 4,91 % 70,81 % 68,16 % CSF 68,01 % 73,04 % 71,12 % 73,15 % 72,84 % 61,74 % Average 41,21 % 75,66 % 74,80 % 44,81 % 76,58 % 66,44 % Tabla 20. Comparativa final de resultados para corte central 94 Para el corte 94, en los me todos de clasificacio n K-Means y FCM se observa una clara mejorí a de los resultados si sobre las ima genes aplicamos previamente el algoritmo FastICA. De esta manera se consigue un mejor resultado en cuando a la medida de similitud. Sin embargo, se aprecia un empeoramiento de la similitud en los resultados del algoritmo KFCM en funcio n de si se aplica o no FastICA. 4.5.2. Síntesis final para el corte número 85 K-Means FCM KFCM ICA K-Means ICFCM ICKFCM White Matter 46,28 % 80,87 % 80,64 % 81,88 % 82,13 % 84,67 % Gray Matter 0,05 % 69,64 % 68,84 % 68,61 % 69,85 % 61,75 % CSF 60,16 % 64,02 % 62,11 % 61,50 % 61,26 % 53,17 % Average 35,49 % 71,51 % 70,53 % 70,66 % 71,08 % 66,53 % Tabla 21. Comparativa final de resultados para corte 85 85 De nuevo se presenta la misma casuí stica: en los me todos de clasificacio n K-Means y FCM se observa una clara mejorí a de los resultados si sobre las ima genes aplicamos previamente el algoritmo FastICA, pero se aprecia un leve empeoramiento de la similitud en los resultados del algoritmo KFCM en funcio n de si se aplica o no FastICA. 4.5.3. Síntesis final para el corte número 75 Para el caso del corte 75 se observa exactamente el mismo comportamiento que en los casos anteriores. A continuacio n, los resultados de calidad en valores de similitud. K-Means FCM KFCM ICA K-Means ICFCM ICKFCM White Matter 42,62 % 75,75 % 77,60 % 77,80 % 79,60 % 69,44 % Gray Matter 0,00 % 71,07 % 59,37 % 69,47 % 70,51 % 68,16 % CSF 61,76 % 65,24 % 7,67 % 62,55 % 62,46 % 61,74 % Average 34,79 % 70,68 % 48,21 % 69,94 % 70,85 % 66,44 % Tabla 22. Comparativa final de resultados para corte 75 87 CONCLUSIONES Y LÍNEAS FUTURAS e puede considerar, tras el estudio de investigacio n realizado, que el trabajo desarrollado tiene unos resultados, en general, positivos. El algoritmo para la eliminacio n previa del cra neo se comporta correctamente, a pesar de las variaciones en la forma del cra neo al recorrer el volumen y seleccionar distintos cortes o slices. Los algoritmos FCM (Fuzzy C-Means) y KFCM (Kernelized Fuzzy C-Means) presentan buenas clasificaciones de los distintos tejidos. Sin embargo, se ha podido comprobar que el algoritmo K- Means no es un buen clasificador para este tipo de ima genes cerebrales debido a los resultados obtenidos tras aplicar el mismo tanto con ICA como sin ICA. En algunos casos hace una buena clasificacio n, pero no es suficiente para ser elegido como clasificador definitivo. La aplicacio n del ana lisis de componentes independientes (FastICA) mejora la calidad del resultado para los casos de K-Means y FCM pero se aprecia una disminucio n de la calidad del 4% para el caso de KFCM. Sabiendo la dificultad que ha presentado aplicar el algoritmo KFCM para segmentar los tejidos de la materia blanca, la materia gris y el lí quido cefalorraquí deo, se puede proponer como lí nea futura mejorar el post-procesado de este para que la calidad del resultado sea acorde a los me todos de clasificacio n anteriormente implementados. Adema s, serí a tambie n una buena lí nea futura implementar el algoritmo aplicando ruido a las ima genes de entrada para comprobar si los resultados siguen conservando buena calidad, teniendo en cuenta que esta bajara en alguna medida al tratarse de ima genes que han sufrido una corrupcio n por ruido. Otra posible ví a de investigacio n para mejorar este estudio serí a aplicar los algoritmos de clasificacio n a ima genes reales ya que estas son ima genes cerebrales simuladas. Tambie n podrí a aplicarse a otro tipo de ima genes me dicas. Estudios recientes [43] determinan que la segmentacio n del ventrí culo izquierdo (LV o Letf Ventricle) a partir de conjuntos de datos de ima genes de resonancia magne tica cardí aca (MRI) es un paso esencial para el ca lculo de í ndices clí nicos como el volumen ventricular y el porcentaje de eyeccio n (bombeo de la sangre por los ventrí culos), por lo que serí a interesante estudiar la segmentacio n del ventrí culo izquierdo en ima genes de resonancia magne tica cardiaca con los algoritmos estudiados en este trabajo. S Hay que ser feliz, aunque sea sólo por molestar. - Joaquín Sabina - 89 REFERENCIAS [1] P. Oliveira y R. A. F. Romero, «Improvements on ICA mixture models for image preprocessing and segmentation,» Neurocomputing, vol. 71, nº 10-12, pp. 2180-2193, 2008. [2] R. Jenssen y T. Eltoft, «Independent component analysis for texture segmentation,» Pattern Recognition, vol. 36, nº 10, pp. 2301-2315, 2003. [3] D. Gupta, R. S. Anand y B. Tyagi, «A hybrid segmentation method based on Gaussian kernel fuzzy clustering and region based active contour model for ultrasound medical images,» Biomedical Signal Processing and Control, vol. 16, pp. 98-112, 2015. [4] Y.-T. Chen, «A level set method based on the Bayesian risk for medical image segmentation Pattern Recognition,» vol. 43, nº 11, p. 3699–3711, 2010. [5] Q. Z. a. E. Q. Dong, «Narrow band active contour model for local segmentation of medical and texture images,» Acta Automatica Sinica, vol. 39, nº 1, pp. 21-30, 2013. [6] M. B. J. A. N. a. Y. Z. G. Xiao, «Segmentation of ultrasound B-mode images with intensity inhomogeneity correction,» IEEE Transactions on Medical Imaging, vol. 21, nº 1, pp. 48-57, 2002. [7] H.-M. W. a. H. H.-S. Lu, «Iterative sliced inverse regression for segmentation of ultrasound and MR images,» Pattern Recognition, vol. 40, nº 12, pp. 3492-3502, 2007. [8] W. E. L. G. R. K. a. F. A. J. W. M. Wells III, «Adaptive segmentation of MRI data,» IEEE Transactions on Medical Imaging, vol. 15, nº 4, p. 429–442, 1996. [9] E. Sorouchyari, «Blind separation of sources, part III: stability analysis,» Signal Processing, vol. 24, nº 1, pp. 21-29, 1991. [10] M. S. L. a. T. J. S. T.-W. Lee, «ICA mixture models for unsupervised classification of non- Gaussian classes and automatic context switching in blind signal separation,» IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, nº 10, p. 1078–1089, 2000. [11] A. Bell y T. J. Sejnowski, «An information-maximization approach to blind separation and blind deconvolution,» Neural Computation, vol. 7, nº 6, p. 1129–1159, 1995. [12] A. Hyva rinen, J. Karhunen y E. Oja, «Independent Component Analysis,» de A Wiley- Interscience Publication, John Wiley & Sons Inc, New York, NY, USA, 2001. [13] T. Tateyama, Z. Nakao y Y.-W. Chen, «Classification of brain matters in MRI by Kernel 96 96 Función ground_truth.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRABAJO DE FIN DE MASTER % % Autora: Ana Isabel García Noguer % % Fichero: ground_truth.m % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DESCRIPCION: function [salida] = ground_truth(entrada) %Seleccionamos la slice y rotamos entrada=entrada(:,:,1); im=imrotate(entrada,180); im_gray=im; %Binarizamos la entrada umbral=0.7; im_bw = im2bw(im_gray,umbral); %Construimos la verdad de referencia fila=ones(1,181); columna=ones(217,1); if fila == im_bw(1,:) fila=zeros(1,181); columna=zeros(217,1); elseif fila ~= im_bw(1,:) fila=ones(1,181); columna=ones(217,1); end im_bw(1,:)=fila; im_bw(end,:)=fila; im_bw(:,1)=columna; im_bw(:,end)=columna; salida=im_bw; end Función KFCM_init.m function [Vinit]=KFCM_init(Img,cluster_n) %Transforma la imagen en un vector y aplica k-means al set de imágenes Img=double(Img); [row,col]=size(Img); Imgtmp=reshape(Img,row*col,1); size(Imgtmp); [index,Vinit]=kmeans(Imgtmp,cluster_n,'emptyaction','singleton'); end 97 Función kfcm.m function [center, U, obj_fcn] = kfcm(data, Vinit, options) % Change the following to set default options default_options = [2; % exponent for the partition matrix U 100; % max. number of iteration 1e-5; % min. amount of improvement 1; % info display during iteration 10]; % if nargin == 2 options = default_options; else % If "options" is not fully specified, pad it with default values. if length(options) < 5 tmp = default_options; tmp(1:length(options)) = options; options = tmp; end % If some entries of "options" are nan's, replace them with defaults. nan_index = find(isnan(options)==1); options(nan_index) = default_options(nan_index); if options(1) <= 1 error('The exponent should be greater than 1!'); end end expo = options(1); % Exponent for U max_iter = options(2); % Max. iteration min_impro = options(3); % Min. improvement display = options(4); % Display info or not delta= options(5); % delta obj_fcn = zeros(max_iter, 1); % Array for objective function %Inicialización del bucle center=Vinit; cluster_n=length(Vinit); %Función Kernel k_dis=exp(-((abs(repmat(data',cluster_n,1)- repmat(center,1,length(data)))).^2)/(delta.^2)); %Valores Uij, en forma matricial U=((1-k_dis).^(-1/(expo-1)))./repmat( sum((1-k_dis).^(-1/(expo- 1)),1),cluster_n,1 ); size(U); % Proceso Iterativo for i = 1:max_iter tmp0=sum(U.^expo.*k_dis.*repmat(data',cluster_n,1),2); tmp1=sum(U.^expo.*k_dis,2); center=tmp0./tmp1; k_dis=exp(-((abs(repmat(data',cluster_n,1)- repmat(center,1,length(data)))).^2)/(delta.^2)); U=((1-k_dis).^(-1/(expo-1))) ./ repmat( sum((1-k_dis).^(-1/(expo- 1)),1),cluster_n,1 ); [U1,U2]=size(U); tmp=U.^2.*k_dis; obj_fcn(i)=sum(tmp(:)); 98 98 if display fprintf('Iteration count = %d, obj. fcn = %f, size(U)=%d %d\n', i, obj_fcn(i),U1,U2); end % check termination condition if i > 1 if abs(obj_fcn(i) - obj_fcn(i-1)) < min_impro, break; end end end iter_n = i; % Actual number of iterations obj_fcn(iter_n+1:max_iter) = []; end Función KFCM_Img.m function [Img_label,One_index,aux]=KFCM_Img(Img,Vinit,cluster_n,m,iter_max,e,delta) % Img --> imagen de entrada % cluster_n --> necesario % m --> default=2 % iter_max -> default=1000 % e (epsilin) --> default=1e-5 % Img_label --> Salida con tantos clústeres como se indique en % cluster_n if nargin==3 m=2;iter_max=1000;e=1e-5;delta=10; end if nargin==4 iter_max=1000;e=1e-5;delta=10; end if nargin==5 e=1e-5;delta=10; end if nargin==6 delta=10; end Img=double(Img); [nrow,ncol]=size(Img); %Reshape de la imagen Img_reshape=reshape(Img,nrow*ncol,1); options = [m;iter_max;e;1;delta]; % Aplicar kfcm [center,U,obj_fcn] = kfcm(Img_reshape,Vinit,options); % Reajustar la salida maxU = max(U); maxUn=repmat(maxU,cluster_n,1); 99 U=U'; maxUn=maxUn'; One_index=(maxUn==U); % Img_label=zeros(size(Img_reshape)); for i=1:cluster_n index=floor(find(One_index(:,i)==1)); Img_label(index)=i; end aux=Img_label; %Img_label=reshape(Img_label,nrow,ncol); % Preparamos salida tmp=zeros(1,cluster_n); for i=1:cluster_n tmp(i)=mean(Img(Img_label==i)); end [data,index]=sort(tmp); Img_label0=zeros(size(Img_label)); for i=1:cluster_n Img_label0(Img_label==index(i))=i; end Img_label=Img_label0; end Script para algoritmo K-Means: prueba_kmeans.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRABAJO DE FIN DE MASTER % % Autora: Ana Isabel García Noguer % % Fichero: prueba_kmeans.m % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all ; clear all ; clc %Base de datos: https://brainweb.bic.mni.mcgill.ca %% 1. Lectura de la imagen [t1,info1]=loadminc('./database/T1/t1_icbm_normal_1mm_pn0_rf0.mnc'); [t2,info2]=loadminc('./database/T2/t2_icbm_normal_1mm_pn0_rf0.mnc'); [pd,info3]=loadminc('./database/PD/pd_icbm_normal_1mm_pn0_rf0.mnc'); %% 2. Aplicamos Skull Stripping [t1_original, t1_prima, background] = skull_stripping(t1); [t2_original, t2_prima, background] = skull_stripping(t2); [pd_original, pd_prima, background] = skull_stripping(pd); %Tamaño de las imagenes [M,N]=size(t1_original); %% Montamos el dataset dataset1 = t1_prima(:); 100 100 dataset2 = t2_prima(:); dataset3 = pd_prima(:); dataset = [dataset1,dataset2,dataset3]; % 1.3. Aplicar K-means classes=4; rng(1); % For reproducibility [idx,C] = kmeans(dataset,classes); % 1.4. Reshape de los resultados salida_kmeans=reshape(idx,M,N); km1=zeros(M,N); posiciones=find(salida_kmeans==1); km1(posiciones)=1; km2=zeros(M,N); posiciones=find(salida_kmeans==2); km2(posiciones)=1; km3=zeros(M,N); posiciones=find(salida_kmeans==3); km3(posiciones)=1; km4=zeros(M,N); posiciones=find(salida_kmeans==4); km4(posiciones)=1; Script para algoritmo ICA K-Means: prueba_ica_kmeans.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRABAJO DE FIN DE MASTER % % Autora: Ana Isabel García Noguer % % Fichero: prueba_ica_kmeans.m % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all ; clear all ; clc %Base de datos: https://brainweb.bic.mni.mcgill.ca %% 1. Lectura de la imagen [t1,info1]=loadminc('./database/T1/t1_icbm_normal_1mm_pn0_rf0.mnc'); [t2,info2]=loadminc('./database/T2/t2_icbm_normal_1mm_pn0_rf0.mnc'); [pd,info3]=loadminc('./database/PD/pd_icbm_normal_1mm_pn0_rf0.mnc'); %% 2. Aplicamos Skull Stripping [t1_original, t1_prima, background] = skull_stripping(t1); [t2_original, t2_prima, background] = skull_stripping(t2); [pd_original, pd_prima, background] = skull_stripping(pd); %Tamaño de las imagenes [M,N]=size(t1_original); %% FastICA [ic1,ic2,ic3]=independent_component_analysis(t1_prima,t2_prima,pd_prima); 101 %% Montamos el dataset dataset1 = ic1(:); dataset2 = ic2(:); dataset3 = ic3(:); dataset = [dataset1,dataset2,dataset3]; % 1.3. Aplicar K-means classes=4; rng(1); % For reproducibility [idx,C] = kmeans(double(dataset),classes); % 1.4. Reshape de los resultados [M,N]=size(t1_prima); salida_kmeans=reshape(idx,M,N); km1=zeros(M,N); posiciones=find(salida_kmeans==1); km1(posiciones)=1; km2=zeros(M,N); posiciones=find(salida_kmeans==2); km2(posiciones)=1; km3=zeros(M,N); posiciones=find(salida_kmeans==3); km3(posiciones)=1; km4=zeros(M,N); posiciones=find(salida_kmeans==4); km4(posiciones)=1; Script para algoritmo FCM: prueba_fcm.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRABAJO DE FIN DE MASTER % % Autora: Ana Isabel García Noguer % % Fichero:prueba_fcm.m % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all clear all clc %Base de datos: https://brainweb.bic.mni.mcgill.ca %% 1. Lectura de la imagen [t1,info1]=loadminc('./database/T1/t1_icbm_normal_1mm_pn0_rf0.mnc'); [t2,info2]=loadminc('./database/T2/t2_icbm_normal_1mm_pn0_rf0.mnc'); [pd,info3]=loadminc('./database/PD/pd_icbm_normal_1mm_pn0_rf0.mnc'); %% 2. Aplicamos Skull Stripping [t1_original, t1_prima, background] = skull_stripping(t1); [t2_original, t2_prima, background] = skull_stripping(t2); [pd_original, pd_prima, background] = skull_stripping(pd); %Tamaño de las imagenes [M,N]=size(t1_original); 102 102 %% Montamos el dataset dataset1 = t1_prima(:); dataset2 = t2_prima(:); dataset3 = pd_prima(:); dataset = [dataset1,dataset2,dataset3]; %% Aplicar FCM classes=4; rng(1); % For reproducibility [centers,U] = fcm(dataset,classes); % % % 2. Reshape de los resultados umbral=0.5; salida_fcm=U'; salida_fcm1=reshape(salida_fcm(:,1),M,N); salida_fcm1 = im2bw(salida_fcm1,umbral); salida_fcm2=reshape(salida_fcm(:,2),M,N); salida_fcm2 = im2bw(salida_fcm2,umbral); salida_fcm3=reshape(salida_fcm(:,3),M,N); salida_fcm3 = im2bw(salida_fcm3,umbral); salida_fcm4=reshape(salida_fcm(:,4),M,N); salida_fcm4 = im2bw(salida_fcm4,umbral); Script para algoritmo ICFCM: prueba_ica_fcm.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRABAJO DE FIN DE MASTER % % Autora: Ana Isabel García Noguer % % Fichero:prueba_ica_fcm.m % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all clear all clc %Base de datos: https://brainweb.bic.mni.mcgill.ca %% 1. Lectura de la imagen [t1,info1]=loadminc('./database/T1/t1_icbm_normal_1mm_pn0_rf0.mnc'); [t2,info2]=loadminc('./database/T2/t2_icbm_normal_1mm_pn0_rf0.mnc'); [pd,info3]=loadminc('./database/PD/pd_icbm_normal_1mm_pn0_rf0.mnc'); %% 2. Aplicamos Skull Stripping [t1_original, t1_prima, background] = skull_stripping(t1); [t2_original, t2_prima, background] = skull_stripping(t2); [pd_original, pd_prima, background] = skull_stripping(pd); %Tamaño de las imagenes [M,N]=size(t1_original); 103 %% FastICA [ic1,ic2,ic3]=independent_component_analysis(t1_prima,t2_prima,pd_prima); %% Montamos el dataset dataset1 = ic1(:); dataset2 = ic2(:); dataset3 = ic3(:); dataset = [dataset1,dataset2,dataset3]; % 1. Aplicar FCM sobre el mismo dataset anterior classes=4; [centers,U] = fcm(dataset,classes); U=U'; [M,N]=size(t1_prima); umbral=0.5; salida_icfcm1=reshape(U(:,1),M,N); salida_icfcm1 = im2bw(salida_icfcm1,umbral); salida_icfcm2=reshape(U(:,2),M,N); salida_icfcm2 = im2bw(salida_icfcm2,umbral); salida_icfcm3=reshape(U(:,3),M,N); salida_icfcm3 = im2bw(salida_icfcm3,umbral); salida_icfcm4=reshape(U(:,4),M,N); salida_icfcm4 = im2bw(salida_icfcm4,umbral); Script para algoritmo KFCM: prueba_kfcm.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRABAJO DE FIN DE MASTER % % Autora: Ana Isabel García Noguer % % Fichero: prueba_kfcm.m % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all clear all clc %Base de datos: https://brainweb.bic.mni.mcgill.ca %% 1. Lectura de la imagen [t1,info1]=loadminc('./database/T1/t1_icbm_normal_1mm_pn0_rf0.mnc'); [t2,info2]=loadminc('./database/T2/t2_icbm_normal_1mm_pn0_rf0.mnc'); [pd,info3]=loadminc('./database/PD/pd_icbm_normal_1mm_pn0_rf0.mnc'); %% 2. Aplicamos Skull Stripping [t1_original, t1_prima, background] = skull_stripping(t1); [t2_original, t2_prima, background] = skull_stripping(t2); [pd_original, pd_prima, background] = skull_stripping(pd); %Tamaño de las imagenes [M,N]=size(t1_original); 104 104 %% Montamos el dataset dataset1 = t1_prima(:); dataset2 = t2_prima(:); dataset3 = pd_prima(:); dataset = [dataset1,dataset2,dataset3]; %% KFCM % Datos para el Kernel tomado del paper cluster_n=4; m=2; iter_max=100; e=1e-5; delta=150; rng(1); % For reproducibility %kmeans a la imagen original Vinit=KFCM_init(dataset,cluster_n); %Aplicamos KFCM [Img_label,one_index,aux]=KFCM_Img(dataset,Vinit,cluster_n,m,iter_max,e,delt a); % Preparamos salida aux=aux'; salida_kfcm=reshape(aux,M*N,3); tmp=zeros(1,cluster_n); for i=1:cluster_n tmp(i)=mean(dataset(salida_kfcm==i)); end [data,index]=sort(tmp); salida_kfcm0=zeros(size(salida_kfcm)); for i=1:cluster_n salida_kfcm0(salida_kfcm==index(i))=i; end salida_kfcm=salida_kfcm0; salida_kfcm1=reshape(salida_kfcm(:,1),M,N); salida_kfcm2=reshape(salida_kfcm(:,2),M,N); salida_kfcm3=reshape(salida_kfcm(:,3),M,N); kfcm=(salida_kfcm3+salida_kfcm1+salida_kfcm2); kfcm=kfcm.*imcomplement(double(background)); Script para algoritmo ICKFCM: prueba_ica_kfcm.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRABAJO DE FIN DE MASTER % % Autora: Ana Isabel García Noguer % % Fichero: prueba_ica_kfcm.m % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all ;clear all ; clc %Base de datos: https://brainweb.bic.mni.mcgill.ca 105 %% 1. Lectura de la imagen [t1,info1]=loadminc('./database/T1/t1_icbm_normal_1mm_pn0_rf0.mnc'); [t2,info2]=loadminc('./database/T2/t2_icbm_normal_1mm_pn0_rf0.mnc'); [pd,info3]=loadminc('./database/PD/pd_icbm_normal_1mm_pn0_rf0.mnc'); %% 2. Aplicamos Skull Stripping [t1_original, t1_prima, background] = skull_stripping(t1); [t2_original, t2_prima, background] = skull_stripping(t2); [pd_original, pd_prima, background] = skull_stripping(pd); %Tamaño de las imagenes [M,N]=size(t1_original); %% FastICA [ic1,ic2,ic3]=independent_component_analysis(t1_prima,t2_prima,pd_prima); %% Montamos el dataset dataset1 = ic1(:); dataset2 = ic2(:); dataset3 = ic3(:); dataset = [dataset1,dataset2,dataset3]; %% KFCM % Datos para el Kernel tomado del paper cluster_n=4; m=2; iter_max=80; e=1e-5; delta=150; rng(1); % For reproducibility %kmeans a la imagen original Vinit=KFCM_init(dataset,cluster_n); %Aplicamos KFCM [Img_label_ica,one_index,aux]=KFCM_Img(dataset,Vinit,cluster_n,m,iter_max,e, delta); % Preparamos salida aux=aux'; salida_kfcm=reshape(aux,M*N,3); tmp=zeros(1,cluster_n); for i=1:cluster_n tmp(i)=mean(dataset(salida_kfcm==i)); end [data,index]=sort(tmp); salida_kfcm0=zeros(size(salida_kfcm)); for i=1:cluster_n salida_kfcm0(salida_kfcm==index(i))=i; end salida_kfcm=salida_kfcm0; salida_kfcm1=reshape(salida_kfcm(:,1),M,N); salida_kfcm2=reshape(salida_kfcm(:,2),M,N); salida_kfcm3=reshape(salida_kfcm(:,3),M,N); kfcm=(salida_kfcm3+salida_kfcm1+salida_kfcm2); kfcm=kfcm.*imcomplement(double(background));