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?