Sistema de Visión Artificial para Determinar el Flujo de Café Soluble en un Prototipo de Aglomeración de Polvos, Mediante Rede
Indice
1.
Introducción
2. Visión
Artificial
3. Redes
Neuronales
4. Análisis de paletas de
colores e histogramas
5. Obtención del
vector de características
6.
Bibliografía
La solución a problemas de
procesos
industriales debe estar enmarcada en desarrollos de tipo
tecnológico con los nuevos conceptos que se discuten en
las clases de ingeniería, o que son de fácil
acceso por la INTERNET. Tales conceptos
deben necesariamente conducir a una solución
práctica por demás bien estructurada y
acompañada del componente computacional para optimizar la
solución acertada.
En el presente trabajo, el lector podrá analizar
detalladamente un simple subsistema del proceso
industrial de aglomeración, que bien pareciera ser
complejo o sin interés de
automatizar, pero que por diseño
inicial debe funcionar continuamente, y que por las condiciones
de humedad del ambiente
presenta problemas de no continuidad de alimentación.
Dicho subsistema es una bandeja de alimentación a granel
en la cual se requiere cuantificar su flujo sin la necesidad
de
instalar un sensor comercial o un medidor de flujo sofisticado y
costoso. Se debe hacer un sistema que
asegure la alimentación continua y bien distribuida, para
optimizar la productividad del
proceso de aglomeración de café, en el cual hay un
desempeño del 60% por efectos de
reprocesos.
Dado lo anterior, y con la agravante de tener que diseñar
un sistema a partir de la observación, el corazón de
este trabajo, denominado "Sistema de Visión Artificial
para Determinar el Flujo de Café Soluble en un Prototipo
de Aglomeración de Polvos, Mediante Redes
Neuronales", es la implementación de una red neuronal artificial,
desarrollo que
se lleva a cabo para optar al título de ingeniero
Electrónico en la universidad
Autónoma de Manizales.
En adelante, el lector podrá contextualizarse en cuatro
(4) tópicos que deben ser acometidos para lograr los
objetivos
propuestos:
- Prototipo del sistema a mejorar: Es necesario
desarrollar un prototipo del sistema en estudio, ya que por
condiciones económicas y de disponibilidades no es
posible trabajar directamente sobre el proceso
real. - Captura de imágenes
y criterios digitales de selección: Ya que lo que se pretende es
cuantificar el flujo de café que entra a la
cámara de aglomeración mediante
observación, es necesario obtener una buena
galería de fotos del
prototipo en el momento de depositar el café al
recipiente, para luego analizarlas digitalmente y seleccionar
el mejor tratamiento de esas imágenes, que finalmente
contribuyan con los objetivos trazados. - Implementación de una red neuronal artificial
del tipo "Perceptrón" y con características "ADALINE" (Adaptive
Linear Element): Para determinar la cantidad de flujo que entra
a la cámara de aglomeración a partir de las
imágenes obtenidas de éste, se implementa una red
neuronal artificial con 6 nodos en la capa de entrada y 7 nodos
en la capa de salida, pero sin capas ocultas. Que entrega una
salida análoga en formato digital de valores de 7
bits, a partir de las 6 entradas que corresponden a los
promedios de los histogramas de cada imagen
capturada del proceso. - Almacenamiento de imágenes patrones y entrenamiento
de la red: Con el fin de hacer que esta implementación
trabaje en línea con el proceso de aglomeración,
se diseña un programa
computacional en el ambiente Windows98 con el software
VisualC++, que almacena tres imágenes en sendos archivos del
tipo BMP, que pueden ser seleccionadas por el operario desde un
menú y que se capturan instantáneamente
según lo observado en tiempo real por
la cámara de video. Dichos
patrones sirven como entrenamiento para la red neuronal
artificial, que también está implementada en el
mismo software.
En este momento el proyecto se da
por concluido, mas queda abierto para que alguien más
implemente un algoritmo de
control para el
sistema de proceso de café, a partir de la salida obtenida
con la red neuronal y haciendo uso del desarrollo
electrónico para control de velocidad del
motor de la
bandeja vibratoria, elaborados en el presente proyecto. Para
así alcanzar el objetivo
general trazado inicialmente, de controlar el flujo del proceso,
el cual es: "Desarrollar un prototipo de un sistema de
vibración para controlar el flujo de entrada de
café soluble a un recipiente, usando reconocimiento de
imágenes mediante redes neuronales".
- Elaborar un prototipo de un sistema industrial de
alimentación de café soluble en una cámara
de aglomeración, que por medio de vibración
desplace el café hacia un recipiente
cualquiera. - Elaborar un sistema de visión artificial, en
donde, por medio de redes neuronales, se especifique la
situación actual del proceso.
- Disminuir reprocesos por efectos de mala
aglomeración del producto. - Aumentar la eficiencia del
proceso al hacer un control digital. - Cuantificar el flujo de un sistema a granel por medio
de la visión artificial.
Características del Prototipo de
Aglomeración: Es una bandeja de metal de 23x12x6 cm, con
una ventana de salida de 12cm de ancho por 6cm de altura. El
vibrador es hecho con un motor de CA a 110V con una
excéntrica, que gira a 750 RPM con una potencia de 1/30
HP ó 0.021 Kw y que está suspendido en dos
resortes, para mejorar la transmisión de la
vibración.
Circuito electrónico de Variación de Velocidad.
Está diseñado para trabajar en CA (corriente
alterna), según lo diseñado en clases de octavo
semestre en electrónica de potencia.
La visión artificial se enmarca en este proyecto
en el análisis de los histogramas de las
imágenes capturadas, ya que ellos indican la
concentración de puntos de la paleta de colores con que
fueron creadas.
Las redes neuronales artificiales, o RNA (ANN, en
inglés
Artificial Neural Networks) son sistemas
diseñados para asemejar la forma como el cerebro humano
piensa. Las RNA son buenas en tareas tales como
clasificación y reconocimiento de patrones,
aproximación de funciones,
optimización, cuantizaciones vectoriales y agrupamiento de
datos. En la
actualidad los computadores son muy rápidos en tareas de
algoritmos
computacionales y muy precisos en operaciones
aritméticas."
Las RNA tienen un gran número de elementos de
procesamiento interconectados favorablemente (nodos o unidades)
que usualmente operan en paralelo y son configurados en
arquitecturas regulares. Las RNA están inspiradas mediante
el modelado de redes de neuronas reales (biológicas) en el
cerebro, haciendo que como el cerebro humano, las RNA tengan
capacidad de aprendizaje,
recordar, y generalizar a partir de patrones entrenados o datos.
Un cerebro humano de 1011 neuronas de tipos muy
diferentes.
Redes perceptrón de Capa simple. Una red
Feedforward de capa simple, se conoce como perceptrón
simple. El problema de aprendizaje es de interés a lo
largo de todo el aprendizaje
supervisado. Así que hay una pregunta para un
patrón de salida particular dk
=[d1k, d2k, …,
dnk]T en respuesta a un
patrón de entrada xk
=[x1k, x2k, …,
xmk]T, k=1,2,…,p, m es el
número de entradas, n es el número de salidas, y p
es el número de pares de entrada-salida en el conjunto de
entrenamiento. Esto es, nosotros queremos que el patrón de
salida actual yk =[y1k,
y2k, …,
ynk]T sea igual al patrón
objetivo dk después del proceso de aprendizaje:
i=1,2,…,n;
k=1,2,…,p,
Donde wiT =[wi1,
wi2, …, wim]T es el vector
peso asociado con PEi, y a(·) es la función de
activación del i-ésimo PE, el cual puede ser, una
función umbral o una función sigmoide
continúa. Las reglas de aprendizaje en general comienzan
con una suposición inicial en los valores de
los pesos y hacen ajustes sucesivos basados en la evaluación
de una función objetiva. Ellos finalmente alcanzan una
solución cerca de lo óptimo u óptima en un
número finito de pasos.
4. Análisis
de paletas de colores e histogramas
Se deben leer las imágenes previamente guardadas
en archivos "bmp". Inicialmente se habían capturado en
color verdadero
24 bits, así que para poderlas tratar se deben convertir a
256 colores BMP. Con la instrucción en Matlab bmpread, del
toolbox imagen de la versión 4,2, se capturan tanto la
matriz de
intensidades de la imagen como la paleta de colores de la misma,
para luego ser analizadas de la siguiente forma:
- Con la matriz de intensidades (MI) se puede
fácilmente determinar el histograma de la
imagen. - Con base en el histograma se pueden detectar las
intensidades servibles o las inservibles y con la matriz RGB se
puede descubrir el color de interés. - Después de obtener el histograma de la paleta
de colores de 256 RGB, se procede a analizar el vector del
histograma.
5. Obtención
del vector de características
Después de capturadas las imágenes, del
flujo del prototipo, se analizan con la asesora de tratamiento
digital, con quien se determina trabajar en el histograma para,
finalmente, conseguir un punto de decisión del sistema al
cambiar éste su cortina de alimentación, que
necesariamente varía su color.
Después de haber analizado el promedio del histograma de
cada imagen y además también los histogramas de la
paleta de colores RGB y gris, los histogramas de la resta de las
imágenes y sus correspondientes promedios, se determina en
compañía del asesor que los parámetros que
más contribuyen al reconocimiento de cada patrón
son los terceros, es decir, el promedio del histograma de la
imagen restada. Para ilustrar el porqué se ha tomado esta
decisión, se presentan los histogramas obtenidos de cada
imagen.
Diseño De La Red
Neuronal
Con los resultados de estas imágenes se puede proceder a
implementar la red neuronal utilizando para ello los seis (6)
valores centrales de los promedios de los histogramas. De la
siguiente forma:
donde X1, X2, X3, X4, X5y X6 son las entradas correspondientes a
los valores 2 al 7 de los histogramas y wi1, wi2, wi3, wi4, wi5 y
wi6 son los pesos que deben ser ajustados para obtener las
salidas deseadas yj. A continuación se muestra una tabla
con los valores de los histogramas de siete(7) imágenes
que se pueden emplear como patrones, ya que indican valores fijos
en cuanto a flujo se refiere.
A partir del éxito
en el entrenamiento de la red, se puede asegurar que cualquier
imagen del sistema puede ser cuantificada en términos de
flujo, así pues:
Tabla 1 Tabla final de los valores promedio para
entrenar la red neuronal
SALIDA | |||||||
e | 0,85 | 0,6 | 0,5 | 0,3 | 0,2 | 0,1 | 0 |
n | 58,87 | 76,44 | 62,96 | 31,16 | 19,19 | 26,53 | 2,69 |
t | 44,34 | 36,16 | 35,93 | 10,5 | 5,16 | 2,5 | 0 |
r | 22,65 | 11,22 | 10,56 | 8,47 | 7,03 | 0,78 | 0 |
a | 15,06 | 7 | 8,75 | 13,34 | 5,19 | 0,03 | 0 |
d | 17,9 | 5,41 | 4,69 | 9,06 | 3,09 | 0 | 0 |
a | 14,25 | 1,19 | 3,41 | 8 | 0,16 | 0 | 0 |
Con el objetivo de encontrar la mejor
respuesta del sistema, se ha implementado el siguiente algoritmo
en VisualC++, como parte del desarrollo de la red neuronal
artificial tipo perceptrón, correspondiente a la
ecuación 2, el cual calcula la salida más
óptima de la red:
i=1,2,…,n; k=1,2,…,p,
así mismo, este nuevo algoritmo se desarrolla
para completar el funcionamiento de la red total, según la
siguiente descripción, corredpondiente a la
ecuación 7, que calcula los pesos de la red según
el error a la salida:
Operatividad de la Red Neuronal. Se ha escogido una red de dos
capas sin neuronas ocultas o intermedias. La capa de entrada
tiene 6 nodos y la salida 7. Cada nodo de salida pertenece a cada
uno de los valores de salida que interesan para atacar al
transistor PNP
que regulará al motor. La red escogerá en cada
momento que valor de
salida es el más óptimo según los valores de
entrada. Cada salida tiene asociado un vector de entrada o
patrón, ante una entrada determinada, el nodo de salida
que tenga el vector más parecido será el ganador.
Factor mu de entrenamiento o factor de aprendizaje. Es una
constante que define en cada paso de ajuste de pesos en
qué fracción hay que variarlo. Un valor muy alto
puede hacer que la red nunca converja en una solución
óptima pues el valor óptimo de pesos no cae dentro
de un incremento. Un valor excesivamente bajo alargaría el
entrenamiento mucho.
Se observará que la salida la da con 7 valores binarios.
De izquierda a derecha en valores decrecientes. El primero es el
de 0,85 voltios el segundo de 0,6 y así hasta el de 0
voltios. El nodo que escoge la red como salida se pone a 1 y los
que no a 0.
Para agrupar todo lo anterior en un solo software, se
decidió implementar el programa en VisualC++ para captura
de video, grabación de imágenes en *.BMP y
tratamiento digital de las mismas, con las siguientes
características:
- Inicialización de los controladores de
video. - Captura de video,
- Manipulación del controlador hwndC, que es el
que contiene la información de la memoria
de video. - Menú adicional para grabar tres patrones del
proceso en tiempo real. - Algoritmo de grabación de archivos en formato
*.BMP. - Implementación de la red neuronal con valores
predefinidos, capturando la información desde los
archivos ya guardados. - Algoritmo de aprendizaje de la red
neuronal.
Resultados
En cuanto a la captura de imágenes se obtuvieron
resultados positivos, ya que en asesoría con la profesora
Luz
Ángela Aristizabal se determinó trabajar las
imágenes de plano perpendicular al flujo de la bandeja con
fondo blanco para minimizar tratamiento digital. Las
imágenes analizadas fueron estáticas y mostraban el
comportamiento
real del sistema.
- Análisis de color de las imágenes: En
cuanto al análisis de las fotografías para
determinar el vector de características en común
de cada una de ellas, el resultado estuvo en que después
de mirar cada histograma se determinó que lo mejor era
trabajar con el histograma de la resta entre las
imágenes sin caída de producto y la que muestra
caída de producto; así se obtienen dos colores
bien definidos, dejando uno negro para los colores iguales y
uno blanco para los que no coinciden. Con esto el vector del
histograma es más acertado para clasificar cada imagen;
por último para simplificar las cosas, se
determinó en asesoría con Nicolás Toro,
obtener 8 valores de cada histograma de la imagen, para
así analizarlos mejor, así el resultado es mejor,
porque se promedian los 256 valores de cada histograma cada 32
puntos y se obtiene un mejor criterio de selección para
alimentar a la red neuronal.
Red neuronal: La implementación y entrenamiento
de la red neuronal obtuvo el resultado de ser implementada
exactamente como se describe en el marco
teórico y quedó funcionando como se describe en
el desarrollo del proyecto, se demora máximo un minuto en
entrenarse con los siete patrones de la tabla uno y funciona
eficiente y adecuadamente con cualquier valor de entrada
después de ser entrenada, con una certeza del 99%.
Es pues necesario que se replantee la implementación en
Visual C++ del
manejo de mensajes de windows para
los procedimientos y
se implemente un nuevo programa en estructura
multihilo con el mismo software, ya que los resultados con
éste son satisfactorios y evitan la generación de
mucho código,
porque el programa lo crea automáticamente, más no
lo hace con estructuras
procedimentales, como está elaborado el programa de este
proyecto.
Por lo anterior se puede concluir que el presente proyecto fue
efectivo en cuanto a resultados, ya que la red neuronal
también presentó buenos resultados y su
entrenamiento no se demora más de 1 minuto con una certeza
del 99%.
"Sistema de reconocimiento de células
hemáticas mediante redes neuronales", por Victoria Eugenia
Vélez Burbano y César Augusto Duque Pérez.
1999. Universidad Autónoma de Manizales.
"Seguimiento de un cuerpo celeste a partir de una secuencia de
imágenes por medio de la automatización de una montura ecuatorial",
por Fredy Ruiz Castro y Mauricio Mejía Lobo. 2000.
Universidad Autónoma de Manizales.
Maloney, Timothy J. Electrónica Industrial Moderna. Edit.
Prentice Hall Hispanoamericana, S.A. México.
3ª Edición. 1997.
CHIN-TENG LIN y C.S. GEORGE LEE, Neural Fuzzy Systems, Edit.
Prentice Hall.
Gómez-Allende, Darío Maravall. Reconocimiento de
Formas y Visión Artificial. Edit. Ra-Ma. Madrid. 1993.
Gonzales, Rafael C. y Woods, Richard E. Digital Image Processing.
Edit. Addison-Wesley Publishing Company. USA. 1992.
RHYS LEWIS. Practical Digital Image Processing. Edit. Ellis
Horwood Limited. Gran Bretaña. 1990.
Pappas, Chris H. y Murray, William H. III. Microsoft
Visual C++ 6.0, Manual de
Referencia. Edit. Mc Graw Hill. España.
1999.
Kruglinski, David J.; Scot, Wingo y Shepherd, George. Programación Avanzada con Visual C++ 6.0.
España. 1998.
Asesores
RUBÉN
DARÍO FLÓREZ. (Ing. Electricista U. Nal.
Colombia)
Profesor de la Universidad Autónoma de Manizales.
Reconocimiento de imágenes y elementos electrónicos
de Hardware.
ÁNGELA ARISTIZABAL. (Ing. de Sistemas UAM Colombia)
Profesora de la Universidad Autóma de Manizales.
Digitalización de imágenes.
NICOLÁS TORO. (Ing. Electricista U. Nal. Colombia)
Director de carrera de Ing. Electrónica de la Universidad
Nacional de Colombia.
Técnicas de procesamiento de patrones
digitales (Redes Neuronales).
Resumen (Español)
Sistema de Visión Artificial para Determinar el Flujo de
Café Soluble en un Prototipo de Aglomeración de
Polvos, Mediante Redes Neuronales
En este trabajo, el lector podrá analizar detalladamente
un simple subsistema del proceso industrial de
aglomeración, que por diseño inicial debe funcionar
continuamente, y que por las condiciones de humedad del ambiente
presenta problemas de no continuidad de alimentación.
Dicho subsistema es una bandeja de alimentación a granel
en la cual se requiere cuantificar su flujo sin la necesidad de
instalar un sensor comercial o un medidor de flujo sofisticado y
costoso. Se debe hacer un sistema que asegure la
alimentación continua y bien distribuida, para optimizar
la productividad del proceso de aglomeración de
café, en el cual hay un desempeño del 60% por
efectos de reprocesos. Los siguientes son los tópicos
desarrollados:
- Prototipo del sistema a mejorar: Prototipo del
sistema en estudio. - Captura de imágenes y criterios digitales de
selección: Obtención una buena galería de
fotos del prototipo para cuantificar el flujo de café
que entra a la cámara de aglomeración y
análisis digital posterior - Implementación de una red neuronal artificial
del tipo "Perceptrón" y con características
"ADALINE" (Adaptive Linear Element): Para determinar la
cantidad de flujo que entra a la cámara de
aglomeración, se implementa una red neuronal
artificial con 6 nodos en la capa de entrada y 7 nodos en la
capa de salida.Abstract
(English)
System of Artificial Vision to Determine the Flow of Soluble
Coffee in a Prototype of Powders Agglomeration, By means of
Artificial Neural Networks
By: William Vallejo Quintero
In this work, the reader will be able to analyze a simple
subsystem of the industrial process of agglomeration that
should work continually for design initial and that for the
conditions of humidity of the environment it presents
problems of not continuously feed.
This subsystem is a bulk feed in which is required to
quantify its flow without the necessity of installing a
commercial sensor or a sophisticated and expensive flow
meter. A system should be made that assures the continuous
and well distributed feeding, to optimize the productivity of
the process of coffee agglomeration, in which there is an
performance of 60% for reprocesos effects. The following ones
are the developed topics: - Almacenamiento de imágenes patrones y
entrenamiento de la red: Para que esta implementación
trabaje en línea con el proceso de aglomeración,
se diseña un programa computacional en el ambiente
Windows98 con el software VisualC++, que almacena tres
imágenes en sendos archivos del tipo BMP, que pueden ser
seleccionadas por el operario desde un menú y que se
capturan instantáneamente según lo observado en
tiempo real por la cámara de video. - Prototype of the system to improve: Prototype of the
system in study. - Capture of images and digital approaches of
selection: Obtaining a good gallery of pictures of the
prototype to quantify the flow of coffee that it enters to the
agglomeration camera and later digital analysis - Implementation of a artificial neural network of the
type " Perceptrón " and with characteristic " ADALINE "
(Adaptive Linear Element): To determine the quantity of flow
that enters to the agglomeration camera, an artificial neural
network it is implemented with 6 nodes in the inlet layer and 7
nodes in the outlet layer. - Storage of patron images and training of the network:
So that this implementation works on-line with the
agglomeration process, a computer program is designed in the
Win98 program with the VisualC++ software, that stores three
images in BMP files and can be selected by the operative
personal from a
menu and that they are captured instantly according to that
observed in real time by the video camera.
Autor:
William Vallejo
(Ing. Electrónico UAM)
27 años
Manizales – Colombia