Вы находитесь на странице: 1из 60

CAPITULO 4 .

- VISION ARTIFICIAL EN LA MINERIA CON REDES


NEURONALES

Autores: Carlos Pon Soto y Marcos Chait Bollo

Departamento de Ingeniería de Sistemas y Computación

Universidad Católica del Norte, Antofagasta, Chile

Apartado I .- Aplicaciones de Redes Neuronales a Procesos Mineros, Casos:


Medición Granulométrica y Detección de Rocas Grandes

4.1.- Introducción
En la industria minera se requieren sofisticados sistemas de control, con el fin de monitorizar y
controlar la molienda del mineral como parte de la meta del proceso de extracción. El costo de producción
del mineral, se ve afectado por la eficiencia en el proceso de extracción, que se inicia con la tronadura del
mineral, para luego dividirse en dos subprocesos: chancado, que consiste en la reducción del tamaño de los
fragmentos de rocas, que posteriormente es reducido aún más en tamaño, por el siguiente proceso, conocido
como proceso de molienda. En esta fase se consumen grandes cantidades de energía y tiempo, viéndose
afectado directamente por el tamaño excesivo de algunas rocas, que son causales de los atollos en la boca de
alimentación de los molinos semi autógenos (S.A.G.). Esta dificultad significa detener toda la sección de
molienda correspondiente al molino que es afectado, lo que gravita en la reducción del proceso de
producción del mineral.

Los atollos que son producidos en la alimentación de los molinos S.A.G. lo son fundamentalmente,
por aquellos fragmentos de rocas de gran tamaño, que producen una saturación del material en su ingreso,
conllevando a la parada del sistema en su totalidad, por un periodo aproximado de treinta minutos (por
parada). En la actualidad, la remoción de los fragmentos causantes de los atollos se realiza en forma manual.
Por lo tanto, es posible reducir el costo de producción, mediante la detección anticipada de las rocas grandes
que ingresan a los molinos. De esta manera se logra una reducción de los costos de parada de los procesos de
molienda. El objetivo fundamental es tratar de reducir al mínimo estos atollos, retirando en forma manual
las rocas grandes que puedan ser causantes de atollos desde la correa de ingreso al molino sin que estas
lleguen a la boca de alimentación, identificándolas por el método que se propone en este trabajo.

Por otro lado, la determinación de la granulometría en forma automática en la industria minera es


otro de los problemas fundamentales en los procesos de control de chancado y molienda del mineral,
especialmente en aquellas empresas que procesan grandes toneladas de mineral en forma continua, para así
tener un mejor control sobre la operación óptima de carga de los molinos semi-autógenos como también de
los molinos de bolas. El análisis granulométrico en correas transportadoras [Grannes, 1986] [Lin, 1993] es
un proceso complejo si se requiere incorporarlo en los sistemas de automatización de control de estos
procesos mineros, ya que la correa está moviéndose contínuamente para transportar el material del mineral a
una velocidad constante promedio de 2 metros/segundo. Este análisis hasta al momento se hace mediante
técnicas de tratamiento digital de imágenes [Ord, 1988] [Lange, 1990], lo cual implica generalmente un gran
consumo de CPU, lo que hace que el requisito de procesamiento digital lleve consigo el uso de tecnología de
hardware de muy alto costo con un hardware dedicado. En los procesos actuales en la minería en la Región
del Norte Grande en Chile existe un sistema medidor de granulometría, mas bien conocido como
Piedrómetro, el cual realiza la medición mediante un batch de imágenes de un conjunto de marcos [IT022].
El tipo de estádistica realizada por este instrumento es más bien fuera de línea, aunque lo hace
periódicamente pero no es un proceso de tiempo real.

AIRENE 4.1
La alternativa que se presenta en este trabajo, es utilizar técnicas de análisis granulométrico mediante
el uso de redes neuronales [Crida, 1995] [Pretorius, 1989], no obstante hay un análisis previo mínimo de
procesamiento digital de las imágenes antes de ser ingresadas a la red neuronal. Este análisis previo, pasa a
ser despreciable, si reconocemos que puede hacerse mediante técnicas de procesamiento paralelo
[Cordero,1998][Chait,1998][Puzenat,1998] utilizando computadores personales de bajo costo, conectadas
entre sí en red a través de un switch. La salida obtenida de este análisis previo son siluetas de rocas que están
presente en la superficie de la correa transportadora. Estas imágenes son los patrones que se usan en el
análisis granulométrico mediante las redes neuronales.

4.2.- Pre-Procesamiento de Imágenes

4.2.1.- Introducción
El desarrollo de este apartado se centra en la descripción del problema que afecta tanto al proceso de
extracción de mineral, originado por el atollo en la boca de alimentación de los molinos semi-autógenos.,
como también en el proceso de medición de granulometría para el trabajo óptimo de la etapa de molienda. La
solución a ambos problemas se basa en la visión artificial automatizada en línea, en donde en la primera
etapa consiste en transformar las imágenes capturadas en una forma útil para la etapa de reconocimiento.
Esta etapa se conoce como el pre-procesamiento y es el objetivo de este trabajo, el cual es apoyado por el uso
de nuevos paradigmas computacionales, conocidos como arquitecturas paralelas, para acelerar el tiempo de
respuesta.

4.2.2.- Descripción del Problema


Las grandes empresas mineras de la Región en el Norte Grande de Chile, en su proceso de molienda,
cuentan con uno o más molinos S.A.G. (Semi-Autógeno), alimentados por correspondientes correas
transportadoras capaces de llevar hasta 1800 ton/hora de mineral. En cada correa, la alimentación está
compuesta de mineral fresco, suministrado por alimentadores, mineral fino, proveniente de la etapa de
concentradora y mineral reciclado, correspondiente a guijarros de sobremedida provenientes del harnero de
salida de cada molino. Esto se ilustra en la figura 4.1. El atollo, consiste en la acumulación de exceso de
mineral en la boca de alimentación del molino S.A.G., identificado como uno de los puntos críticos de mayor
incidencia de este tipo de eventos. Un atollo obliga a la detención de todo el sistema ligado al molino
afectado: alimentador, correa, molino, descarga, harnero y reciclado, con la consiguiente pérdida de
producción.

El chute o boca de alimentación se encuentra a la entrada del molino y recibe la descarga de la correa
de alimentación. En caso de interrumpirse el flujo de entrada al molino, el chute de alimentación se llena en
5 segundos, lo que impide cualquier reacción tendiente a evitar el problema y sólo se debe recurrir a la
detención del proceso y remoción manual del elemento causante del atollo. Los cuadros estadísticos,
promediando ambos molinos, en la empresa minera de Codelco, Chuquicamata, muestran que el atollo por
chute de alimentación produce una detención media de 75 minutos mensuales (estadística año 1995) y es el
elemento de mayor incidencia en la parada de molinos. Las causas de paradas de los molinos en la mayoría
de los casos corresponden a piedras de tamaño excesivo.

AIRENE 4.2
Pila
acopio

feeder Correa Molino Figura 4.1.-


transportado Circuito del
Harner Proceso de
Boca de vibrator Granulometría.
alimentació
del molino
SAG

Pozo
Con la información anteriormente descrita, se puede observar la necesidad de mejorar el sistema de
producción, de forma que se eviten al máximo las paradas de los molinos, disminuyendo de esta forma las
pérdidas ocasionadas por las detenciones del sistema.
Una segunda motivación consiste en la posibilidad de realizar mediciones de granulometría en línea.
La evaluación de fragmentación de rocas es muy importante en la industria minera pudiendo mencionarse
tres aspectos básicos:

1. La operación eficiente de los molinos en cuanto a consumo energético depende en parte de la


distribución granulométrica del mineral de alimentación [2].
2. El control granulométrico permite asegurar una mejor recuperación de fino, optimizando el
rendimiento del proceso[14].
3. En unidades de acopio, la granulometría incide en la estabilidad de las pendientes del material sobre
las paredes de silo que son importantes para mantener una alimentación uniforme.

De esta manera se hace evidente que la medición de la distribución granulométrica del mineral
resulta en beneficios cuantificables para el proceso minero. La posibilidad de medición de granulometría,
normalmente se asocia con el propósito de control. En estos casos, resulta viable un sistema de control con
pre-alimentación que maneje la distribución granulométrica para optimizar la operación de los molinos. La
información de granulometría ayuda de esta manera a comprender la operación de los molinos y posibilita
las acciones de control. A mayor plazo la medición de granulometría provee información de
retroalimentación para las fases anteriores del proceso tales como chancado y tronadura.

4.2.3.- Proceso de Captura de Imágenes


Hoy en día, la visión por computadora en la inspección industrial está siendo usada en varias
aplicaciones. En minería, es posible monitorizar la dimensión de los fragmentos de rocas en el proceso de
tamizado, mediante un sistema de inspección visual automatizado, obteniendo grandes beneficios en este
campo, a un bajo costo y una alta productividad. Para esto, se requiere una estrategia que realice una
medición en Tiempo Real de las imágenes, identificando los tamaños del mineral en la correa transportadora
que alimenta al molino. De esta manera, es posible lograr la clasificación de sus tamaños y remover las rocas
que puedan ser causales de un posible atollo. El instrumento en sí, fundamentalmente la cámara de video, es
instalada en el riguroso ambiente de la planta minera, posicionada sobre la correa transportadora que lleva el
mineral hacia el molino. Como requisitos fundamentales del instrumento identificador de rocas hay que
mencionar los siguientes:

- Realizar un análisis exacto de las mediciones del mineral, además de no tener contacto alguno con el
flujo de este.
- El instrumento debe ser muy confiable en la reducción de los tiempos de parada de los molinos en
planta, por efectos de atollos.
- El instrumento debe ser también muy confiable en el sentido que no genere paradas falsas de la
correa por rocas que aparentan ser grandes.
- La cámara de video debe ser instalada en un medio encapsulado, presurizado, cuya finalidad, es
evitar el contacto con el polvo y otros elementos del medio ambiente.

AIRENE 4.3
- Ser resistente a los diversos factores ambientales tales como, un rango de temperatura de -10ºC a
40ºC, efectos corrosivos y polvo atmosférico, resistencia a la humedad o altas presiones e
interferencias electromagnéticas introducidas por los grandes motores ubicadas en la planta minera.
- El funcionamiento del instrumento debe ser en Tiempo Real, las 24 horas del día, mediante el cual se
puede observar el flujo de mineral en la correa transportadora.
- Los resultados deben ser consistentes, bajo diversas condiciones de tiempo y de luminosidad.

La mayor desventaja de este mecanismo de visión, es que sólo puede proyectar en dos dimensiones
la superficie del material, por lo que se dificulta la detección de aquellos fragmentos de rocas, que se
encuentran ocultos por rocas más grandes. No obstante, teniendo en cuenta todas las ventajas ofrecidas por
una visión por computadora, podemos considerarla como solución viable. Sin embargo, pueden usarse otros
parámetros de medición para lograr una estimación real del material existente debajo de la superficie, pero
esta parametrización no es considerada en este trabajo.

4.2.4.- Variables del Entorno


El proceso de detección de rocas grandes en las correas transportadoras y la determinación de
granulometría debe tener un tiempo de respuesta compatible con los requisitos de los procesos en línea del
material que se desplaza por las correas transportadoras. Si se considera que la correa transportadora se
mueve a una velocidad de 2 m/sg, y que la imagen capturada por la cámara de video, cubre una superficie de
1 m, entonces, se necesita muestrear al menos cada 0.5 segundos. Pero debido a que ciertos fragmentos de
rocas aparecerán entrelazados con imágenes consecutivas, es necesario disminuir el tiempo de muestreo a
0.25 segundos, lo que equivale a cuatro cuadros (frames) por segundo.

Para lograr el pre-procesamiento de imágenes digitales en tiempo real, se requiere el uso de


tecnología y plataformas de hardware no convencionales, conocidas como procesamiento y arquitecturas
paralelas, en las cuales múltiples procesadores ayudan en la aceleración del cómputo del pre-procesamiento
digital de la imagen. El sistema se inicia con la captura de la imagen mediante una cámara CCD (Charge
Coupled Devices), la cual toma las imágenes de rocas, montada sobre la correa transportadora; una memoria
gráfica (frame grabber), inserto en un “slot” o ranura libre del computador, recupera, en formato de imagen
digitalizada, el marco o cuadro obtenido por la cámara CCD, siendo éstas las imágenes a ser pre-procesadas.
Esto se puede ver en la figura 4.2.

El proceso de medición de rocas se subdivide en una serie de tareas entre las cuales se destaca el
pre-procesamiento de imágenes digitales, cuya tarea es analizada y estudiada en este proyecto.

Computador
Cámara
CCD

Correa
transportadora

Figura 4.2 Sistema de Inspección Visual

AIRENE 4.4
Es así, que el objetivo de este trabajo consiste en la implementación del software que permita realzar
las características de las rocas, permitiendo obtener una visualización de las imágenes digitales más nítidas y
claras, obteniendo como salida imágenes binarizadas que representan las rocas con mayor factibilidad de
permitir un reconocimiento en las etapas posteriores del proceso, ya sea determinación de granulometría o
detección de rocas grandes. Esta fase del proyecto debe cumplir con los requisitos que se mencionan a
continuación:

- Las imágenes binarizadas, no pueden omitir rocas de tamaño superior a 50 cm.


- No debe crear rocas falsas, que puedan dificultar la detección posterior.
- En lo posible eliminar el material de particulado fino, inferior a 1 cm, que no representa información
relevante a la etapa posterior.

De esta manera, el resultado de este trabajo, son imágenes filtradas y binarizadas, que sirven como
entrada a las etapas posteriores basadas en redes neuronales, donde se realiza la clasificación de las rocas,
para su tamizado y detección de rocas grandes. Esto se puede observar en la figura 4.3, donde se destaca el
pre-procesamiento de imágenes.

Imágenes Capturadas Pre-procesamiento Imágenes


por la camara CCD y de Imágenes Binarizadas y Red Neuronal
el frame grabber Digitales Filtradas

Figura 4.3 Sistema de Pre-procesamiento.

4.2.5 Problemas del Ambiente


Dentro del proceso de captura de imágenes, existen tres factores, que inciden directamente en la
calidad de las imágenes resultantes. El primero de ellos, es considerar las características del instrumento
capturador, como su velocidad. Otro factor importante es la apariencia del material, como por ejemplo la
textura, tamaño, etc. Por último, las características del medio ambiente, en el cual se encuentra inserto el
material, también viene a formar parte de este conjunto de factores [González, 1996].

4.2.5.1 Características de la Cámara CCD


Como se mencionó, uno de los factores más importantes a considerar, es la velocidad de muestreo
de la cámara, o velocidad del obturador. Velocidades tipo 1/1000, 1/2000 y 1/10000 seg. permiten obtener
imágenes nítidas del material en movimiento. Una cámara CCD permite capturar imágenes tanto en escala
de gris como a color, sin embargo, en este caso, el CCD que se emplea en la captura de las imágenes en
escala de gris. Para lograr una óptima visualización del material, el enfoque de la cámara debe ser
perpendicular a la correa transportadora. Esto se puede observar en la figura 4.2. La decisión en torno a
captura de niveles de gris con una sola cámara está basada en la percepción humana durante la observación
de un proceso con las características descritas [CRIDA 95].

4.2.5.2 Características del Material


Dentro de las características presentes en el material, existen algunas que varían, de manera más
significativa, entre uno y otro fragmento, afectando la calidad de las imágenes capturadas. El tamaño de las
rocas es una de ellas, ya que podemos encontrar desde finas partículas, las que al montarse unas sobre otras,
dan la apariencia de una roca de mayor tamaño, como se ilustra en la figura 4.4.

AIRENE 4.5
Montículos de fragmentos
de rocas

Figura 4.4 Características del material constituido por finas partículas.

También existe la posibilidad de enormes fragmentos de rocas, que pueden ser causantes de dos
problemas: el primero de ellos, es la creación de sombra lo que genera rocas falsas, y el segundo es que éstas
pueden superar el área de percepción de la cámara. Un ejemplo de lo anterior se muestra en la figura 4.5.
Fragmento de gran tamaño Sombra generada por
el fragmento de roca

Figura 4.5 Características del material de gran tamaño.

Otras variaciones del material, como la forma y textura, que no afectan al proceso de captura de la
imagen, si lo hacen al pre-procesamiento de éstas.

4.2.5.3 Características del Medio Ambiente


En una planta de extracción de mineral, existe un conjunto de condiciones desfavorables, en las
cuales debe operar un sistema de inspección visual. La existencia de diversas maquinarias pesadas en la
planta de extracción de mineral, afecta negativamente al sistema de captación, por las vibraciones y ruidos
que estas emiten. También, el polvo contenido en el ambiente, provocado por el constante movimiento de los
fragmentos de rocas es un problema, ya que dificulta la visión de la correa transportadora y para evitarlo es
necesario humedecer el ambiente. Generándose así, otro problema que afecta igualmente al proceso de
captura de imágenes, pues un exceso de humedad puede causar un deterioro de la cámara, si esta no está
debidamente protegida. Por otro lado, la unión del polvo con el agua, provoca una especie de barro, que
genera rocas falsas. El exceso de humedad en la correa transportadora junto con la iluminación existente,
provoca un problema de reflectancia de la luz.

Otra consideración importante en el diseño de un sistema de inspección visual, es la eliminación de


las variaciones de luminosidad, provocado por los cambios en las condiciones climáticas o diferentes
momentos del día, debiendo ser ésta lo más constante y uniforme posible. Debido a la gran importancia de

AIRENE 4.6
este punto y a los diferentes problemas que puede ocasionar una deficiente iluminación, es que se tratará
como un punto aparte dentro de esta sección [González, 1996].

4.2.5.3.1 Iluminación
La iluminación juega un papel fundamental en la obtención de resultados óptimos. Una deficiente
iluminación implica obtener imágenes de baja calidad, lo que a su vez conlleva a resultados erróneos [Pérez,
1997]. Se ha comprobado que el tipo de iluminación más apropiada, en aplicaciones de inspección visual, es
una ambiental y no focalizada. En la figura 4.6, se puede apreciar una imagen con el tipo de iluminación
focalizada, la cual se encuentra perpendicular a la correa transportadora. Claramente se observa que el foco
de luz no es uniforme en el área total de la correa. Si observamos con mayor detención, es posible apreciar
que en la parte central de la imagen, existe un exceso de luminosidad, mientras que en los bordes laterales,
ésta casi no existe.

Areas fuera del alcance


del foco de iluminación

Area de exceso de iluminación

Figura 4.6 Iluminación focalizada.

Al pre-procesar imágenes, capturadas con éste tipo de iluminación, se pueden obtener resultados
como el que se muestra en la figura 4.7, en la cual sólo se logra detectar aquellas rocas en que la luz incide
directamente en ellas, y además por iluminación saturada de la imagen se generan rocas falsas, como se
muestra en la parte central de la figura 4.7. Aquellos fragmentos que están fuera del alcance del foco de luz,
no serán detectados.

AIRENE 4.7
Rocas no detectadas

Rocas falsas

Figura 4.7 Resultado de procesar una imagen con iluminación focalizada.

Sin embargo, si se cuenta con un tipo de iluminación ambiental, es posible evitar que ciertos
fragmentos de rocas no sean cubiertos por el área de iluminación y, por lo tanto, una vez procesada la
imagen todos los fragmentos, son detectados. No obstante, la generación de sombras, es un problema que
aún persiste, a pesar de esto, el resultado obtenido al procesar la imagen, sigue siendo mejor que el obtenido
con una iluminación focalizada. Esto se observa claramente en la figura 4.8.

(a) (b)

Figura 4.8 Iluminación ambiental. (a) Imagen original, con iluminación ambiental, (b) Resultado de
procesar la imagen, con iluminación ambiental.

4.2.6 Métodos de Mejora de la Imagen


La mejora de una imagen consiste es procesar una imagen de forma que resulte más adecuada que la
original, para una aplicación específica. Existen dos categorías básicas: métodos en el dominio espacial y
métodos en el dominio frecuencial. El dominio espacial se refiere al propio plano de la imagen, y las técnicas
de esta categoría se basan en la manipulación directa de los pixels de la imagen. El procesamiento en el
dominio de la frecuencia, se basa en la modificación de la transformada de Fourier de una imagen. También
son habituales otras técnicas de mejora que se basan en el empleo combinado de métodos de ambas
categorías.

AIRENE 4.8
4.2.6.1 Métodos en el dominio espacial
El término dominio espacial, se refiere al conjunto de pixels que componen una imagen, y los
métodos en el dominio espacial son procedimientos que operan directamente sobre los pixels. Las funciones
de procesamiento de la imagen en el dominio espacial, pueden expresarse como se muestra en la ecuación
(4.1)

g(x,y) = T[f(x,y)] (4.1)

donde f(x,y), es la imagen de entrada, g(x,y) es la imagen procesada y T es un operador que actúa sobre f,
definido en algún entorno (x,y).

La aproximación principal para definir un entorno alrededor de (x,y), es emplear un área de


subimagen cuadrada o rectangular centrada en (x,y), como se muestra en la figura 4.9. El centro de la
subimagen se mueve pixel a pixel comenzando, por ejemplo, en la esquina superior izquierda y aplicando el
operador en cada posición (x,y) para obtener g. Aunque a veces se empleen otros tipos de entornos, tales
como aproximaciones a un círculo, las distribuciones cuadradas y rectangulares son con mucho las más
utilizadas por su facilidad de implementación.

(x,y)

Figura 4.9 Un entorno de 3x3, alrededor de un punto (x,y) de una imagen.

Una de las aproximaciones principales en este tipo de formulación, se basa en el empleo de las
denominadas máscaras (también llamadas plantillas, ventanas o filtros). Básicamente, una máscara es una
pequeña distribución bidimensional (de, por ejemplo, 3x3), como la que se muestra en la figura 4.10, en la
que los valores de los coeficientes determinan la naturaleza del proceso, como la acentuación de los bordes.
Las técnicas de mejora basadas en este tipo de aproximación se conocen a menudo como procesamiento por
máscara o filtrado [Pérez, 1997].

4.2.6.2 Métodos en el dominio de la frecuencia


El tratamiento de la imagen en el plano espacial es el método convencional para el procesamiento
digital. No obstante hay métodos que buscan encontrar información para la clasificación en el dominio de la
frecuencia, basadas en las transformadas de Fourier. Una de las relaciones de esta transformada es que
constituye la unión fundamental entre los dominios espaciales y de frecuencias, el que se denomina
convolución. La convolución de dos funciones f(x,y) y g(x,y), indicada por f(x,y) * g(x,y), se define
mediante la ecuación (4.2).

f(x,y) * g(x,y) = ∫∫
−∞
f (α , β ) g ( x − α , y − β ) d α d β (4.2)

La importancia de la convolución en el análisis en el dominio de frecuencias radica en el hecho que


f(x,y)*g(x,y) y F(u,v)G(u,v) constituyen un par de transformadas de Fourier. En otras palabras, si f(x,y) tiene
como transformada de Fourier F(u,v) y g(x,y) tiene como transformada de Fourier G(u,v), entonces la
transformada de Fourier de dos funciones f(x,y)g(x,y), es igual al producto de las transformadas de Fourier
F(u,v)*G(u,v). Entonces, esto queda expresado por las relaciones (4.3) y (4.4):

f(x,y)*g(x,y) ó F(u,v)G(u,v) (4.3)

AIRENE 4.9
f(x,y)g(x,y) ó F(u,v)*G(u,v) (4.4)

La base de las técnicas en el dominio de la frecuencia, está basado en el teorema de convolución. Sea
g(x,y) una imagen formada por la convolución de una imagen f(x,y) y un operador lineal invariante de
posición h(x,y) (véase ecuación (4.5)).

g(x,y) = h(x,y) * f(x,y) (4.5)

Cabe destacar que, un operador invariante de posición es aquel cuyo resultado depende sólo del
valor de f(x,y) en un punto de la imagen y no de la posición del punto. Entonces, por el teorema de
convolución se cumple la relación de la ecuación (4.6), en el dominio de la frecuencia:

G(u,v) = H(u,v) * F(u,v) (4.6)

donde G, H y F son respectivamente las transformadas de Fourier de g, h y f. En la terminología de la teoría


de sistemas lineales, la transformación H(u,v) se denomina la función de transferencia del proceso. En óptica
H(u,v), se denomina la función de transferencia óptica, y su magnitud es la modulación de la función de
transferencia [Brigham, 1974], [González, 1996].

4.2.6.3 Aumento del contraste


Las imágenes con poco contraste pueden ser debidas a diversas causas, como iluminación deficiente,
falta de rango dinámico en el sensor o incluso incorrecta selección de la apertura de la lente durante la
captura de la imagen. Esta técnica, denominada también ecualización, involucra cambios en los niveles de
gris de los pixel, modificando el histograma de la imagen, de acuerdo a una función de transformación
específica.

Sea r la variable que representa el nivel de gris de los pixels de la imagen a ser mejorada, cuyo rango
está entre 0 ≤ r ≤ 1, con r = 0 representando el negro y r =1 representando el blanco en la escala de gris.
Para cualquier r en ese intervalo, se busca la transformación de la forma que se muestra en la ecuación (4.7)

s = T(r) (4.7)

El cual produce un nivel s por cada valor r en la imagen original. Los niveles de gris en una imagen son
cantidades aleatorias en el intervalo [0,1]. Entonces, los niveles de gris en la imagen original y de la
transformada, pueden ser caracterizados por las funciones de densidad de probabilidades pr(r) y pr(s),
respectivamente.

Las siguientes técnicas de mejoramiento de la imagen están basadas en modificar la apariencia de la


imagen, controlando la función de densidad de probabilidades de sus niveles de gris vía la transformación
T(r). Consideremos la función de transformación:
r

s = T(r ) = ∫
0
pr (w)dw 0≤ r≤1 (4.8)

donde w es una variable de integración ficticia. El término más a la derecha de la ecuación (4.8), recibe el
nombre de función de distribución acumulada de r (CDF).

Para poder aplicarse en el proceso digital de imágenes, esta transformación ha de expresarse en


forma discreta. De la ecuación (4.9), se obtienen las probabilidades para los niveles de gris que constituyen
los valores discretos:

nk
pr(rk) = n 0≤ r≤1 y k =0,1…,L-1 (4.9)

AIRENE 4.10
donde, L es el número de niveles de gris, pr(rk) es la probabilidad del k-ésimo nivel de gris, nk es el número
de veces que este nivel aparece en la imagen, y n es el número total de pixels de la imagen. Finalmente la
forma discreta de la función de transformación viene dada por la relación de la ecuación (4.10)
k


k
nj
sk = T(rk ) =
j=0
pr(rj ) = ∑n
j =0
(4.10)

Una representación gráfica de pr(rk) en función de rk se denomina un histograma, y la técnica


empleada para obtener un histograma uniforme se conoce como ecualización del histograma o linealización
del histograma. En la figura 4.10(a), se muestra la imagen original con muy poco contraste, como lo refleja
su histograma, en el que, el rango de nivel de gris que predomina, es el nivel negro (cero). En la figura
4.10(b), se observa el resultado de emplear el método de ecualización, el cual logra expandir el rango
dinámico de niveles de gris, como se aprecia en su histograma [Jain, 1989].

(a)

(b)

Figura 4.10 Aumento del contraste. (a)Imagen original, con muy poco contraste, (b) la misma imagen
tras la ecualización.

Es importante destacar que dependiendo del tipo de aplicación, se hace recomendable la utilización
de un método de mejora global o local. El método de mejora global, consiste en que los pixels de la imagen
de entrada (ver figura 4.11(a)), se modifican mediante una función de transformación basada en la
distribución de los niveles de gris en toda la imagen, como se puede apreciar en la figura 4.11(b). Este tipo
de aproximación es adecuado para la mejora general de la imagen. Sin embargo, a menudo, es necesario
mejorar los detalles sobre áreas muy pequeñas de la imagen, en este caso el método de mejora local es el más
adecuado. Este método consiste en definir un entorno rectangular o cuadrangular (por ejemplo, un entorno
de 7x7) y mover su centro pixel a pixel. Para cada ubicación, se calcula el histograma de los puntos en el
entorno y se obtiene, bien, la ecualización del histograma, o bien, la función de transformación de la

AIRENE 4.11
especificación del histograma. Finalmente se emplea esta función para trazar el nivel de gris, del pixel
central del entorno. A continuación se mueve el centro del entorno a un pixel adyacente, y se repite el
proceso. El resultado de la aplicación del método de mejora local, se puede observar en la figura 4.11(c).

(a)

(b) (c)

Figura 4.11 Métodos de aumento del contraste. (a) Imagen original, (b) Resultado de la ecualización
global, (c ) Resultado de la ecualización local.

4.2.6.4 Filtrado espacial


El empleo de máscaras espaciales para el procesamiento de las imágenes, se denomina
frecuentemente filtrado espacial, y las propias máscaras se denominan filtros espaciales. Dentro del filtrado
espacial, existen los filtros suavizantes, que se emplean para hacer que la imagen aparezca algo borrosa y
también para reducir el ruido. Es útil que la imagen aparezca algo borrosa en algunas etapas del pre-
procesamiento, como la eliminación de los pequeños detalles de una imagen antes de la extracción de un
objeto (por supuesto, grande), y el relleno de pequeños espacios entre líneas o curvas [Pérez, 1997].

a) Filtro pasa bajo, la forma de la respuesta de un impulso necesaria para implementar un filtro espacial de
pasa bajo (suavizante), indica que el filtro ha de tener todos sus coeficientes positivos. Para un filtro espacial
de 3x3 (grado 3), la construcción más simple consiste en una máscara en la que todos los coeficientes sean
iguales a 1. Sin embargo, la respuesta, en este caso es, la suma de los niveles de gris de los nueve pixels, lo
que hace que el resultado quede fuera del rango válido de gris [0,255]. La solución consiste en cambiar la
escala de la suma, dividiéndola por el grado de la máscara al cuadrado, en este caso por 9. La figura 4.12
muestra la máscara resultante.

AIRENE 4.12
1 1 1
1 x 1 1 1
9
1 1 1

Figura 4.12 Filtro espacial de pasa bajo.

b) Filtro de mediana, una de las principales dificultades del método de suavizamiento, es que difumina los
bordes y otros detalles de realce. Cuando el objetivo es reducir el ruido, el empleo de los filtros de mediana
representa una posibilidad alternativa. En este caso, el nivel de gris de cada pixel se reemplaza por la
mediana de los niveles de gris en un entorno de este pixel, en lugar del promedio, como lo hace el pasa bajo.
Este método es particularmente efectivo cuando el patrón de ruido consiste en componentes fuertes y de
forma puntiaguda, y la característica que se desea preservar es la agudeza de los bordes [Jain, 1989].
La mediana m de un conjunto de valores es tal que la mitad de los valores del conjunto quedan por
debajo de m y la otra mitad por encima. Con el fin de realizar el filtro de mediana, en el entorno de un pixel,
primero se deben extraer los valores del pixel y de su entorno, determinar la mediana y asignar este valor al
pixel. Por ejemplo, para un entorno de 3x3, con los valores que se observan en la figura 4.13, se realizan los
siguientes pasos:

1 2 3 Pixel procesado

3 2 4
5 3 5

Figura 4.13 Entorno de 3x3.

Se almacenan los valores en un vector:

X[1] = 1, X[2] = 2, X[3] = 3, X[4] = 3, X[5] = 2, X[6] =4, X[7] = 5, X[8] = 3, X[9] = 5

Se hace un ordenamiento en el vector, por valor de nivel de gris:

X[1] = 1, X[2] = 2, X[5] = 2, X[3] = 3, X[4] = 3, X[8] = 3, X[6] =4, X[7] = 5, X[9] = 5

Entonces, el valor de la mediana corresponde a la posición 4, con el valor 3.

4.2.6.5 Umbralización
La técnica de umbralización o binarización, clasifica cada pixel en dos grupos, dependiendo de que
su nivel de gris exceda o no un umbral dado. En caso que el nivel de gris del pixel, exceda el punto del
umbral, se le asigna el nivel de gris inferior (color negro), en caso contrario, el nivel superior (color blanco).
El objetivo de la binarización, es obtener una segmentación de la imagen, creándose manchas negras en un
fondo blanco, que asemejan la forma de los objetos, vistos desde un plano superior, como se observa en la
figura 4.14.

La técnica de umbralización es crítica para todo el proceso de segmentación de imágenes, donde el


problema más grande es encontrar el nivel del umbral óptimo de la imagen. Para encontrar el umbral
óptimo, es necesario determinar el comportamiento o distribución de los niveles de grises de la imagen. Esto

AIRENE 4.13
se realiza mediante el análisis del histograma. El comportamiento del histograma puede ser monomodal o
multimodal.

(a) (b)

Figura 4.14 (a) Imagen original ecualizada, (b) Imagen Binarizada.

Una imagen monomodal, presenta un histograma cuya curva se asemeja a una campana de Gauss,
donde el mayor porcentaje de la energía (en este caso, mayor ocurrencia de los niveles de grises) se
concentra en el punto medio. De lo anterior, se desprende que, el umbral óptimo de una imagen
monomodal se puede obtener mediante el promedio de los valores que componen el histograma, conocido
también, como punto de equilibrio en un análisis de fuerzas, como lo ilustra la figura 4.15.

F(x)

X
Punto de Equilibrio ( X )

Figura 4.15 Umbral óptimo de una imagen monomodal.

Una imagen multimodal presenta un histograma de forma no definida, donde es posible encontrar
más de un valle y más de un pico (peak) (se entiende como valle, la zona donde la curva del histograma
baja, y como peak el punto más alto entre dos valles). Esto se muestra en la figura 4.16. En el caso de una
imagen multimodal, el umbral óptimo se obtiene al encontrar la diferencia mayor entre un valle y sus picos
vecinos.

Peak
F(x)

Valles

Figura 4.16 Umbrales y Valles de una Imagen Multimodal.

En algunos casos, dependiendo del objetivo que se persiga, es recomendable utilizar más de un
umbral para diferentes áreas de una misma imagen. Es decir, particionar la imagen en diferentes áreas y

AIRENE 4.14
binarizar cada una de ellas con un umbral distinto, que esta determinado según la intensidad de brillo del
área.

2.6.6 Morfología
La palabra morfología indica normalmente una rama de la biología que trata de la forma y estructura
de animales y plantas. Utilizamos aquí, la misma palabra en el contexto de morfología matemática, como una
herramienta para extraer componentes de una imagen que sean útiles en la representación y descripción de la
forma de una región, tales como contornos, esqueletos y cerco convexo. También, son de interés las técnicas
morfológicas para el pre o post-procesamiento, tales como el filtrado morfológico, la reducción y el
recortado.

El lenguaje de la morfología matemática es parte de la teoría de conjuntos. Como tal, la morfología


ofrece un método poderoso y único de abordar numerosos problemas del proceso de imágenes. Los
conjuntos en la morfología matemática representan las formas de los objetos de una imagen. Por ejemplo, el
conjunto de todos los pixels negros de una imagen binaria es una descripción completa de ella. En imágenes
binarias, los conjuntos en cuestión son miembros del espacio bidimensional entero Z2 , donde cada elemento
de un conjunto es una tupla (vector bidimensional), cuyas coordenadas son las coordenadas (x,y) de un pixel
negro de una imagen. Muchas de estas operaciones se pueden formular en términos del espacio Euclídeo n-
dimensional, En . Sin embargo, el interés aquí, son imágenes binarias cuyos componentes son elementos de
Z2 .[Jain, 1989], [Fisher, 1997]. La mayoría de las operaciones morfológicas están definidas en términos de
dos operaciones básicas, erosión y dilatación.

a) Dilatación, sea A y B conjuntos de Z2 y ∅ representando al conjunto vacío, la dilatación de A por B,


representada por A⊕ B, en la ecuación (4.11) :

^
A⊕ B = { x | ( B )x I A ≠ ∅ } (4.11)

Por tanto, el proceso de dilatación consiste en obtener la reflexión de B sobre su origen, después,
cambiar esta reflexión por x. La dilatación de A por B es entonces, el conjunto de todos los desplazamientos
^
x, tales que B y A se solapen en al menos un elemento distinto de cero. Basándose en esta interpretación, la
ecuación (4.11) se puede volver a representar mediante la ecuación (4.12):

^
A⊕ B = { x | [ ( B )x I A ] ⊆ A } (4.12)

Al conjunto B, se le conoce normalmente como el elemento de estructura de la dilatación, al igual que en


otras operaciones morfológicas.

La ecuación (4.11) no es la única definición de la dilatación. Sin embargo, la anterior definición tiene
la ventaja distintiva sobre otras formulaciones de ser más intuitiva cuando se toma el elemento de estructura
B como una máscara de convolución. Aunque la dilatación se basa en operaciones de conjunto, mientras que
la convolución se basa en operaciones aritméticas, el proceso básico de mover a B respecto a su origen, y
desplazarlo después sucesivamente de tal forma que se deslice sobre el conjunto (imagen) A, es análogo al
proceso de convolución expuesto anteriormente.

Los componentes del conjunto B (elemento estructurador), pueden ser ceros o unos. La cantidad de
ceros y/o unos determina, en conjunto con el tamaño del elemento estructurador, el efecto que produce su
utilización en las operaciones morfológicas.

AIRENE 4.15
Conjunto de coordenadas :
1 1 1
1 1 1 {(-1,-1),(0,-1),(1,-1),
(-1,0), (0,0), (1,0),
1 1 1 (-1,1), (0,1), (1,1)}
Figura 4.17 Elemento Estructurador.

Al usar el elemento estructurador que se muestra en la figura 4.17, y si se tiene como imagen de
entrada la figura 4.18(a), y después de aplicar el proceso de dilatación, se obtiene la imagen de salida
ilustrada en la figura 4.18(b). Dicho proceso consiste en colocar un 1 en la imagen de salida, si por lo menos
uno de los pixels del elemento estructurador coincide con alguno de los 9 pixels de la imagen en cuestión.

(a) (b)

Figura 4.18 (a) Imagen original, (b) Imagen dilatada.

(a) (b)

Figura 4.19 (a) Imagen original, (b) Imagen erosionada.

b) Erosión, para los conjuntos A y B de Z2 , la erosión de A por B representada por A Θ B, se define como
la ecuación (4.13):

A Θ B = {x | (B)x ⊆ A} (4.13)

que dice que la erosión de A por B es el conjunto de todos los puntos x tal que B, trasladado por x, está
contenido en A. Como en el caso de la dilatación, la ecuación (4.13) no es la única definición de la erosión.
Sin embargo, esta ecuación, normalmente, es más adecuada en implementaciones prácticas de la morfología
por las mismas razones expuestas anteriormente con relación a la ecuación (4.11) [Fisher, 1997], [Jain,
1989].

AIRENE 4.16
Si se toma como ejemplo el elemento estructurador que se muestra en la figura 4.17, y la imagen de
entrada de la figura 4.19(a), se obtiene la imagen de salida que se muestra en la figura 4.19(b), en la cual el
proceso de erosión ha sido aplicado. Este consiste, en colocar un 1 en la imagen de salida, sólo si el elemento
estructurador B, coincide perfectamente con los 9 pixels de la imagen.

4.2.7 Pre-Procesamiento en Tiempo Real


El pre-procesamiento en tiempo real es un factor preponderante en el desarrollo de esta aplicación,
ya que si se considera que la correa transportadora se mueve a una velocidad de 2 m/sg y que la imagen
capturada por la cámara de video, cubre una superficie de 1 metro, se hace necesario muestrear al menos
cada 0.5 sg. Pero debido a que ciertos fragmentos de rocas aparecerán entrelazados con imágenes
consecutivas, se necesita disminuir el tiempo de muestreo a 0.25 sg, lo que equivale a un tiempo de respuesta
de cuatro marcos por segundo. Si se examinan con mayor detención estas cifras, es fácil deducir, sin mayor
dificultad, que un equipo computacional tradicional o corriente, no posee la capacidad y velocidad de cálculo
requerido. Por esta razón, es imprescindible el uso de tecnología y plataformas de hardware no
convencionales, conocidas como procesamiento y arquitecturas paralelas, en la cual múltiples procesadores
ayudan en la aceleración del cómputo final.

4.2.7.1 Arquitecturas Paralelas


El tipo de arquitectura usada en este trabajo, está basado en el paradigma de los modelos de tipo de
memoria, el cual se definen a continuación.

4.2.7.1.1 Modelos De Memoria.


Como se mencionó anteriormente, existen diversos elementos que influyen en el rendimiento de un
procesamiento paralelo, uno de ellos y que va a la par con la arquitectura a utilizar, es el modelo de memoria.
A continuación se presentan dos alternativas:

1) Procesadores de memoria compartida. Donde cada procesador cuenta con una memoria local y además
comparten un espacio de memoria común, a través del cual se comunican entre sí e intercambian
información. Esto se puede observar en la figura 4.20.

MEM MEM MEM MEM

CPU CPU CPU CPU

Memoria Compartida

Figura 4.20 Memoria Compartida

Cada procesador puede en un momento determinado, acceder a la memoria compartida con el fin de
leer o escribir un dato en una cierta dirección de memoria. El modelo base permite el acceso simultáneo de
los P procesadores a la memoria compartida, siempre y cuando las direcciones de memoria donde cada
procesador escribe o lee sean diferentes.

AIRENE 4.17
Por otro lado se distinguen cuatro subclases, definidas según el grado de restricción del acceso
simultáneo a una misma localidad de memoria por dos o más procesadores, una de las cuales permite el
acceso simultáneo a una dirección de memoria, ya sea para leer o escribir en ella, denominada acceso
simultáneo de lectura-escritura, otras dos restringen el acceso simultáneo a una sola operación, ya sea a
lectura o escritura. La cuarta y última subclase sólo permite a uno de los procesadores leer o escribir, en
forma exclusiva en una localidad de memoria.

2) Procesadores de memoria distribuida. Los procesadores se comunican entre ellos e intercambian


información a través de una red de interconexión, como se puede ver en la figura 4.21, enviando y recibiendo
mensajes, existiendo una coordinación permanente, ya que el emisor sabe cuando envía un mensaje y el
receptor sabe cuando llega un mensaje. Este es el paradigma empleado en este trabajo, basado en el tamaño
de las tareas que utilizan los distintos procesadores, utilizando el software de implementación paralela MPI
(Interfaz de Paso de Mensajes).

Red de Interconexión

CPU CPU CPU CPU

MEM MEM MEM MEM

Figura 4.21 Memoria Distribuida

4.2.7.2 Interfaz de Paso de Mensaje ( MPI )


MPI es una librería estándar, que permite el paso de mensajes entre procesos. En la actualidad
existen diversas versiones de esta librería, dentro de las cuales se destacan las versiones de 16 y 32 bits para
computadores personales, así como la versión para máquinas UNIX. Una aplicación MPI, puede visualizarse
como una colección de procesos concurrentes, como se ilustra en la figura 4.22,en la que se incluye el código
de la aplicación y éste es enlazado a la librería MPI, mediante llamadas a funciones ya establecidas en el
estándar.

A cada proceso se le asigna un único identificador denominado rango, el cual se usa para direccionar
a otro proceso, ya sea, para enviar o recibir mensajes, para ejecutar operaciones colectivas, u otras formas
de cooperación. Los procesos MPI se pueden ejecutar en un mismo computador o en diferentes máquinas
concurrentemente. El envío de un mensaje a un proceso, en la misma u otra máquina, es una operación
transparente, ya que MPI puede seleccionar automáticamente, el más eficiente mecanismo de comunicación
disponible en una máquina en particular o entre máquinas. El uso del identificador, hace que toda la
cooperación entre procesos, sea independiente de la localización física de estos.

Máquina 0 Máquina 1
Proceso_MPI 0 Proceso_MPI 1 Proceso_MPI 2 Proceso_MPI 3 Proceso_MPI 4
Código de Código de Código de Código de Código de
usuario usuario usuario usuario usuario

Librería MPI Librería MPI Librería MPI Librería MPI Librería MPI

Figura 4.22 Estructura Básica de una Aplicación MPI

AIRENE 4.18
MPI provee un conjunto de rutinas de comunicación punto a punto, existiendo cuatro modos de
comunicación. Estos son:

• Standard Mode (modo estándar), el comportamiento es específico a la implementación. El


desarrollador de librerías escoge un comportamiento del sistema que provee un buen rendimiento y
una seguridad razonable. Para estaciones de trabajo IBM usa pequeños mensajes para evitar la
sobrecarga de sincronización y se envían grandes mensajes de forma síncrona para minimizar la
sobrecarga del sistema lo cual requiere un buffer de espacio suficiente para almacenar los mensajes.

• Synchronous Mode (modo síncrono), es el más seguro y por lo tanto el más portable. El modo
síncrono es seguro ya que no depende en el orden en el cual se ejecute las funciones de send y
receive o de la cantidad de espacio en el bufer. Este modo puede incurrir sustancialmente en una
sobrecarga de sincronización.

• Ready Mode (modo listo), El modo “ready” o listo ( MPI_Rsend() ), simplemente envía el mensaje
por la red de interconexión, no requiere por lo tanto de una copia extra del mensaje (modo síncrono),
sin embargo el receptor precede al emisor, por lo tanto este modo no es el apropiado para todo tipo
de mensajes.

• Buffered Mode (modo buffer), desacopla el emisor del receptor. Este método elimina el exceso de
sincronización en las tareas del emisor y asegura que el orden de ejecución del envío y recepción no
interesa, realiza una copia extra del mensaje para ponerlo en la red. Una ventaja adicional, es que el
programador puede controlar el tamaño del mensaje, y la cantidad total en el espacio del bufer. En
este método se incurre en una sobrecarga adicional por la copia en el bufer.

Y dentro de cada modo de comunicación, existen:

Rutinas de comunicación con bloqueo: el envío o recepción suspenden la ejecución del programa
hasta que el bufer del mensaje que se está enviando/recibiendo esté seguro de ser usado.

Rutinas de comunicación sin bloqueo: el envío o recepción retorna inmediatamente después de


iniciar la comunicación. El programador no sabe en este punto si los datos a ser enviados han sido
copiados en el bufer de envío o si los datos recibidos han llegado. Por lo tanto, antes de usar el
mensaje del bufer, el programador debe comprobar su estatus.

La versión MPI de 32 bits es una librería que satisface, en forma general, las necesidades de
cualquier programa que trabaje sobre la arquitectura paralela MIMD, ya sea con Windows 95, Windows NT
y/o UNIX bajo una red TCP/IP. Por otro lado, presta una alta eficiencia, ya que puede ser ejecutada en
diferentes máquinas; es portable dado que permite trabajar con sistemas de memoria compartida, distribuida,
en red y la combinación de éstas; provee una interfaz de comunicación confiable, por lo tanto, se puede
considerarse como una interfaz de paso de mensajes seguro.

4.2.7.2.1 Funciones Habituales en el Paso de Mensajes


MPI de 32 bits, ofrece una amplia lista de funciones que permiten diseñar una interfaz, donde la
comunicación entre procesos puede ser la que se desee. En el desarrollo de esta aplicación, sólo se utiliza un
pequeño conjunto de operaciones con las cuales se crea el ambiente paralelo e intercambian mensajes. El
tipo de comunicación empleado es el modo estándar, sin bloqueo.

Una llamada a la función MPI_Init, inicializa el ambiente paralelo y crea el número de hijos
especificados en el archivo de extensión “.pg” ; una llamada a la función MPI_Finalize, termina la
ejecución de los procesos hijos y cierra el ambiente paralelo.

La función MPI_Comm_rank asigna un identificador único a cada proceso. Dicho identificador es


un número entero entre 0 y n-1, donde n es el número de procesadores. El proceso padre recibe el
AIRENE 4.19
identificador 0. La función MPI_Comm_size retorna el número de procesos hijos existentes más el proceso
padre. El MPI_Barrier, es un punto de espera obligado para todos los procesos hijos, es decir, ningún
proceso, excepto el padre, podrá traspasar esta barrera hasta que todos los hijos hayan llegado a dicho punto.
Comúnmente es utilizada en la sincronización de rutinas.

Las funciones básicas para el paso de mensaje, según el modo estándar son el MPI_Send y
MPI_Recv, las cuales equivalen al envío y recepción de un mensaje. Como se mencionó anteriormente, la
función MPI_Finalize elimina sólo los procesos hijos, pero el proceso padre continúa activo hasta la
ejecución de la función ExitProcess [Matarese, 1997]. Estas instrucciones son las operaciones básicas para
realizar un programa de paso de mensajes; las cuales se encuentran definidas en la librería MPI.H.

A continuación se muestra un programa ejemplo, que utiliza las funciones básicas de la librería MPI,
para sumar en forma paralela los valores de un vector unidimensional de sesenta posiciones.

# include <mpi.h> // Librería MPI


# include <stdio.h>
main( int argc, char** argv)
{
int i, j, k, inicio, final ; //Variables de uso general
int resultado, total, Suma_final ; // Variables de uso general
int vector[60] ; // Representa los datos a enviar
int tamaño ; // Variable que indica el número de
procesos
int rango ; // Identificador de cada proceso
int fuente, destino ; // Identificador del emisor y
receptor
int buffer[10]; // Buffer de envío
MPI_Status estado ; // Retorna el estado del mensaje
MPI_Init ( &argc, &argv) ; // Inicia ambiente paralelo
MPI_Comm_rank ( MPI_COMM_WORLD, &rango) ; // Retorna el identificador de
cada proceso
MPI_Comm_size (MPI_COMM_WORLD, &tamaño) ; //Retorna el tamaño del grupo

IF (rango == 0){ // Soy el proceso padre


inicio = 0 ;
final = 10 ;
FOR (i=1 ; i < tamaño ; i++ ){ // Ciclo para enviar los datos
a los
procesos hijos
k = 0 ;
FOR( j=inicio ; j < final ; j++ ){ // Reparte el mensaje
buffer[k] = vector[j] ;

// Envía el mensaje al hijo “ i ”


MPI_Send (buffer, 10, MPI_INT, i, 98, MPI_COMM_WORLD) ;
inicio = final ;
final = final + 10 ;
} // Cierra el ciclo for de reparto
} // Cierra el ciclo for de envío de mensaje
}
ELSE
MPI_Recv (buffer, 10, MPI_INT, 0, 98, MPI_COMM_WORLD, &estado) ;
IF (rango != 0){
resultado = Suma (buffer) ; // Retorna la suma de los
valores del buffer
// Cada proceso hijo envía el resultado al proceso padre
MPI_Send (resultado, 1, MPI_INT, 0, 99, MPI_COMM_WORLD) ;

AIRENE 4.20
}
ELSE{
Suma_final = 0 ;
FOR ( i =1 ; i < tamaño ; i++ ) {
MPI_Recv ( total, 1, MPI_INT, i, 99, MPI_COMM_WORLD, &estado) ;
Suma_final = total + Suma_final ;
}
printf ( “ La suma final es : %d, Suma_final) ;
}
MPI_Finalize () ; // Finaliza el ambiente paralelo
} // Fin del programa

4.2.8 Implementación
A continuación se muestran los pasos realizados en la etapa del pre-procesamiento de la imagen,
basados en los algoritmos analizados en la sección 4.6. La metodología de trabajo, descrita anteriormente,
ofrece diversas formas de implementación, por lo que es necesario, precisar la técnica utilizada en cada
proceso, elementos estructuradores, tipo de umbralización y ecualización.

INICIO
leer_imagen
ecualizar_imagen
suavizar_histograma
calcular_umbral_optimo
filtro_mediana
umbralización
DESDE 1 HASTA 5 HACER
erosion
FIN DESDE
DESDE 1 HASTA 5 HACER
dilatacion
FIN DESDE

4.2.8.1 Ecualización
El método de ecualización global, que se describió anteriormente, se utiliza como método de
aumento del contraste de una imagen, debido a que el objetivo de emplear la ecualización, en la aplicación,
no es más que la expansión del rango dinámico de la imagen en general, y no la acentuación de una región
específica. En la figura 4.23 se muestra, claramente, el efecto producido por el método de ecualización
global.

(a) (b)

Figura 4.23 Ecualización global. (a) Imagen original, (b) Imagen ecualizada.

AIRENE 4.21
4.2.8.2 Mediana
De los filtros de suavizamiento, es el filtro de mediana el que mejor se ajusta a los requisitos de la
aplicación, ya que es la agudeza de los bordes de los fragmentos de rocas, la característica que se desea
preservar y eliminar a la vez los patrones de ruido presentes en la imagen. El entorno empleado en este
proceso, es un entorno de 3x3, es decir, en la obtención del valor medio de un pixel (x,y), sólo se consideran
a los nueve pixels encerrados por este entorno. El resultado obtenido después de la aplicación del filtro de
mediana, se ilustra en la figura 4.24.

38 50 57 38 50 57

75 53 63 75 63 63

88 104 82 88 104 82

(a) (b)

Figura 4.24 Proceso de Mediana.(a) Imagen Original, (b) Imagen Procesada, por un Entorno de 3x3.

4.2.8.3 Umbralización
El proceso de umbralización o binarización, se aplica a una imagen previamente ecualizada y
filtrada. Debido a las características de luminosidad de las imágenes, no es posible determinar un umbral
único para todas las imágenes que se desean procesar. Por este motivo, es necesario encontrar un sólo
umbral para cada imagen. El cálculo del umbral se realiza discriminando una imagen monomodal de una
multimodal, y realizando las operaciones correspondientes en cada caso.

Las figuras 4.25(a) y 4.25(c), muestran la imagen original multimodal y monomodal


respectivamente, la binarización de una imagen multimodal se muestra en la figura 4.25(b), y la figura
4.25(d), una imagen monomodal binarizada, donde se aprecia en ambos casos un resultado óptimo.

(a) (b)

AIRENE 4.22
(c) (d)

Figura 4.25 (a) Imagen original multimodal, (b) Imagen multimodal binarizada, (c) Imagen original
monomodal, (d) Imagen monomodal binarizada.

Como procesos de apoyo a la búsqueda del umbral óptimo, se utilizan tres procesos. El primero de
ellos suaviza el histograma de la imagen, con el fin de eliminar las zonas del histograma, en que la curva baja
despreciablemente. A continuación se realiza el proceso Calculo del Umbral, el cual encuentra un umbral
óptimo, en el caso que la imagen sea multimodal. En imágenes monomodales, se utiliza el procedimiento
Fuerza.

4.2.8.4 Erosión
Las operación morfológica de Erosión es una herramienta que permite extraer componentes que no
representan información relevante en el pre-procesamiento de una imagen. En esta aplicación, son los
fragmentos de rocas de menor tamaño, los elementos que se desea eliminar. Además, permite solucionar el
problema de sobre posición de rocas, separando una de otra, al reducir los contornos de estas.

La erosión o reducción de contornos producida por la operación, es relativamente despreciable, en


comparación a lo que se espera obtener de ella. Razón por lo cual, es necesario iterar la aplicación del
Erosionador, más de una de vez. El elemento estructurador que utiliza esta operación morfológica, es un
entorno cuadrado de 3x3, (ver figura 4.26). La forma cuadrada del elemento estructurador, permite
disminuir el tamaño de los fragmentos de rocas, conservando su forma original. Cada componente del
elemento estructurador es igual a cero, que equivale al color negro, (color mediante el cual están
representados los fragmentos de rocas). El efecto producido por la erosión se muestra en la figura 4.27.

0 0 0
0 0 0
0 0 0
Figura 4.26 Elemento Estructurador de 3x3.

AIRENE 4.23
(a) (b)
Figura 4.27 Proceso de Erosión. (a) Imagen de Entrada, (b) Imagen Erosionada con 5 Iteraciones.

4.2.8.5 Dilatación
Esta operación morfológica, como su nombre bien lo dice dilata o expande los fragmentos de rocas
presentes en la imagen. Con el fin de mantener la forma original de la roca, este proceso, es aplicado el
mismo número de iteraciones que el Erosionador. El elemento estructurador que se emplea en la dilatación,
es idéntico al elemento utilizado por el Erode (figura 4.26), en forma y tamaño. El resultado obtenido del
proceso de dilatación se muestra en la figura 4.28.

(a) (b)

Figura 4.28 Proceso de Dilatación. (a) Imagen de entrada, (b) Imagen dilatada con 5 iteraciones.

4.2.9 Presentación de Resultados


A continuación se presenta el resultado correspondiente a un conjunto de imágenes sometidas a la
etapa de pre-procesamiento. Posteriormente se realiza el análisis del procesamiento paralelo, emulando
procesamiento MIMD y Pipeline. La figura 4.30 muestra un ejemplo de las imágenes analizadas etapa por
etapa, de manera de facilitar la evaluación del resultado de cada una de ellas. En primer lugar, se muestra la
imagen original capturada por la cámara CCD (ver figura 4.29a), posteriormente, la imagen es ecualizada
(ver figura 4.29b), luego en la figura 4.29c, es el resultado obtenido al aplicar el filtro de mediana, seguido
por el proceso de binarización de la imagen (figura 4.29d), para continuar con las operaciones morfológicas
de erosión (erode), aplicada cinco veces (figura 4.29e), y por último se obtiene el resultado final de la
imagen dilatada en la figura 4.29f (con cinco iteraciones), que corresponde al resultado final del pre-
procesamiento.

AIRENE 4.24
Figura 2.29 Ejemplo de imagen capturada por la cámara CCD. (a) Imagen Original, (b) Imagen
ecualizada, (c) Aplicación de mediana, (d) Imagen binarizada, (e) Erosión, (f) Dilatación de la imagen
y el resultado final.

(a) (b)

(c) (d)

(e) (f)

4.2.10 Comportamiento en el Ambiente Paralelo


En el ambiente de procesamiento paralelo se han probado dos enfoques:

- División de la imagen a pre-procesar en sub-imágenes, mediante un procesador padre y varios


procesadores hijos, realizando el pre-procesamiento en cada una de las partes de las sub-imágenes
respectivas, utilizando una arquitectura MIMD (Múltiples Instrucciones – Múltiples Datos).
-

AIRENE 4.25
- Procesamiento digital en una arquitectura Segmentada (Pipeline), donde un procesador padre envía
las imágenes en forma de marcos (o frames) recibidos de la memoria gráfica frame grabber, en
forma consecutiva a cada uno de los procesos hijos, para su procesamiento completo.

Para construir una aplicación que se ejecute en un ambiente paralelo, es necesario construirla en
primera instancia en forma secuencial, de manera de verificar que los procedimientos y/o funciones se
ejecuten correctamente, y además, para identificar que partes del código secuencial se puedan ejecutar en
forma concurrente. En la sección 4.8 se muestra el esquema de ejecución en forma secuencial de la
aplicación total del pre-procesamiento de una imagen digital, abarcando las operaciones de búsqueda del
umbral óptimo, ecualización, filtrado, binarización , y las operaciones morfológicas como son la erosión y
dilatación. A continuación, se muestra la investigación realizada en búsquedas de formas de paralelismo con
respecto a la división de los datos.

4.2.10.1 Particionamiento de la Imagen en Sub-imágenes


La figura 4.30 muestra el diagrama de flujo de los datos en un ambiente paralelo con partición de las
imágenes, identificando las tareas respectivas del proceso padre y procesos hijos que participan en este
ambiente paralelo.

Proceso Padre: Abre archivo de


entrada(Imagen). Calcula el número
de filas y columnas que cada hijo debe
procesar. Inicializa el
ambiente
paralelo.

Proceso hijo: Crea e inicializa sus


Proceso Padre: Ecualiza la imágen de
entrada. Calcula el umbral para la locales, entrevariables
ellas, la variable con la cual recibe y
binarización. Envía a los procesos hijos la procesa la subimagen que le
porción de imágen que deben procesar, corresponde.
las
dimensiones de ésta y el valor del umbral
para el proceso de
binarización.
Proceso Hijo: Recibe toda la información que el
proceso padre le envió. Inicia el
pre-
procesamiento realizando las operaciones de
Mediana, Binarización y Erosión. Establece una
comunicación entre procesos hijos (o
denominados también procesos hermanos), e
intercambian información necesaria para realizar
la operación de Dilatación.

Proceso Padre: Recibe la subimagen de Proceso Hijo: Termina la comunicación entre


cada proceso hijo. Finaliza el ambiente hermanos. Realiza la operación de Dilatación.
paralelo, eliminando a todos los procesos Envía al proceso padre la imagen resultante.
hijos.

Proceso Padre: Genera el archivo de


salida, el cual contiene la imágen
completa pre-
procesada.

Figura 4.30 Ejecución en ambiente paralelo.

El programa paralelo comienza con el proceso padre, inicializando el ambiente MPI, en una red de
interconexión de computadores. Abre el archivo de entrada, que corresponde a la imagen a pre-procesar
(figura 4.31), cargando la información correspondiente de la imagen en un arreglo bidimensional.
Seguidamente la imagen es ecualizada, para luego buscar el umbral óptimo, enviando este valor a todos los
procesos hijos mediante una operación de Broadcast. Finalmente el proceso padre particiona el arreglo

AIRENE 4.26
(imagen) ya ecualizado en sub-arreglos (sub-imágenes), por filas, según la cantidad de procesos hijos (o
tareas) con los que se cuente, enviando cada una de las sub-imágenes a los correspondientes procesos hijos,
como se muestra en la figura 4.32.

Figura 4.31 Imagen capturada por el proceso padre.

Una vez que los procesos hijos reciben la sub-imagen respectiva, realizan las operaciones de
mediana, binarización, erosión. Luego se envían entre procesos hijos las primeras y últimas filas de cada una
de las sub-imágenes, con la finalidad de realizar en forma correcta la operación de dilatación. La
comunicación entre procesos hijos no es total, ya que un determinado proceso sólo se comunica con su
proceso_hermano_izquierdo (o inmediatamente menor), y con su proceso_hermano_derecho (o
inmediatamente mayor). Un proceso, se considera menor que otro, si su rank o identificador único, es menor
que el del otro proceso. La figura 4.33 muestra la comunicación entre procesos hermanos.

H ijo 1(máquina local)

H ijo 2 (máquina remota)

H ijo 3 (máquina remota)

H ijo 4 (máquina remota)

Figura 4.32 Particionamiento de la imagen en sub-imágenes y envío a máquinas remotas.

Proceso Padre (Rank = 0)

Proceso Hijo Proceso Hijo Proceso Hijo Proceso Hijo Proceso Hijo
(Rank = 1) (Rank = 2) (Rank = N -1) (Rank = N) (Rank = N+1)

Figura 4.33 Comunicación entre procesos hermanos.


Una vez finalizado el pre-procesamiento de los procesos hijos, estos envían las sub-imágenes
resultantes al proceso padre, quien se encarga de recolectar las sub-imágenes respectivas en forma ordenada,

AIRENE 4.27
para finalizar con el almacenamiento de la imagen resultante en un archivo plano. El objetivo de un sistema
de inspección visual automatizado en tiempo real, requiere que los tiempos de respuesta permanezcan en un
rango no superior a ∆t = 0,25 seg . Este ∆t corresponde al tiempo mínimo necesario para reconocer las
rocas que pueden ser causales de un atollo en correas transportadoras que se mueven a 2 m/sg.

Uno de los objetivos de la programación paralela es hacer posible que una aplicación se ejecute en
tiempo real. Para esto, se requiere que los procesos hijos se ejecuten en forma independiente en diferentes
procesadores, de manera de acelerar la ejecución del programa. Esto a su vez, dependerá de las
características de la arquitectura a utilizar. El ambiente de trabajo que se utilizó en el desarrollo de la
aplicación, se basó en una red de interconexión de múltiples computadores, utilizando el protocolo TCP/IP
en una red ethernet de 10 Mbps y 100 Mbps, usando los respectivos HUBs, como fuentes de interconexión.
Las mediciones obtenidas se realizaron en los siguientes casos:

I) Hub de 10 Mbps

a) 1 proceso Padre y 4 hijos (5 sub-imágenes): 0,66 segundos


b) 1 proceso Padre y 3 hijos (4 sub-imágenes): 0,71 segundos
c) 1 proceso Padre y 2 hijos (3 sub-imágenes): 0,77 segundos
d) 1 proceso Padre y 1 hijo (2 sub-imagen) : 0,82 segundos
e) 1 proceso Padre ( 1 imagen ) : 0,88 segundos

II) Hub de 100 Mbps

a) 1 proceso Padre y 4 hijos (5 sub-imágenes): 0,44 segundos


b) 1 proceso Padre y 3 hijos (4 sub-imágenes): 0,49 segundos
c) 1 proceso Padre y 2 hijos (3 subimágenes) : 0,60 segundos
c) 1 proceso Padre y 1 hijo ( 2 sub-imagen) : 0,66 segundos
d) 1 proceso Padre ( 1 imagen ) : 0,82 segundos

En el caso Ia), se ve que el tiempo baja de 0,88 a 0,66 segundos, lo que implica una ganancia en
velocidad de 0,88/0,66 = 1,33 con un hub de 10 Mbps. La máxima velocidad teórica esperada es de 4, pero
por supuesto este factor es nunca alcanzado por la cantidad de colisiones que aumenta ostensiblemente,
debido a la cantidad de envíos de mensajes en la comunicación entre hermanos. Esto demuestra que no es
conveniente utilizar este tipo de particionamiento en una configuración de múltiples computadores en un
ambiente de red Ethernet, debido al efecto de colisiones.

En el caso IIa), se ve que el tiempo baja aún más debido a el uso de un hub de 100 Mbps; el factor de
velocidad es 0,82/0,44 = 1,86 el cual es un poco mayor que en el caso Ia) pero nunca como el valor ideal
esperado de 4. Aunque con un hub de 100 Mbps se logra una mejor velocidad, aún está lejos del tiempo
mínimo necesario requerido para los tiempos de muestreo de las imágenes de 0,25 segundos. Los tiempos
obtenidos en el caso I y II, el padre ejecuta el pre-procesamiento de una sub-imagen al igual que los procesos
hijos. Un importante factor es considerar que sucede cuando el padre solamente se dedica a recolectar
información de los hijos. Este factor aumenta el paralelismo ya que los procesos hijos en máquinas remotas
no deben esperar a que el padre termine su tarea. Los tiempos obtenidos con ejecución del pre-procesamiento
en los procesos hijos solamente se muestra en los casos III y IV.

III) Hub de 10 Mbps

a) 1 proceso Padre y 4 hijos (4 subimágenes) : 0,66 segundos


b) 1 proceso Padre y 3 hijos (3 sub-imágenes): 0,72 segundos
c) 1 proceso Padre y 2 hijos (2 sub-imágenes): 0,82 segundos
d) 1 proceso Padre y 1 hijo (1 sub-imagen) : 0,88 segundos

IV) Hub de 100 Mbps

a) 1 proceso Padre y 4 hijos (4 sub-imágenes): 0,39 segundos

AIRENE 4.28
b) 1 proceso Padre y 3 hijos (3 sub-imágenes): 0,44 segundos
c) 1 proceso Padre y 2 hijos (2 sub-imágenes): 0,50 segundos
d) 1 proceso Padre y 1 hijo ( 1 sub-imagen) : 0,82 segundos

El factor de velocidad aumenta con esta nueva configuración en el caso IVa) dando un aumento en el
factor de velocidad de 0,82/0,39 = 2,1. No obstante 0,39 segundos todavía no es suficiente para alcanzar el
objetivo de 0,25 segundos. Para mejorar estos tiempos, se consideró la utilización de un modo segmentado
(Pipeline), donde el Procesador Padre envía a cada uno de los hijos una imagen de un marco completo, para
ser procesados en forma independiente en cada uno de los hijos disponibles. Esta alternativa se valida en el
hecho que si la velocidad es suficientemente alta, siempre habrá un cuadro de imagen que detecte la
presencia de una roca grande. De esta forma se incrementa la razón proceso/transferencia, aumentando el
gránulo de computo.

4.2.10.2 Procesamiento Segmentado.


En este tipo de paradigma, el pre-procesamiento de las imágenes se logra a través de un procesador
Padre que colecciona las imágenes del frame grabber, y las envía en forma de cuadros consecutivos a cada
uno de los procesadores hijos que participan en la etapa del pre-procesamiento. Los hijos ejecutan así en
forma secuencial cada uno de los pasos mostrados en la sección 4.2.8 del procesamiento digital de la imagen
en particular, sin necesidad de retornar el resultado de vuelta al Padre, ya que serán los hijos los que
determinarán el tamaño de las rocas mediante la red neuronal.

El procesamiento segmentado, requiere que cada hijo, una vez recibido el marco del proceso Padre
comience a procesarlo en su procesador asignado, y una vez finalizado, enviar un reconocimiento de la
terminación del proceso mediante el envío de un ACK al proceso Padre, para que le envíe el siguiente marco.
Entonces el llenado de la tubería (pipe), consta de dos partes:
i) el envío del marco y
ii) ii) el procesamiento del marco, como se ilustra en la siguiente figura 4.34.

En la figura 4.35, se muestra el caso ideal en que el proceso hijo se demora exactamente en procesar el
marco en un tiempo igual al tiempo de transferencia del marco del proceso Padre al hijo. Si Tt es el tiempo
de transferencia y Tp es el tiempo de procesamiento, entonces pueden obtenerse los siguientes tres casos de
rendimiento de una arquitectura segmentada.

Tp = (N – 1) Tt : En este caso la productividad máxima obtenible dependerá de la velocidad máxima de


transferencia de la imagen, determinada por la ecuación 4.14.

Productividad = 1/ Tt imágenes por segundo (4.14)

Otro parámetro de interés es la ganancia de productividad (Throughput) con segmentación versus


secuencial. Sabiendo que la productividad secuencial es 1/ Tp, se puede calcular la productividad del sistema
segmentado para diversas relaciones entre Tp y Tt. Además la ganancia máxima teórica de un pipeline con N
etapas es N, equivalente a un multiprocesador con N procesadores. Un aspecto importante a considerar es
que la tubería estará llena siempre que Tp >= (N – 1) Tt.

AIRENE 4.29
Figura 4.34 Asignación de marcos de imágenes del padre a los hijos

Disco Duro

Padre
(máquina Local)

Hijo 1 Hijo 2 Hijo 3 Hijo 4


(máquina remota) (máquina remota) (máquina remota) (máquina remota)

T0 T1 T2 T3 T4 T5 T6.......... Tn

Hijo 3 Tpo . Pre -pro-


cesamiento

Hijo 2 Tpo . Pre -pro- Tpo . Pre -pro-


cesamiento cesamiento

Hijo 1 Tpo . Pre -pro-


Tpo . Pre -pro-
cesamiento
cesamiento

Eje del Tiempo

Figura 4.35 Llenado del pipe y el procesamiento de los hijos.

En estos casos podemos definir cotas para la ganancia de productividad:

AIRENE 4.30
Tp = (N – 1) Tt, en ese caso se tiene que la productividad con pipeline es 1/ Tt, y por lo tanto la
ganancia es Tp/ Tt = N-1, próximo al máximo teórico para N grande.

Tp ≥ (N-1)Tt : En este caso la productividad del pipeline es N/ (Tp + Tt) y la ganancia es N Tp/( Tp +
Tt).

Tp < (N-1)Tt : En este caso la productividad del pipeline sigue siendo 1/ Tt, y la ganancia es = Tp/ Tt ,
pero como Tp < (N-1)Tt, se tiene que la ganancia < N-1, lo cual se hace desfavorable respecto a los
casos anteriores.

Lo ante rior permite establecer el criterio de que el número de procesadores debe estar determinado
por Tp ≥ (N-1)Tt, de donde N <= Tp/ Tt + 1. Un aspecto importante a considerar y que está pendiente en el
modelo es el aumento del tiempo de transferencia producto de colisiones a medida que aumenta el número de
procesadores en la red.

Los resultados obtenidos en laboratorio muestran que el Tp = 0,44 segundos en un procesador


Pentium de 200 MHz. El valor de Tt medido fue en promedio = 0,17 segundos para Ethernet 10 Mbps y =
0,06 segundos para Fast Ethernet de 100 Mbps. Estos valores son solamente valores estimados ya que no hay
manera de medirlos en forma exacta.

I) Hub de 10 Mbps

a) 1 Proceso Padre y 4 hijos: 0,21 segundos/imagen


Productividad = 4,76 imágenes/segundo

b) 1 Proceso Padre y 3 hijos: 0,26 segundos/imagen


Productividad = 3,81 imágenes/segundo

c) 1 Proceso Padre y 2 hijos: 0,24 segundos/imagen


Productividad = 4,1 imágenes/segundo

d) 1 Proceso Padre y 1 hijo: 0,49 segundos/imagen


Productividad = 2,04 imágenes/segundo

Es de hacer notar que la ganancia de productividad se dobla entre c) y b), disminuyendo luego en el
caso a), debido al efecto de las colisiones del ambiente Ethernet. La ganancia máxima esperada es 0,72N
para el caso que N < 3,58 procesadores.

II) Hub de 100 Mbps

a) 1 Proceso Padre y 4 hijos: 0,16 segundos/imagen


Productividad = 6,25 imágenes/segundo

b) 1 Proceso Padre y 3 hijos: 0,22 segundos/imagen


Productividad = 4,55 imágenes/segundo

c) 1 Proceso Padre y 2 hijos: 0,21 segundos/imagen


Productividad = 4,76 imágenes/segundo

d) 1 Proceso Padre y 1 hijo: 0,39 segundos/imagen


Productividad = 2,56 imágenes/segundo

Nuevamente es de hacer notar que la ganancia de productividad se mantiene al doble entre c) y b).
En este caso la ganancia máxima esperada es de 0,88N donde N < 8,33 procesadores.

AIRENE 4.31
Las siguientes figuras muestras las velocidades obtenidas de los tiempos de respuesta . La figura
4.36, muestra la velocidad con el uso de la arquitectura MIMD, es decir con la división de la imagen en sub-
imágenes; la figura 4.37, a su vez muestra la ganancia obtenida en el factor de velocidad con la utilización
de la arquitectura pipeline.

1,5
Velocidad

HUB 10
1
HUB 100
0,5

0
1 Hijo 2 Hijos 3 Hijos 4 Hijos
Número de procesos hijos

Figura 4.36 Velocidad del procesamiento con MIMD.

3,5
3
2,5
Velocidad

2 HUB 10
1,5 HUB 100
1
0,5
0
1 Hijo 2 Hijos 3 Hijos 4 Hijos
Número de procesos hijos

Figura 2.37 Velocidad del procesamiento con Pipeline.

4.2.11 Conclusiones
Los resultados logrados, si bien no fueron óptimos, permitieron realizar el pre-procesamiento dentro
del margen requerido de 0,25 segundos por cuadro capturado de la cámara de video. Las imágenes obtenidas
en el pre-procesamiento digital lograron un 95% de su objetivo, ya que el factor de iluminación ocasionó un
5% de las fallas de rocas falsas. Las rocas más pequeñas fueron eliminados en un 100% ya que no
representan información relevante para la solución del problema a resolver. La búsqueda del umbral óptimo
se logró basado en un algoritmo de suavizamiento del histograma para determinar si la imagen es del tipo
monomodal o multimodal. El resultado obtenido en las imágenes binarizadas obtenidas basado en este
método de umbral óptimo fueron en general exitosas. Los algoritmos utilizados para acelerar el pre-
procesamiento se basaron en técnicas de paralelismo utilizando una red de computadores PC Pentium de 200
MHz, conectados a través de un hub de 10 Mbps y 100 Mbps. En el ambiente paralelo se trabajó bajo el
paradigma MPI (Message Passing Interface) utilizando dos técnicas de paralelismo:

Emulación MIMD.

AIRENE 4.32
Un proceso padre, divide la imagen de entrada en n subimágenes, asignando cada subimagen a un
hijo respectivo i, donde i= 1,...,n. Es importante mencionar que la velocidad obtenida con esta técnica no fue
la mejor ya que la velocidad se reduce por el exceso de comunicación entre procesadores hijos antes de
realizar la operación de dilatación. Esta conclusión se demuestra al aumentar la velocidad de transferencia
con un hub de 100 Mbps con respecto a la de uno de 10 Mbps. Se espera que esta técnica pueda ser
implementada en futuros trabajos utilizando una máquina SIMD, con el fin de lograr mejores resultados.

Emulación Segmentación (Pipeline).

Un proceso padre, envía cada imagen recibida desde la memoria gráfica en forma consecutiva a cada
uno de sus procesos hijos. Con esta técnica se logra un efecto de tubería, ya que cuando el proceso padre
termina de transferir la imagen correspondiente al último hijo, el primer hijo está listo para recibir la
siguiente imagen, aumentando así el tiempo de procesamiento por hijo dentro de la tubería. La respuesta
óptima de esta técnica permite obtener una velocidad máxima de procesamiento correspondiente a la
velocidad de transferencia de imágenes de padre a hijos. Los resultados obtenidos con esta técnica fueron
superiores a los usados en el punto anterior, ya que los hijos no se comunican entre sí, por lo tanto tienen un
mayor grado de concurrencia entre procesos. Los tiempos de pre-procesamiento obtenidos con un hub de 100
Mbps fueron mejores que los resultados arrojados con un hub de 10 Mbps, lográndose velocidades
superiores a 3 con 4 procesadores hijos. El tiempo final de procesamiento por imagen fue de 0,164 segundos,
lo cual supera las metas propuestas en este trabajo.

4.3.- Codificación utilizando transformadas

El material de este apartado trata básicamente del desarrollo de transformadas bidimensionales y de


sus propiedades para el uso con redes neuronales. La teoría de las transformadas ha desarrollado un papel
clave en el procesamiento de imágenes durante muchos años, y continúa siendo un tema de interés en trabajo
teórico como en el de aplicación en este campo. En las secciones de este capítulo se describirán dos tipos de
transformadas bidimensionales: la transformada de Fourier y la transformada del Coseno Discreto (DCT).
También se desarrollarán técnicas de su uso para la posterior utilización de sus salidas como entradas a la red
neuronal.

4.3.1 Algoritmo de codificación usando la transformada de Fourier


La transformada de Fourier en dos dimensiones ha sido durante muchos años un elemento muy útil
en el desarrollo de aplicaciones para problemas de procesamiento de imágenes. El algoritmo en el plano de la
frecuencia busca compactar la información de la imagen, de tal forma de obtener un conjunto reducido de
componentes de frecuencia que servirán de entradas en la red neuronal. Para poder estudiar algoritmo de
codificación en este área, se debe tener en cuenta algunos de los aspectos prácticos en el desarrollo de
tratamiento de imágenes en el plano de la frecuencia. Primero, se debe observar, como se muestra en la
Figura 4.39, que la secuencia de pasos para un procesamiento de imágenes se basa, indiscutiblemente, desde
la transformación de la imagen digitalizada a una que contiene las características propias del dominio de la
frecuencia (amplitud y fase). Se puede en un primera instancia obtener las amplitudes absolutas de cada uno
de los puntos de la imagen, normalizar y escalar los datos y utilizar toda esta información como entrada para
una red neuronal. También se puede utilizar la información compleja que entrega cada unos de los puntos de
la imagen como futuras entradas a una red neuronal compleja (Complex MLFN)[CBS97a].

Imagen Transformada Normalizar y


Digitalizada de Fourier Escalar Red Neuronal

Figura 4.39. Procedimiento clásico de procesamiento de imágenes utilizando redes neuronales.

AIRENE 4.33
4.3.1.1 Estudio de la transformada de Fourier

Se define la transformada discreta de Fourier en dos dimensiones de la siguiente forma[GW96]:

M −1 N −1  ux vy 
 − j 2π ( M + N ) 
∑ ∑ f ( x, y)e
1
F (u , v ) =  

MN x = 0 y =0
(4.15)

para u = 0, 1, 2,..., M-1, v = 0, 1, 2, ..., N-1, y


M −1 N −1  ux vy 
 − j 2π ( M + N ) 
f ( x, y ) = ∑∑ F (u , v)e  
(4.16)
u = 0 v =0
para x = 0, 1, 2, ..., M-1 e i = 0, 1, 2, ..., N-1.

De la ecuación (4.15) podemos definir como resultado de la transformada de Fourier sobre una
imagen la siguiente ecuación:

F(u, v) = R(u, v) + jI(u, v) (4.17)

donde R(u,v) es denominada la parte real de la transformada y I(u,v) la parte imaginaria. Utilizando la
ecuación (4.17), se define el espectro de Fourier como:

[ ]
1
F (u, v) = R 2 (u , v) + I 2 (u , v) 2 (4.18)

y el ángulo de fase como:

 I (u, v) 
φ (u, v) = tan −1   (4.19)
 R(u , v) 

4.3.1.2 Propiedades observadas en el estudio de la transformada de Fourier


Considerando que la transformada de Fourier nos entrega una gran cantidad de información de la
imagen a través de sus componentes espectrales y angulares, se determinó que gran parte de la información
contenida en estos valores podrían servir para caracterizar una imagen. El resultado de este estudio se deduce
de las ecuaciones (4.15) y (4.16), donde la transformada de una imagen digital contiene suficiente
información, que incluso por propiedades de simetría nos permiten disminuir esta a la mitad. Si se considera
reconstruir la imagen, utilizando su transformada inversa (4.16), se observará que no se necesita toda la
información de la transformada sino que una de las partes simétricas de esta.

Otra de las propiedades encontradas en las transformadas, es que si se rota una imagen en ángulos de
90°, las imágenes simétricas obtenidas tienen el mismo espectro de frecuencia, figura 4.40 y figura 4.41, lo
que permite, en cierta medida, no depender de la espacialidad de las imágenes, lo que es bueno cuando se
intenta, más tarde, clasificar imágenes.

AIRENE 4.34
Figura 4.40 Comparación espectral de dos imágenes simétricas

Figura 4.41 Espectro de imágenes de las figuras 4.40

Otra singularidad presentada en el estudio de los espectros de Fourier en imágenes; es que a menor
combinación de elementos en la imagen, menor es la cantidad de componentes de alta frecuencia, sin
embargo, una gran cantidad de fragmentos de diferentes tamaños generan componentes de altas frecuencias.
Dependiendo del tipo de fragmentos que se encuentren en la imagen las componentes espectrales se
observará un comportamiento diferente. La experiencia ha demostrado que por lo general, imágenes que
contienen rocas de gran tamaño tienden a manifestar perturbaciones en amplitud bastante significativas en
sus esquinas, tal como se muestra en la figura 4.42. En el caso contrario, cuando el conjunto de piedras es
homogéneo, se observa que no existen perturbaciones espectrales significativas, tal como se muestra en la
figura 4.43.

Las componentes espectrales, para el reconocimientos de imágenes de rocas que pueden ser
potenciales para generar un atollo, serán las entradas a las redes neuronales, las que se verán en más detalle
en la sección siguiente. No obstante, es necesario observar que la facilidad de encontrar mallas espectrales
con diferentes características dependiendo de la trama de su imagen original, permite aventurar que estas
pueden ser clasificadas por lo menos en dos grupos de clases las que tienen grandes perturbaciones de alta
frecuencia y las que se comportan de forma estable.

Figura 4.42 Imagen: (a) Piedra grande , g001; (b) y su espectro de Fourier.

AIRENE 4.35
Figura 4.43 Imagen: (a) Piedra chica , c001; (b) y su espectro de Fourier.

4.3.2 Algoritmo de codificación usando la Transformada del Coseno Discreto,


DCT
Los comités CCITT e ISO colaboraron para desarrollar el estándar más popular y extendido para la
compresión de fotogramas de tonalidad continua, denominado JPEG. El estándar JPEG define tres sistemas
diferentes de codificación:

1. Un sistema de codificación básico, con pérdidas, que se basa en la transformada DCT y es apropiado
para la mayoría de las aplicaciones de compresión.
2. Un sistema de codificación extendida, para aplicaciones de mayor compresión, mayor precisión, o de
reconstrucción progresiva.
3. Un sistema de codificación independiente sin pérdidas, para la compresión reversible.

Para poder ser compatible con el estándar JPEG, un producto o sistema debe admitir el sistema
básico. No se especifica ningún formato de archivo en particular, ni la resolución espacial, ni el modelo
espacial de color[GW96]. Atendiendo a las características de compresión del modelo de codificación básico
descrito por Rafael C. Gonzalez (ref.[GW96]), se ha desarrollado un método de codificación para redes
neuronales. Las características de independencia espacial desarrollados por esta técnica permiten obtener
patrones de imágenes con características similares al estudiado en la sección anterior. Una de las diferencias
con la transformada de Fourier con respecto a la DCT es que la última no entrega valores complejos como la
de Fourier sino que su representación esta dada por números reales. Lo que permite manejar los resultados
con mayor claridad que la anterior. A esto se suma, la capacidad de concentración de características de las
imágenes en los primeros coeficientes de la transformada, lo cual facilita la obtención de patrones.

La técnica del presente algoritmo de codificación, se basa principalmente en método de codificación


básico, pero se han adaptado sus resultados para obtener finalmente un algoritmo de codificación DCT que
permita ser utilizado en algún tipo de arquitectura neuronal.

3.2.1 Estudio de la Transformada del Coseno Discreto, DCT


La transformada del coseno discreto unidimensional (DCT) se define como,
N −1
 (2 x + 1)uπ 
C (u ) = α (u ) ∑ f ( x) cos 
x =0  2N  (4.20)
para u = 1,2,3,...,N-1. De forma similar, la DCT inversa se define como,
N −1
 (2 x + 1)uπ 
f ( x) = ∑ α (u )C (u ) cos   (4.21)
u =0  2N
para x = 0,1,2, ..., N-1. En ambas ecuaciones α es:

AIRENE 4.36
 1
 para u = 0
 N
α (u ) =  (4.22)
 2
para u = 1,2,3,..., N − 1
 N

El correspondiente par DCT bidimensional es:


N −1 N −1
 (2 x + 1)uπ   (2 y + 1)uπ 
C (u, v) = α (u )α (v)∑∑ f ( x, y ) cos   cos   (4.23)
x =0 y = 0  2N   2N
para u,v = 0,1,2,3, ... ,N-1, y
N −1 N −1
 (2 x + 1)uπ   (2 y + 1)vπ 
f ( x, y ) = ∑∑ α (u )α (v)C (u, v) cos   cos  (4.24)
x =0 y =0  N −1   N − 1 
para x,y = 0,1,2, ..., N-1, donde α viene dado por la ecuación 4.22

4.3.2.2 Propiedades observadas en la Transformada del Coseno Discreta


En los últimos años, la transformada del coseno discreta se ha convertido en el método preferido para
compresión de datos de imágenes, tal como se mencionó anteriormente, una de las características relevantes
es la aglutinación de parámetros de gran potencia en las primeras instancias de la transformada, tal como se
muestra en la secuencia de figuras: Donde la figura 4.44 representa una imagen simple, la figura 4.45(a)
representa la transformada DCT y la figura 4.45(b) representa el logaritmo de la transformada del coseno
discreta. Los puntos blancos indican un valor grande mientras que los más oscuros representan valores más
pequeños.

Figura 4.44 Una imagen simple de una roca grande

(a) (b)
Figura 4.45 Imagen: (a) Transformada DCT de la figura 3.6; (b) y logaritmo del módulo de la
transformada del coseno discreto en la figura 4.44.
Como se puede observar en las imágenes de la figura 4.45 hay una gran cantidad de puntos en la
esquina superior izquierda, lo que supone una gran concentración de información significativa de la imagen.

AIRENE 4.37
Se ha probado que si se utiliza solo ¼ de la imagen de la transformada, específicamente la esquina superior
izquierda, al aplicar la transformada inversa se puede obtener la imagen original con una calidad bastante
aceptable. Esto indica que estos puntos iniciales concentran la mayor potencia de la transformada. Se deduce
de la ecuación (4.23) que el primer coeficiente de la transformada (u = 0; v =0) es el promedio de puntos de
la imagen, lo que permite ya entregar un parámetro bastante característico de la imagen, que es la densidad
aproximada de puntos. El resto de los parámetros contiene la información necesaria para describir mejor el
objeto que representa la imagen.

En el caso de imágenes binarizadas que contienen rocas, se ha notado que cuando se observa una
gran cantidad de objetos o un objeto altamente denso, el primer parámetro es bastante alto con respecto a los
demás valores, sin embargo, sus valores en los próximos coeficientes tiende a variar, uno con respecto a otro,
de diferente forma. Es así, que en imágenes que contienen gran cantidad de fragmentos las variaciones de los
parámetros son bastante significativas. En el caso de objetos grandes y homogéneos la variación entre
parámetros decrece a medida que se aleja de la esquina superior izquierda de la imagen de la transformada
del coseno discreta.

Para poder observar las variaciones de los parámetros se utilizó la siguiente ecuación de
varianza[MDS94].
2
1 n
σ = ∑ ( yi − y )
2
(4.25)
n i =1
donde n es el conjunto de datos de la muestra e y representa la media y se resuelve con la siguiente
ecuación:
1 n
y = ∑ yi (4.26)
n i=0
También se utilizó la desviación estándar, la cual se define a continuación:

σ = σ2 (4.27)

Las ecuaciones 4.25 a 4.27 se emplean de la siguiente manera en la imagen entregada por la
transformada DCT:

1. Se calcula la DCT para una imagen binarizada de 32x32 pixels.


2. Se divide la imagen en sub-conjuntos de imágenes de tamaño 2x2 pixels tal como se muestra en la
figura 4.46

Figura 4.46. División


de sub-imágenes de
2x2 pixels de una
imagen DCT de
32x32.

AIRENE 4.38
3. Se calcula para cada una de las sub-imágenes su desviación estándar utilizando la ecuación (4.27). El
valor de n para las ecuaciones (4.25) y (4.26) debe ser igual a la cantidad de puntos de la muestra, en
este caso es igual a dos (n = 2).
4. Se almacenan los datos en una matriz de 16x16 pixels, que corresponde a la dimensión final de la
matriz de variación de datos de sub-imágenes de 2x2.
5. Se realiza una exploración de los coeficientes en la matriz de variación de datos, tal como se describe
en la figura 4.47. Cada parámetro explorado se guarda en un vector en orden consecutivo a la
exploración[WdJ95].

Figura 4.47: Ordenamiento de los coeficientes en la matriz de variación de datos, en una imagen de
4x4 pixels.
6. El resultado final es un vector de coeficientes que entrega la variación de datos a medida que se
alejan unos de otros.

Los resultados entregados por el procedimiento descrito anteriormente nos permiten modelar las
características de la imagen a través de la variación de los coeficientes obtenidos por la DCT. El resultado
de una imagen binarizada de tamaño 32x32 nos entrega la siguiente información graficada en la figura 4.48.

Figura 4.48 Resultado entregado por la codificación de una imagen utilizando la transformada del
coseno discreta
El vector DCT obtenido corresponde a la imagen g036, mostrada en la figura 4.49.
AIRENE 4.39
Figura 4.49 Imagen original: g036
Se ha observado que una imagen que contiene un conjunto de piedras chicas, al realizar el algoritmo
de codificación, el vector DCT tiende a tener como primer parámetro un valor menor al que se obtiene al
codificar imágenes con piedras grandes. Sin embargo, en algunas ocasiones los parámetros obtenidos de
imágenes de piedras chicas son muy cercanos a los de piedra grande pero que no logran sobrepasar los
valores de estas últimas. También se ha observado que los siguientes parámetros del vector DCT tienden a
disminuir considerablemente en imágenes de piedras grandes a medida que se alejan de la esquina superior
izquierda de la transformada, ver figura 4.50. En el caso de imágenes de piedras chicas los parámetros,
siguientes al primero, no disminuyen tan drásticamente como en las piedras grandes, y su comportamiento,
para parámetros finales se vuelve oscilatorio, ver figura 4.51.

Figura 4.50: Gráfico de representación del vector DCT: imagen g036, para piedra grande.

AIRENE 4.40
Figura 4.51 Gráfico de representación del vector DCT:imagen c037 para piedras pequeñas.

Comparando ambas curvas se pueden observar los detalle que diferencian una piedra grande (imagen
g047) de una que sólo contiene piedras pequeñas (imagen c037), figura 4.52.

Figura 4.52 Comparación gráfica de dos vectores DCT para piedra grande y piedras pequeñas.

Por lo que se puede estimar que el vector DCT permite obtener una buena caracterización de las
imágenes, para ser entrenadas en una red neuronal.

4.4.- Reconocimiento de Rocas Grandes con Redes Neuronales


Se verán a continuación los algoritmos de codificación que se utilizaron para el reconocimiento de rocas
grandes con redes neuronales.

4.4.1 Redes neuronales y algoritmos de codificación


En este apartado se desea concretar todo el material expuesto, es decir, utilizando el conocimiento
sobre teorías conexionistas y los algoritmos de codificación. Para lo cual se han entrenado diversos
paradigmas de redes neuronales con los datos entregados, por las diferentes imágenes de rocas, a través de

AIRENE 4.41
los algoritmos de codificación. La secuencia de pruebas será en orden consecutivo al apartado anterior
estudiado de codificación, es decir, tal como se indica a continuación:

1. Algoritmo de codificación usando la transformada de Fourier.


2. Algoritmo de codificación usando la transformada del Coseno Discreta.

Los paradigmas de redes neuronales artificiales utilizados para los diferentes sistemas de
codificación serán: Redes de retro-propagación, Mapas auto-organizativos y LVQ

4.4.2 Algoritmo de codificación usando la transformada de Fourier


El presente algoritmo utiliza como entrada imágenes reducidas por el algoritmo de generalización,
para luego aplicar directamente sobre la imagen la transformada bidimensional de Fourier. El resultado final
es una imagen del mismo tamaño con valores complejos. Luego, se aplica un algoritmo que obtiene solo los
espectros del resultado anterior, para ser usados como entrada a la red neuronal. Finalmente, el algoritmo
genera patrones, de imágenes generalizadas de 32x32 pixels, de mil veinte y cuatro coeficientes. Figura 4.53.

Figura 4.53: Etapas previas realizadas para la utilización del algoritmo de codificación con
transformada de Fourier.

4.4.2.1 Perceptrón Multicapa .


Para el entrenamiento se utilizaron los vectores espectrales que se describieron anteriormente, los
cuales se presentaron a la red en 118 patrones. La arquitectura de la mejor red neuronal, que se acomodaba a
este tipo de problema, fue calculada en forma empírica. El diseño final de la red se resume en 1024 neuronas
en la capa de entrada, 1024 en la primera capa oculta, 32 en la segunda capa oculta y una neurona como capa
de salida, figura 4.54

AIRENE 4.42
Figura 4.54: Arquitectura utilizada para entrenamiento retropropagación, con patrones de la
codificación de la transformada de Fourier: 1024 neuronas para la capa de entrada, 1024 neuronas
para la primera capa oculta, 32 neuronas para la segunda capa oculta y 1 neurona para la capa de
salida.

Con la arquitectura neuronal de la figura 4.54, los resultados de convergencia son los mostrados en la
tabla 4.1. Como se puede observar el error cuadrático es bastante pequeño, lo que indica que la red ha
convergido satisfactoriamente. Por lo tanto, el próximo paso a seguir es comparar los resultados de la red
neuronal con los datos de salida utilizados en el entrenamiento.

Cantidad de ciclos de entrenamiento 2000


Error cuadrático 0.0116
Error cuadrático medio 0.0001
Tabla 4.1 : Parámetros de convergencia[ZMV95] de la red neuronal con entrenamiento
retropropagación para el algoritmo de codificación con transformada de Fourier.

La tabla 4.2 muestra el resultado obtenido al comparar el conjunto de entrenamiento, salidas


deseadas, con las salidas calculadas por la red neuronal de la figura 4.2.

Total por Aciertos Porcentaje de aciertos


conjunto
Piedras Chicas 59 59 100 %
Piedras Grandes 59 59 100 %
Total 118 118 100 %
Tabla 4.2 : Cuadro de aciertos con respecto a los patrones de entrenamiento y los
entregados por la red neuronal retropropagación.

Dado que los resultados en aciertos, con respecto al conjunto de entrenamiento, es del orden del
100%, se puede utilizar un conjunto de prueba para observar el comportamiento de la red con datos nuevos.
Tabla 4.3.

Total por Aciertos Porcentaje de aciertos


conjunto
Piedras Chicas 4 4 100 %
Piedras Grandes 4 4 100 %
Total 8 8 100 %
Tabla 4.3: Cuadro de aciertos con respecto a los patrones de prueba y los entregados por
la red neuronal retropropagación.

De los resultados obtenidos se pueden destacar los siguiente aspectos:

AIRENE 4.43
1. En el uso de las arquitecturas para redes estáticas se pudo observar que el número de neuronas en las
capas ocultas tiene efectos bastante grandes en la convergencia de la red. Se estimó que demasiadas
neuronas ocultas cargan grandemente los cálculos de la red, por lo que buscó obtener la arquitectura
justa para obtener una buena convergencia, en un tiempo razonable de entrenamiento. Figura 4.54
2. En base a la arquitectura utilizada para el entrenamiento podemos observar que es bastante buena
para reconocer los patrones entre piedra grande y piedras chicas solo conociendo las componentes
espectrales de Fourier.
3. A pesar de los buenos resultados, los espectros obtenidos de la transformada de Fourier entregan una
gran cantidad de información redundante, ya que la mayoría de los datos presentan alguna simetría
espacial con los datos de la transformada, por lo que se encuentran repetidos. Además se encontrado
una gran cantidad de componentes espectrales repetidas en diferentes tipos de imágenes que no
representan ninguna información adicional.
4. De lo anterior, se puede agregar que toda la información adicional obtenida por la transformada de
Fourier se puede reducir introduciendo nuevos algoritmos, por lo que indirectamente se suman
nuevos factores en el retraso del resultado final de la codificación para cada imagen, lo que puede ser
decisivo en la elección de este tipo de codificación.

4.4.2.2 Mapa de Kohonen


Para el entrenamiento se utilizó un mapa auto organizativo de 16x16 nodos, y 5500 ciclos de
entrenamiento con la herramienta SOM_PAK[KHKL95], la cual fue enfrentada a los vectores espectrales
obtenidos por la transformada de Fourier. A través de dicha herramienta obtenemos un mapa auto-
organizativo aproximado de los grupos generados en el entrenamiento. Para el experimento observamos en el
mapa una degradación de tonos grises en el mapa (Figura 4.55), lo que indica que la generación de dos
grupos de datos, si etiquetamos los nodos y sus activaciones podemos obtener un mapa aproximado donde se
nota claramente la agrupación de patrones en dos clases, piedra grande ó piedras chicas.

De los resultados obtenidos se puede resumir:

1. Los patrones espectrales obtenidos de la transformada de Fourier permiten caracterizar las imágenes,
en este caso, se ha comprobado que los espectros se agrupan según su intensidad, lo que permite
obtener dos clases claramente diferenciables.
2. El entrenamiento por Kohonen permite obtener un mapa de clasificación en el cual sus nodos se
activarán dependiendo del patrón ingresado. La activación para ciertos patrones se concentrará en
ciertas regiones del mapa, lo que permite utilizar los resultados de activación como entrada a otro
tipo de arquitectura neuronal, una supervisada por ejemplo.
3. En el caso práctico de la experiencia se utilizó el mapa de Kohonen para entender mejor el
comportamiento de las componentes espectrales, la capacidad de separar los datos en clases
diferentes nos permite asegurar que los datos contienen elementos representativos para cada tipo de
imagen. No obstante cabe destacar, que Kohonen no asegura si los datos empleados son completos o
redundantes.

AIRENE 4.44
Figura 4.55 : Mapa auto-organizativo generado por patrones espectrales de la transformada de
Fourier. Se observa dos tipo de agrupamiento de datos.

4.4.2.3 Red Neuronal LVQ


En el entrenamiento fue utilizado el software LVQ_PAK versión 3.1. Desarrollado por Teuvo
Kohonen y otros[KHK + 95]. Al igual que la herramienta SOM_PAK, el LVQ_PAK entrega como resultado
del entrenamiento gráficos en donde se representa las diferentes agrupaciones generados por este. El gráfico
es útil para obtener rápidamente una aproximación de lo que esta ocurriendo finalmente con los datos y para
observar la convergencia de este.

Al entrenar el LVQ los resultados entregados al verificar el conjunto de entrenamiento, entradas


deseadas y entradas obtenidas, se resumen en la tabla 4.4. Los resultados obtenidos al enfrentar el conjunto
de prueba se resumen en la tabla 4.5. Otra información importante de destacar es un gráfico entregado por el
sistema en el cual se muestra la distancia entre un codebook y sus pares. Lo que permite obtener una
representación del tipo de agrupación que se generó en el entrenamiento.

Total por Aciertos Porcentaje de


conjunto aciertos
Piedras Chicas 59 59 100 %
Piedras Grandes 59 59 100 %
Total 118 118 100 %
Tabla 4.4 : Cuadro de aciertos con respecto a los patrones de prueba entregados por la red
neuronal LVQ entrenada con componentes espectrales de la transformada de Fourier.

Total por Aciertos Porcentaje de


conjunto aciertos
Piedras Chicas 4 4 100 %

AIRENE 4.45
Piedras Grandes 4 4 100 %
Total 8 8 100 %
Tabla 4.5 : Cuadro de aciertos con respecto al conjunto de prueba entregados por la red
neuronal LVQ entrenada con componentes espectrales de la transformada de Fourier.

En la figura 4.56 se muestran claramente tres grupos, aunque sólo existen dos clases, piedra grande ó
piedra chica, la agrupación es suficiente para poder reconocer las variaciones de las rocas y obtener buenos
resultados.

Figura 4.56: Gráfico de distribución de agrupaciones para el conjunto de entrenamiento de rocas.

De los resultados obtenidos se resume los siguiente:

1. LVQ es una buena herramienta para ser utilizada en este tipo de problemas, una de las características
destacadas es que su algoritmo de entrenamiento es bastante más rápido que el de retropropagación,
además que presenta una mejor tolerancia al error que el algoritmo anterior.
2. Como se pudo observar los componentes espectrales de Fourier son un buen parámetro para el
entrenamiento con LVQ, ya que el algoritmo es capaz de diferenciar agrupaciones de datos
diferentes.
3. Es importante destacar que una ayuda importante es el obtener el mapa auto-organizativo de
Kohonen para este tipo de problemas. En el problema las clases están claramente definidas por lo
que el mapa me permite observar si los patrones ingresados se agrupan en diferentes clases, lo que
permite asegurar, en cierta medida, que los resultados con LVQ puede ser exitosos.

4.4.3 Algoritmo de codificación usando la transformada del coseno discreto


Al igual que el algoritmo de codificación utilizando transformada de Fourier, el algoritmo de
codificación utilizando la transformada del coseno discreto usa como entrada una imagen reducida obtenida
del algoritmo generalización para eliminar información redundante. El esquema básico del uso del algoritmo
se muestra en la figura 4.57.

AIRENE 4.46
Figura 4.57: Diagrama de bloques para la aplicación del algoritmo de codificación utilizando la
transformada del coseno discreto.

Una vez aplicado el algoritmo de generalización, la información suministrada es entregada al


algoritmo de codificación. Para finalmente entregar como salida un conjunto de coeficientes, doscientos
cincuenta y seis, el cual será referenciado como vector DCT. El vector DCT es utilizado como entrada para
el entrenamientos de los diferentes paradigmas que se describen a continuación.

4.3.1 Perceptrón Multicapa.


En el uso de este tipo de entrenamiento, se utilizó una arquitectura de red basado solamente en la
prueba de varias redes diferentes y sus resultados. Finalmente la red que mejor se acomodó al tipo de
coeficientes entregados se detalla en la figura 4.58.

Figura 4.58: Arquitectura utilizada para entrenamiento retropropagación, utilizando el vector DCT
fue: 256 neuronas para la capa de entrada, 256 neuronas para la primera capa oculta, 16 neuronas
para la segunda capa oculta y 1 neurona para la capa de salida.

Como se ve en la figura 4.58, la arquitectura de la red está compuesta de doscientos cincuenta y seis
neuronas de entrada, doscientos cincuenta y seis neuronas en la primera capa oculta, diez y seis neuronas en
la segunda capa oculta y una neurona en la capa de salida.

AIRENE 4.47
Con la arquitectura neuronal de la figura 4.58, los resultados de convergencia son los mostrados en la
tabla 4.6.

Cantidad de ciclos de entrenamiento 2000


Error cuadrático 0.00268
Error cuadrático medio 0.00002
Tabla 4.6 : Parámetros de convergencia[ZMV95] de la red neuronal con entrenamiento
retropropagación para el algoritmo de codificación con la transformada del coseno discreto.

Como se puede observar el error cuadrático es bastante pequeño, lo que indica que la red ha
convergido satisfactoriamente. Por lo tanto, el próximo paso a seguir es comparar los resultados de la red
neuronal con los datos de salida utilizados en el entrenamiento. La tabla 4.7 muestra el resultado obtenido al
comparar el conjunto de entrenamiento, salidas deseadas, con las salidas calculadas por la red neuronal de la
figura 4.6.

Total por Aciertos Porcentaje de aciertos


conjunto
Piedras Chicas 59 59 100 %
Piedras Grandes 59 59 100 %
Total 118 118 100 %
Tabla 4.7: Cuadro de aciertos con respecto a los patrones de entrenamiento y los
entregados por la red neuronal retropropagación.

Dado que los resultados en aciertos, con respecto al conjunto de entrenamiento, es del orden del
100%, se puede utilizar un conjunto de prueba para observar el comportamiento de la red con datos nuevos.
Tabla 4.8.

Total por Aciertos Porcentaje de aciertos


conjunto
Piedras Chicas 4 4 100 %
Piedras Grandes 4 4 100 %
Total 8 8 100 %
Tabla 4.8: Cuadro de aciertos con respecto a los patrones de prueba y los entregados por la
red neuronal retropropagación.

Las observaciones sobre los resultados son los siguientes:

1. Como se puede observar los resultados son bastante auspiciosos, ya que la red neuronal es capaz de
reconocer tanto su conjunto de entrenamiento como el de prueba. Lo que permite especular sobre el
vector DCT como una buena aproximación como codificador de imágenes para una red neuronal.
2. A diferencia del entrenamiento con coeficientes espectrales de la transformada de Fourier, la
transformada del coseno discreto entrega inmediatamente coeficientes reales lo que facilita
enormemente su manipulación e interpretación.
3. Como se estudio en el capítulo anterior, la transformada del coseno discreto concentra la potencia de
sus coeficientes en los primeros elementos de ésta, facilitando aún más la tarea de reducción de
coeficientes para futuras investigaciones.

4.4.3.2 Mapa Kohonen


Para el entrenamiento se utilizó un mapa auto-organizativo de 16x16 nodos. Para la convergencia de
la red se efectuaron cinco mil quinientos ciclos de entrenamiento. Para el entrenamiento se utilizó la
herramienta SOM_PAK[KHKL95]. El resultado entregado por el algoritmo de entrenamiento se encuentra
representado en la figura 4.59, la cual permite observar los diferentes agrupamientos que se generan al
entrenar por el método de Kohonen. Las etiquetas que comienzan con "c" indican que la imagen contiene
piedras chicas y las que comienzan con una "g" indican que la imagen contiene piedra ó piedras grandes.

AIRENE 4.48
Figura 4.59: Mapa auto-organizativo de Kohonen de 16x16 nodos. En la figura se puede notar
claramente dos conjunto de clases.

De los resultados obtenidos podemos decir lo siguiente:

1. El vector DCT resulta ser una buena aproximación para la codificación de las imágenes puesto que
es posible separar los patrones en grupos de clases claramente definibles, esta cualidad es importante
ya que podemos utilizar la salida del mapa para otro tipo de entrenamiento, por ejemplo uno
supervisado.
2. En el proceso de entrenamiento se pudo observar que al utilizar mapas auto-organizativos de menor
tamaño las clases en las agrupaciones generados por la gráfica tendían a mezclarse, es por eso que se
utilizó un mapa de 16x16, ya que con menores tamaños de producían errores.

4.4.3.3 red Neuronal LVQ


Para el aprendizaje de la red se utilizó LVQ_PAK versión 3.1[KHK + 95]. Se utilizaron doscientos
cincuenta y seis codebooks, que asemeja a un mapa de 16x16 nodos en un mapa de Kohonen, en
aproximadamente 1200 ciclos de entrenamiento. Al entrenar el LVQ los resultados entregados al verificar el
conjunto de entrenamiento, entradas deseadas y entradas obtenidas, se resumen en la tabla 4.9.

Total por Aciertos Porcentaje de aciertos


conjunto
Piedras Chicas 59 59 100 %
Piedras Grandes 59 59 100 %
Total 118 118 100 %
Tabla 4.9 : Cuadro de aciertos, con respecto a los patrones de entrenamiento, comparación
de las salidas deseadas con las salidas de la red neuronal, utilizando el vector DCT.

Los resultados obtenidos al enfrentar el conjunto de prueba se resumen en la tabla 4.10.

Total por Aciertos Porcentaje de aciertos


conjunto

AIRENE 4.49
Piedras Chicas 4 4 100 %
Piedras Grandes 4 4 100 %
Total 8 8 100 %
Tabla 4.10 : Cuadro de aciertos, con respecto al conjunto de prueba, entregados por la red
neuronal LVQ entrenada con las salidas del algoritmo de codificación utilizando la
transformada del coseno discreta.

Además de la información proporcionada en el conjunto de aciertos de la red LVQ se puede obtener


un gráfico de las distancias de los codebooks tal como se muestra en la figura 4.60. Al igual que los
resultados de la codificación anterior, el cuadro de distancias para LVQ también presenta tipos de
agrupaciones que permiten obtener las dos clases.

Figura 4.60: Gráfico de distribución de agrupaciones para el conjunto de entrenamiento de rocas,


utilizando el vector DCT.

De los resultados obtenidos se puede observar:

1. El algoritmo LVQ resultó ser bastante eficiente en el entrenamiento de este tipo de redes, se observó
varias ventajas con respecto a su símil, la transformada de Fourier, ya que los tiempos de generación
de patrones y entrenamiento resultaron mucho mejores.
2. También se observó que el LVQ produjo una sintonización de los grupos para la obtención de sus
clases, es decir, elementos que se encontraban dentro de la frontera de una clase distinta fueron
recorregidos e integrados perfectamente a la clase correspondiente. Lo que auspicia un buen
comportamiento de la red para los patrones obtenidos a través de la transformada del coseno discreta.
3. Sin embargo, se cree que a pesar de los buenos resultados obtenidos por los vectores DCT, estos aún
contienen mucha información por lo que esta puede ser reducida aún más.

4.4.4 Conclusiones
El material recopilado y desarrollado ha permitido comparar distintos tipos de redes neuronales
como también los diferentes tipos de codificación de imágenes. Para el tipo de problema enfrentado,

AIRENE 4.50
detección de piedras grandes y causales de atollo, la codificación de imágenes cobra una relevancia bastante
importante, considerando que las imágenes tomadas por cualquier sistema constan de información
redundante que debe ser filtrada, además los algoritmos deben ser capaces reducir la cantidad de datos, sin
perder el sentido esencial del problema, y aumentar la información suministrada por los mismos.

En el caso del reconocimiento de piedras causante de atollo, que no es más que reconocer cuando en
la correa transportadora existe una piedra lo suficientemente grande para ser considerada como obstáculo
para ingresar a la boca del molino semiautógeno. El problema pareciera tener una connotación bastante
simple, puesto que nosotros a simple vista podemos saber si una piedra es irregular con respecto a la demás,
tarea no trivial para el computador. Los sistemas tradicionales de detección basa su fuerza en una gran
cantidad de transformaciones y cálculos sobre la imagen, en el caso específico del problema de
reconocimiento de rocas, además de los filtros para el acondicionamiento de imágenes [GW96] se debe
agregar algoritmos que sean capaces de descubrir la cantidad de objetos sobre la imagen y su área. Los
algoritmos que se propusieron en conjunto con las redes neuronales, basan su potencia de cálculo en
algoritmos específicos y en el aprendizaje realizado con anterioridad a la red neuronal, permitiendo acelerar
el proceso de detección de rocas en una correa transportadora. Una buena aproximación a codificadores de
imágenes se encontró en el uso de transformadas que presentaron una buena tasa de aciertos para reconocer,
en conjunto, la existencia de piedras grandes ó piedras chicas. La ventaja de estos codificadores es la
facilidad de su uso, puesto que es necesario sólo ecualizar la imagen y binarizarla para que este lista para el
algoritmo.

Otra fortaleza de este tipo de algoritmo es la capacidad que se tiene para poder disminuir más la
cantidad de datos suministrada a la red, sin perder información importante. Sobre las desventajas observadas
se puede señalar que hasta el momento los buenos resultados han sido satisfactorios cuando se trata a la
imagen como un todo y la red decide cuando hay una roca peligrosa o no, pero no para obtener diferencias
entre los tipos de piedras de la imagen o la cantidad de estas. Sin embargo, se cree que los algoritmos
basados en transformada pueden ser muy útiles para detectar anormalidades no solo en imágenes de piedras,
sino también en la detección de nódulos en madera, anomalías en radiografías, etc. Como se dijo
anteriormente los cálculos son orientados hacia el plano general de la imagen y no a componentes
particulares de esta.

4.5.- Medición Granulométrica con Redes Neuronales

Se propone a continuación un esquema de medición de rocas mediante Redes Neuronales, basado en


la segmentación de las siluetas de rocas obtenida en el Pre-procesamiento de las imágenes. Las redes
neuronales en estudio se basan en la redes retropropagación con una capa intermedia. Este esquema implica
hacer un barrido de la imagen resultante de la etapa de pre-procesamiento mediante una cuadrícula cuya
dimensión debe ser del tamaño de la roca a detectar. El tamaño de las entradas a la red neuronal dependerán
entonces del tamaño de esta cuadrícula. Si nos referimos a la figura 4.61 donde a manera de ejemplo, se
muestra una imagen de tamaño de nxn = 16x16 pixeles, donde la cuadrícula en trazos más oscuros es la que
determina entonces el tamaño de la rocas a determinar. En la figura el tamaño de la cuadrícula es de mxm =
4x4 pixeles.

De acuerdo a esta cuadrícula de 4x4 la red neuronal tendría como entrada 16 neuronas y podrían
usarse 10 neuronas en la capa oculta y una en la salida. La red neuronal entonces es entrenada con las
imágenes resultantes que estén encuadradas dentro de esta cuadrícula. La red neuronal se entrena de tal
manera que a medida que se va desplazando la cuadrícula por la imagen pixel por pixel, la salida es
reconocida como válida solamente cuando la roca en sí esté encuadrada dentro de la retícula que se está
desplazando (salida =1). Si cualquier pixel de la roca no se encuentra en el interior de la cuadrícula, la salida
será reconocida como falsa (salida = 0). Esto implica que las rocas de mayor magnitud que las de la
cuadrícula serán rechazadas por la red neuronal.

AIRENE 4.51
Figura 4.61 Imagen pixelada pre-procesada, y cuadrícula de reconocimiento.
El entrenamiento comienza con la retícula en su posición extrema izquierda, desplazándose por la
imagen pixel por pixel. El barrido de ésta cuadrícula es en sentido horizontal y luego vertical. El proceso de
desplazamiento de la retícula termina cuando la cuadrícula alcanza el extremo inferior derecho. El orden de
desplazamiento de la cuadrícula es O(n2). Esto implica que el tiempo de procesamiento por cada tamaño de
cuadrícula es de complejidad de orden cuadrático, pero debido a que el procesamiento es uniforme, este
algoritmo se puede realizarse con múltiples procesadores para así reducir el tiempo final de computo.

Una vez que el barrido de la cuadrícula se ha realizado por la imagen completa, se deben validar los
pixeles restantes que no fueron consideradas en el tamaño de la cuadrícula. Una vez logrado esto, se aumenta
el tamaño de la cuadrícula ahora en 6x6, lo que el algoritmo se repetirá para un nuevo barrido. Hay que
destacar, que tanto el barrido horizontal de la cuadrícula como el barrido vertical, es siempre menor que n, el
valor exacto es (n-m), donde m es el tamaño horizontal o vertical de la cuadrícula. Por lo tanto la cantidad de
barridos horizontales y verticales es (n – m)2. Así para una cuadrícula de tamaño mayor, la cantidad de
barridos disminuye. No obstante, el problema de reconocimiento de patrones de rocas que sean de tamaño
de la cuadrícula no puede diferenciarse cuando el tamaño de la roca es mayor que el de la cuadrícula como se
muestra en la siguiente figura 4.62.
Para resolver este problema, solamente basta con incrementar el tamaño de la cuadrícula en un 1x1
pixel de tamaño, de tal forma que la roca quede completamente “desacoplada” desde su alrededor o como
también puede ser el caso del tipo “parcialmente desacoplada” cuando las rocas están básicamente
superpuestas unas con otras, como se muestra en la siguiente figura 4.63.

Caso de tamaño de
Granulometría = 4

Caso de tamaño de
Granulometría = 5

Figura 4.62 Problema de reconocimiento cuando la roca a detectar es mayor que la cuadrícula.

AIRENE 4.52
Caso 1: Roca
completamente
“desacoplada”

Caso 2: Roca
parcialmente
“desacoplada”

Figura 4.63 Reconocimiento de Rocas completamente y parcialmente desacopladas en la cuadrícula.

4.5.1 Concepto de Cuadrícula


La cuadrícula es entonces conceptualmente dividida en dos regiones para facilitar el entrenamiento
de la red neuronal:
Región Central

Caso 1: Roca
completamente
“desacoplada”

Caso 2: Roca
parcialmente
“desacoplada”

Región
Perisférica

Figura 4.64 Cuadrícula con sus dos regiones: Central y Perisférica.


1. Región central de la cuadrícula, que representa el tamaño de la roca a detectar.
2. Región perisférica necesaria para asegurar que lo que pueda aparecer como una roca en la región
central, y no sea parte de una roca de mayor tamaño.

Ambas regiones se ilustran en la figura 4.64. Hay que hacer notar que en el caso 2, la roca a detectar
debiera pertenecer a un tamaño de cuadrícula superior. Pero no obstante se puede también entrenar la red
neuronal tal que si la roca se encuentra “parcialmente desacoplada”, podría pertenecer al tamaño de la
cuadrícula que se está analizando, y que puede ser el caso cuando las rocas se encuentran superpuestas unas
con otras.

4.5.2 Condición de Desacoplamiento


La determinación de la condición de desacoplo, es crítica para el entrenamiento de la red neuronal, el
cual se le puede aplicar el siguiente criterio:

Si solo unos pocos pixeles contiguos de la región periférica de la cuadrícula son 1s (p. ej. desde 1 a 3
pixeles), entonces la región central en la cuadrícula considera a la roca válida. Esto se visualiza en la
siguiente figura 4.65, donde basado en el criterio de condición de desacoplo, logra reconocer en la imagen 3
rocas en vez de 2.

AIRENE 4.53
Ambas rocas se
encuentran
desacopladas

Figura 4.65 Condición de desacoplo, reconoce tres rocas en vez de dos.

4.5.3 Implementación del Análisis Granulométrico


En esta parte se introducen los algoritmos implementados en este proyecto y el algoritmo utilizado
para realizar el análisis granulométrico de las muestras.

4.5.3.1 Entrenamiento
Para llevar a cabo el entrenamiento se usaron múltiples imágenes sintéticas de rocas, similares a
aquellas que posteriormente tendrán que ser analizadas por el programa. Todas ellas en escala de grises y con
un tamaño de 256x256 pixels.En primer lugar se realizó el pre-procesamiento a todas las imágenes
seleccionadas para contar con imágenes similares a las que las redes fueran posteriormente a utilizar, y se
escogieron 2 tamaños de roca distintas para el análisis: 15x15 y 20x20, y se generaron todas las muestras
posibles de imágenes de esos tamaños que podrán ser analizadas por las redes.

Una vez que se disponía de todos los ejemplos se realizó una primera selección de los ejemplos más
significativos (tanto positivos como negativos) de tal manera que la cantidad de ejemplos de aprendizaje y
validación no fuese excesiva y se entrenaron las tres redes. Los datos de los distintos aprendizajes pueden
observarse en la siguiente tabla 4.11:

Tamaño Ejemplos Ejemplos Época MSE


positivos negativos
ap. ap.
15x15 22 58 200 0.000001
20x20 17 91 200 0.000025
Tabla 4.11: Datos del aprendizaje de las redes

Cabe destacar la cantidad reducida de ejemplos utilizados para el tamaño de 15x15. Esto es debido a
que no existen muchos ejemplos positivos para ese tamaño de ventana dado, debido el pre-procesamiento al
que se ven sometidas las imágenes. Dado que se produce un proceso de erosión y dilatación que es llevado a
cabo en cinco iteraciones, las rocas de menor tamaño que pueden ser generadas son aquellas que tienen al
menos un ancho de 11 pixeles, dado que en cada paso de la dilatación se añade un pixel alrededor de todos
los pixeles que han quedado tras la erosión. Esto nos da lugar a rocas cuadradas (dado que el elemento
estructurador de dilatación tiene esta forma).

4.5.3.2 Selección de ejemplos


La selección de ejemplos es un trabajo manual. En un principio se barajó la posibilidad de realizar
los ejemplos de manera sintética asumiendo que los distintos tipos de siluetas que se podían generar con el
pre-procesamiento eran más o menos conocidos. Sin embargo se comprobó que eso no era cierto para
tamaños de roca mayores, por lo que se optó por generar los ejemplos de imágenes reales, con el
consiguiente trabajo posterior de análisis y selección.

AIRENE 4.54
Existe sin embargo un caso en el que sí que era posible generar los ejemplos sintéticamente, y es en
el caso de las rocas de 15x15, ya que las rocas válidas para ese tamaño suelen ser cuadrados perfectos de
tamaño entre 11 y 13 pixeles. No se introdujeron a mano ejemplos de rocas más grandes debido al mayor
número de posibilidades que engloban. A medida que el tamaño de ventana crece se hace necesario aumentar
el número de ejemplos tanto positivos como negativos.

Es importante destacar que una red debe reconocer una roca en una ventana siempre y cuando esté
completamente desacoplada, debido a que no es posible diferenciar en este problema cuando una roca es
exactamente del tamaño de la ventana y cuando es mayor que ella. Para resolver este problema se exige que
la roca esté completamente desacoplada, de tal forma que no haya posibilidad de error, y que exista un
espacio de al menos un pixel entre el final de la roca y la ventana. Existen diversos métodos para aceptar
rocas que estén parcialmente desacopladas que no se han tratado en este análisis, pero que permiten
diferenciar rocas que están básicamente superpuestas unas con otras. Gran parte de estos métodos se basan
en enseñar a la red que determinados ejemplos parcialmente desacoplados son válidos.

4.5.3.3 Algoritmo de granulometría


El algoritmo definitivo tiene la siguiente estructura:

INICIO
leer_imagen
ecualizar_imagen
suavizar_histograma
calcular_umbral_optimo
filtro_mediana
umbralización
DESDE 1 HASTA 5 HACER
erosion
FIN DESDE
DESDE 1 HASTA 5 HACER
dilatacion
FIN DESDE
PARA CADA tamaño DE VENTANA /* de menor a mayor */
DESDE 1 HASTA ancho
DESDE 1 HASTA alto
introducir ventana(tamaño) en red(tamaño)
SI hay_roca ENTONCES rocas(tamaño) = rocas(tamaño) + 1
FIN DESDE
FIN DESDE
FIN PARA
FIN

Una vez obtenida las imágenes después del pre-procesamiento, se obtiene como resultado las siluetas
de las rocas más significativas de acuerdo a su tamaño. Esta imagen es introducida directamente en las redes
neuronales ya entrenadas. El programa utilizado para realizar el aprendizaje de las redes neuronales en
este trabajo es el SNNS en su versión 4.2.

4.5.3.4 Resultados
En este apartado se muestran distintos resultados obtenidos con los algoritmos de granulometría
desarrollados. Se han dividido las pruebas en resultados para distintas imágenes generadas sintéticamente.
Las imágenes sintéticas fueron usadas con una herramienta gráfica para generar las 'piedras', de tal manera de
poder comprobar el comportamiento del algoritmo en condiciones objetivas, ya que podemos identificar con
claridad la cantidad de aciertos obtenidos. El primer ejemplo de imagen sintética es mostrada en la figura
4.66a. La selección de nivel de grises se ha llevado a cabo de tal forma que los contrastes sean elevados,
simulando un color oscuro para el fondo (el suelo) y un gradiente de color más claro para las piedras,

AIRENE 4.55
simulando los colores más intensos en el histograma producidos por el reflejo de la luz en las rocas, que
suelen estar en una posición más elevada o que reflejan más vivamente la luz.

Se puede observar como los procesos morfológicos eliminan el ruido y delimitan más claramente el
contorno de las rocas. El resultado de la búsqueda de rocas de tamaño 15x15 y 20x20 aparece en la figura
4.66b. Podemos comprobar que el programa ha detectado 6 piedras de tamaño 15x15 y 3 de tamaño 20x20.
Es importante observar cómo el algoritmo no considera dos rocas de tamaño medio por la zona central de la
imagen, ya que son demasiado grandes para el tamaño 15x15 y demasiado pequeñas para el tamaño 20x20.

(a) (b)
Figura 4.66 (a) Imagen sintética de pruebas N°1 (b) Resultado de la detección de rocas para la imagen
(a).
El siguiente ejemplo que se muestra en la figura 4.67a es otra imagen similar, esta vez con efectos
algo mas realistas y que se pueden encontrar en imágenes reales, como son gradientes y contrastes menos
acentuados. De nuevo se somete la imagen a la detección y los resultado son los mostrados en la figura
4.67b.

(a) (b)
Figura 4.67 (a) Imagen sintética de pruebas N°2 (b) resultado de la detección de rocas para la imagen
(a)
En este caso no existe ninguna roca que encaje en el tamaño 15x15, aunque sí podemos comprobar
que muchas se acercan a tal tamaño. La mayoría de ellas tienen tamaños superiores por apenas un pixel.
Esto nos muestra la precisión con la que el mecanismo de reconocimiento actúa. También se observa como
encuentra rocas de tamaño 20x20.
Por último, la figura 4.68(a) y (b) muestra otro ejemplo sintético con distintas tonalidades. En este
caso se encuentran tres piedras 15x15 y otra de 20x20.

AIRENE 4.56
(a) (b)
Figura 4.68 (a) Imagen sintética de pruebas N°3 (b) resultado de la detección de rocas para la imagen
(a).

4.5.4 Resultados. Tiempos de procesamiento y optimizaciones al proceso


La tabla siguiente 4.12 muestra los tiempos obtenidos para los distintos tamaños de roca en un
algoritmo que podemos denominar de 'fuerza bruta', es decir, en el que se va recorriendo toda la imagen
copiando una y otra vez los pixeles necesarios a medida que se desplaza la ventana por ella. Como se puede
observar la cantidad de llamadas a la red neuronal corresponde con el número de ventanas del tamaño
correspondiente que existen en la imagen. Este método tiene su principal problema en la cantidad de datos
que han de copiarse de nuevo y moverse desde la imagen hasta la estructura para pasar a la red neuronal.

Tamaño Llamadas a la red segundos


15x15 58081 36
20x20 55696 260
Tabla 4.12 Tiempos de procesamientos para diferentes tamaños de cuadrícula.

Es interesante observar cómo el tiempo aumenta a medida que aumentamos la ventana, ya que, a
pesar de que se realizan menos llamadas a la red, el movimiento de memoria en pixeles es mayor (13068225
para 15x15 frente a 2278400 con 20x20) y el coste de llamar a la red neuronal también es mayor. Este
tiempo aumenta exponencialmente con el tamaño de la ventana. Para intentar mejorar la latencia de los
accesos a memoria se modificó el algoritmo para aprovechar los datos que ya estaban leídos previamente
para no tener que moverlos de nuevo para ellos en la ventana del tamaño especificado (p. ej 15x15) se lleva
la cuenta del primer pixel que compone la ventana con una pareja de índices. En el primer momento estos
índices corresponderán a la posición (0,0). Tras mover la ventana un pixel hacia la izquierda se desplazan
los índices apuntando ahora a (0,1), indicando que debe empezar a contarse por la segunda columna y se
rellenan con nuevos datos (en este caso la columna 16 de la imagen real) la primera columna de la ventana.
Al interpretarlos se tiene en cuenta que el índice comienza en la segunda columna y al llegar al final tiene
que volver a la primera.

Este proceso de mover los índices se transmite de manera cíclica a medida que la ventana avanza por
la imagen. Además la ventana se va moviendo en forma de zig-zag para ir aprovechando los cambios de fila
del mismo modo. Con este método los tiempos obtenidos para los mismos casos anteriores son los que
muestran la tabla 4.13.

Tamaño Llamadas a la red segundos


15x15 58081 29
20x20 55696 240
Tabla 4.13 Tiempos de procesamientos para diferentes tamaños de cuadrícula con métodos
de indexación.

AIRENE 4.57
Los resultados de esta optimización nos muestra que aproximadamente el 90% de la latencia del
programa era producto de la implementación de las redes neuronales de SNNS. Por lo tanto la única manera
de reducir el coste del procesamiento de las imágenes es reducir el número de llamadas a las redes
neuronales. Se modificó el algoritmo de tal forma que aprovechase el valor de la salida de la propia red
neuronal. El valor de salida de la red es cercano a 0 en el caso de que la región analizada diste mucho de
contener una piedra. En ese caso no se pierde generalidad si la ventana avanza en saltos mayores de un pixel
y desde luego menores que el tamaño de la ventana en sí. De esta manera se puede dividir el órden por una
constante cercana a n, donde n es el número de pixeles que nos movemos cuando el resultado de la red
neuronal es cercano a 0. Se pueden aprovechar incluso este valor para moverse más rápido a medida que el
valor de la red se acerca a 0. En este ejemplo hemos elegido usando la opción de avanzar 1/5 del tamaño de
la ventana para salidas de la red menores que 0.1. De esta manera, teniendo en cuenta que en nuestros
ejemplos la red se encuentra un 90% del tiempo por debajo de 0.1 optimizamos el proceso en tiempo
aproximadamente 3 veces para tamaños de 15x15 y 4 veces para 20x20. Los resultados obtenidos se
muestran en la tabla 4.14, obteniendo igualmente un 100% en la tasa de aciertos.

Tamaño Llamadas a la red segundos


15x15 8331 4
20x20 8021 34
Tabla 4.14 Tiempos de procesamientos para diferentes tamaños de cuadrícula con métodos
mejorados de búsqueda.

Este tipo de mecanismo adaptativo es el mejor de los métodos usados para el reconocimiento. No
obstante se pueden además agregar técnicas de multiprocesamiento para reducirlos los tiempos de
procesamiento y acercarse más aún a los tiempos de procesamiento real.

4.5.5 Vías Futuras


Este trabajo hasta el momento ha pasado por diferentes etapas de mejoras para optimizar el
algoritmo, pero como vía futura se debe continuar con ejemplos de rocas reales y de mayor tamaño. También
se deben considerar soluciones que involucren máquinas paralelas para acelerar el tiempo de cómputo. A
continuación se presentan algunas alternativas por la que es posible optimizar el tiempo de procesamiento.
Los principales consisten en la utilización de varios procesadores en paralelo y mejorar algunas de las
técnicas de procesamiento digital de las imágenes.

4.5.5.1 Procesamiento paralelo


El procesamiento paralelo para este tipo de análisis granulométrico puede tener diferentes niveles de
paralelismo, dependiendo de la granulometría de las tareas (tamaño de la tarea) que se desee implementar.

Particionamiento de la imagen : En este nivel de paralelismo, el procesador padre le asigna a cada


procesador hijo una porción de la imagen, donde cada procesador hijo realiza su tarea en forma
independiente de los demás, entregando sus resultados al término de su procesamiento al proceso
padre para que este vaya calculando en línea la estadística de la granulometría.

Procesamiento por cuadrícula : En un nivel inferior de gránulos de tareas a computar, el


procesador padre le asigna a sus hijos un tamaño de cuadrícula diferente, donde cada hijo trabaja
sobre la imagen completa con su respectiva cuadrícula. Estos entregan sus resultados al proceso
padre, para que éste realice la recolección de los resultados finales.

Procesamiento combinado: En este otro nivel, los gránulos de tareas se hacen más pequeños, al
asignar a cada procesador hijo una porción de la imagen y una cuadrícula de tamaño diferente a los
demás. Entonces cada hijo trabaja sobre su porción de la imagen y con su respectiva cuadrícula,
entregando su resultado al proceso padre en la recolección final de la imagen completa.

AIRENE 4.58
4.5.5.2 Ecualización local
Los métodos de ecualización que hemos comentado anteriormente se denominan locales en el
sentido de que los pixeles se modifican mediante una función de transformación basada en la distribución de
los niveles de gris en toda la imagen. Aunque esta aproximación global es adecuada para obtener una mejora
de la imagen en su conjunto, no consigue realizar mejoras localizadas para detalles pequeños de la imagen.
El área que se desea mejorar puede que tenga un tamaño tan reducido que los pixeles y la cantidad de color
que contienen no incluyen de manera significativa en el cálculo de la transformación global, por lo que el
empleo de este tipo de transformación no nos asegura en ningún caso la mejora para esa zona en concreto.
La solución a este problema es utilizar funciones de transformación que se basen en los niveles de gris de la
vecindad de cada pixel de la imagen. Podemos definir un entorno rectangular y movernos pixel a pixel. Por
cada uno de ellos se calcula el histograma de la vecindad y se procede con su ecualización. Con la función
obtenida se calcula el nivel del gris del pixel central. Este proceso se repite moviendo el entorno al pixel
adyacente y así sucesivamente. Para agilizar el proceso se pueden usar diversas técnicas, como la de
actualizar el histograma del paso anterior en vez de generarlo de nuevo o bien calcular siempre el histograma
para regiones que no se solapen.

Referencias .-

[Bekios, 1997] Bekios, J., Chait, M., Pon, C. , 1997. "Preprocesamiento de imágenes para tratamiento en
redes neuronales", Anales XII Congreso Chileno de ingenieríaElectrica, Universidad de la Frontera, Temuco.

[Brigham, 1974] Brigham, E. Oran, The Fast Fourier Transform,4ª edición, by Prentice- Hall, Inc., New
Jersey, E.E.U.U., (1974).

[Cordero, 1998] Cordero C., Yañez L., 1998, “Preprocesamiento Paralelo de Imágenes Digitales en Tiempo
Real”, Tesis para optar al título de Ingeniería de Ejecución en Computación e Informática, Universidad
Católica del Norte, Antofagasta.

[Crida, 1995] Crida, R. Ch., 1995, “A Machine Vision Approach to Rock Fragmentation Analysis”, Ph. D.
Thesis, University of Cape Town, South Africa.

[Chait, 1998] Chait, M.; Pon C., Pérez, F.; Puelles M.; Robles P., 1998, “Paralelización de Algoritmos de
Redes Neuronales”, X Simposio Internacional en Aplicaciones de Informática, Universidad Católica del
Norte, Antofagasta.

[Fisher, 1997] http://q127-3.coventry.ac.uk/~hipr/morintr.html, Hipermedia Image Processing Reference,


Bob Fisher, Simon Perkins, Ashley Walker, Erik Wolfarl, University of Ediburgh, E.E.U. U., (1997).

[Gallagher, 1976] Gallagher, E., 1976, “Optoelectronic Coarse Size Analysis for Industrial Measurement and
Control,” Ph. D. Thesis, University of Queensland, Dept. of Mining and Metallurgical Engineering,
Australia.

[González, 1996] González, Rafael C., Woods, Richard E., Tratamiento Digital de Imágenes, 6ª edición,
Editorial Addison-Wesley Iberoamericana, S.A., Delaware, E.E.U.U., (1996).

[Grannes, 1986] Grannes, S.G., 1986, “Determine size distribution of moving pellets by computer image
processing,” 19th Application of Computers and Operations Research in Mineral Industry, R.V. Ramani, ed.,
SME, pp. 545-551.

[Gunther, 1985] Gunther, F.M., 1985, “Software for a particle-size analyzer based on image analysis
techniques”, Master Thesis, University of the Witwatersrand.

AIRENE 4.59
Informe Técnico Nº 022: “Análisis de la Sensibilidad requerida por un medidor de la distribución
granulométrica en la alimentación de la molienda SAG de Chuquicamata”, Proyecto P5017-A desarrollado
por el CIMM.

[Jain,1989] Jain, Anil K., Fundamentals of Digital Image Processing, 5ª edición, Editorial Colleen Brosman,
by Prentice- Hall, Inc., New Jersey, E.E.U.U., (1989).

[Kemeny, 1994] Kemeny, John, 1994, "Practical technique for determining the size distribution of blasted
benches, waste dumps and heap leach sites". Mining Engineering Journal, Nov. 1994.

[Lange, 1990] Lange, T.B., 1990, “Measurement of the size distribution of rocks on a conveyor belt using
machine vision”, Ph. D. Thesis, University of the Witwatersrand.

[Lin, 1993] Lin, C.L., Yen, Y.K., and Miller, J.D., 1993, “Evaluation of a PC image-based on-line coarse
particle-size analyzer,” Proceedings, Symposium of Emerging Computer Techniques for the Mineral
Industry, AIME/SME, pp. 201-210.

[Matarese,1997] http://www_erl.mit.edu/cagc/mpi/sendrecv/overview.html, MPI Tutorial- Passing a


Message, Joe Matarese, E.E.U.U., (1997).

[MCS, 1998] http://www.mcs.anl.gov/Projects/mpi/www/www3/MPI/_Send.html, Send of W32MPI,


MCS(Mathematics Computer Science Division0), San francisco, E.E.U.U., (1998).

[Ord, 1988] Ord, A., 1988.,” Real-time analysis of size and shape distribution of rocks fragments,” AIMM,
Explosives in Mining Workshop, Melbourne, Australia, pp. 115-119.

[Pacheco, 1996] http://www.mcs.anl.gov/mpi/index.html, A User’s Guide to MPI, Pacheco, Peter S., San
Francisco, E.E.U.U., (1996).

[Pérez, 1997] http://bucanero.es/wwwcurso/ccordoba/, Fundamentos del Tratamiento de Imágenes. Visión


por computador, Nicolás Pérez de la Blanca Capilla, España, (1997).

[Pon, 1995] Arquitecturas Paralelas, Carlos Pon, Apuntes del Curso de Computación Paralela, Antofagasta,
1995.

[Pretorius, 1989] Pretorius C., 1989.,“Rock size monitoring on conveyor belt systems using neural
networks”, Proceedings of the Second South African Workshop on Pattern Recognition.

[Puzenat, 1998] Puzenat, D., 1998., “ Classification of Rocks using a MIMD parallel computer on a Network
of Workstations”, X Simposio Internacional en Aplicaciones de Informática, Antofagasta, Chile.

[Silicon, 1997] Interface Passing Message, Silicon Graphics, p.13.3-13.23, 6ª edición, E.E.U.U, (1997).

[VisionPlus, 1997] Imaging Technology Inc., VisionPlus-At, p.9-12, E.E.U.U, (1997).

[Wigeson, 1987] Wigeson D., 1987.,” Fragmentation Analysis using computer vision techniques”, Master
Thesis, University of Witwatersrand.

AIRENE 4.60

Вам также может понравиться