m (AdianezGamboa moved page Review 920311942324 to Draft Gamboa 639370325) |
|||
Line 7: | Line 7: | ||
El Álgebra Lineal Numérica (ALN) comprende entre otros temas diversos, el estudio de algoritmos que realizan operaciones con matrices utilizando una computadora <span id='citeF-1'></span>[[#cite-1|[1]]]. Es parte fundamental de la matemática aplicada contemporánea, dando solución a problemas de la ingeniería, ciencias de la computación, simulación numérica en ciencias de los materiales, biomatemática, minería de datos, entre muchas otras áreas de la ciencia. Los problemas numéricos actuales, demandan una gran cantidad de recursos de cómputo, debido al diluvio de datos que actualmente se genera con un simple dispositivo móvil por ejemplo. | El Álgebra Lineal Numérica (ALN) comprende entre otros temas diversos, el estudio de algoritmos que realizan operaciones con matrices utilizando una computadora <span id='citeF-1'></span>[[#cite-1|[1]]]. Es parte fundamental de la matemática aplicada contemporánea, dando solución a problemas de la ingeniería, ciencias de la computación, simulación numérica en ciencias de los materiales, biomatemática, minería de datos, entre muchas otras áreas de la ciencia. Los problemas numéricos actuales, demandan una gran cantidad de recursos de cómputo, debido al diluvio de datos que actualmente se genera con un simple dispositivo móvil por ejemplo. | ||
− | El problema de agrupamiento de datos y en particular la segmentación de imágenes son tópicos de estudio actualmente. La segmentación de imágenes es un tipo particular de agrupamiento, cuyo objetivo es agrupar píxeles para extraer información valiosa. La Microscopía Electrónica de Transmisión (TEM) genera imágenes con alta resolución, eso implica una gran cantidad de píxeles del orden del millón o más de ellos, su obtención es costosa en distintos sentidos. En este estudio, que actualmente se encuentra en desarrollo, se busca analizar imágenes de nanopartículas de plata y determinar propiedades como cantidad y diámetro. El desafío radica en la alta densidad de píxeles en estas imágenes. La investigación se centra en la aplicación del algoritmo KMeans para abordar este problema. Además, se utilizará una microcomputadora de alto rendimiento | + | El problema de agrupamiento de datos y en particular la segmentación de imágenes son tópicos de estudio actualmente. La segmentación de imágenes es un tipo particular de agrupamiento, cuyo objetivo es agrupar píxeles para extraer información valiosa. La Microscopía Electrónica de Transmisión (TEM) genera imágenes con alta resolución, eso implica una gran cantidad de píxeles del orden del millón o más de ellos, su obtención es costosa en distintos sentidos. En este estudio, que actualmente se encuentra en desarrollo, se busca analizar imágenes de nanopartículas de plata y determinar propiedades como cantidad y diámetro. El desafío radica en la alta densidad de píxeles en estas imágenes. La investigación se centra en la aplicación del algoritmo KMeans para abordar este problema. Además, se utilizará una microcomputadora de alto rendimiento llamada Parallella, para procesar eficientemente los datos <span id='citeF-2'></span>[[#cite-2|[2]]]. Este enfoque promete avanzar en la caracterización de nanopartículas de plata a partir de imágenes TEM, a pesar de los desafíos relacionados con la resolución y la complejidad de los datos. |
==3 Preliminares== | ==3 Preliminares== | ||
Line 15: | Line 15: | ||
===3.1 Problema de Agrupamiento=== | ===3.1 Problema de Agrupamiento=== | ||
− | En el | + | En la actualidad el uso de grandes cantidades de datos generados por diversos dispositivos y equipos electrónicos, ópticos u otra tecnología de medición, generan un problema de análisis de datos en el momento de extraer la información de interés desde las muestras adquiridas. Uno de ellos, es agrupar correctamente los datos para obtener información relevante y precisa para evidenciar el fenómeno físico que se desea abordar <span id='citeF-3'></span><span id='citeF-4'></span>[[#cite-3|[3,4]]]. A continuación se define el problema de agrupamiento. |
− | Definición 1: Dado un conjunto <math>D</math> de datos con <math>n</math> objetos en un espacio <math>m</math>-dimensional, agrupar datos es particionar los mismos en <math>k</math> grupos tales que los puntos dentro de un grupo son más similares entre ellos que con otros grupos, dicha similitud se mide atendiendo a alguna función distancia. | + | Definición 1: Dado un conjunto <math display="inline">D</math> de datos con <math display="inline">n</math> objetos en un espacio <math display="inline">m</math>-dimensional, agrupar datos es particionar los mismos en <math display="inline">k</math> grupos tales que los puntos dentro de un grupo son más similares entre ellos que con otros grupos, dicha similitud se mide atendiendo a alguna función distancia. |
<div id='img-1'></div> | <div id='img-1'></div> | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-ejedatosagrupados.png|301px|Ejemplo de puntos graficados en R² y su agrupamiento. Fuente: Elaboración propia.]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
| colspan="1" | '''Figura 1:''' Ejemplo de puntos graficados en <math>\mathbb{R}^{2}</math> y su agrupamiento. Fuente: Elaboración propia. | | colspan="1" | '''Figura 1:''' Ejemplo de puntos graficados en <math>\mathbb{R}^{2}</math> y su agrupamiento. Fuente: Elaboración propia. | ||
|} | |} | ||
− | En este problema el objetivo principal es encontrar grupos en conjunto de datos con ciertas características partículares. En este sentido se puede decir que este problema es el proceso de organizar objetos con gran similitud, ver Figura [[#img-1|1]]. | + | En este problema el objetivo principal es encontrar grupos en un conjunto de datos con ciertas características partículares. En este sentido se puede decir que este problema es el proceso de organizar objetos con gran similitud, ver Figura [[#img-1|1]]. |
===3.2 Microscopía TEM=== | ===3.2 Microscopía TEM=== | ||
− | El TEM (del inglés, Transmission Electron Microscope) tal como lo indica <span id='citeF- | + | El TEM (del inglés, Transmission Electron Microscope) tal como lo indica <span id='citeF-5'></span>[[#cite-5|[5]]] ''es un instrumento que aprovecha los fenómenos físico-atómicos que se producen cuando un haz de electrones suficientemente acelerado colisiona con una muestra delgada convenientemente preparada''. En la muestra los electrones colisionan con respecto a algunas propiedades específicas (grosor y tipo de átomos), por ejemplo <span id='citeF-6'></span>[[#cite-6|[6]]]. Todo este proceso forman una imagen final con distintas intensidades de gris que corresponde al grado de dispersión de los electrones incidentes. |
<div id='img-2'></div> | <div id='img-2'></div> | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-TEM2NPsAg_0016.png|163px|]] |
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-TEM1NPsAg_0015.png|163px|Ejemplos de imágenes de nanopartículas de plata (Ag) sintetizadas con resina de mezquite, utilizando la técnica TEM. Fuente: División de Ciencias e Ingeniería de la Universidad de Guanajuato Campus León.]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
− | | colspan="2" | '''Figura 2:''' Ejemplos de imágenes de nanopartículas de plata (Ag) sintetizadas con resina de mezquite, utilizando la técnica TEM. Fuente: Universidad de Guanajuato. | + | | colspan="2" | '''Figura 2:''' Ejemplos de imágenes de nanopartículas de plata (Ag) sintetizadas con resina de mezquite, utilizando la técnica TEM. Fuente: División de Ciencias e Ingeniería de la Universidad de Guanajuato Campus León. |
|} | |} | ||
− | Las imágenes TEM ofrecen información sobre la muestra como su estructura por ejemplo, si es | + | Las imágenes TEM ofrecen información sobre la muestra como su estructura por ejemplo, si es amorfa o cristalina <span id='citeF-7'></span>[[#cite-7|[7]]]. Cuando las muestras son cristalinas pueden existir varias familias de planos periódicos cumpliendo la condición de la ley de Bragg y difracten la onda electrónica incidente <span id='citeF-8'></span>[[#cite-8|[8]]]. Esto da lugar a un diagrama de difracción, que es una imagen de distintos puntos ordenados respecto a un punto central (electrones transmitidos no desviados) que aporta información sobre la orientación y estructura del/los cristales presentes. |
− | Por lo tanto, en lo descrito anteriormente, de lo que trata este trabajo no es de caracterizar nanopartículas de plata por medio de técnicas de síntesis experimentales, si no, más bien, estudiar las imágenes que son el resultado de esta técnica (TEM) por medio de sus elementos individuales llamado píxeles y poder encontrar patrones, relaciones o asociaciones de los mismos para obtener información y poder definir propiedades como los diámetros y la cantidad de nanopartículas existentes en la imagen. | + | Por lo tanto, en lo descrito anteriormente, de lo que trata este trabajo no es de caracterizar nanopartículas de plata por medio de técnicas de síntesis experimentales, si no, más bien, estudiar las imágenes que son el resultado de esta técnica (TEM) por medio de sus elementos individuales llamado píxeles y poder encontrar patrones, relaciones o asociaciones de los mismos, para obtener información y poder definir propiedades como los diámetros y la cantidad de nanopartículas existentes en la imagen. |
==4 Objetivos== | ==4 Objetivos== | ||
Line 65: | Line 65: | ||
==5 Metodología== | ==5 Metodología== | ||
− | En esta sección se presenta la metodología a utilizar para llevar a cabo este trabajo. Se | + | En esta sección se presenta la metodología a utilizar para llevar a cabo este trabajo. En la Figura [[#img-3|3]] se muestran las etapas a seguir. Se inicia por la revisión de la literatura. Se presenta el algoritmo del tipo particional y no supervisado llamado KMeans que es uno de los más utilizados para llevar a cabo segmentación de imágenes <span id='citeF-4'></span><span id='citeF-9'></span><span id='citeF-10'></span><span id='citeF-11'></span>[[#cite-4|[4,9,10,11]]]. Tiene la característica de ser simple, compacto y fácil de implementar computacionalmente. Sin embargo, es necesario realizar preprocesamientos previos para que el algoritmo funcione de manera adecuada en la solución del problema de agrupamiento. Este problema se presenta en particular para hacer agrupamiento de píxeles es decir hacer segmentación de imágenes en escala de grises y por último se menciona el tipo de computadora que se estará utilizando en el desarrollo de este trabajo. |
<div id='img-3'></div> | <div id='img-3'></div> | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-MetodologiaAdy.png|504px|Metodología a utilizar en el trabajo. Fuente: Elaboración propia.]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
| colspan="1" | '''Figura 3:''' Metodología a utilizar en el trabajo. Fuente: Elaboración propia. | | colspan="1" | '''Figura 3:''' Metodología a utilizar en el trabajo. Fuente: Elaboración propia. | ||
Line 81: | Line 81: | ||
===5.2 El algoritmo KMeans=== | ===5.2 El algoritmo KMeans=== | ||
− | La aplicación de algoritmos de agrupamiento es una solución a este problema y uno de ellos es KMeans. Este algoritmo es simple y con una gran candidad de | + | La aplicación de algoritmos de agrupamiento es una solución a este problema y uno de ellos es KMeans. Este algoritmo es simple y con una gran candidad de variantes como se describe en <span id='citeF-10'></span>[[#cite-10|[10]]]. Se mencionan algunas propiedades del algoritmo KMeans, para mayor detalle, consultar en <span id='citeF-3'></span><span id='citeF-12'></span>[[#cite-3|[3,12]]]. |
==Algoritmo KMeans== | ==Algoritmo KMeans== | ||
Line 134: | Line 134: | ||
===5.3 Segmentación de imágenes=== | ===5.3 Segmentación de imágenes=== | ||
− | La segmentación de imágenes es un tipo de agrupamiento y es una de las aplicaciones donde se puede utilizar el algoritmo KMeans. A continuación lo aplicaremos a la segmentación de imágenes en escala de grises. Adicionalmente se presenta un pre-procesamiento que ayudará a encontrar centroides iniciales para | + | La segmentación de imágenes es un tipo de agrupamiento y es una de las aplicaciones donde se puede utilizar el algoritmo KMeans. A continuación lo aplicaremos a la segmentación de imágenes en escala de grises. Adicionalmente se presenta un pre-procesamiento que ayudará a encontrar centroides iniciales para que algoritmo encuentre mejores agrupamientos. |
====5.3.1 Imágenes a escala de grises==== | ====5.3.1 Imágenes a escala de grises==== | ||
− | En las imágenes a escala de grises cada píxel puede definir solamente una tonalidad de gris (luminosidad) y el número de píxeles define la cantidad de información que contiene la imagen <span id='citeF- | + | En las imágenes a escala de grises cada píxel puede definir solamente una tonalidad de gris (luminosidad) y el número de píxeles define la cantidad de información que contiene la imagen <span id='citeF-13'></span><span id='citeF-14'></span>[[#cite-13|[13,14]]]. Las tonalidades están comprendidas en el intervalo <math display="inline">[0\; 255]</math> donde el tono negro es el valor de <math display="inline">0</math> y el blanco es el valor de <math display="inline">255</math>, ver Figura [[#img-4|4]]. |
<div id='img-4'></div> | <div id='img-4'></div> | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-escalagrises.png|186px|Escala de grises de 0 a 255. Fuente: Elaboración propia.]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
| colspan="1" | '''Figura 4:''' Escala de grises de 0 a 255. Fuente: Elaboración propia. | | colspan="1" | '''Figura 4:''' Escala de grises de 0 a 255. Fuente: Elaboración propia. | ||
Line 156: | Line 156: | ||
{| style="text-align: center; margin: 1em auto;min-width:50%;width:100%;" | {| style="text-align: center; margin: 1em auto;min-width:50%;width:100%;" | ||
|- | |- | ||
− | | [[Image: | + | | [[Image:Draft_Gamboa_639370325-sonrisa.png|300px|Figuras/sonrisa]] |
| <math>\rightarrow </math> | | <math>\rightarrow </math> | ||
| <math>\left[\begin{array}{cccccccccc} 248 & 253 & 255 & 0 & 7 & 2 & 0 & 255 & 253 & 255 \\ 253 & 255 & 0 & 255 & 248 & 253 & 255 & 0 & 251 & 255 \\ 1 & 0 & 255 & 250 & 255 & 255 & 247 & 249 & 0 & 3 \\ 4 & 246 & 255 & 0 & 249 & 5 & 255 & 255 & 255 & 0 \\ 3 & 255 & 248 & 2 & 255 & 0 & 246 & 251 & 249 & 0 \\ 0 & 251 & 255 & 254 & 247 & 255 & 255 & 4 & 255 & 0 \\ 6 & 255 & 244 & 251 & 255 & 255 & 0 & 0 & 251 & 9 \\ 0 & 252 & 255 & 0 & 1 & 0 & 6 & 255 & 245 & 1 \\ 255 & 3 & 254 & 255 & 252 & 254 & 255 & 238 & 1 & 255 \\ 238 & 251 & 8 & 0 & 0 & 5 & 0 & 4 & 250 & 250 \end{array}\right]</math> | | <math>\left[\begin{array}{cccccccccc} 248 & 253 & 255 & 0 & 7 & 2 & 0 & 255 & 253 & 255 \\ 253 & 255 & 0 & 255 & 248 & 253 & 255 & 0 & 251 & 255 \\ 1 & 0 & 255 & 250 & 255 & 255 & 247 & 249 & 0 & 3 \\ 4 & 246 & 255 & 0 & 249 & 5 & 255 & 255 & 255 & 0 \\ 3 & 255 & 248 & 2 & 255 & 0 & 246 & 251 & 249 & 0 \\ 0 & 251 & 255 & 254 & 247 & 255 & 255 & 4 & 255 & 0 \\ 6 & 255 & 244 & 251 & 255 & 255 & 0 & 0 & 251 & 9 \\ 0 & 252 & 255 & 0 & 1 & 0 & 6 & 255 & 245 & 1 \\ 255 & 3 & 254 & 255 & 252 & 254 & 255 & 238 & 1 & 255 \\ 238 & 251 & 8 & 0 & 0 & 5 & 0 & 4 & 250 & 250 \end{array}\right]</math> | ||
Line 168: | Line 168: | ||
|} | |} | ||
− | El conjunto de datos a agrupar se define a continuación. A cada píxel se le asocia la terna <math display="inline">(x,y,t)\in \mathbb{R}^{3}</math> donde <math display="inline">(x,y)</math> es el lugar geométrico que ocupa cada píxel en la matriz asociada a la imagen y <math display="inline">t</math> es la tonalidad correspondiente. De esta manera se construye otra matriz <math display="inline">mn\times 3</math> donde cada renglón representa un píxel. Se usa la norma euclidiana en el | + | El conjunto de datos a agrupar se define a continuación. A cada píxel se le asocia la terna <math display="inline">(x,y,t)\in \mathbb{R}^{3}</math> donde <math display="inline">(x,y)</math> es el lugar geométrico que ocupa cada píxel en la matriz asociada a la imagen y <math display="inline">t</math> es la tonalidad correspondiente. De esta manera se construye otra matriz <math display="inline">mn\times 3</math> donde cada renglón representa un píxel. Se usa la norma euclidiana en el algoritmo KMeans para encontrar los grupos que tienen las propiedades siguientes: |
<ol> | <ol> | ||
− | <li>Sus componentes <math display="inline">x</math> y <math display="inline">y</math> de cada píxel están cercanas entre sí, es decir están cercanas geométricamente. </li> | + | <li>Sus componentes <math display="inline">x</math> y <math display="inline">y</math> de cada píxel están cercanas entre sí, es decir, están cercanas geométricamente. </li> |
<li>Sus componentes <math display="inline">t</math> de cada píxel tienen tonos de gris cercanos entre sí. </li> | <li>Sus componentes <math display="inline">t</math> de cada píxel tienen tonos de gris cercanos entre sí. </li> | ||
Line 179: | Line 179: | ||
====5.3.2 Preprocesamiento para escoger los centroides iniciales==== | ====5.3.2 Preprocesamiento para escoger los centroides iniciales==== | ||
− | La inicialización para que el algoritmo KMeans haga | + | La inicialización para que el algoritmo KMeans haga la búsqueda de los grupos siempre ha sido un problema en él. Esto depende del problema a resolver, porque no siempre se tiene información completa respecto al problema y si se tiene, puede llegar a tener mucho ruido o datos basura y esto complica la búsqueda de los grupos para KMeans. En este sentido, para obtener información precisa sobre el conjunto a segmentar, en esta sección se presenta un algoritmo propio para obtener centroides iniciales que son obligatorios para que el algoritmo haga la segmentación de forma precisa con información propia del conjunto de datos a estudiar. |
==Algoritmo: Prepocesamiento de los centroides iniciales== | ==Algoritmo: Prepocesamiento de los centroides iniciales== | ||
Line 185: | Line 185: | ||
<ol> | <ol> | ||
− | <li>'' | + | <li>''Se hace una partición de los renglones de la matriz de datos en <math>k</math> grupos, de acuerdo al grupo en el que se encuentra la tonalidad <math>t</math> de cada renglón, ver Figura [[#img-6|6]].'' </li> |
− | <li>'' | + | <li>''Se calcula la media de cada uno de esos grupos de renglones de la matriz de datos, estas medias serían los centroides iniciales.'' </li> |
<li>''Si alguno de los grupos es vacío, entonces se generan los centroides de manera arbitraria o aleatoria.'' </li> | <li>''Si alguno de los grupos es vacío, entonces se generan los centroides de manera arbitraria o aleatoria.'' </li> | ||
Line 194: | Line 194: | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-particion.png|209px|Representación por intervalos para seleccionar centroides iniciales. Fuente: Elaboración propia.]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
| colspan="1" | '''Figura 6:''' Representación por intervalos para seleccionar centroides iniciales. Fuente: Elaboración propia. | | colspan="1" | '''Figura 6:''' Representación por intervalos para seleccionar centroides iniciales. Fuente: Elaboración propia. | ||
Line 201: | Line 201: | ||
===5.4 Computadora de nueva generación llamada Parallella=== | ===5.4 Computadora de nueva generación llamada Parallella=== | ||
− | Dada la cantidad de datos que puede llegar a tener una imagen tanto a color como en escala de grises, es necesario procesarlas de forma adecuada dentro de una computadora. En la mayoría de las computadoras actuales esto no implica un problema evidente. El problema radica a la hora de procesar | + | Dada la cantidad de datos que puede llegar a tener una imagen tanto a color como en escala de grises, es necesario procesarlas de forma adecuada dentro de una computadora. En la mayoría de las computadoras actuales esto no implica un problema evidente. El problema radica a la hora de procesar una gran cantidad de datos, que es necesario hacer subconjuntos de ellos o procesarlos de manera distribuida <span id='citeF-4'></span><span id='citeF-11'></span><span id='citeF-15'></span><span id='citeF-16'></span>[[#cite-4|[4,11,15,16]]]. Para este último caso, existe un proyecto llamado Parallella diseñado para el alto desempeño numérico. En este trabajo se utilizará este tipo de microcomputadora para procesar la gran cantidad de datos existentes en las imágenes de las nanopartículas de plata y que se pondrá a prueba para conocer este tipo de metodologías de cómputo distribuido <span id='citeF-17'></span><span id='citeF-18'></span>[[#cite-17|[17,18]]]. A continuación se mencionan algunas de sus características obtenidas de <span id='citeF-18'></span><span id='citeF-16'></span>[[#cite-18|[18,16]]]. |
* La placa Parallella es una plataforma computacional desarrollada por la compañía Adapteva y compuesta por un total de 18 cores. | * La placa Parallella es una plataforma computacional desarrollada por la compañía Adapteva y compuesta por un total de 18 cores. | ||
* Posee el tamaño aproximado de una tarjeta de crédito (54mmx 87mm) | * Posee el tamaño aproximado de una tarjeta de crédito (54mmx 87mm) | ||
− | * | + | * Una computadora que ofrece alto rendimiento y bajo consumo de potencia, pudiendo ser utilizado como un ordenador independiente, como un sistema empotrado, o como componente de un cluster de servidores en paralelo. |
* El procesador principal o host de esta placa es un ARM Cortex A9 dual-core, incluido en un SoC Zynq de la empresa Xilinx que se encuentra integrado en la placa. | * El procesador principal o host de esta placa es un ARM Cortex A9 dual-core, incluido en un SoC Zynq de la empresa Xilinx que se encuentra integrado en la placa. | ||
* El siguiente componente en importancia es un chip Epiphany-III o Epiphany-16, consistente en una matriz escalable de 16 cores(procesadores RISC), el cual es usado como coprocesador. | * El siguiente componente en importancia es un chip Epiphany-III o Epiphany-16, consistente en una matriz escalable de 16 cores(procesadores RISC), el cual es usado como coprocesador. | ||
* Los núcleos independientes que conforman esta matriz están conectados entre sí a través de una NoC (Network-on-Chip) integrada internamente en el dispositivo Epiphany, además de una arquitectura DSM (Distributed Shared Memory) | * Los núcleos independientes que conforman esta matriz están conectados entre sí a través de una NoC (Network-on-Chip) integrada internamente en el dispositivo Epiphany, además de una arquitectura DSM (Distributed Shared Memory) | ||
− | Este tipo de | + | Este tipo de microcomputadora tiene como objetivo proporcionar una plataforma para desarrollar e implementar procesamiento paralelo de alto rendimiento. La versión que se utiliza en este trabajo que es la de 18 núcleos (16 núcleos Epiphany y 2 núcleos ARM) alcanza 32 GFLOPS (<math display="inline">3.2\times 10^{10}</math> operaciones por segundo) utilizando solo 5 volts <span id='citeF-16'></span><span id='citeF-18'></span>[[#cite-16|[16,18]]]. La arquitectura de esta computadora es la clásica de John von Neumann, con la diferencias de que contiene un arreglo de multiprocesadores de nueva generación que se puede observar en la Figura [[#img-7|7]]. |
<div id='img-7'></div> | <div id='img-7'></div> | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-arquitecturaparallella.png|298px|Arquitectura computacional parallella. Fuente: parallella.org.]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
− | | colspan="1" | '''Figura 7:''' Arquitectura computacional parallella. Fuente: | + | | colspan="1" | '''Figura 7:''' Arquitectura computacional parallella. Fuente: parallella.org. |
|} | |} | ||
Line 227: | Line 227: | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-NPAg100_5nm.png|504px|Micrografía TEM de NP de Ag, imagen con resolución 1020×1030]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
− | | colspan="1" | '''Figura 8:''' Micrografía TEM de NP de Ag, | + | | colspan="1" | '''Figura 8:''' Micrografía TEM de NP de Ag, imagen con resolución <math>1020\times 1030</math> |
|} | |} | ||
Line 239: | Line 239: | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-NPAg100_5nmk2sin.png|109px|Imagen de micrografía de nanopartículas de plata (Ag) segmentada con KMeans. Fuente: Elaboración propia.]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
| colspan="1" | '''Figura 9:''' Imagen de micrografía de nanopartículas de plata (Ag) segmentada con KMeans. Fuente: Elaboración propia. | | colspan="1" | '''Figura 9:''' Imagen de micrografía de nanopartículas de plata (Ag) segmentada con KMeans. Fuente: Elaboración propia. | ||
Line 251: | Line 251: | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-NPAg100_5nm.png|504px|]] |
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-NPAg100_5nmk2sin1.png|146px|]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
| (a) | | (a) | ||
| (b) | | (b) | ||
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
− | | colspan="2" | '''Figura 10:''' La imagen a) es una reducción de la original y que es de <math>510\times 515</math> píxeles | + | | colspan="2" | '''Figura 10:''' La imagen (a) es una reducción de la original y que es de <math>510\times 515</math> píxeles. La imagen (b) es la imagen segmentadad con KMeans con un valor de <math>k=2</math> y centroides iniciales no aleatorios. Fuente: Elaboración propia. |
|} | |} | ||
Line 267: | Line 267: | ||
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | {| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;" | ||
|- | |- | ||
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-NPAg100_5nm.png|504px|]] |
− | |[[Image: | + | |[[Image:Draft_Gamboa_639370325-NPAg100_5nmk2con.png|146px|]] |
|- style="text-align: center; font-size: 75%;" | |- style="text-align: center; font-size: 75%;" | ||
| (a) | | (a) | ||
Line 276: | Line 276: | ||
|} | |} | ||
− | El resultado es un mejor agrupamiento de los datos (píxeles). Esto es así, porque los centroides iniciales que se dan como argumentos de entrada al algoritmo KMeans son datos extraídos propiamente del conjunto de datos a agrupar y por lo tanto, el agrupamiento mejora. Esto no significa que es la única forma de inicializarlo, pueden existir otras más. No obstante, esto sugiere que en esta fase de la investigación se ha logrado un progreso significativo en la capacidad de analizar las imágenes de alta densidad de píxeles que se desean estudiar. | + | El resultado es un mejor agrupamiento de los datos (píxeles). Esto es así, porque los centroides iniciales que se dan como argumentos de entrada al algoritmo KMeans son datos extraídos propiamente del conjunto de datos a agrupar y por lo tanto, el agrupamiento mejora. Esto no significa que es la única forma de inicializarlo, pueden existir otras más. No obstante, esto sugiere que en esta fase inicial de la investigación se ha logrado un progreso significativo en la capacidad de analizar las imágenes de alta densidad de píxeles que se desean estudiar. |
===5.6 Consideraciones finales=== | ===5.6 Consideraciones finales=== | ||
Line 284: | Line 284: | ||
El preprocesamiento para obtener los centroides iniciales para el algoritmo KMeans proporciona un buen resultado hasta el momento, pero se considera una heurística que puede tener fallos, una de ellas es cuando las imágenes tengan ruido y este proceso no sea capaz de detectarlo. Es necesario utilizar técnicas más precisas para garantizar un conjunto óptimo de centroides iniciales. Una de ellas es el uso del análisis de componentes principales (Principal Component Analysis,PCA) que es una técnica ampliamente utilizada y que en otros trabajos se considera que puede calcular centroides óptimos para el algoritmo KMeans. | El preprocesamiento para obtener los centroides iniciales para el algoritmo KMeans proporciona un buen resultado hasta el momento, pero se considera una heurística que puede tener fallos, una de ellas es cuando las imágenes tengan ruido y este proceso no sea capaz de detectarlo. Es necesario utilizar técnicas más precisas para garantizar un conjunto óptimo de centroides iniciales. Una de ellas es el uso del análisis de componentes principales (Principal Component Analysis,PCA) que es una técnica ampliamente utilizada y que en otros trabajos se considera que puede calcular centroides óptimos para el algoritmo KMeans. | ||
− | El mal agrupamiento en la imagen original se debe a varios factores, uno de ellos es la gran cantidad de píxeles que tiene que agrupar el algoritmo (del millón o más) y esto hace que no lo haga adecuadamente por la cantidad de datos a procesar. El otro factor, es que una parte débil del algoritmo es que se pierde en óptimos locales y esto hace que realice malos agrupamientos, | + | El mal agrupamiento en la imagen original se debe a varios factores, uno de ellos es la gran cantidad de píxeles que tiene que agrupar el algoritmo (del millón o más) y esto hace que no lo haga adecuadamente por la cantidad de datos a procesar. El otro factor, es que una parte débil del algoritmo es que se pierde en óptimos locales y esto hace que realice malos agrupamientos, y por lo tanto hace evidente la necesidad de una selección adecuada de centroides iniciales. |
− | Para contabilizar la cantidad de nanopartículas y sus diámetros, existe software especializado para lleva a cabo esta tarea. Pero al igual que en la obtención de las propias imágenes de microscopía TEM tiene un alto costo monetario por su licenciamiento ya que el software cae dentro del conjunto de los llamados privativos y esto hace complejo el estudiar este tipo de imágenes. Sin embargo esto es un nicho de oportunidad para incentivar a generar nuevo conocimiento utilizando algoritmos | + | Para contabilizar la cantidad de nanopartículas y sus diámetros, existe software especializado para lleva a cabo esta tarea. Pero al igual que en la obtención de las propias imágenes de microscopía TEM tiene un alto costo monetario por su licenciamiento ya que el software cae dentro del conjunto de los llamados privativos y esto hace complejo el estudiar este tipo de imágenes. Sin embargo, esto es un nicho de oportunidad para incentivar a generar nuevo conocimiento utilizando algoritmos simples y fáciles de implementar como el algoritmo KMeans. |
− | + | En este trabajo se propone usar el algoritmo KMeans, que generalmente funciona mal para imágenes con ruido o gradientes, segmentar la imagen, primero requiere métodos de procesamiento previo y posterior de la imagen, incluida la eliminación del fondo, la eliminación de ruido, una medida de la textura de la imagen y una imagen binaria de umbral ajustado. Estas versiones preprocesadas de la imagen se podrían compilar en capas de características antes de la segmentación utilizando este algoritmo, por ejemplo. Esto es una tarea a realizar en este trabajo. | |
===BIBLIOGRAFÍA=== | ===BIBLIOGRAFÍA=== | ||
Line 302: | Line 302: | ||
<div id="cite-4"></div> | <div id="cite-4"></div> | ||
− | '''[[#citeF-4|[4]]]''' | + | '''[[#citeF-4|[4]]]''' Xiaoyu Zhang and Tengfei Zhang and Yudi Zhang and Fumin Ma. (2023) "Improved interval type-2 fuzzy K-means clustering based on adaptive iterative center with new defuzzification method", Volume 160. International Journal of Approximate Reasoning 108968 |
<div id="cite-5"></div> | <div id="cite-5"></div> | ||
− | '''[[#citeF-5|[5]]]''' | + | '''[[#citeF-5|[5]]]''' C.Y. Tang and Z. Yang. (2017) "Chapter 8 - Transmission Electron Microscopy (TEM)". Membrane Characterization. Elsevier 145-159 |
<div id="cite-6"></div> | <div id="cite-6"></div> | ||
− | '''[[#citeF-6|[6]]]''' | + | '''[[#citeF-6|[6]]]''' Bello Jurado, Estefanía. (2019) "ESTUDIO DE TRATAMIENTOS ÁCIDO/BÁSICOS EN ZEOLITAS MONODIMENSIONALES. CORRELACIÓN ENTRE PROPIEDADES TEXTURALES Y ACTIVIDAD CATALÍTICA". Universitat Politecnica de Valencia. Universitat Politècnica de València |
<div id="cite-7"></div> | <div id="cite-7"></div> | ||
− | '''[[#citeF-7|[7]]]''' | + | '''[[#citeF-7|[7]]]''' Rey Ballesteros, Arturo del and others. (2017) "Determinación de cambios estructurales mediante microscopía de fuerza atómica en superficies tratadas con plasma de gases". Universidad de Valladolid. Facultad de Ciencias |
<div id="cite-8"></div> | <div id="cite-8"></div> | ||
− | '''[[#citeF-8|[8]]]''' | + | '''[[#citeF-8|[8]]]''' Fernández Herrera, Omar Luzgardo. (2015) "Determinación del tamaño de grano cristalino por difracción de rayos-x de polvo". Universidad Nacional Mayor de San Marcos. Universidad Nacional Mayor de San Marcos |
<div id="cite-9"></div> | <div id="cite-9"></div> | ||
− | '''[[#citeF-9|[9]]]''' | + | '''[[#citeF-9|[9]]]''' de Amorim, Renato Cordeiro. (2016) "A survey on feature weighting based k-means algorithms", Volume 33. Springer. Journal of Classification 210–242 |
<div id="cite-10"></div> | <div id="cite-10"></div> | ||
− | '''[[#citeF-10|[10]]]''' | + | '''[[#citeF-10|[10]]]''' Anil K. Jain. (2010) "Data clustering: 50 years beyond K-means", Volume 31. Pattern Recognition Letters 8 651 - 666 |
<div id="cite-11"></div> | <div id="cite-11"></div> | ||
− | '''[[#citeF-11|[11]]]''' | + | '''[[#citeF-11|[11]]]''' T.A. Sipkens and S.N. Rogak. (2021) "Technical note: Using k-means to identify soot aggregates in transmission electron microscopy images", Volume 152. Journal of Aerosol Science 105699 |
<div id="cite-12"></div> | <div id="cite-12"></div> | ||
− | '''[[#citeF-12|[12]]]''' | + | '''[[#citeF-12|[12]]]''' Eldén, Lars. (2007) "Matrix methods in data mining and pattern recognition". SIAM |
<div id="cite-13"></div> | <div id="cite-13"></div> | ||
− | '''[[#citeF-13|[13]]]''' Kruger, Michael Johan. (2015) "Building a Parallella board cluster". Bachelor of Science Honours thesis), Rhodes University, Grahamstown, South Africa | + | '''[[#citeF-13|[13]]]''' Debelee, Taye Girma and Schwenker, Friedhelm and Rahimeto, Samuel and Yohannes, Dereje. (2019) "Evaluation of modified adaptive k-means segmentation algorithm", Volume 5. Springer. Computational Visual Media 347–361 |
+ | |||
+ | <div id="cite-14"></div> | ||
+ | '''[[#citeF-14|[14]]]''' Burney, SM Aqil and Tariq, Humera. (2014) "K-means cluster analysis for image segmentation", Volume 96. Foundation of Computer Science. International Journal of Computer Applications 4 | ||
+ | |||
+ | <div id="cite-15"></div> | ||
+ | '''[[#citeF-15|[15]]]''' Sardar, Tanvir Habib and Ansari, Zahid. (2018) "An analysis of MapReduce efficiency in document clustering using parallel K-means algorithm", Volume 3. Elsevier. Future Computing and Informatics Journal 2 200–209 | ||
+ | |||
+ | <div id="cite-16"></div> | ||
+ | '''[[#citeF-16|[16]]]''' Varghese, Anish and Edwards, Bob and Mitra, Gaurav and Rendell, Alistair P. (2017) "Programming the adapteva epiphany 64-core network-on-chip coprocessor", Volume 31. SAGE Publications Sage UK: London, England. The International Journal of High Performance Computing Applications 4 285–302 | ||
+ | |||
+ | <div id="cite-17"></div> | ||
+ | '''[[#citeF-17|[17]]]''' Martínez, Gabriel Bravo and Aceves, Jesús Martin Silva and Argüelles, Soledad Vianey Torres and Aguilera, Francisco Javier Enríquez. (2018) "Implementación de Algoritmos de Procesamiento Digital de Señales en Hardware Paralelo: Artículo de revisión", Volume 66. Cultura Científica y Tecnológica | ||
+ | |||
+ | <div id="cite-18"></div> | ||
+ | '''[[#citeF-18|[18]]]''' Kruger, Michael Johan. (2015) "Building a Parallella board cluster". Bachelor of Science Honours thesis), Rhodes University, Grahamstown, South Africa |
Adianez Arhely Gamboa Rivasadianezgamboa@uadec.edu.mxa, José Luis Fraga Almanzaa, Carlos Eduardo Rodríguez Garcíaa, Andrea Molina Estradab, Efraín Viesca Villanuevac
El Álgebra Lineal Numérica (ALN) comprende entre otros temas diversos, el estudio de algoritmos que realizan operaciones con matrices utilizando una computadora [1]. Es parte fundamental de la matemática aplicada contemporánea, dando solución a problemas de la ingeniería, ciencias de la computación, simulación numérica en ciencias de los materiales, biomatemática, minería de datos, entre muchas otras áreas de la ciencia. Los problemas numéricos actuales, demandan una gran cantidad de recursos de cómputo, debido al diluvio de datos que actualmente se genera con un simple dispositivo móvil por ejemplo.
El problema de agrupamiento de datos y en particular la segmentación de imágenes son tópicos de estudio actualmente. La segmentación de imágenes es un tipo particular de agrupamiento, cuyo objetivo es agrupar píxeles para extraer información valiosa. La Microscopía Electrónica de Transmisión (TEM) genera imágenes con alta resolución, eso implica una gran cantidad de píxeles del orden del millón o más de ellos, su obtención es costosa en distintos sentidos. En este estudio, que actualmente se encuentra en desarrollo, se busca analizar imágenes de nanopartículas de plata y determinar propiedades como cantidad y diámetro. El desafío radica en la alta densidad de píxeles en estas imágenes. La investigación se centra en la aplicación del algoritmo KMeans para abordar este problema. Además, se utilizará una microcomputadora de alto rendimiento llamada Parallella, para procesar eficientemente los datos [2]. Este enfoque promete avanzar en la caracterización de nanopartículas de plata a partir de imágenes TEM, a pesar de los desafíos relacionados con la resolución y la complejidad de los datos.
A continuación se presenta el contexto teórico en el cual se basa el estudio del problema de agrupamiento en imágenes digitales de nanopartículas de plata (Ag). Se define el problema a tratar en esta investigación y que es uno de los problemas actuales dado el diluvio de datos en el que se vive actualmente. Por otra parte, las imágenes que son el objeto de estudio, son obtenidas por una técnica llamada Transmission Electron Microscopy (TEM), es ampliamente utilizada en la síntesis de nanopartículas. Sin embargo, el costo monetario para obtener este tipo de imágenes es considerable, ya que es una técnica experimental que depende de instrumentos delicados y una infraestructura especializada. El resultado de esta técnica son imágenes digitales que se caracterizan por tener una alta resolución de píxeles que llegan al millón o más de los mismos, esto hace que estudiar este tipo de imágenes sea complejo por la cantidad de píxeles que en ella existen. Es por eso, que es relevante hacer un estudio de este tipo de imágenes con algoritmos del tipo no supervisado y particionales para caracterizarlas y realizar estudios posteriores de ellas, en el sentido del agrupamiento de datos.
En la actualidad el uso de grandes cantidades de datos generados por diversos dispositivos y equipos electrónicos, ópticos u otra tecnología de medición, generan un problema de análisis de datos en el momento de extraer la información de interés desde las muestras adquiridas. Uno de ellos, es agrupar correctamente los datos para obtener información relevante y precisa para evidenciar el fenómeno físico que se desea abordar [3,4]. A continuación se define el problema de agrupamiento.
Definición 1: Dado un conjunto de datos con objetos en un espacio -dimensional, agrupar datos es particionar los mismos en grupos tales que los puntos dentro de un grupo son más similares entre ellos que con otros grupos, dicha similitud se mide atendiendo a alguna función distancia.
Figura 1: Ejemplo de puntos graficados en y su agrupamiento. Fuente: Elaboración propia. |
En este problema el objetivo principal es encontrar grupos en un conjunto de datos con ciertas características partículares. En este sentido se puede decir que este problema es el proceso de organizar objetos con gran similitud, ver Figura 1.
El TEM (del inglés, Transmission Electron Microscope) tal como lo indica [5] es un instrumento que aprovecha los fenómenos físico-atómicos que se producen cuando un haz de electrones suficientemente acelerado colisiona con una muestra delgada convenientemente preparada. En la muestra los electrones colisionan con respecto a algunas propiedades específicas (grosor y tipo de átomos), por ejemplo [6]. Todo este proceso forman una imagen final con distintas intensidades de gris que corresponde al grado de dispersión de los electrones incidentes.
Las imágenes TEM ofrecen información sobre la muestra como su estructura por ejemplo, si es amorfa o cristalina [7]. Cuando las muestras son cristalinas pueden existir varias familias de planos periódicos cumpliendo la condición de la ley de Bragg y difracten la onda electrónica incidente [8]. Esto da lugar a un diagrama de difracción, que es una imagen de distintos puntos ordenados respecto a un punto central (electrones transmitidos no desviados) que aporta información sobre la orientación y estructura del/los cristales presentes.
Por lo tanto, en lo descrito anteriormente, de lo que trata este trabajo no es de caracterizar nanopartículas de plata por medio de técnicas de síntesis experimentales, si no, más bien, estudiar las imágenes que son el resultado de esta técnica (TEM) por medio de sus elementos individuales llamado píxeles y poder encontrar patrones, relaciones o asociaciones de los mismos, para obtener información y poder definir propiedades como los diámetros y la cantidad de nanopartículas existentes en la imagen.
Estudiar e implantar un algoritmo tipo KMeans utilizando una computadora de nueva generación llamada parallella en la segmentación de imágenes de alta resolución y en tonalidades de grises.
En esta sección se presenta la metodología a utilizar para llevar a cabo este trabajo. En la Figura 3 se muestran las etapas a seguir. Se inicia por la revisión de la literatura. Se presenta el algoritmo del tipo particional y no supervisado llamado KMeans que es uno de los más utilizados para llevar a cabo segmentación de imágenes [4,9,10,11]. Tiene la característica de ser simple, compacto y fácil de implementar computacionalmente. Sin embargo, es necesario realizar preprocesamientos previos para que el algoritmo funcione de manera adecuada en la solución del problema de agrupamiento. Este problema se presenta en particular para hacer agrupamiento de píxeles es decir hacer segmentación de imágenes en escala de grises y por último se menciona el tipo de computadora que se estará utilizando en el desarrollo de este trabajo.
Figura 3: Metodología a utilizar en el trabajo. Fuente: Elaboración propia. |
La revisión de la bibliografía se realiza por medio de algunos artículos seleccionados reportados en Google Académico en revistas indizadas en Journal of citation of reports (JCR) u otros índices como Latindex. La metodología usada para tal búsqueda fue mediante los siguientes criterios: 1) frases claves en inglés como Unsupervised algorithms, KMeans aplications. parallel kmeans; 2) Análisis de la información centrado en las algoritmos no supervisados del tipo particionales, enfocándose en aspectos tales como: (i) geometrías, (ii) centroides iniciales y (iii) posibles aplicaciones; 3) Se indagó sobre el problema de agrupamiento poco estudiadas como lo son las algoritmos en paralelo y algoritmos robustos.
La aplicación de algoritmos de agrupamiento es una solución a este problema y uno de ellos es KMeans. Este algoritmo es simple y con una gran candidad de variantes como se describe en [10]. Se mencionan algunas propiedades del algoritmo KMeans, para mayor detalle, consultar en [3,12].
Dado un conjunto de datos y un número de clústers a formar, entonces
|
|
donde es una partición de los grupos.
|
La segmentación de imágenes es un tipo de agrupamiento y es una de las aplicaciones donde se puede utilizar el algoritmo KMeans. A continuación lo aplicaremos a la segmentación de imágenes en escala de grises. Adicionalmente se presenta un pre-procesamiento que ayudará a encontrar centroides iniciales para que algoritmo encuentre mejores agrupamientos.
En las imágenes a escala de grises cada píxel puede definir solamente una tonalidad de gris (luminosidad) y el número de píxeles define la cantidad de información que contiene la imagen [13,14]. Las tonalidades están comprendidas en el intervalo donde el tono negro es el valor de y el blanco es el valor de , ver Figura 4.
Figura 4: Escala de grises de 0 a 255. Fuente: Elaboración propia. |
Una imagen en escala de grises se representa por una matriz. En la Figura 5 se observa un ejemplo de una imagen digital en escala de grises y su matriz asociada que es de píxeles.
| |||
Figura 5: Representación matricial de una imagen en una computadora. Fuente: Elaboración propia. |
El conjunto de datos a agrupar se define a continuación. A cada píxel se le asocia la terna donde es el lugar geométrico que ocupa cada píxel en la matriz asociada a la imagen y es la tonalidad correspondiente. De esta manera se construye otra matriz donde cada renglón representa un píxel. Se usa la norma euclidiana en el algoritmo KMeans para encontrar los grupos que tienen las propiedades siguientes:
La inicialización para que el algoritmo KMeans haga la búsqueda de los grupos siempre ha sido un problema en él. Esto depende del problema a resolver, porque no siempre se tiene información completa respecto al problema y si se tiene, puede llegar a tener mucho ruido o datos basura y esto complica la búsqueda de los grupos para KMeans. En este sentido, para obtener información precisa sobre el conjunto a segmentar, en esta sección se presenta un algoritmo propio para obtener centroides iniciales que son obligatorios para que el algoritmo haga la segmentación de forma precisa con información propia del conjunto de datos a estudiar.
Figura 6: Representación por intervalos para seleccionar centroides iniciales. Fuente: Elaboración propia. |
Dada la cantidad de datos que puede llegar a tener una imagen tanto a color como en escala de grises, es necesario procesarlas de forma adecuada dentro de una computadora. En la mayoría de las computadoras actuales esto no implica un problema evidente. El problema radica a la hora de procesar una gran cantidad de datos, que es necesario hacer subconjuntos de ellos o procesarlos de manera distribuida [4,11,15,16]. Para este último caso, existe un proyecto llamado Parallella diseñado para el alto desempeño numérico. En este trabajo se utilizará este tipo de microcomputadora para procesar la gran cantidad de datos existentes en las imágenes de las nanopartículas de plata y que se pondrá a prueba para conocer este tipo de metodologías de cómputo distribuido [17,18]. A continuación se mencionan algunas de sus características obtenidas de [18,16].
Este tipo de microcomputadora tiene como objetivo proporcionar una plataforma para desarrollar e implementar procesamiento paralelo de alto rendimiento. La versión que se utiliza en este trabajo que es la de 18 núcleos (16 núcleos Epiphany y 2 núcleos ARM) alcanza 32 GFLOPS ( operaciones por segundo) utilizando solo 5 volts [16,18]. La arquitectura de esta computadora es la clásica de John von Neumann, con la diferencias de que contiene un arreglo de multiprocesadores de nueva generación que se puede observar en la Figura 7.
Figura 7: Arquitectura computacional parallella. Fuente: parallella.org. |
El algoritmo KMeans se aplica a una imagen que representa a una micrografía de nanopartículas de plata (Ag), en ella se puede observar una gran cantidad de datos en forma de píxeles en escala de grises, ver Figura 8.
Figura 8: Micrografía TEM de NP de Ag, imagen con resolución |
Para llevar a cabo la segmentación de la Figura 8 es necesario considerar que tiene una resolución en píxeles (es el número de píxeles que contiene una imagen digital) y su matriz de datos asociada es . Esto significa que se tiene un millón cincuenta mil seiscientos píxeles en distintas tonalidades de grises.
Se utiliza el algoritmo KMeans para llevar a cabo una segmentación de esta imagen, utilizando los argumentos de entrada para que significa que se busca dos grupos de tonalidades de píxeles y cuyos centroides serán los primeros dos datos del conjunto de píxeles existentes en la imagen y cuya implementación del algoritmo se hizo utilizando el lenguaje de programación Python.
Figura 9: Imagen de micrografía de nanopartículas de plata (Ag) segmentada con KMeans. Fuente: Elaboración propia. |
Es evidente que la imagen segmentada es un mal agrupamiento, ver Figura 9. Una idea errónea de la segmentación de imágenes es que se intente reproducir la imagen original. En este caso, ni siquiera se puede decir eso. Este mal agrupamiento puede estar influenciado por los argumentos iniciales que se le proporcionan al algoritmo y por la cantidad de datos (píxeles) existentes en la imagen. Considerando este último factor se reduce en la imagen la cantidad de píxeles para generar otra imagen de píxeles, es decir con una resolución de que son la cantidad de píxeles en esta nueva imagen.
En la segmentación de la imagen de la Figura 10 se observa solo dos tonalidades de píxeles agrupados. Estas tonalidades son el blanco y negro, dado que se le indica al algoritmo un valor de . En la siguiente Figura 11 se observa la misma imagen segmentada pero ahora utilizando el preprocesamiento descrito en la sección 5.3.2.
(a) | (b) |
Figura 11: La imagen a) es una reducción de la original y que es de píxeles, b) Es la imagen segmentadad con KMeans utilizando el preprocesamiento descrito en la sección 5.3.2. Fuente: Elaboración propia. |
El resultado es un mejor agrupamiento de los datos (píxeles). Esto es así, porque los centroides iniciales que se dan como argumentos de entrada al algoritmo KMeans son datos extraídos propiamente del conjunto de datos a agrupar y por lo tanto, el agrupamiento mejora. Esto no significa que es la única forma de inicializarlo, pueden existir otras más. No obstante, esto sugiere que en esta fase inicial de la investigación se ha logrado un progreso significativo en la capacidad de analizar las imágenes de alta densidad de píxeles que se desean estudiar.
Para poder hacer la segmentación de la imagen, fue necesario reducir la resolución de la misma para poder procesarla. Esto da un indicio de tener la necesidad de distribuir los datos contenidas en las imágenes para poder tratarlas, sobre todo en aquellas imágenes de alta resolución y más aún si se tiene un conjunto de este tipo de imágenes a procesar.
El preprocesamiento para obtener los centroides iniciales para el algoritmo KMeans proporciona un buen resultado hasta el momento, pero se considera una heurística que puede tener fallos, una de ellas es cuando las imágenes tengan ruido y este proceso no sea capaz de detectarlo. Es necesario utilizar técnicas más precisas para garantizar un conjunto óptimo de centroides iniciales. Una de ellas es el uso del análisis de componentes principales (Principal Component Analysis,PCA) que es una técnica ampliamente utilizada y que en otros trabajos se considera que puede calcular centroides óptimos para el algoritmo KMeans.
El mal agrupamiento en la imagen original se debe a varios factores, uno de ellos es la gran cantidad de píxeles que tiene que agrupar el algoritmo (del millón o más) y esto hace que no lo haga adecuadamente por la cantidad de datos a procesar. El otro factor, es que una parte débil del algoritmo es que se pierde en óptimos locales y esto hace que realice malos agrupamientos, y por lo tanto hace evidente la necesidad de una selección adecuada de centroides iniciales.
Para contabilizar la cantidad de nanopartículas y sus diámetros, existe software especializado para lleva a cabo esta tarea. Pero al igual que en la obtención de las propias imágenes de microscopía TEM tiene un alto costo monetario por su licenciamiento ya que el software cae dentro del conjunto de los llamados privativos y esto hace complejo el estudiar este tipo de imágenes. Sin embargo, esto es un nicho de oportunidad para incentivar a generar nuevo conocimiento utilizando algoritmos simples y fáciles de implementar como el algoritmo KMeans.
En este trabajo se propone usar el algoritmo KMeans, que generalmente funciona mal para imágenes con ruido o gradientes, segmentar la imagen, primero requiere métodos de procesamiento previo y posterior de la imagen, incluida la eliminación del fondo, la eliminación de ruido, una medida de la textura de la imagen y una imagen binaria de umbral ajustado. Estas versiones preprocesadas de la imagen se podrían compilar en capas de características antes de la segmentación utilizando este algoritmo, por ejemplo. Esto es una tarea a realizar en este trabajo.
[1] Mejía, Carlos Enrique and Restrepo, Tomás and Trefftz, Christian and others. (2001) "Lapack una colección de rutinas para resolver problemas de algebra lineal numérica", Volume 37. Revista Universidad EAFIT 123 73–80
[2] Gálvez-Rojas, Sergio and Dorado-Pérez, Gabriel and Hernández, Pilar and Esteban-Risueño, Francisco and others. (2015) "Arquitectura Epiphany III. Una primera toma de contacto". Universidad de Málaga
[3] Gan, Guojun and Ma, Chaoqun and Wu, Jianhong. (2007) "Data clustering: theory, algorithms, and applications", Volume 20. Society for Industrial and Applied Mathematics
[4] Xiaoyu Zhang and Tengfei Zhang and Yudi Zhang and Fumin Ma. (2023) "Improved interval type-2 fuzzy K-means clustering based on adaptive iterative center with new defuzzification method", Volume 160. International Journal of Approximate Reasoning 108968
[5] C.Y. Tang and Z. Yang. (2017) "Chapter 8 - Transmission Electron Microscopy (TEM)". Membrane Characterization. Elsevier 145-159
[6] Bello Jurado, Estefanía. (2019) "ESTUDIO DE TRATAMIENTOS ÁCIDO/BÁSICOS EN ZEOLITAS MONODIMENSIONALES. CORRELACIÓN ENTRE PROPIEDADES TEXTURALES Y ACTIVIDAD CATALÍTICA". Universitat Politecnica de Valencia. Universitat Politècnica de València
[7] Rey Ballesteros, Arturo del and others. (2017) "Determinación de cambios estructurales mediante microscopía de fuerza atómica en superficies tratadas con plasma de gases". Universidad de Valladolid. Facultad de Ciencias
[8] Fernández Herrera, Omar Luzgardo. (2015) "Determinación del tamaño de grano cristalino por difracción de rayos-x de polvo". Universidad Nacional Mayor de San Marcos. Universidad Nacional Mayor de San Marcos
[9] de Amorim, Renato Cordeiro. (2016) "A survey on feature weighting based k-means algorithms", Volume 33. Springer. Journal of Classification 210–242
[10] Anil K. Jain. (2010) "Data clustering: 50 years beyond K-means", Volume 31. Pattern Recognition Letters 8 651 - 666
[11] T.A. Sipkens and S.N. Rogak. (2021) "Technical note: Using k-means to identify soot aggregates in transmission electron microscopy images", Volume 152. Journal of Aerosol Science 105699
[12] Eldén, Lars. (2007) "Matrix methods in data mining and pattern recognition". SIAM
[13] Debelee, Taye Girma and Schwenker, Friedhelm and Rahimeto, Samuel and Yohannes, Dereje. (2019) "Evaluation of modified adaptive k-means segmentation algorithm", Volume 5. Springer. Computational Visual Media 347–361
[14] Burney, SM Aqil and Tariq, Humera. (2014) "K-means cluster analysis for image segmentation", Volume 96. Foundation of Computer Science. International Journal of Computer Applications 4
[15] Sardar, Tanvir Habib and Ansari, Zahid. (2018) "An analysis of MapReduce efficiency in document clustering using parallel K-means algorithm", Volume 3. Elsevier. Future Computing and Informatics Journal 2 200–209
[16] Varghese, Anish and Edwards, Bob and Mitra, Gaurav and Rendell, Alistair P. (2017) "Programming the adapteva epiphany 64-core network-on-chip coprocessor", Volume 31. SAGE Publications Sage UK: London, England. The International Journal of High Performance Computing Applications 4 285–302
[17] Martínez, Gabriel Bravo and Aceves, Jesús Martin Silva and Argüelles, Soledad Vianey Torres and Aguilera, Francisco Javier Enríquez. (2018) "Implementación de Algoritmos de Procesamiento Digital de Señales en Hardware Paralelo: Artículo de revisión", Volume 66. Cultura Científica y Tecnológica
[18] Kruger, Michael Johan. (2015) "Building a Parallella board cluster". Bachelor of Science Honours thesis), Rhodes University, Grahamstown, South Africa
Published on 02/12/23
Submitted on 22/11/23
Licence: CC BY-NC-SA license
Are you one of the authors of this document?