Sistema de Visión Artificial para Determinar el Flujo de Café Soluble en un Prototipo de Aglomeración de Polvos, Mediante Rede
Enviado por vallejowilli
Indice1. 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