Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Universidad de los Andes
Caracterización textural de rocas sedimentarias por medio de
técnicas de segmentación
Por: Santiago Barreto Naranjo
Proyecto de grado aspirante al título de Geocientífico
Facultad de Ciencias
Departamento de Geociencias
29 de noviembre de 2019
2
_____________________________________
Fabio Iwashita
_____________________________________
Santiago Barreto Naranjo
3
Tabla de contenidos
Dedicación
Agradecimientos
Resumen
1. Introducción 8
2. Marco teórico 13
2.1.Porcentaje de matriz en la clasificación Rocas Sedimentarias 13
2.2.Procesamiento de imágenes mediante segmentación 14
2.2.1. Algoritmo de Canny 16
2.2.2. Thresholding 18
2.2.3. Algoritmo de Watershed 19
3. Metodología 21
3.1.Láminas delgadas 21
3.2.Obtención de imágenes 22
3.3.Procesamiento de Imágenes 23
4. Resultados e implicaciones 27
4.1.Imágenes segmentadas 27
4.2.Errores Asociados 28
4.3.Implicaciones 30
5. Conclusiones 33
Bibliografía 34
Apéndice A: Código de Python 37
4
Índice de figuras
Figura 1: Fracción de la mano de obra dedicada a la agricultura (en %) desde el 1300
para Inglaterra, Polonia, Italia, Francia y Holanda (Roser, 2019).
Figura 2: a. Clasificación para rocas terrígenas tomada de Pettijohn et. al (1987). b.
Clasificación textural de Folk para rocas carbonatadas (1959). Tomada de Kendall, C (2011).
Figura 3: Imagen original (izquierda). Imagen segmentada (derecha). Tomado de
Shapiro et al. (1992).
Figura 4: Se resaltan en blanco los máximos locales, las flechas indican la dirección
del gradiente y el número de la magnitud. Tomado de (Moeslund, 2012).
Figura 5: Aplicación de un filtro para reconocer bordes Canny a una imagen de una
Arenita tomada de Bélgica (Vallée du Hoyoux) (Derochette, 2010).
Figura 6: Imagen original de una cereza en escala de grises. (izquierda) Histograma de
grises (Derecha). Los dos picos en los histogramas corresponden a dos secciones de la
cereza, una clara y otra más oscura. En este histograma es sencillo subdividir los pixeles en
grupos representando su tonalidad de gris. Tomado de Shapiro et al. (1992)
Figura 7: Modelando la imagen como un terreno geográfico es posible entender el
propósito del método: los valores bajos de elevación son cubiertos de agua hasta que
solamente se ve la línea divisoria de aguas. Tomado de La Serna & Pró (2010).
Figura 8: Ejemplos de imágenes en bruto para algunas de las láminas utilizadas
Figura 9: Parámetros usados en Motiplus 2.0 para una gran parte de las muestras.
5
Figura 10: Diagrama de flujo para el procesamiento de una foto.
Figura 11: Imágenes de la segmentación final para algunas de las muestras. Imagen
en bruto (izquierda) imagen segmentada (derecha).
Figura 12: Foto de una muestra de biomicrita con una matriz carbonatada que ha
sufrido procesos de meteorización, la mancha, que se ve de un color más claro es reconocida
como un cristal en el proceso de segmentación.
Figura 13: Segmentación de otra foto muestral. En este caso se pueden apreciar
cristales que no fueron segmentados correctamente en la zona inferior de la lámina.
6
Dedicación
A mi padre por regalarme su mente, a mi madre por agregarle corazón
a su regalo, y a mi hermana por personificarlo todo.
7
Resumen
El presente trabajo pretende mostrar los alcances de la visión artificial aplicada a las
geociencias. Se busca demostrar su aplicabilidad y eficiencia a la hora de reemplazar trabajos
engorrosos como el conteo de puntos en el estudio de una lámina delgada. Se utilizan
algoritmos de segmentación para procesar una imagen con el fin de hallar la composición
porcentual de matriz en una muestra. Se utilizan las librerías de gratis acceso Sci-kit Image
y OpenCV para desarrollar el clasificador. Se comparan los valores obtenidos por el
algoritmo con los valores obtenidos en un estudio de conteo de puntos hecho a mano y se
observa el error del clasificador con respecto al trabajo manual.
8
1. Introducción
Las máquinas más notables de la historia han facilitado procesos mecánicos
reduciendo la cantidad de fuerza física necesaria para realizar una labor, por ejemplo, la
carretilla permitió usar la fuerza de un animal como un caballo o de una persona para empujar
una máquina, lo cual facilitó enormemente el trabajo necesario para transportar una carga
(Lewis, 1994). Esta optimización mecánica que permiten las máquinas se han perfeccionado
procesos como la agricultura o la construcción, permitiendo el desarrollo diferentes oficios
como las artes y las ciencias, diversificando las profesiones. Roser muestra en un estudio de
la organización Our World Data (2019) cómo se ha reducido significativamente la fracción
Figura 1 Fracción de la mano de obra dedicada a la agricultura (en %) desde el 1300 para
Inglaterra, Polonia, Italia, Francia y Holanda (Roser, 2019).
9
de trabajadores dedicados a la agricultura en algunos países europeos (Figura 1) desde el año
1300 hasta el 2012. La disminución en la mano de obra agrícola obedece a una revolución
tecnológica: la revolución industrial, donde la utilización del carbón como fuente energía en
máquinas mecánicas diversificó la economía y la cultura, aparecieron nuevas ocupaciones
para la población y fue posible crear oficios especializados basados en la operación y
desarrollo de estos motores mecánicos (Mathias,1971). Al reemplazar el trabajo físico del
humano por la resistencia, fuerza y precisión de un motor mecánico se obtienen resultados
de mayor durabilidad y precisión para su propósito. Esta es la razón por la cual las máquinas
generalmente son el protagonista de las grandes revoluciones económicas.
Para el presente trabajo se estudiarán los alcances de una máquina en específico: el
computador. Esta máquina puede considerarse como un motor matemático, desde su
concepción ha tenido la función de realizar cálculos (o cómputos) de alguna forma más
eficiente que la que podría hacer una persona y su uso se ha generalizado en los últimos años,
donde se ha tratado de utilizar máquinas para facilitar procesos que los humanos realizamos
razonando. Actualmente los computadores son capaces de reconocer rostros, tendencias
económicas o algo tan sencillo como diferenciar un gato de un perro (Brownlee, 2019).
Una de las áreas del conocimiento que más se ha beneficiado con estos ‘motores
matemáticos’ es la ciencia. Por ejemplo, gracias a los computadores es posible obtener
valores muy precisos para operaciones trigonométricas en segundos, un proceso que en otros
tiempos podía tomar horas realizando las sumas y restas de la serie de Taylor a mano. Desde
el desarrollo de la computación moderna de la mano de Alan Turing (Ceruzzi, 2003) los
métodos computacionales han servido a la ciencia en múltiples ocasiones, han facilitado el
estudio de sistemas que se pueden describir con modelos matemáticos cuyos cálculos son
10
realizados por una máquina, potenciando en gran medida la cantidad de operaciones que se
pueden realizar en un tiempo determinado. Actualmente los computadores calculan en cifras
muy superiores a la capacidad humana, la medida para el procesamiento computacional se
da en MIPS (Millones de Instrucciones Por Segundo) y se han desarrollado todo tipo de
algoritmos computacionales basados en modelos matemáticos para obtener información de
grandes conjuntos de datos, las maquinas reducen el costo de realizar a mano millones de
cálculos.
En el marco de las geociencias varios autores han utilizado métodos computacionales
para optimizar el estudio de rocas en láminas delgadas. Para un estudio petrográfico de una
lámina se requieren tomar al menos 500 puntos sobre el área de la lámina para poder hacer
un estimado medianamente confiable de la fracción porcentual de sus componentes minerales
(Karr, 1979), este proceso puede tomar mucho tiempo, y solamente se está revisando una
lámina por estudio. Actualmente varios autores trabajan en algoritmos que logren
aproximarse a la automatización en diferenciar estos minerales por medio de técnicas de
Machine Learning aplicado al procesamiento de las imágenes obtenidas por un microscopio
petrográfico. Budennyy et al. utilizaron propiedades de tamaño de grano, rugosidad,
orientación, área y excentricidad de los minerales para clasificar minerales por medio de
técnicas de segmentación (2017). El trabajo que realizaron cubre desde el preprocesamiento
de las imágenes, donde por medio de filtros basados en gradientes de colores se acentúan las
características de interés. Por ejemplo, un filtro Canny (Bradski, 2000) se utiliza para
acentuar los bordes de los minerales y diferenciar mejor cada cristal. Posteriormente utilizan
técnicas estadísticas para hallar relaciones que permitan clasificar las muestras de acuerdo a
su mineralogía, utilizan el análisis de componente principal para definir el parámetro que
11
mejor explica la variación de la muestra y por lo tanto es el más acertado para dividir la
muestra en grupos. Budennyy et al. integran diferentes algoritmos y técnicas previamente
desarrolladas por otros autores que facilitan la diferenciación de los parámetros para hacer
un clasificador confiable.
Por su parte, otros autores como Obara (2005) se enfocan en facilitar partes
específicas del proceso de clasificación. Obara explora diferentes sistemas de colores basados
en transformaciones lineales del sistema RGB, su objetivo es encontrar el sistema de colores
que mejor muestre el límite entre minerales basándose en varios sistemas de color ya
existentes. A las imágenes en el nuevo sistema de colores se les aplica un proceso de
segmentación junto con algoritmos de inundación (watershed) que termina revelando una
imagen que solamente muestra los bordes de los minerales, se compara el error con
perímetros de los cristales medidos a mano y se obtiene el mejor rendimiento para el sistema
de colores CIELav. En su trabajo Mingireanov et al. (2013) utilizan el método de Image
foresting transform (IFT) para segmentar granos de arenitas. Se reconocen granos en matriz
y además se identifican de forma distinta granos que por el hecho de estar tocándose
generalmente son segmentados como sólo uno.
Para este trabajo se aplicarán técnicas de segmentación que recogen el proceso
realizado por varios autores en el procesamiento y clasificación de imágenes. Para éste caso
el objeto a segmentar son los cristales, se busca obtener una imagen que diferencie matriz de
cristales, se trabajan con láminas previamente estudiadas cuyo conteo de puntos ofrece un
valor “teórico” que permite medir la calidad de la segmentación, una vez se alcanza un
procesamiento de imagen cuyo cálculo porcentual de matriz-minerales no difiere
significativamente del valor conseguido a mano se procede a alimentar una red neuronal
12
convolucional que pretende automatizar el proceso de clasificación en términos de porcentaje
matriz minerales. El método desarrollado ofrece un acercamiento a lo que podría devenir en
la automatización de proceso, pero no ofrece reemplazar completamente el conteo manual de
puntos para hallar proporciones porcentuales en una lámina delgada.
La técnica desarrollada está limitada por varios factores que incluyen: errores en el
pulimiento de láminas delgadas, en el conteo de puntos, muestras con variaciones de
porcentajes a lo largo de la lámina, la utilización de redes neuronales automatizadas, entre
otros. Además de mostrar las restricciones del método, el objetivo del trabajo es exponer
cómo las aplicaciones de técnicas computacionales de Machine Learning utilizadas para el
procesamiento y clasificación de imágenes pueden simplificar procesos repetitivos como el
conteo de puntos para obtener información de una muestra en lámina delgada.
13
2. Marco Teórico
2.1. Porcentaje de matriz en la clasificación Rocas
Sedimentarias
La clasificación de cualquier roca depende de su composición mineralógica. Para el
caso de rocas sedimentarias lo que se llama matriz se compone de minerales que han sufrido
tantos procesos de transporte que no se pueden diferenciar cristales con el ojo o con el
microscopio. Las matrices en general se componen de lodos: minerales cuyo tamaño de grano
es menor a 0.032mm. La composición de la matriz también varia de acuerdo al tipo de roca:
en rocas de origen terrígeno es común que se componga de minerales ricos en sílice (Folk,
1959) mientras que en rocas carbonatadas es común encontrar lodo orgánico saturado en
carbono (Dunham, 1962).
El contenido de porcentaje de matriz indica una parte del nombre de la muestra. Como
muestra la clasificación de Pettijohn et.al (1987) en la figura 2 una roca terrígena que sea rica
muy saturada sílice (>90%) se puede clasificar como una cuarzoarenita (Quartz arenite: para
un porcentaje de matriz entre 0% y 15%), una Quartz Wacke (contenido de matriz entre 15%
y 75%) o una lodolita (Mudstone porcentaje de matriz >75%). En esta clasificación se obtiene
una parte del nombre con el diagrama ternario triangular y el resto del nombre se basa en el
contenido de matriz. Para rocas carbonatadas se utiliza la clasificación de Folk (1959) y de
14
Dunham (1962) las cuales también consideran la matriz como un parámetro para nombrar la
roca.
Figura 2: a. Clasificación para rocas terrígenas tomada de Pettijohn et. al (1987). b.
Clasificación textural de Folk para rocas carbonatadas (1959). Tomada de Kendall, C (2011).
2.2. Procesamiento de imágenes mediante segmentación
a.
b.
15
La rama de la computación que busca obtener información de una imagen se le llama
Visión Artificial, o Computer Vision. Para el objetivo del trabajo se trabajará con una de sus
ramas: la segmentación, un proceso que subdivide una imagen en diferentes regiones con
alguna característica en común. En el caso de la figura 3 se detectan mediante segmentación
regiones cuyos colores son similares (Shapiro et al., 1992).
Figura 3: Imagen original (izquierda). Imagen segmentada (derecha). Tomado de
Shapiro et al. (1992).
Para el caso de las láminas delgadas se busca un objeto en específico: cristales.
Mediante un proceso de segmentación se pueden separar objetos de un fondo homogéneo,
como en la figura 3 podría usarse segmentación para diferenciar los jugadores del campo
verde. Para el caso de una lámina delgada de una roca sedimentaria la matriz es de color
oscuro visto con el microscopio con luz polarizada, mientras que los cristales pueden variar
de colores blancos en el caso de los cuarzos o de gris en el caso de la calcedonia. Para este
objetivo se puede trabajar en blanco y negro, de forma que el valor de gris que tiene la matriz
de la roca en la imagen se puede usar para diferenciarla de los cristales: se usará la
segmentación basada en regiones una variación del método de segmentación más robusto
que la segmentación basada en bordes. (Van der Walt et al., 2014). En este estudio no es
16
necesario variar el sistema de colores para resaltar los bordes porque sólo es necesario poder
diferenciar lo que es un cristal de la matriz.
2.2.1. Algoritmo de Canny
Es una de las herramientas más usadas para encontrar bordes en el procesamiento de
imágenes. Es una parte clave del procesamiento de imágenes para reconocer regiones porque
al encontrar un borde que cierra es posible afirmar para el programa que los pixeles que
encierra un borde tienen características en común (Moeslund, 2012). La versión del
algoritmo implementado por la librería de gratis acceso OpenCV sigue 5 pasos que
constituyen la base del procesamiento de imágenes (Bradski, 2001), estos pasos fueron
propuestos por John F. Canny (1987):
1. Se utiliza un filtrado gaussiano de 5x5 para ‘limpiar’ el ruido de la imagen, es decir
la información que no es relevante para clasificar. El valor de 5 se conoce como el
kernel de la ventana gaussiana que no es más que la aplicación de una transformación
lineal a la matriz de pixeles que conforma la imagen, también se le conoce como la
máscara, los valores de la matriz varían de acuerdo a la implementación que se esté
usando. La operación se enuncia de la siguiente forma:
𝐾𝐾 =1
159�𝑛𝑛1 ⋯ 𝑛𝑛5⋮ ⋱ ⋮𝑚𝑚1 ⋯ 𝑚𝑚5
�
Los valores del kernel y los valores de la matriz de la ventana gaussiana varían de
acuerdo con la implementación y la imagen estudiada.
2. Se aplica una máscara convolucional que obtiene el gradiente de colores de la imagen,
se obtiene con dos procesos de convolución: una mascara para el gradiente en la
17
dirección horizontal y otro para el gradiente en la dirección vertical. La magnitud y
la dirección del vector se obtiene con una operación trigonométrica.
3. Se eliminan los valores que no son máximos locales, de forma que los valores altos
de gradiente que antes formaban una línea difusa ahora forman una línea más delgada
y precisa. El diagrama de la figura 4 ilustra el proceso.
Figura 4 Se resaltan en blanco los máximos locales, las flechas indican la dirección
del gradiente y el número de la magnitud. Tomado de (Moeslund, 2012).
4. El cuarto paso se le conoce como Thresholding (Umbralización), a los pixeles que
aún quedan en la imagen se les aplica dos umbrales de valor superior e inferior. Los
valores por encima del umbral superior se dejan y se eliminan los que estén debajo
del umbral inferior. Los valores en medio de los umbrales sólo se conservan si el pixel
en cuestión está conectado con un pixel que esté por encima del umbral superior. Los
valores propuestos por Canny (1987) para el radio entre umbrales superior e inferior
entre 2:1 y 3:1 (En ese orden respectivamente).
18
Figura 5: Aplicación de un filtro para reconocer bordes Canny a una imagen de una Arenita tomada
de Bélgica (Vallée du Hoyoux) (Derochette, 2010).
En el estudio de láminas delgadas una vez se detectan satisfactoriamente los bordes
es posible reconocer cristales en la imagen. En la Figura 5 se puede apreciar una aplicación
del filtro, a pesar de ser una buena aproximación aun hay objetos pequeños en el espacio de
la matriz que el filtro detecta con bordes, esto se corrige aplicando un algoritmo de
Thresholding basado histogramas de los niveles de gris para poder definir el umbral en donde
se va a considerar cristal y matriz.
2.2.2.Thresholding
Es un método útil para examinar imágenes en escalas de grises. En estas imágenes
cada pixel se encuentra en el espectro entre el blanco y el negro. En el procesamiento de
imágenes en escalas de grises el método de Thresholding consiste en subdividir los pixeles
en grupos de acuerdo a el histograma que muestra los valores de grises, una vez dada la
distribución de tonos de grises de la imagen se pueden escoger valores de saturación en negro
para definir grupos en la imagen, generalmente se utiliza para separar lo que se considera un
objeto del fondo. En las librerías de Free-ware como Sci-kit image los algoritmos que utilizan
19
esta técnica subdividen el histograma automáticamente en los grupos más representativos de
la imagen. En la figura 6 se muestra un ejemplo y se puede tener una idea intuitiva de cómo
subdividir el histograma para reconocer objetos.
Figura 6: Imagen original de una cereza en escala de grises. (izquierda) Histograma de
grises (Derecha). Los dos picos en los histogramas corresponden a dos secciones de la
cereza, una clara y otra más oscura. En este histograma es sencillo subdividir los pixeles en
grupos representando su tonalidad de gris. Tomado de Shapiro et al. (1992)
Los métodos automatizados se basan en encontrar los valores de umbrales que
maximicen la varianza entre los grupos. Un método ampliamente conocido para calcular
estos valores es conocido como el método Otsu (Liao et al., 2001).
2.2.3.Algoritmo de Watershed
En español: línea divisora de aguas. Es una técnica basada en morfología matemática
que es útil a la hora de hallar límites entre objetos, se considera una técnica de segmentación
basada en regiones ya que suele clasificar imágenes basadas en su proximidad espacial, sus
niveles de gris y su homogeneidad textural. El concepto es simple, para una imagen en escala
de grises se puede definir como un mapa de elevación topográfica, cada punto o pixel de la
20
imagen tiene un valor de brillo (entre 0 y 256), la imagen se reduce a una matriz de vectores
compuestos por la posición horizontal, la posición vertical y el valor de saturación en negro
que se puede entender como la altura de una superficie topográfica, por eso se dice que el
método está basado en la morfología de una función matemática (La Serna & Pró, 2010). El
método se basa en ‘inundar’ la superficie hasta que se encuentren los puntos más altos de la
función, de forma que se eliminen los puntos que son cubiertos por el agua.
Figura 7: Modelando la imagen como un terreno geográfico es posible entender el propósito del
método: los valores bajos de elevación son cubiertos de agua hasta que solamente se ve la línea
divisoria de aguas. Tomado de La Serna & Pró (2010).
21
3. Metodología
3.1. Láminas delgadas
Las láminas usadas hacen parte de la colección de la universidad, laminas
previamente estudiadas y descritas por otros estudiantes desarrollando su proyecto de grado,
así como también se utilizaron láminas que se utilizan para impartir lecciones de
sedimentología en la universidad de los andes. Se usaron rocas en su mayor parte
carbonatadas con foraminíferos, una gran parte de las muestras provienen del flanco oriental
del sinclinal de Nuevo Mundo en el sector de Montebello, Santander, Colombia.
Figura 8: Ejemplos de imágenes en bruto para algunas de las láminas utilizadas. La razón por la que se escogieron estas muestras es porque al verlas con luz polarizada
se diferencian claramente los foraminíferos de la matriz micrítica y su posterior segmentación
es optimizada en gran medida. Se tienen muestras con alto contenido de clastos en matriz
como la imagen de la izquierda de la figura 8 y también se tienen muestras matriz-soportadas,
como la imagen de la derecha. Para este proyecto se trabajaron 18 secciones delgadas de las
cuales se tomaron fotos de toda la lámina. Como muestra la figura 8 cada foto tomada en el
22
microscopio tiene una dimensión horizontal de aproximadamente 2000μm y de 1600μm en
sentido vertical, en comparación con las láminas delgadas que en promedio tienen unas
dimensiones de 3,8cm x 2,4cm. El objetivo es obtener un numero porcentual de matriz en la
muestra por medio de un algoritmo de segmentación para compararlo con el valor que se
calculó por medio del conteo de puntos.
3.2. Obtención de imágenes
Las imágenes fueron tomadas con un lente objetivo 4X en el microscopio OLYMPUS
CX31 del laboratorio de petrología de la Universidad de los Andes ubicado en el salón Z-
118. La cámara utilizada fue la Moticam580 que tiene una definición de 5 mega pixeles. El
software utilizado para tomar las fotos fue MotiPlus 2.0, un programa con numerosas
herramientas para resaltar características de la foto. Por ejemplo, tiene un parámetro de
definición que acentúa los objetos y los bordes. En la toma de fotos se variaron los parámetros
de ganancia, offset, balance de blancos, entre otros parámetros para obtener fotos que denoten
claramente los cristales en una matriz oscura. Los parámetros que se usaron en la mayoría de
las fotos se muestran en la figura 7.
Figura 9: Parámetros usados en Motiplus 2.0 para una gran parte de las muestras.
23
Como se explicó en el anterior apartado, cada foto corresponde a una parte muy
pequeña de la lámina y de cada lámina estudiada se tomaron alrededor de 130 fotos. A partir
de esta muestra de imágenes, también se utilizaron métodos de datos sintéticos para generar
más imágenes a partir de las ya existentes. Por ejemplo, se puede reflejar la imagen con
respecto al eje horizontal para obtener una imagen que para una máquina es una imagen
completamente diferente a la original.
3.3. Procesamiento de Imágenes
Para el procesamiento de las imágenes se sigue el procedimiento que indican
Gonzales y Woods (2018) para el análisis de objetos pequeños relativos con la imagen. En
este caso se procesan las imágenes para obtener bordes bien definimos de minerales. El
procedimiento que indican los autores indica:
1. Adquisición de la imagen.
2. Preprocesamiento de la imagen.
3. Procesamiento de la imagen.
4. Clasificación o descripción del objeto segmentado.
El primer y el segundo paso se cumplen al tomar las fotos con MotiPlus 2.0, los
parámetros de la cámara que se pueden variar, junto con las herramientas de eliminación de
ruido y detección de bordes permiten tomar imágenes cuyo procesamiento de segmentación
es más sencillo gracias a imágenes optimizadas por el software de la cámara del microscopio
petrográfico.
En el procesamiento de la imagen se usarán las librerías de gratis acceso Scikit Image
(Van der Walt, 2014) y OpenCV (Bradski, 2000) en donde los métodos de segmentación
24
están desarrollados e implementados. El primer paso es limpiar la imagen con el método
denoise de la librería Scikit: el método escogido para eliminar el ruido de la imagen por
medio del método no local (Non-local means), este método se prefiere sobre otros porque
preserva mejor las texturas gracias a que no compara el valor del pixel con el promedio de
los pixeles circundantes sino con el promedio global de los píxeles, y les asigna un peso
estadístico de acuerdo a qué tan parecido es al pixel objetivo (Buades, 2005).
Seguido se aplican los métodos de detección de bordes basados en el algoritmo de
Canny. Como muestra la figura 5, el método de detección de Canny suele fallar en diferencias
pequeñas en el color en la matriz, por lo que se empieza a aplicar un método de thresholding
basado en histogramas de la imagen, en este punto es importante escoger el umbral basándose
no en valores de grises, sino en las variaciones locales de la imagen en donde se encuentran
los bordes. De acuerdo con la información del histograma se hace un arreglo con los valores
más cercanos al negro y se almacenan para luego ser rechazados en la clasificación que
pretende encontrar cristales, eliminando los pequeños errores que tiene el detector Canny. La
clasificación se realiza con un algoritmo de watershed implementado en scikit image, este
método corrige los segmentos de matriz erróneamente clasificados como cristales por el filtro
Canny y se combinan todas las imágenes para obtener una segmentación final. Se obtiene
una imagen que clasificó y diferenció cristales de matriz, para obtener el número basta con
hallar el porcentaje de pixeles negros en la imagen.
25
Figura 10: Diagrama de flujo para el procesamiento de una foto.
Para una misma lámina se tomaron hasta 150 fotos, pero la distribución de los
cristales en una foto no necesariamente representa la de toda la muestra, el porcentaje general
que se halla para una muestra recoge distribuciones sobre toda la lámina, de forma que la
26
proporción general que se obtuvo en el conteo de puntos se puede aproximar como el
promedio de las proporciones individuales de varias subsecciones de la muestra que en este
caso son cada una de las fotos que se tomaron de cada lámina. Se aplicará el procesamiento
a cada imagen obtenida para cada muestra, se calculará el valor individual del porcentaje de
matriz para cada foto para luego hacer un promedio de los valores obtenidos y evaluar qué
tan cercano estuvo el algoritmo del valor obtenido con el conteo de puntos.
27
4. Resultados e implicaciones:
4.1. Imágenes segmentadas:
Figura 11: Imágenes de la segmentación final para algunas de las muestras. Imagen en bruto (izquierda) imagen segmentada (derecha).
28
Una vez terminado el proceso de segmentación se obtienen como las que se aprecian en la
figura 11. Los valores que se escogieron para los procesos de thresholding y de watershed se
hallaron de forma arbitraria, buscando los valores que mejor segmentaran la imagen, sin
embargo, el uso de histogramas de variación de tonos de grises permitió tener una idea de
qué valores usar.
4.2. Errores asociados
En este punto es importante resaltar los errores asociados al procedimiento que no están
dependen del algoritmo computacional: las láminas son realizadas por estudiantes o
laboratoristas, algunas láminas difieren del grosor y hace que si matriz no sea homogénea.
Al tener un grosor diferente es posible que el mismo material muestre colores diferentes en
la luz polarizada, por otro lado, diferencias texturales en la muestra también pueden darse
por proceso de meteorización o de inestabilidad química de los minerales. Estos procesos
que sufren las rocas se ven reflejados en secciones heterogéneas de la matriz o de la
cristalografía de la muestra (figura 12).
Figura 12 Foto de una muestra de biomicrita con una matriz carbonatada que ha sufrido procesos de meteorización, la mancha encerrada en el círculo, que se ve de un color más claro es reconocida como un cristal en el proceso de segmentación.
29
Cada grupo de imágenes correspondientes a una muestra se almacenó en una carpeta, de cada
muestra se tienen entre 120 y 150 fotos, las cuales barren prácticamente toda la lámina,
además se utilizaron métodos para crear datos sintéticos que enriquecieran el proceso, se
generaron imágenes desenfocadas, reflejadas y giradas que hacían la muestra hasta 4 veces
más grande. Procesar cada imagen una por una tomaría mucho tiempo así que, siendo fiel al
objetivo de optimizar procesos, el método de aplicar la segmentación a cada imagen también
es automatizado: un algoritmo que actúa directamente en la terminal de Linux (archivo .mk)
se encarga obtener valores de porcentajes para todas las imágenes correspondientes a una
lámina y procesarlas por carpetas separadas con fotos de una muestra en específico. Las
imágenes tienen una resolución de 800x900 y el procesamiento de una sola imagen puede
tardarse alrededor de un minuto y medio, por lo cual el costo computacional más grande es
el de recorrer todas las imágenes reconociendo pixeles blancos y negros para el posterior
cálculo del porcentaje de matriz, el procesamiento para una carpeta entera de imágenes con
135 fotos puede tardarse entre 2 y 3 horas.
Figura 13: Segmentación de otra foto muestral. En este caso se pueden apreciar cristales que no fueron segmentados correctamente en la zona inferior de la lámina.
30
Los minerales que no son segmentados correctamente representan una de las mayores fuentes
de error (Figura 13). Muchos minerales de color pardo no entraron en el umbral y fueron
clasificados como matriz cuando deberían verse blancos en la imagen segmentada. Estos
minerales generalmente corresponden a materia orgánica. Además el conteo de pixeles de
cada color divide la imagen en las dos categorías que se pretendían hallar, algo que se
diferencia en el proceso del conteo de puntos: en un conteo de puntos, un punto que caiga en
un borde difuso o de gradiente composicional puede clasificarse como tal, mientras que el
algoritmo elimina esa posibilidad, eliminando los elementos contenidos en aureolas que estén
alrededor de cristales más grandes.
Número de muestra Porcentaje de matriz
hallado contando
puntos
Porcentaje de matriz
hallado por el
programa
Error asociado en
porcentaje
110 56.6% 72.6% 28%
105 61% 73% 19.6%
119 76% 81.7% 6.9%
121 80% 85.6% 6.5%
122 78.3% 90.2% 15.1%
144 87% 96.29% 10%
Tabla 1: porcentajes de matriz obtenidos para algunas muestras significativas comparados con los valores que se obtuvieron en el conteo de puntos junto con su error asociado.
Los valores de error varían de acuerdo con la lámina. En láminas muy meteorizadas el error
puede llegar a ser del 30% o superior. Pero se obtuvieron valores del error por debajo del 20
para varias muestras, y los que son inferiores al 10% son listados en la Tabla 1.
4.3. Implicaciones
31
Este tipo de trabajos y procesos pueden optimizarse en gran medida con la automatización
de la escogencia de variables. Por ejemplo, los valores con los que se realiza el thresholding
y la corrección del ruido fueron escogidos de forma cualitativa. Pero actualmente hay
algoritmos basados en redes neuronales que pueden fácilmente encontrar la relación entre las
variables de forma que la escogencia del valor de estos parámetros puede dejarse menos al
azar. En el caso del presente trabajo era complicado variar los parámetros del procesamiento
de la imagen para cada imagen individual: se escogía un parámetro que funcionara para la
muestra en estudio y se aplicaba en mismo filtro a todas las fotos de la misma muestra. Un
algoritmo basado en una red neuronal es el siguiente paso para automatizar este proceso
(James, 2017). Para la construcción de un algoritmo como este es necesario recoger
muchísimas fotos, de forma que la base de datos que se tenga sea suficiente para optimizar
la clasificación de las imágenes de acuerdo a alguna característica de interés. Las redes
asignan pesos estadísticos mayores a las características que buscan en la imagen, de forma
que se pueden llegar a desarrollar métodos semi-automatizados para diferenciar minerales.
Este acercamiento al estudio de laminas delgadas muestra que es posible agilizar la toma de
información cuantitativa de la muestra. El proceso de determinar el porcentaje de matriz
muchas veces se hace de forma cualitativa, los geólogos disponen de tablas con imágenes
que representan la saturación en matriz y el valor se aproxima al ojo.
Es importante hacer énfasis en que el presente programa no tuvo un buen rendimiento, y
necesitaría de muchos ajustes para que se le pueda considerar una medida confiable. Además
el análisis de una muestra parte de su composición: a partir de ahí es necesario ver el contexto
petrogenético, estructural y de deposición para empezar a obtener información de una
muestra. El estudio de una lámina delgada puede ofrecer muchísima información sobre la
32
historia geológica de la roca y de la zona en donde fue encontrada, de manera que si se llega
a optimizar completamente los métodos de estudio cuantitativo de las láminas delgadas,
podrían ahorrarse horas de trabajo en el microscopio para dedicarlas a la interpretación y
análisis de la información geológica que la muestra ofrece.
33
5. Conclusiones
• Los métodos computacionales en las geociencias no están limitados solamente al
campo de tratamiento de datos en geofísica o geodinámica. Los métodos de visión
artificial suponen un amplio objeto de estudio que permite desde segmentar imágenes
sísmicas hasta procesar fotos de elementos bajo el microscopio petrográfico.
• La computación supone una herramienta de un gran alcance a la hora de agilizar
procesos mecánicos. Para el caso de las geociencias puede suponer una herramienta
poderosa a la hora de simplificar el estudio de láminas delgadas.
• El desarrollo de un algoritmo exitoso de cuantificación de objetos en una imagen
depende en gran medida de la homogeneidad de las imágenes que se estudian, los
procesos de segmentación dependen ampliamente de los parámetros que se utilicen
en el conjunto de técnicas de procesamiento y una variación en las características de
la foto puede hacer que sea necesario cambiar todos los parámetros estadísticos con
los que se está estudiando una imagen.
• El procesamiento de imágenes es una herramienta muy poderosa a la hora de
examinar grandes muestras de información: al obtener procesadores confiables de
imágenes se puede empezar a avanzar en la automatización del proceso de estudio de
láminas delgadas. Como proponen los autores (Budennyy et al., 2017) es necesario
perfeccionar cada parte del proceso de reconocimiento de un mineral para luego poder
34
aplicar todas estas técnicas en conjunto y obtener clasificaciones confiables de
minerales específicos.
Bibliografía.
Bradski, G. (2000). The OpenCV Library. Dr. Dobb’s Journal of Software Tools.
Brownlee, J. (2019, October 3). How to Classify Photos of Dogs and Cats (with 97%
accuracy). Retrieved from https://machinelearningmastery.com/how-to-develop-a-
convolutional-neural-network-to-classify-photos-of-dogs-and-cats/
Buades, A., Coll, B., & Morel, J.-M. (2005). A Non-Local Algorithm for Image
Denoising. IEEE Computer Society Conference on Computer Vision and Pattern
Recognition (CVPR05). doi: 10.1109/cvpr.2005.38
Budennyy, S., Pachezhertsev, A., Bukharev, A., Erofeev, A., Mitrushkin, D., &
Belozerov, B. (2017). Image Processing and Machine Learning Approaches for Petrographic
Thin Section Analysis. SPE Russian Petroleum Technology Conference. doi:
10.2118/187885-ms
Canny, J. (1987). A Computational Approach to Edge Detection. Readings in
Computer Vision, 184–203. doi: 10.1016/b978-0-08-051581-6.50024-6
Ceruzzi, P. E. (2003). A history of modern computing. Cambridge, Mass: MIT Press.
Derochette, J. M. (2010). White sandstone [Imagen en línea]. Recuperado de
http://jm-derochette.be/sedimentary_rocks/lame_26.htm
Dunham, R.J.. (1962). Classification of Carbonate rocks according to depositional
texture, 108-121. AAPG Mem.. 1.
35
Folk, R. L. (1965). Petrology of the sedimentary rocks. Austin: Hemphills.
Folk, R.L. (1959) Practical Petrographic Classification of Limestones. AAPG
Bulletin, 43, 1-38.
Gonzalez, R. C., & Woods, R. E. (2018). Digital image processing (4th ed.). New
York, NY: Pearson.
Harrison R. L. (2010). Introduction To Monte Carlo Simulation. AIP conference
proceedings, 1204, 17–21. doi:10.1063/1.3295638
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2017). An introduction to
statistical learning: with applications in R. New York: Springer.
Kendall, C & Flood, P. (2011). Classification of Carbonates. 10.1007/978-90-481-
2639-2_269.
Karr, Clarence. Analytical Methods for Coal and Coal Products. Academic Press,
1979.
La Serna Palomino, N., & Pró Concepción, L. (2010). Watershed: un algoritmo
eficiente y flexible para segmentación de imágenes de geles 2-DE. Revista De Investigación
De Sistemas e Informática, 35–41. Recuperado de:
http://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/risi/2010_n2/v7n2/a04v7n2.pdf
Liao, P. S. & Chen, T. S. & Chung, P. C. (2001). A Fast Algorithm for Multilevel
Thresholding.. J. Inf. Sci. Eng.. 17. 713-727.
Longo, Michela & Roscia, M. & Lazaroiu, George Cristian. (2014). Innovating
Multi-agent Systems Applied to Smart City. Research Journal of Applied Sciences,
Engineering and Technology. 7. 4296-4302. 10.19026/rjaset.7.801.
M. J. T. Lewis, "The Origins of the Wheelbarrow," Technology and Culture, Vol. 35,
No. 3. (Jul., 1994), pp. 453–475
36
Mathias, P. (1971). The Business History Review, 45(4), 517-519. Retrieved from
www.jstor.org/stable/3112815
Moeslund, T. B. (2012). Introduction to video and image processing building real
systems and applications. London: Springer.
Obara, B. Mineralogy and Petrology (2007) 91: 271. https://doi.org/10.1007/s00710-
007-0200-x
Pettijohn, F. J., Potter, P. E., & Siever, R. (1987). Sand and sandstone. New York:
Springer-Verlag.
Petruso, K. (1981). Early Weights and Weighing in Egypt and the Indus Valley. M
Bulletin (Museum of Fine Arts, Boston), 79, 44-51. Retrieved from
www.jstor.org/stable/4171634
Roser, Max (2019) - "Employment in Agriculture". Published online at
OurWorldInData.org. Retrieved from: 'https://ourworldindata.org/employment-in-
agriculture'
Shapiro, L. G., & Rosenfeld, A. (1992). Computer vision and image processing.
Boston, MA: Academic.
Van der Walt, S., Schonberger, Johannes L, Nunez-Iglesias, J., Boulogne, Franccois,
Warner, J. D., Yager, N., … Yu, T. (2014). scikit-image: image processing in Python. PeerJ,
2, e453.
Wentworth, C. K. (1922). A Scale of Grade and Class Terms for Clastic Sediments.
The Journal of Geology, 30(5), 377–392. doi: 10.1086/622910
37
Apéndice: Código de python para una imagen individual
38
39