CONTROL DE CALIDAD DEL LLENADO DE BOTELLAS EN TIEMPO REAL CON SISTEMAS EMBEBIDOS
Miguel Risco Castillo, [email protected] Juan Vega, [email protected] Alberto Alvarado, [email protected]
UNIVERSIDAD TECNOLÓGICA DEL PERÚ – LIMA, PERÚ
Grupo de microelectrónica del Centro de Investigación y Desarrollo en Ingeniería (CIDI) de la Facultad de Ingeniería
Electrónica y Mecatrónica
RESUMEN
Este trabajo propone el desarrollo e implementación de un sistema de control de calidad en tiempo real del llenado de botellas de vino mediante el uso de un sistema embebido en FPGA, en el cual se realiza todo el proceso de análisis de la imagen procedente de una pequeña cámara digital además de generar una interfaz gráfica que puede visualizarse en un monitor conectado en forma directa sin necesidad de que medie un equipo de computo, consiguiéndose así un sistema fiable con un costo moderado al alcance inclusive de los pequeños productores.
PALABRAS CLAVE: control, sistemas embebidos, fpga, vhdl.
ABSTRACT
This paper proposes the development and implementation of a quality control system in real time of the filling of bottles of wine through the use of an embedded system in FPGA, which one made the whole process of image analysis from a small digital camera and generates a graphical interface that can be displayed on a monitor connected directly without going through a computer, thereby achieving a reliable system with a moderate cost accessible even to small producers.
KEYWORDS: control, embedded system, fpga, vhdl.
I. INTRODUCCIÓN
En el Perú, existe un gran número de pequeñas y medianas empresas dedicadas a la producción y exportación de vino y otros productos similares, estas empresas basan su sistema de control de calidad en la inspección visual mediante un operador que realiza un trabajo constante durante toda su jornada laboral, este proceso, debido al cansancio natural, suele presentar fallas. Para que los productores aumenten su nivel de competitividad es necesario que optimicen su control de calidad minimizando estas fallas, con la finalidad de cumplir con las normas comerciales internacionales y así acceder a mejores mercados.
Actualmente, existen posibles soluciones automatizadas para realizar este control, que hacen uso de cámaras y análisis digital de imagen mediante una computadora y software especializado. Estos equipos suelen tener precios elevados no asequibles a los pequeños productores. Sin embargo, en los últimos años, los dispositivos lógicos programables, como lo son las FPGA [1] y los sistemas embebidos en chip (SoC) [2], han incrementado exponencialmente su nivel de integración y flexibilidad, multiplicando su potencia a la par que su precio relativo ha disminuido, razón por la cual, la adopción de estos componentes en diversas industrias se ha visto impulsada, haciendo posible en particular, la implementación de sistemas de control como el descrito en este proyecto; distintos procesos que antes tenían aplicación sólo mediante el uso de complejos sistemas de cómputo se están migrando paulatinamente a sistemas embebidos con una reducción considerable en el precio.
Para realizar la implementación del sistema en la FPGA se hace uso del VHDL [3] (Very high speed integrated circuit Hardware Description Languaje), un lenguaje especializado en la descripción y modelado de circuitos.
Se reconoce que uno de los sentidos importantes en los seres humanos es la visión. Ésta es empleada para obtener la información visual del entorno físico. Para la especie humana resulta mucho más eficiente procesar imágenes que procesar texto. La visión humana es el sentido más desarrollado y del que menos se conoce debido a su gran complejidad. Es una actividad inconsciente. .La Visión Artificial o también llamada Visión por Computador, pretende capturar la información visual del entorno físico para extraer características relevantes visuales, utilizando procedimientos automáticos.
Una imagen digital es una representación a través de una matriz o arreglo finito de una imagen real, donde cada elemento de la matriz corresponde a un pixel, al cual se le ha asignado o codificado con un número fijo de bits para representar sus características de luminancia y crominancia. Por lo tanto, el procesamiento digital de imágenes se entiende como el conjunto de técnicas matemáticas (algoritmos) utilizados para manipular, procesar y tratar imágenes digitales [4]. Tal es el caso que se aplica a los pixel que están contenidos en la imagen.
II. OBJETIVOS
Este trabajo tiene como objetivo, el desarrollo de un sistema basado en hardware de bajo costo que permita el control de calidad del llenado de botellas de vino; con la finalidad de obtener un equipo que pueda ser utilizado por los productores con facilidad y poca inversión.
III. MATERIALES Y MÉTODOS
Este trabajo se ha realizado en base a una investigación previa sobre control de calidad en el llenado de botellas de vino mediante PC (ver Fig. 1).
En dicho proyecto se utilizó una cámara web conectada a una computadora personal convencional con un procesador Core2Duo de 2.4GHz y una memoria de 2GB. Para el análisis se utilizó el software MATLAB en su versión 2009, el costo
aproximado de duplicar una plataforma similar excede a la fecha (Julio del 2012) los US$4,000 debido principalmente al alto costo de las licencias de software que dicho sistema necesita. El análisis de imagen se realizó mediante las técnicas de detección de borde propuesta por Kunal J Pithadiya et.al. [5]
Fig. 1. Sistema de control usando una PC
En este proyecto se hará uso de una tarjeta que incorpora una FPGA (ver Fig. 2) en la cual se instanciarán los núcleos IP necesarios para el manejo de una cámara CCD, la adquisición de las imágenes, la extracción de información que permitirá realizar las tareas de control y la generación del interfaz de usuario (GUI); esta tarjeta será conectada directamente a un monitor convencional mediante una conexión VGA. El valor estimado del sistema final es de unos $400, lo cual equivale aproximadamente al 10% de los costos del sistema basado en PC.
Fig. 2. Sistema de control de calidad utilizando el hardware integrado
Se ha seleccionado como hardware para el desarrollo del prototipo la tarjeta DE0 (ver Fig. 3) producida por Terasic [7], que posee las interfaces adecuadas para
realizar el diseño inicial. Esta tarjeta posee una FPGA Cyclone III, las conexiones necesarias para colocar la cámara CCD y el interfaz VGA para el monitor.
Fig. 3. Tarjeta DE0 de Terasic
Sin embargo para un diseño comercial bien podría usarse la tarjeta DE0 Nano [8] de Terasic (ver Fig. 4) por su reducido costo (unos $75) y excelente relación tamaño/capacidad, esta tarjeta posee una FPGA Cyclone IV y se adicionarían las conexiones necesarias para implementar la salida VGA. La cámara CCD se puede, al igual que en la DE0, conectar directamente vía sus conectores de expansión. Otra opción consistiría en diseñar y construir una placa a medida, pero no se considera aconsejable, debido a los costos de implementación, fabricación y el relativamente reducido volumen de tarjetas a producir.
Fig. 4. Tarjeta DE0 Nano de Terasic
Para la adquisición de las imágenes de las botellas de vino se realizó una selección de las posibles cámaras digitales que podrían acoplarse a la tarjeta de desarrollo, finalmente se decidió por la cámara Omnivision OV9650 [9][10] (Ver Fig. 5) debido a su
reducido costo, unos US$15, la posibilidad de conseguirla en el mercado y las interfaces que posee que facilitan su conexión y manejo desde la tarjeta DE0.
Se elaboro un núcleo IP para realizar el control y adquisición de los datos provenientes de dicha cámara, la información que proporciona este núcleo es grabada en la memoria interna de doble puerto en la FPGA a manera de “frame buffer”, esta memoria es luego leída por un núcleo IP encargado de procesar la imagen y general el interfaz de usuario vía la conexión VGA.
La cámara OV9650, tiene un sensor de imagen cuyo tamaño es de 1300 columnas por 1028 filas (1.3 MegaPixel). Soporta varias salidas de formatos de video (YUV, RGB, RGB565, etc.), puede proveer ventanas de imágenes de 8 y 10 bits con diferentes resoluciones (SXGA, VGA, QVGA, QQVGA, etc.) que pueden ser configurados por medio de una interface I2C, hacia los registros internos del sensor.
Fig. 5. Cámara CCD OV9650 utilizada en el proyecto
Posee las siguientes funciones:
● Control automático de exposición (AEC)
● Control automático de ganancia (AGC)
● Balance Automático de blancos (AWB)
● Calibración automática de niveles de negros (ABLC)
La velocidad de transferencia de las imágenes va en relación con el formato que uno configura. En la Fig.
6, se puede apreciar dicha relación.
Fig. 6. Velocidad de captura, según hoja de datos.
Para la generación del cuadro, este usa un escaneo progresivo de los arreglos en el que las filas se leen secuencialmente y se transfieren a la APB (Bloque de procesamiento analógico) (ver Fig. 7)
Fig. 7. Bloque del Diagrama funcional de la cámara OV9650
En la Fig. 8, se muestra el diagrama de tiempo de un cuadro a una resolución de 1280 x 1050 pixeles.
Fig. 8. Diagrama de tiempos un cuadro de imagen.
La señal VSYNC, indica el inicio y final de la trama de la imagen para cualquier resolución, dentro de este tiempo una señal HREF va a pasar del nivel „0‟
a „1‟ lógico, lo que indicara que a partir de ese momento por el bus D[9:0] va a mostrar datos del color de los pixeles de cada columna (P0-P1279) para la primera fila (Row 0), la salida de datos está sincronizada con la señal de reloj PCLK que sale de la cámara (ver Fig. 9). Una vez que termina de
entregar todos los datos de la primera fila la señal HREF va a pasar de nivel „1‟ a „0‟, indicando el término de los datos validos en la primera fila (ver Fig. 8). Pasado un tiempo en nivel bajo, la señal HREF pasa de nivel „0‟ a „1‟, indicando el comienzo de los datos para segunda fila, y así el proceso vuelve a repetirse para la tercera fila y continúa sucesivamente hasta la última fila (Row 1023).
Fig. 9. Diagrama de tiempo horizontal de la cámara OV9650
El formato de salida de datos configurado en la cámara OV9650, es el YUV [11], esto es para aprovechar los datos de luminancia, esta información se ingresa directamente al algoritmo de detección de nivel de líquido en las distintas botellas de vino.
Cada valor de Y, U y V se comprende de 8 bits, o un byte, de datos. Algunos modelos de cámaras de color en formato YUV, permiten la transmisión de 24, 16, y 12 bits por pixel (bpp). En formatos de 16 y 12 bpp, los valores de color U y V son compartidos entre los píxeles, lo que libera ancho de banda, pudiendo aumentar la velocidad de fotogramas; esto es conocido como submuestreo de croma, esta técnica tiene en cuenta la mayor sensibilidad del ojo humano a las variaciones en el brillo que en el color.
La tabla 1 muestra los diferentes formatos del estándar YUV, relacionados con el número de bits y numero de bytes por pixel:
Tabla 1 Formato del estándar YUV
Formato Bits Relación Bytes - pixel
YUV444 24 3 bytes por pixel
YUV422 16 4 bytes por 2 pixel YUV411 12 6 bytes por 4 pixel
Con respecto al proyecto se va a hacer el uso del formato YUV422 (UYVY), donde la transmisión de los bytes son ordenados de la siguiente manera:
U0 Y0 V0 Y1 U2 Y2 V2 Y3 U4 Y4 V4….
En la tabla 2 se muestra el orden de la estructura de datos por cada pixel.
Tabla 2 Datos por pixel YUV
#Pixel Valores de los pixeles
0 U0Y0V0
1 U0Y1V0
2 U2Y2V2
3 U2Y3V2
4 U4Y4V4
… …
El sistema embebido en la FPGA, va a adquirir y procesar los datos de luminancia, provenientes de la cámara y así determinar el nivel de líquido de las botellas de vino.
Para la prueba del prototipo se diseñó un recinto (ver Fig. 10), que permite simular las condiciones de trabajo del sistema.
Fig. 10. Diseño del recinto para realizar la simulación.
Asimismo se acondicionó el recinto (ver Fig. 11 y Fig. 12) para obtener un sistema giratorio que permita rotar las botellas de vino de acuerdo a un diseño realizado en SolidWorks.
Fig. 11. Diseño del sistema con base giratoria para las botellas de vino
Fig. 12. Implementación del sistema con base giratoria para las botellas de vino
Para ahorrar recursos del sistema, las imágenes adquiridas por la cámara son transformadas a escala de grises, luego se le aplican diversos filtros de brillo y contraste de manera automática, para finalmente
realizar un análisis binario de la imagen obtenida eliminando los posibles pixeles de ruido (ver Fig. 13).
Fig. 13. Resultados parciales del análisis de la botella de vino
Una alarma visual es mostrada cuando el nivel de vino en la botella sobrepasa ciertos márgenes pre- programados. En el sistema final, una señal enviada a un hardware de control podría retirar la botella con el contenido fuera de los límites permitidos.
IV. RESULTADOS Y DISCUSIONES
Se han obtenido resultados preliminares que indican un estimado en la velocidad de procesamiento de la imagen de aproximadamente 60 botellas por minuto.
En la figura Fig. 14 se muestra el sistema prototipo funcionando.
Fig. 14. Prototipo funcionando con una botella de vino de tinto.
El sistema es eficiente cuando el contraste entre el vino y la botella es máximo (vino tinto, borgoña) siendo problemática la detección del nivel en el caso de vinos mas claros como el vino blanco, donde un análisis de imagen más elaborado es necesario. Las figuras Fig. 15 y Fig. 16 muestran la pantalla con botellas de vino tinto a diferentes niveles, una línea vertical indica el nivel detectado y su éste se encuentra o no dentro de los límites de calidad pre- programados. Con ésta información es posible disparar una alarma o algún tipo de actuador para remover la botella con error.
Fig. 15. Pantalla mostrando una botella con el nivel por encima del margen de calidad.
Fig. 16. Pantalla mostrando una botella con el nivel dentro del margen de calidad.
Para que la detección del nivel funcione, las etiquetas deben de estar colocadas de forma tal que no obstaculice la visión de dicho nivel.
V. CONCLUSIONES
Los resultados parciales muestran que el sistema podría ser capaz de realizar controles a razón de más de 60 botellas por minuto a diferencia de las 10 botellas por minuto que se obtienen mediante el uso del PC a una fracción del costo.
Si bien en un principio, el objetivo del proyecto es la implementación del control de calidad tomando como referencia el nivel de llenado de las botellas de vino, se planea agregar al sistema el control de calidad del posicionamiento de las etiquetas en dichas botellas.
Debido a la flexibilidad que ofrece el hardware es posible configurarlo adecuadamente para agregarle tareas adicionales de control.
Si bien este proyecto pudo ser elaborado sobre una tarjeta que incluyera un DSP especializado en el tratamiento de imágenes, el costo de estos dispositivos es mas elevado que el de las tarjetas basadas en FPGA seleccionadas, además, estas últimas proporcionan mayor flexibilidad.
Este sistema puede ser implementado a un costo mucho menor si es que, en lugar de la tarjeta DE0 Nano, se desarrolla un hardware realizado a medida para un número de instalaciones relativamente alto.
Si bien los costos iniciales de desarrollar este dispositivo serían elevados, los costos finales unitarios podrían descender hasta en 50%.
REFERENCIAS BIBLIOGRÁFICAS
1. S. Wilton, “Architectures and Algorithms for Field-Programmable Gate Arrays with Embedded Memories”. Ph.D Dissertation. s.l.:
University of Toronto, 1997.
2. H. Chang, et al. “Surviving the SoC Revolution”.
New York: Kluwer Academic Publishers, 2002.
ISBN: 0-7923-8679-5.
3. Peter J. Ashenden, “The Designer's Guide to VHDL”. s.l.: Morgan Kaufmann Publishers, 2008. ISBN: 978-0-12-088785-9.
4. Image Processing Techniquesformachinevision, Alberto Martin and SabriTosunoglu,Florida International University,Department of Mechanical Engineering
5. Selecting the Most Favourable Edge Detection Technique for Liquid Level Inspection in Bottles.
Kunal J Pithadiya, Jayesh D Chauhan, Chintan K Modi, EC Departament G H Patel, College of Engg.and Technology, V Nagar.
6. A Computer Vision System for Visual Grape Grading in Wine Cellars. Esteban Vazquez- Fernandez,AngelDacal-Nieto, Fernando Martin,Laboratorio Oficial de Metroloxıa de Galicia (LOMG),Parque Tecnologico de Galicia,SanCibrao das Viñas, 32901 Ourense , Spain.
7. Terasic Technologies Inc. (2011) “Altera DE0 Board.” [En línea]. http://de0.terasic.com.
8. Terasic Technologies Inc. (2011) “Altera DE0 Nano Board.” [en línea]
http://www.terasic.com.tw/cgi- bin/page/archive.pl?No=593
9. OV9650. Hoja de Datos [en línea] Disponible en :
http://www.techtoys.com.hk/Components/OV96 50_MOD/OV9650_DS%20%281.3%29.pdf
10. OV9650. Nota de aplicación [en línea]
Disponible en :
http://www.techtoys.com.hk/Components/OV96 50_MOD/OV9650_software_application_notes1.
03.pdf
11. YUV Formats. [en línea] Disponible en:
http://msdn.microsoft.com/en-
us/library/windows/desktop/dd206750%28v=vs.
85%29.aspx
CURRÍCULO VITAE DE LOS AUTORES
Miguel A. Risco Castillo, nació en Lima, Perú el 22 de julio de 1969. Estudió Ingeniería Física, en la Facultad de Ciencias de la Universidad Nacional de Ingeniería. Ha participado como científico invitado en proyectos conjuntos entre el Centro Internacional de Física Teórica (ICTP) y la Escuela Internacional Superior de Estudios Avanzados (SISSA) en Trieste, Italia. Actualmente colabora con el proyecto de instrumentación virtual reconfigurable del laboratorio multidisciplinario del ICTP, es consultor en electrónica e informática en distintas empresas privadas y trabaja como docente investigador del grupo de microelectrónica del Centro de Investigación y Desarrollo en Ingeniería (CIDI) de la Facultad de Ingeniería Electrónica y Mecatrónica de la Universidad Tecnológica del Perú (UTP).
Juan S. Vega Martinez, nació en Lima, Perú el 06 diciembre de 1984. Estudió Ingeniería Electrónica, en la Facultad de Electrónica y Mecatrónica de la Universidad Tecnológica del Perú. Actualmente labora en la Agencia Espacial del Perú como investigador en la Dirección de Instrumentación Científica y también trabaja como docente investigador del grupo de microelectrónica del Centro de Investigación y Desarrollo en Ingeniería (CIDI) de la Facultad de Ingeniería Electrónica y Mecatrónica de la Universidad Tecnológica del Perú (UTP).
Alberto D. Alvarado Rivera, nació en Lima, Perú el 23 de Julio de 1978. Estudio Ingenieria Electrónica en la Facultad de Electrónica y Mecatrónica de la Universidad Tecnológica del Perú. Actualmente es docente en la misma universidad y también trabaja como investigador en el Centro de Investigación y Desarrollo en Ingeniería (CIDI).