Академический Документы
Профессиональный Документы
Культура Документы
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.
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.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.
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
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:
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.
- 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.
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
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:
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.
AIRENE 4.5
Montículos de fragmentos
de rocas
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
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.
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.
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
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.
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)
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).
(x,y)
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].
f(x,y) * g(x,y) = ∫∫
−∞
f (α , β ) g ( x − α , y − β ) d α d β (4.2)
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)).
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:
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.
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).
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)
(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.
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
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
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
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
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.
AIRENE 4.13
se realiza mediante el análisis del histograma. El comportamiento del histograma puede ser monomodal o
multimodal.
(a) (b)
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 )
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
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.
^
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)
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)
(a) (b)
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.
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.
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.
Red de Interconexión
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
AIRENE 4.18
MPI provee un conjunto de rutinas de comunicación punto a punto, existiendo cuatro modos de
comunicación. Estos son:
• 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.
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.
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.
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.
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.
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.
(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.
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.
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)
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.
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.
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.
Proceso Hijo Proceso Hijo Proceso Hijo Proceso Hijo Proceso Hijo
(Rank = 1) (Rank = 2) (Rank = N -1) (Rank = N) (Rank = N+1)
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
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.
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.
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.
AIRENE 4.29
Figura 4.34 Asignación de marcos de imágenes del padre a los hijos
Disco Duro
Padre
(máquina Local)
T0 T1 T2 T3 T4 T5 T6.......... Tn
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.
I) Hub de 10 Mbps
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.
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
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
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.
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.
AIRENE 4.33
4.3.1.1 Estudio de la transformada de Fourier
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)
De la ecuación (4.15) podemos definir como resultado de la transformada de Fourier sobre una
imagen la siguiente ecuación:
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)
I (u, v)
φ (u, v) = tan −1 (4.19)
R(u , v)
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
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.
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.
AIRENE 4.36
1
para u = 0
N
α (u ) = (4.22)
2
para u = 1,2,3,..., N − 1
N
(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:
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.
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:
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
Figura 4.53: Etapas previas realizadas para la utilización del algoritmo de codificación con
transformada de Fourier.
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.
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.
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.
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.
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.
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.
AIRENE 4.46
Figura 4.57: Diagrama de bloques para la aplicación del algoritmo de codificación utilizando la
transformada del coseno discreto.
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.
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.
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.
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.
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.
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.
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.
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.
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”
Caso 1: Roca
completamente
“desacoplada”
Caso 2: Roca
parcialmente
“desacoplada”
Región
Perisférica
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.
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
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:
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).
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.
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).
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.
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.
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.
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.
[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.
[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).
[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).
[Wigeson, 1987] Wigeson D., 1987.,” Fragmentation Analysis using computer vision techniques”, Master
Thesis, University of Witwatersrand.
AIRENE 4.60