Identificación Automática de Cilindros de Almacenamiento de Gas Utilizando Redes Neuronales Tipo Hopfield
Automatic Identification of Gas Cylinder Storage Using Hopfield Neural Network
LUIS CARLOS MALDONADO
M.Sc.(c) Controles Industriales
Grupo de Automatización y Control - A&C
Universidad de Pamplona
luis.maldonado@unipamplona.edu.co
CÉSAR AUGUSTO PEÑA
Ph.D. Automática y Robótica
Grupo de Automatización y Control - A&C
Universidad de Pamplona
cesarapc@unipamplona.edu.co
OSCAR GUALDRÓN
Ph.D. Inteligencia Artificial
Grupo de Automatización y Control - A&C
Universidad de Pamplona
oscar.gualdron@unipamplona.edu.co
Fecha de recibido: 02/03/2012
Fecha de aceptado: 15/06/2012
RESUMEN
Las compañías que se dedican a la fabricación, comercialización y mantenimiento de cilindros para el gas licuado de petróleo en Colombia, estampan en placas de acero y soldadas al producto un código serial único para ser identificado dentro del parque de cilindros del país. Actualmente el proceso de identificación es manual y se revisan aproximadamente 7000 cilindros al día en una sola fábrica. El objetivo principal de este documento es presentar un sistema de visión artificial que utiliza redes neuronales artificiales para reconocer dicho código. Este sistema se compone físicamente de un dispositivo portátil de ambiente controlado en iluminación y escena para la adquisición de las imágenes. Otro componente del sistema es el ajuste de la imagen. El ajuste se realiza a partir de filtros de mediana, binarización, etiqueta, y segmentación; este procesamiento permite obtener mayor información significativa y discriminación de la imagen. Por último el componente inteligente para la identificación se realiza con redes neuronales artificiales tipo Hopfield y un algoritmo que verifica la evolución del reconocimiento de la imagen. La efectividad del sistema se reporta con los resultados experimentales obtenidos con base al error con una cantidad significativa de muestras.
Palabras clave: Visión artificial, cilindros de gas, códigos, seriales, redes neuronales artificiales, Hopfield.
ABSTRACT
Companies engaged in the manufacture, marketing and maintenance of cylinders for liquefied petroleum gas in Colombia, stamped steel plates and welded to the product a unique serial code to be identified within the cylinder of the country park. Currently, the identification process is manual and checked approximately 7000 cylinders per day in a single factory. The main objective of this paper is to present a vision system that uses artificial neural networks to recognize the code. This system consists physically of a portable device that controls light environment and scene for the acquisition of images. Another component of the system is to adjust the image. The adjustment is based on median filtering, binarization, label, and segmentation, this processing allows more meaningful information and image discrimination. Finally, the intelligent component identification is performed with Hopfield neural networks and an algorithm that checks the development of image recognition. The effectiveness of the system was reported with experimental results obtained on the basis of error with a significant number of samples.
Keywords:Artificial Vision, Gas Cylinders, Codes, Serials, Artificial Neural Networks, Hopfield.
UIS Ingenierías, Volumen 11, No. 1, pags. 103 - 111, Junio 2012; Facultad de Ingenierías Fisicomecánicas, UIS
1. INTRODUCCIÓN
El registro de los códigos seriales estampados en los cilindros de acero es una tarea que contempla la revisión y seguimiento de cada producto desde su fabricación hasta su comercialización con el fin de brindar mejoramiento, seguridad y calidad en cada uno de ellos [1]. En Colombia, grandes empresas realizan alrededor de 2000 registros y cerca de 7000 verificaciones diariamente (ver Figura 1). Estas labores actualmente son realizadas por operarios en distintas jornadas laborales, en donde un operario efectúa alguna de las actividades en 9 horas. El registro de cilindros consiste en inspeccionar cada uno de los códigos seriales que lo identifica individualmente y llevarlo a un consolidado de productos en una etapa del proceso de fabricación. Como se puede observar en la Figura 2, esta actividad es realizada manualmente por el operario digitando el código serial a través de un computador y consiguientemente reportado a una base de datos. De manera similar la verificación consiste en examinar que los cilindros proporcionados para la comercialización se encuentren en la base de datos previamente almacenada.
El registro del código serial se obstaculiza por diversas razones. Una de ellas es debido a la gran cantidad de códigos seriales que el operario debe reconocer en ese tiempo, como se puede observar en la Figura 1, hace el trabajo repetitivo y agotador provocando errores y retrasos. Además, una numerosa cantidad de operaciones realizadas para la fabricación del cilindro (desde el corte de lámina de acero hasta tratamiento térmico de normalización), es otro obstáculo que impide la fácil lectura del código; como se puede observar en la Figura 3-a, la exposición directa en cada uno de las operaciones lo deteriora y contamina visualmente. Además de la lectura tradicional (inspección visual directa) existes otros métodos alternativos para la identificación de cilindros. Dentro de los más representativos estan el uso de código de barras y códigos en barras magnéticas. A pesar de la efectividad de estos métodos, estos presentan algunos inconventientes como: el deterioro continuo de las etiquetas debido a las condiciones de limpieza, humedad y golpes a los que son sometidos los cilindros, ademas en el caso se requiere de la adición de etiquetas adicionales, lo que implica elevados costos teniendo en cuenta el número de cilindros existentes en el país (principalmente para el caso de las bandas magnéticas).
Este artículo propone un sistema para la detección automática de las placas estampadas utilizado visión artificial combinada con inteligencia artificial. Este método brinda la posibilidad de identificar los cilindros sin necisidad de incluir etiquetas o marcas adicionales en los cilindros y ademas evita la fatiga, el estrés y los problemas visuales a los que se encuentran sometidos los operarios debido a las largas jornadas de trabajo y las condiciones a las cuales son sometidos. Para el desarrollo de la propuesta el artículo se encuentra organizado de la siguiente forma: En la sección 2 se ilustran el procedimiento de adquisición de imágenes, en la sección 3 los algoritmos de procesamiento y segmentación de imágenes, en la sección 4 se describe el funcionamiento de las redes neuronales artificiales tipo Hopfield aplicadas al procesamiento digital de imágenes, en la sección 5 se ilustran los algoritmos de reconocimiento de los dígitos, en la sección 6 se realiza un análisis de resultados y finalmente se presentan las conclusiones.
2.ADQUISICIÓN DE IMÁGENES EN AMBIENTE CONTROLADO
El sistema de adquisición se compone por un dispositivo de captura de imágenes. El ajuste de óptica y el ambiente juegan un papel importante para la adecuación de la escena [2]. La captura de imágenes se realiza por medio de una cámara de sensor CCD, monocromática (el color no es relevante en la aplicación), de tipo matricial (debido a que las de tipo lineal poseen un sensor que permite solo la toma de imágenes unidimensionales, mientras que las matriciales al tomar imágenes bidimensionales aumentan la velocidad en la captura de información al igual que incrementan la precisión). La óptica de la cámara fue seleccionada teniendo en cuenta la distancia necesaria de operación y el campo de visión requerido para la captura de la imagen. La óptica varifocal seleccionada puede acercar o alejar el objeto de la cámara y delimitar solo el área de interés, hay que tener en cuenta que las placas objeto de estudio no poseen un área estándar (ver Figura 3-b), así que se asegura que el campo de visión de la cámara capture todos los dígitos pertenecientes a la identificación del cilindro.
La iluminación se determinó con base a que el objeto en estudio era en material de acero y los objetos independientes se encontraban en el mismo grabados en ángulo bajo, con el fin de que la iluminación penetrara en cada uno de los dígitos sin crear sombras y poder contrarrestar el efecto que el óxido en general de la placa causa en la adquisición, la iluminación en barras de leds tipo darkfield [3] suple esta necesidad. Una estructura física propuesta, que limitara de manera significativa la entrada de luz externa al ambiente controlado de la placa, se implementó como se puede ver en la Figura. 4.
El hardware del prototipo que se ilustra en la figura 4 (d), esta compuesto básicamente por: una cámara UI- 2230SE (con conexión USB 2.0, un sensor CCD de Sony, monocromática y una resolución XGA - 1024x768 píxeles) con una óptica carifocal 10-40mm 1/2” F1.4- RoscaC-IR (Day&Night), un sistema de iluminación darkfield tipo barra. Como sistema de procesamiento se utiliza un computador
Una vez capturada la imagen y transformada en información apropiada se enlaza a un computador ([4], [5]) como una señal digital.
3.PROCESAMIENTO Y SEGMENTACIÓN DE LAS IMÁGENES
Diversos métodos de compresión pueden ser utilizados para mejorar el procesamiento de las imágenes en varios aspectos como se puede ver en [6],[7],[8]. Para atenuar el ruido impulsivo y preservar el contorno de la imagen se le aplica a cada una de ellas un filtro de mediana, que es extensamente empleado, eg. [9],[10],[11], y permite la organización de pixeles tomando el valor central de ellos. Además, se implementó un algoritmo de desviación estándar sobre la imagen con el propósito de suavizar el ruido, ya que la luminancia juega un papel importante en el reflejo en el grabado de los dígitos.
Junto con la binarización (se establece el fondo de color negro igual a 0 y los dígitos de color blanco igual a 1), experimentalmente el método Otsu es empleado para obtener el umbral [12] que minimiza la varianza entre clases de los pixeles blanco y negro. La operación morfológica de dilatación [13] implantada en las imágenes (ver Figura 5-a) reduce los espacios que fraccionan los números aunque todavía conservando ruido (eg. [14]). En la Figura 5-b se observa que se logra eliminar el ruido separando cada uno de los objetos del fondo y etiquetando a cada uno de ellos [15], excluyendo las áreas menores a la región que delimita cada número. Una vez hecha esta serie de operaciones la segmentación se puede realizar como se puede observar en la Figura 6.
4. REDES NEURONALES TIPO HOPFIELD APLICADAS EN EL PROCESAMIENTO DIGITAL DE IMAGENES
En el contexto de las redes neuronales en función de su topología encontramos las denominadas redes recurrentes las cuales tienen comportamientos dinámicos que las hacen especiales. A diferencia de las redes estáticas como las perceptron multicapa, estas redes tienen un comportamiento dinámico realimentado a sus entradas con muestras anteriores de las salidas (ver figura 7), siendo este comportamiento una herramienta poderosa para simular e identificar sistemas dinámicos no lineales. recuperados
Entre las redes que hacen parte de esta topología se pueden mencionar las redes de Jordan, las redes de Elman y por supuesto las redes Hopfield que son el centro de los resultados presentados en este trabajo.
A mediados de los 80’s renació la teoría de las redes neuronales gracias al redescubrimiento del algoritmo backpropagation, permitiendo por otro lado el desarrollo de las redes recurrentes cuya principal aplicación es el control e identificación de sistemas no lineales, la primera red recurrente fue diseñada por Hopfield en 1984 bajo el contexto de memoria asociativa. En este caso la red almacena información de los datos de entrenamiento (patrones), en forma de una matriz de pesos, cuando se le presenta información de entrada nueva la red busca por asociación el patrón que más se parezca y arroja el resultado, la principal aplicación de este modo es el reconocimiento de caracteres [16], [17], [18].
Algoritmo de Entrenamiento y uso de la red
La estructura mencionada anteriormente está conformada igualmente por una respectiva fase entrenamiento que se resume en los siguientes pasos
Paso 1. Cálculo de los pesos que conectan a los nodos, utilizando la siguiente fórmula:
Donde tij es el peso que va de la neurona i a la neurona j, y Xis es el valor del i-ésimo elemento de la s-ésima clase. m es el número de clases que se desean aprender.
En notación matricial:
Lo que se conoce como el producto externo (outer product) de un vector renglón consigo mismo.Paso 2. Inicializar la red con un patrón de entrada:
Paso 3. Iterar hasta converger siguiendo la siguiente fórmula:
Donde Fk es la función escalón:
Cuando la red converge, su salida representa al patrón que más se parece al patrón de entrada dado.
5. ALGORITMO DE IDENTIFICACIÓN DE LOS DÍGITOS USANDO REDES NEURONAES
Los algoritmos de identificación parten de las imágenes segmentadas obtenidas usando el método descrito en la sección 3 y hacen uso de la técnica descrita en la sección 4. En la Figura 8, se puede apreciar un conjunto de dígitos del 0 al 9 provenientes de las imágenes segmentadas. En esta gráfica podemos apreciar algunas diferencias entre los diferentes dígitos, tales como altura, ancho, área, perímetro, etc.
Por otra parte se puede apreciar que la calidad de los números no es muy alta, por ejemplo se puede observar que el número dos no tiene un contorno uniforme y otros números tales como el cero, el cuatro y el siete se encuentran presentes algunos agujeros. Este tipo de características son muy comunes y diversas incluso en imágenes del mismo dígito tal como se ilustra en la Figura 9, donde se representan 10 imágenes del número tres.
Lo que se pretende con este algoritmo es proporcionar por medio de técnicas de inteligencia artificial un medio de identificación de estos caracteres. En este caso se hizo uso de las redes Hopfield. Este tipo de redes neuronales artificiales se caracterizan por tener un elevado costo computacional. Por esta razón uno de los primeros pasos es la reducción de la información que contienen las imágenes. Con este fin se hizo una reducción de las imágenes a un tamaño de 30 por 24 píxeles. Junto con esta reducción se creo una rutina que elimina los pequeños agujeros que contienen en su interior los números.
En la Figura. 10 se ilustran los ejemplos de las imágenes de las Figuras 8 y 9 aplicando el procedimiento planteando, donde se puede apreciar que la perdida de información no es significativa a pesar del nuevo tamaño seleccionado.
Como se menciono en la sección 3, las redes Hopfield requieren de una matriz de entrada cuyas columnas corresponden con los valores de las imágenes objetivo, para realizar la clasificación. En nuestro caso estas imágenes deben ser cuidadosamente seleccionadas debido a las semejanzas que se pueden presentar entre algunos dígitos. Por esta razón se creo un algoritmo que toma 20 muestras de cada uno de los dígitos, los centra en una imagen nula de 30 por 24 pixeles, posteriormente promedia cada conjunto de pixeles de acuerdo a su posición y selecciona solamente los superiores a 0.7 en un rango de 0 a 1.
En la Figura 11 se puede apreciar el conjunto de resultados de cada uno de los dígitos.
Una vez obtenidas las imágenes de los números modelo y de los números a identificar (imágenes segmentadas), se procede a realizar el algoritmo de identificación por medio de redes Hopfield. En la Figura. 12 se ilustra el diagrama de funcionamiento de este algoritmo.
En primer lugar se realiza la lectura de las imágenes segmentadas, posteriormente se realiza el preprocesamiento de estas imágenes con el fin mejorarlas y adecuarlas a un tamaño menor. Luego se crea una red Hopfield cuya matriz de entrada esta compuesta por 10 columnas cada una de la cuales contiene la información de las imágenes de los dígitos modelos del 0 al 9.
Posteriormente se realiza una iteración de red Hopfield tomando como entrada un vector con valores de los pixeles de la imagen a reconocer. El resultado de la iteración será un vector que representa una imagen modificada de la imagen de entrada en función de las imágenes de los dígitos modelo. Cabe aclara que la imagen de salida se representa en escala de grises debido a que sus valores pueden diferir de 0 y 1 (ver Figura 13-b). Por esta razón el algoritmo planea una umbralización para formar una imagen binaria (ver Figura 13-c).
Con el fin de realizar un algoritmo rápido se propone que en vez de realizar un número definido de iteraciones se corrobore el grado de evolución de la imagen a identificar después de cada una de las iteraciones, por lo cual, se calcula un vector cuyos componentes representan el error absoluto entre la imagen binarizada y cada una de las imágenes de los dígitos modelos. El menor valor de este vector corresponderá a la imagen más próxima o más parecida de los números modelo. En el caso que dicho valor sea menor que un número predeterminado se asumirá que la imagen ha sido identificada.
En la tabla 1 se puede apreciar un ejemplo de la evolución de las imágenes en el desarrollo del algoritmo. El mínimo error permitido se asumió de 50 pixeles, lo que corresponde a un 7% de los pixeles de la imagen. Cabe aclarar que este ejemplo es bastante significativo debido a que el dígito 5 suele parecerse bastante con el dígito 6 por esta razón el número de iteraciones suele ser mayor que en los otros casos. La funcionalidad de la red neuronal artificial se hace evidente en la mayoría de los casos donde con tan solo un par iteraciones el número puede ser identificado correctamente.
En la tabla 2 se presenta una parte del código implementado en Matlab que representa las operaciones del algoritmos propuesto en la figura 12. Este código parte de las imágenes preprocesadas y segmentadas descritas en la sección 3.
6. RESULTADOS
Con el fin de corroborar el porcentaje de aciertos, se tomaron 200 muestras de imágenes de dígitos a las cuales se le aplico el procedimiento planteado en la sección V. Se obtuvieron 197 aciertos lo que corresponde a un porcentaje del 98.5% de efectividad. En la Figura 14 se ilustran las tres imágenes de los dígitos no reconocidos, donde se puede apreciar que son difíciles de identificar incluso para un humano.
En la Figura 15 se puede apreciar un ejemplo de un conjunto de imágenes que a pesar de su baja calidad fueron detectados efectivamente. Obsérvese la similitud a la que pueden llegar los números entre si, por ejemplo las imágenes del número cinco y el número seis se pueden confundir en el caso que la curvatura inferior del número cinco sea bastante cerrada y la curvatura del número 6 sea abierta.
En la figura 16, se ilustra un ejemplo del prototipo en funcionamiento. En esta se puede observar la interfaz gráfica, la cual tiene un diseño muy intuitivo con pocas instrucciones lo cual facilita su uso por parte de los operadores.
7. CONCLUSIONES
El proceso de identificación manual de los cilindros de gas es un proceso bastante tedioso que genera múltiples inconvenientes en los empleados que desempeñan estas funciones tales como problemas visuales, estrés y fatiga. El algoritmo propuesto plantea una solución automática que pretende evitar estos inconvenientes.
La combinación de técnicas aplicadas de procesamiento digital de imágenes e inteligencia artificial son una herramienta que permiten mejorar notablemente los índices de aciertos en la identificación de cilindros de gas. Esto se debe a que la automatización de dicho proceso evita los errores humanos debidos al cansancio y a la pérdida de concentración debidos al trabajo monótono y continuo. El porcentaje de efectividad del sistema es de 98.5%, adicionalmente cuando algún número no es identificado el sistema despliega un mensaje para realizar una lectura directa, de tal forma que los operarios pueden leer la placa, limpiarla o arreglarla en el peor de los casos.
Por otra parte la velocidad con que se pueden reconocer los cilindros de gas puede aumentar drásticamente a la vez que se pueden implementar bases de datos en línea con la información relevante del proceso. El tiempo promedio del procesamiento de una imagen con 12 números es de 2,437 segundos.
8. BLIBLIOGRAFÍA
[1]Por otra parte la velocidad con que se pueden reconocer
los cilindros de gas puede aumentar drásticamente a la
vez que se pueden implementar bases de datos en línea
con la información relevante del proceso. El tiempo
promedio del procesamiento de una imagen con 12
números es de 2,437 segundos.
[2] J. Villanueva y S. Córdova, "Sistema de visión
artificial”, Universidad de San Martin de Porres,
Peru 2010.
[3] Rosenbluth, A. E.; Progler, C.; Fullenbaum, M.,”
Confocal filtering of the instantaneous image in
scanned darkfield alignment,” Journal of Vacuum
Science & Technology B: Microelectronics and
Nanometer Structures, vol 11, pp. 2183 - 2190
Nov 1993.
[4] C. Solomon, T. Breckson, Fundamentals of
Digital Image Processing: A Practical Approach
with Examples in MATLAB, John Wiley & Sons,
Inc., USA, 2011.
[5] Gonzalez, Word, Eddins; Digital Image Processing
Using Matlab, 2 ed, 2002,
[6]Weeks Michael; Digital signal processing using
MATLAB and Wavelets.
[7] Weeks Michael; Digital signal processing using
MATLAB and Wavelets.
[8] Majid Rabbani; Wavelet Compression and the
JPEG2000 Standard; Eastman Kodad Research
Laboratories; 2003.
[9] O. Medina, D. Mery,”Inspeccion visual automática
de botellas de vino usa adaptada”. Encuentro
Chileno de Ciencias de la Computación, 3-8
Noviembre, Chillán. 2003.
[10] J. Esqueda, L., Palafox, Fundamentos de
Procesamiento de Imágenes, Universidad
Autónoma de Baja California. Departamento de
Editorial Universitaria, México. 2005
[11] C. Gonzales; R. Woods, Tratamiento digital de
señales, Addison-Wesley Iberoamerica, S.A /
Ediciones Díaz de Santos; 1992.
[12]Otsu, N., "A Threshold Selection Method from
Gray-Level Histograms,” IEEE Transactions on
Systems, Man, and Cybernetics, Vol. 9, No. 1, pp.
62-66. 1979.
[13] J. Freixenet. "Operaciones morfológicas”
Computer Vision and Robotic Group. Universitat
de Girona. España 2011.
[14] M. Balbuena, Recuperación rápida de imágenes
mediante memorias asociativa, M. Ing. Tésis,
México, Dic, 2008.
[15]Haralick M., G. Shapiro, Computer and Robot
Vision, Volume I, Addison-Wesley, pp. 28-48.
1992.
[16] A. Mirzaei, R. Safabakhsh, Optimal matching by
the transiently chaotic neural network, Applied
Soft Computing, Volume 9, Issue 3, pp 863-873,
2009
[17] M. Seow, H. Ngo, Vijayan K. Asari, Systolic
implementation of 2D block-based Hopfield
neural network for efficient pattern association,
Microprocessors and Microsystems, Volume 27,
Issue 8, pp 359-366, 2003
[18] X. Dou; F. Song "Based on discrete Hopfield
neural network and wavelet transform character
recognition” IEEE - Electric Information and
Control Engineering (ICEICE), 2011 International
Conference on, Tangshan, China 2011