PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ ESCUELA DE POSGRADO Estudio de un sistema de visión para control de pesos y tamaño de racimos de uva de mesa Tesis para Optar al Grado de Magister en Ingeniería Mecatrónica Autor: OSCAR ANDRÉ BASILIO VELA Asesor: Julio Cesar Tafur Sotelo, Ph. D. OCTUBRE 2015 Lima - Perú © 2015, André Basilio Vela Se autoriza la reproducción total o parcial, Con fines académicos a través de cualquier Medio o procedimiento, incluyendo la cita Bibliográfica del documento. i ____________________________________________________________________ RESUMEN ____________________________________________________________________ El presente estudio tiene como objetivo determinar la viabilidad del uso de redes neuronales y sistema de visión para la determinación de peso y tamaño de racimo de uva así como la lógica de control de la maquina a controlar. Desde el año 2000, el Perú empezó a exportar una gran cantidad de uvas de mesa al mercado norteamericano, siendo la uva la tercera fruta con mayor popularidad en este mercado. La uva de mesa presenta una gran potencialidad en el mercado Norteamericano, debido a que presenta un crecimiento acelerado en el volumen de exportaciones los últimos 5 años, posicionándolo como el tercer país que brinda uva de mesa a este mercado. En el año 2015 la exportación de Uvas se incrementó en 8% en el 2015 alcanzando los U$ 692 millones pasando a ser el primer producto de exportación Peruano por encima del Café y los Espárragos. A USA se exportó por U$ 202 millones superior a los U$ 121 millones vendidos en el 2014. Holanda U$ 89 millones (13% del total). Sigue China y Hong Kong con U$ 86 y U$ 77 millones respectivamente. El crecimiento del sector agrícola específicamente de las uvas de mesa en el Perú está generando una mayor producción de racimos, este crecimiento conlleva a un mayor nivel en los procesos que involucran la cosecha y el control por peso de los racimos de uva de mesa. Estos procesos actualmente se desarrollan de una manera manual. Uno de los factores importantes para poder clasificar las uvas de mesa es el peso del racimo, el cual permita clasificarlas en tres categorías distintas de uva según su calibre basada en la norma técnica peruana NTP 011.012-2005 [1]. Por estos motivos, se requiere un sistema mediante el cual se extraiga de manera automatizada el peso del racimo de uva. En este estudio se propuso diseñar algoritmos de control y visión que permitan controlar un sistema automatizado para ii lograr disminuir el error debido al trabajo manual, y aumentar el volumen de procesamiento de los racimos de uva. Se procedió a abordar la solución a esta problemática utilizando técnicas del campo de visión por computadora. Un sistema de visión, comprende la selección del sistema de iluminación, así como la selección de la cámara de video las cuales deben garantizar una buena captura de la imagen del racimo de uva. La etapa de pre- procesamiento permitirá realzar problemas de ruido que se presenten al momento de la captura de la imagen para poder continuar con una segmentación de la imagen y de esta forma realizar la toma de decisiones en la cual se utilizara una red neuronal artificial para poder determinar los pesos de los racimos de uva a partir de las imágenes. Adicionalmente se realizó el programa del controlador de procesos para un sistema mecánico-eléctrico, seleccionador de productos agrícolas, en esta etapa se seleccionó el controlador y se realizó la lógica de control de todo el sistema mecánico-eléctrico. Para la síntesis de los controladores de visión y del sistema mecánico-eléctrico, se utilizó un protocolo de comunicación que permitió realizar la configuración maestro- esclavo entre el sistema de visión y el de control respectivamente. La validez de la lógica de control en el controlador de procesos fue corroborado mediante pruebas en un sistema mecánico-eléctrico para la selección de productos agrícolas que se encuentra en el laboratorio de Oleohidráulica y Neumática de la Sección de Ingeniería Mecánica de la Pontificia Universidad Católica del Perú (PUCP). iii PONTIFICIA UNIVERSIDAD CATOLICA DEL PERÚ ESCUELA DE POSGRADO TEMA DE TESIS PARA OPTAR EL GRADO DE MAGÍSTER EN INGENIERÍA MECATRÓNICA ESTUDIO DE UN SISTEMA DE VISIÓN PARA CONTROL DE PESOS Y TAMAÑO DE RACIMOS DE UVA DE MESA 1. Introducción 2. Planteamiento del Problema 3. Planteamiento teórico y Bases teóricas 4. Selección y Simulación del Sistema de Visión y Control 5. Conclusiones y trabajo futuro Bibliografía Julio Cesar Tafur Sotelo, Ph. D. Asesor iv 1 A mis Abuelos, a mis padres, mis hermanos por darme el apoyo incondicional en mis años de estudios y a mí enamorada por apoyarme en el desarrollo de este trabajo. 2 ____________________________________________________________________ AGRADECIMIENTOS ____________________________________________________________________ Agradezco por la confianza de CONCYTEC depositada en mis compañeros y en mí, otorgándonos una beca de posgrado para desarrollarnos profesionalmente. Adicionalmente al Doctor Julio Tafur, por el constante apoyo que me brindo en el desarrollo de tesis así como su paciencia en este trabajo. Al Diplomado Ingeniero Benjamín Barriga por los años de aprendizaje que impartió en mí, para mi desarrollo profesional. A mis padres, Oscar Bacilio y Emilia Vela por el apoyo incondicional que me brindaron estos últimos 26 años, formándome con valores y buenas costumbres. A mis sobrinos que con sus travesuras no dejaban de alegrarme el día. A todas las personas que me apoyaron en esta etapa de posgrado, como mis compañeros y profesores de la maestría de Ingeniería Mecatrónica. 3 ____________________________________________________________________ ÍNDICE ____________________________________________________________________ RESUMEN ................................................................................................................. II AGRADECIMIENTOS ............................................................................................. 2 ÍNDICE ....................................................................................................................... 3 CAPÍTULO 1 .............................................................................................................. 6 1.1 ESTADO DEL ARTE .............................................................................................. 6 1.1.1 Descripción de la uva .................................................................................. 6 1.1.2 Variedades de uva ....................................................................................... 6 1.1.3 Exportación e Importación de la uva .......................................................... 7 1.1.4 Procesamiento de imágenes aplicado a frutas y racimos de uva ................. 9 CAPÍTULO 2 ............................................................................................................ 11 2.1 DESCRIPCIÓN DEL PROBLEMA ............................................................................ 11 2.2 OBJETIVOS ........................................................................................................ 11 2.2.1 Objetivos específicos ................................................................................ 12 2.3 JUSTIFICACIÓN .................................................................................................. 12 CAPÍTULO 3 ............................................................................................................ 13 3.1 VISIÓN POR COMPUTADORA .............................................................................. 13 3.1.1 Adquisición de la imagen .......................................................................... 14 3.1.1.1 Sistema de iluminación artificial ........................................................ 14 3.1.1.1.1 Fuentes de iluminación artificial ................................................. 14 3.1.1.1.2 Técnicas de iluminación .............................................................. 16 3.1.1.2 Cámara ............................................................................................... 17 3.1.1.2.1 Digital o Análogo ........................................................................ 18 3.1.1.2.2 Protocolos de comunicación ....................................................... 19 3.1.1.2.3 Color o Monocromo .................................................................... 19 3.1.1.2.4 Velocidad de cuadros .................................................................. 19 3.1.2 Preprocesamiento de la imagen ................................................................. 20 3.1.2.1 Filtro lineal ......................................................................................... 20 3.1.3 Segmentación ............................................................................................ 22 3.1.3.1 Morfología Matemática ...................................................................... 22 3.1.3.1.1 Operadores Básicos ..................................................................... 22 3.1.3.1.2 Operadores Avanzados................................................................ 24 3.1.4 Extracción de características ..................................................................... 24 3.1.5 Reconocimiento y toma de decisiones ...................................................... 25 3.2 DESCRIPTORES DE FORMA ................................................................................. 25 3.2.1 Área ........................................................................................................... 25 3.2.2 Centroide ................................................................................................... 26 4 3.2.3 Bounding Box ........................................................................................... 26 3.3 RECONOCIMIENTO DE PATRONES MEDIANTE REDES NEURONALES ARTIFICIALES ................................................................................................................................ 27 3.3.1 Red Neuronal Artificial ............................................................................. 27 3.3.2 Perceptrón Simple ..................................................................................... 28 3.3.2.1 Funciones de activación ..................................................................... 29 3.3.2.2 Algoritmo de Aprendizaje del Perceptrón ......................................... 29 3.3.3 Perceptrón Multicapa (MLP) .................................................................... 31 3.3.3.1 Entrenamiento Algoritmo de Aprendizaje Backpropagation ............. 32 CAPÍTULO 4 ............................................................................................................ 34 4.1 FUNCIONAMIENTO DE SISTEMA MECÁNICO-ELÉCTRICO ..................................... 34 4.2 SELECCIÓN DE HARDWARE ............................................................................... 36 4.2.1 Cámara ...................................................................................................... 37 4.2.2 Fuente de iluminación artificial ................................................................ 39 4.2.3 Controlador para Sistema Mecánico-Eléctrico (CSME) ........................... 43 4.3 SIMULACIÓN DE ALGORITMO ............................................................................ 46 4.3.1 Algoritmo de Visión .................................................................................. 47 4.3.2 Captura de la Imagen ................................................................................ 52 4.3.3 Preprocesamiento y Segmentación de la Imagen ...................................... 52 4.3.3.1 Filtrado ............................................................................................... 53 4.3.3.2 Umbralización de la Imagen .............................................................. 56 4.3.4 Cálculo de Descriptores ............................................................................ 57 4.3.4.1 Cálculo de Área .................................................................................. 58 4.3.4.2 Bounding Box .................................................................................... 58 4.3.4.3 Conversión de pixeles a sistema internacional................................... 58 4.3.5 Diseño Perceptrón Multicapa .................................................................... 59 4.3.5.1 Generación de Base de datos y Escalamiento .................................... 59 4.3.5.2 Arquitectura red neuronal .................................................................. 61 4.3.5.3 Etapa de entrenamiento ...................................................................... 62 4.3.6 Etapa de Pruebas y Resultados .................................................................. 64 4.3.7 Eficiencia de algoritmo desarrollado ........................................................ 67 4.3.7.1 Peso .................................................................................................... 67 4.3.7.2 Tamaño ............................................................................................... 68 4.3.8 Algoritmo de control del sistema mecánico eléctrico ............................... 68 4.3.8.1 Diagrama de Flujo .............................................................................. 68 CAPÍTULO 5 ............................................................................................................ 73 BIBLIOGRAFÍA ...................................................................................................... 74 ANEXO A ................................................................................................................. 76 5 LISTA DE ABREVIACIONES USB: Bus Universal Serial LED: Diodo Emisor de Luz FPS: Cuadros Por Segundo RNA: Red Neuronal Artificial PLC: Controlador Lógico Programable SME: Sistema Mecánico Eléctrico CSME: Controlador del Sistema Mecánico Eléctrico OPC: Control de Procesos Ole VAC: Voltaje alterno VDC: Voltaje continuo 6 CAPÍTULO 1 ____________________________________________________________________ INTRODUCCIÓN ____________________________________________________________________ 1.1 Estado del Arte 1.1.1 Descripción de la uva La uva o también llamada vid (Vitis vinifera) pertenece a la familia de las Vitáceas, que incluye unas 600 especies de arbustos, por lo general trepadores y que producen frutos en baya, propios de países cálidos y tropicales. Dentro del género Vitis se incluyes unas 20 especies cultivadas por sus frutos y algunas por sus hojas que se consumen como cualquier verdura. La uva es una baya comestible que crece en racimos, en arbustos pequeños o en parras, en zonas templada a través del mundo incluyendo África, Asia, Australia, Europa y Sudamérica. La vid es una planta perenne y posee un período vegetativo con cosechas anules, empezando a productir a partir del tercer año de instalada. Requiere de un clima tropical y sub-tropical, que posean temperaturas entre los 7° y 24° C con una humedad relativa de 70% u 80%, desarrollándose exitosamente en suelos franco-arcilloso. Se reproduce por vía sexual (semillas) o a-sexual (estacas, acodos e injertos).[2] 1.1.2 Variedades de uva Uno de los mayores productores de uva de mesa en la región sudamericana, es Perú con sus zonas de producción en Ica, Arequipa, Lima, Ancash, Lambayeque, Piura y Tacna, produciendo distintas variedades tales como la Redglobe, Flame Seedless, Sugraone, Thompson Seedless, Crimson Seedless, entre otras. Respecto a la región con más cantidad de exportación de uvas se encuentra Ica la cual se mantiene en primer lugar desde los inicios de la exportación de uvas de mesa en el Peru, Piura se encuentra en segundo lugar la cual se ha convertido en una región emergente hace pocos años. 7 Entre las variedades de uva más exportadas se encuentra: Red Globe es la principal variedad exportada (75%), seguido por Flame Seedless (14%), Sugarone (7%) y otras variedades (4%) [20]. http://www.misti.com.pe/web/index.php/uva-de-mesa Figura 1.1 Tipos de uva de mayor comercialización Fuente: Provid En nuestro país la uva de mesa se puede producir desde el mes de Octubre hasta Marzo. La uva de mesa peruana es reconocida por su excelente sabor, calidad y por sus adecuados procesos sanitarios. El crecimiento promedio de la uva de mesa ha sido de 30% en cada campaña durante los últimos diez años llegando a mercados tan diversos como exigentes [20]. 1.1.3 Exportación e Importación de la uva Las importaciones en el año 2000 a nivel mundial fueron de valores en miles de US$ 26.867.298, siendo Reino Unido el mayor importador con US$ 4.817.585, seguido de EE.UU. con US$ 4.775.186, para el año 2010 EE.UU aumento su valor importado mundial a US$ 6.131.367 creciendo en un aproximado de 28.4% convirtiéndose para el año 2010 como uno de los países que más importa la uva y sus derivados. La exportación total de uvas frescas a nivel nacional por las principales empresas exportadoras del país en el año 2009, fue en valores de miles de US$ 131.660.986 y el año 2010 con US$ 188.909.055, con un crecimiento de 43.48%[2]. En el año 2015 la exportación de Uvas se incrementó en 8% en el 2015 alcanzando los U$ 692 millones pasando a ser el primer producto de exportación Peruano por encima del Café y los Espárragos. A USA se exportó por U$ 202 millones superior a 8 los U$ 121 millones vendidos en el 2014. Holanda U$ 89 millones (13% del total). Sigue China y Hong Kong con U$ 86 y U$ 77 millones respectivamente. [19] Figura 1.2 Destinos de exportación de uvas de mesa [19] La exportación de Uvas se incrementa en 8% en el 2015 alcanzando los U$ 692 millones pasando a ser el primer producto de exportación Peruano por encima del Café y los Espárragos [19]. 2016 2015 2014 MES FOB kilos Prec. Prom. FOB kilos Prec. Prom. FOB kilos Prec. Prom. Enero 139,804.166 66,266.108 2.110 139,818.272 66,266.108 2.110 119,677.731 50,926.694 2.350 Febrero 64,895.961 34,437.015 1.884 85,310.646 37,253.557 2.290 Marzo 19,617.911 11,618.914 1.688 24,433.068 12,725.556 1.920 Abril 1,081.094 1,324.757 0.816 1,607.068 1,607.068 1.000 Mayo 362.179 552.824 0.655 345.122 515.107 0.670 Junio 509.742 767.706 0.664 189.844 237.305 0.800 Julio 533.269 752.663 0.709 52.855 89.585 0.590 Agosto 1,082.790 1,174.603 0.922 939.530 476.919 1.970 Septiembre 6,076.876 3,502.870 1.735 6,933.836 3,081.705 2.250 Octubre 71,650.646 29,600.582 2.421 55,785.391 23,243.913 2.400 Noviembre 172,230.800 67,068.241 2.568 157,725.363 59,971.621 2.630 Diciembre 214,507.907 91,961.520 2.333 186,233.945 73,902.359 2.520 TOTALES 139,804.166 66,266.108 2.110 692,367.447 309,027.803 2.240 638,955.961 264,031.389 2.420 PROMEDIO MES 139,804.166 66,266.108 57,697.287 25,752.317 53,246.330 22,002.616 %CREC. PROM. ANUAL 142% 157% -6% 8% 17% -7% 55% 63% -5% Tabla 1.1 Exportaciones de Uva Fuente: Sunat 9 La apuesta por las empresas para la exportación de uva se encuentra en constante crecimiento, ya que es un negocio rentable con un porcentaje en crecimiento promedio anual positivo. Esto se puede observar con el aumento de empresas desde el 2010 a la actualidad, con lo cual en el 2010 eran sólo 85 empresas las que apostaban por las uvas y actualmente son 181 empresas las exportadoras. Las dos empresas más importantes en el Perú son El Pedregal S.A. la cual lidera las ventas con U$ 69 millones (10% del total), le sigue Sociedad Agrícola Rapel SAC con US 58 millones (8%). Figura 1.3 Exportación Uvas frescas FOB US$ Miles Fuente: Sunat 1.1.4 Procesamiento de imágenes aplicado a frutas y racimos de uva Una interesante aplicación de procesamiento de imágenes aplicada en las manzanas ha sido realizada en China, para la clasificación de manzanas según el calibre donde se realiza un análisis no destructivo y en línea de las uvas, mediante el uso de sistemas embebidos, utilizando el algoritmo de OTSU para la segmentación de imágenes presentando un porcentaje de error bajo[3]. 10 Un análisis importante para el control de calidad de racimos de uva seria la construcción 3D de estas para poder determinar las diferentes características en todo el entorno de la uva, esta investigación es realizada en España por el Instituto de Automática e Informática Industrial de la Universidad Politécnica de Valencia (ai2- UPV) para uvas con fines de vinificación [5]. Una de los artículos relacionadas con este estudio, resulta de segmentar la imagen obteniendo de esta manera la cantidad de pixeles que contiene una imagen para luego interpretar el peso según la cantidad pixeles determinados en la imagen, así como también obtener el volumen mediante un sólido de revolución y así determinar el peso promedio de cada racimo [6]. 11 CAPÍTULO 2 ____________________________________________________________________ PLANTEAMIENTO DEL PROBLEMA ____________________________________________________________________ El control de calidad de la uva de mesa, es un requerimiento necesario para la selección de distintos tipos de uva en el Perú, la norma técnica peruana menciona diferentes grados de calidad para la uva de mesa, mencionando al peso del racimo como uno de los aspectos más importantes de la de uva de mesa [1]. En efecto, se describirá el problema, así como los objetivos e importancia de este estudio. 2.1 Descripción del problema Cada año los controles de calidad de alimentos, ropa, bebidas, etc. Son más rigurosos debido a la contaminación creciente que existe en el planeta. Cada vez se requiere insumos con mejor calidad para proteger la salud de la personas y proteger el medio ambiente, por ello es necesario controlar la calidad de los productos brindando así un servicio excelente. Adicionalmente, el creciente crecimiento de exportación de uvas de mesa así como la apuesta de negocio de empresas por parte de este fruto genera que las uvas de mesa tengan un control riguroso en la etapa de clasificación para poder competir con otras empresas. Por lo tanto el control de peso y tamaño de la uva de mesa que se realiza de manera manual se requiere una automatización ya que al realizarse de manera manual esto contrae errores por fatiga humana. 2.2 Objetivos El objetivo de este estudio, es elaborar un algoritmo de visión por computadora que permita clasificar uvas de mesa mediante patrones establecidos por la norma técnica peruana en tamaño y peso. Adicionalmente, se elaborará un algoritmo que permita controlar un sistema mecánico-eléctrico. 12 2.2.1 Objetivos específicos Realizar un algoritmo que contenga todas las etapas de visión, como segmentación, filtrado y toma de decisiones. Realizar un estudio sobre la viabilidad del uso de redes neuronales para la creación de un algoritmo que permita obtener peso del racimo a partir de una imagen. Diseñar un sistema que permita clasificar los racimos de uva según la norma técnica peruana NTP 011.012-2005 basada en peso y tamaño. Diseñar una lógica de control, que permita automatizar un sistema mecánico- eléctrico. 2.3 Justificación El diseñar un sistema de visión para controlar el peso de uva es de suma importancia, ya que va permitir la automatización de un sistema que clasifique racimos de uva, que actualmente se realiza de manera manual. Al realizar la automatización del control de tamaño y peso de uva se podrá disminuir el tiempo requerido que demora actualmente la clasificación de uva de mesa. 13 CAPÍTULO 3 ____________________________________________________________________ PLANTEAMIENTO TEORICO Y BASES TEORICAS ____________________________________________________________________ En el presente capítulo, se planteará un concepto solución a partir de un planteamiento teórico. Adicionalmente se desarrollarán las bases teóricas que envuelven al planteamiento teórico. Empezando desde la etapa de adquisición de imagen hasta la etapa de mando. 3.1 Visión por Computadora La visión por computadora es una de las ramas que trata de emular la visión biológica, la cual nos permite realizar distintas actividades diarias como la navegación, identificación de personas y/o objetos, etc. Adicionalmente permite a una persona obtener información del medio que lo rodea. En efecto, la visión por computadora contiene las herramientas computacionales y matemáticas que permitan emular la visión biológica. Para representar imágenes y que ellas tengan ciertas características que un computador pueda interpretar y dar respuestas idóneas, se requiere un sistema que cuente con distintas sub-etapas que permitan que el computador interprete la información de una forma adecuada. Debido a esto, a continuación se trata de describir las etapas que forman la visión por computadora y que se consideran en este estudio. 14 3.1.1 Adquisición de la imagen Adquirir información de un entorno físico, requiere el uso de sensores según el tipo de datos que se quiere obtener y el tipo de información física a obtener. En estudio los datos que se requieren obtener son escenas y/o imágenes de escenas reales, estos se pueden adquirir con distinto tipos de sensores como son cámaras digitales, espectrogramas, rayos X, Ultrasonidos. En este estudio se diseñará un sistema de visión artificial mediante una cámara digital y herramientas de procesamiento digital de imágenes, se detallará a continuación las distintas etapas que se deben considerar en un sistema de adquisición de imagen. 3.1.1.1 Sistema de iluminación artificial Uno de los aspectos importantes en un sistema de visión artificial es la iluminación del proceso a capturar, ya que si no lo hubiera dependería considerablemente de las opciones del clima con lo cual se limitaría el proceso a solo a trabajarlo de día. Es entendible que la calidad y adecuada luminosidad son aspectos críticos para crear una inspección robusta y oportuna [9]. La iluminación artificial del entorno cumple un papel muy importante en el desarrollo de un sistema de visión por computadora, ya que permitirá corregir problemas de captura en la imagen por falta de iluminación natural. Estos problemas pueden ser solucionados utilizando algoritmos en la etapa de preprocesamiento generando un mayor costo computacional. Por lo tanto, es mejor utilizar un buen sistema de iluminación artificial que permitan capturar mediante la cámara de video las características que se desean procesar en el sistema de visión. En lugar de intentar corregir los problemas por software. 3.1.1.1.1 Fuentes de iluminación artificial Se describirán brevemente las fuentes de iluminación externas, para aplicaciones de visión por computadora, mostrando adicionalmente una comparación y contraste entre las fuentes de iluminación. Se detallaran a continuación las fuentes de iluminación más ampliamente usadas en sistema de visión por computadora [9]. 15 a. Fluorescente Suministra una fuente de iluminación clara y más difusa, que es lo adecuado para materiales con alto grado de reflexión. Existen amplia variedad de formas, como pueden ser circulares y lineales así como en tamaño. Presenta problemas debido a perdida de continuidad en imagen, esto se debe al alto parpadeo que genera cuando se captura video al usar fluorescentes con alimentación AC. b. Fibra Óptica- Quartz Halogeno Este tipo de fuente de iluminación externa proporciona una iluminación constante, eliminando la perdida de continuidad que presenta el fluorescente, presentan una alta flexibilidad para iluminar zonas de difícil acceso. c. LED En los últimos años, la tecnología led ha mejorado en estabilidad, intensidad y costo- beneficio; siendo estos parámetros importantes al momento de seleccionar un tipo de iluminación. La luz led debe ser más apropiada si se requiere maximizar los parámetros mencionados [9]. En la figura 3.1, se muestra las ventajas y desventajas de fluorescente, LED y fibra óptica y relevantes selección de criterio aplicadas a máquinas de visión. Figura 3.1 Ventajas y desventajas de fuentes de iluminación [9] 16 3.1.1.1.2 Técnicas de iluminación a. Retroiluminación La retroiluminación genera contraste instantáneo, ya que crea siluetas oscuras contra un fondo brilloso como se muestra en la figura 3.2. El uso más común es la detección de presencia, orientación y medida de objetos. A menudo es práctico usar una luminancia monocroma, tal como roja, verde, o azul [9]. Figura 3.2 Retroiluminación b. Iluminación difusa La iluminación difusa es más comúnmente usada en superficies brillantes o muestras con factor de reflexividad variable. Existen varias implementaciones de iluminación difusa generalmente disponibles, pero 3 tipos primarios domo hemisférico, cilíndrico, en eje y difuso plano siendo esta la más común entre las tres [9]. 17 Figura 3.3 Izquierda: Domo Difuso, Centro: Difuso en eje, Difuso Plano c. Iluminación direccional o Brillo parcial de campo El brillo parcial de campo es la más comúnmente usada en estas técnicas, y es la luz más familiar que observamos diariamente, incluyendo la luz solar. Este tipo de iluminación se diferencia de la iluminación difusa, en que esta es direccional típicamente de un punto fuente de iluminación, y porque su naturaleza de dirección es una buena elección para generar contraste y realzar detalles topográficos. Figura 3.4 Iluminación direccional 3.1.1.2 Cámara Uno de los equipos con un alto grado de importancia para alcanzar el éxito de un sistema de visión, es la cámara la cual permitirá capturar imágenes de un medio físico. En este sub-capítulo se desarrollará las distintas opciones que se deben tener en cuenta al momento de realizar el proceso de selección de la cámara. 18 3.1.1.2.1 Digital o Análogo Un aspecto fundamental en la selección de la cámara es el tipo de señal que tendrá la salida de la cámara, las opciones están entre análoga o digital. La cámara análoga tiene la ventaja de su bajo costo así como presenta una baja inmunidad al ruido adicionalmente de una buena resolución. Este tipo de cámara necesita adicionalmente un grabador de cuadros para convertir la señal de salida tipo análoga a digital. Este grabador de cuadros se coloca en el computador permitiendo la conversión. La señal de salida cámaras análogas pueden ser estándar (RS-170, NTSC, PAL), las cuales presentan una forma fácil de configurar. La cámara digital permite capturar la imagen de un medio físico e interpretarla en forma de pixeles o puntos en una matriz determinada luego estas viajan mediante un protocolo de comunicación hacia el computador. Para esta operación el sensor digitaliza la energía electromagnética en un formato de pixeles, como se muestra en la siguiente figura. Figura 3.5 Adquisición de Imágenes Digitales [7] Como se observa en la figura 3.5, se muestra cómo mediante la adquisición de imágenes en formato digital, se puede obtener una matriz donde cada posible pixel que pertenece al entorno real capturado, se representará mediante un valor cuantizado dentro de la matriz para así poder manipularla mediante otros operando en un procesador o computador. 19 3.1.1.2.2 Protocolos de comunicación Las cámaras digitales permiten la transformación de señales electromagnéticas en señales digitales que son transferidas hacia el controlador mediante buses de comunicación como lo son, USB3.0, GIGE VISION, Camera LinK, USB visión, FireWire. Se muestra a continuación una tabla de comparación entre las ventajas de cada protocolo de comunicación en cámaras digitales. Bus Rendimiento Costo Longitud Interface Alimentación Uso de I/O Efectivo de cable Standard sobre cable CPU Sincronización Camera Link 5 1 3 3 3 5 5 USB 2.0 2 5 1 2 5 1 1 USB 3.0 4 5 2 5 5 4 2 IEEE 1394 3 4 1 5 5 3 2 Gige Visión 3 4 5 5 5 2 2 .Tabla 3.1 Comparación de Buses de Comunicación en Cámaras Digitales proveída por autor [8] Como se muestra en la Tabla 3.1, a mayor ponderación el bus de comunicación presentará una mejor versatilidad en la característica correspondiente. Se deberá tener mucho cuidado al seleccionar el bus de comunicación de la cámara ya que esta puede ocasionar altos costos en la implementación del sistema, la selección del bus de comunicación dependerá directamente del tipo de aplicación que se implementará. 3.1.1.2.3 Color o Monocromo Las cámaras son capaces de brindar imágenes a color o monocromáticas. La elección entre estas dos, va depender del tipo de proceso que se estudiara ya que habrán aplicaciones donde es necesario identificas bordes, forma y solo es necesario el uso de una cámara monocromática, pero cuando se requera identificar textura por color, grados de madurez de frutos o identificar enfermedades mediante color, es necesario el uso de cámaras a color. 3.1.1.2.4 Velocidad de cuadros La velocidad de cuadros o en inglés “Frame Rate” o también llamado Frames por segundo (FPS), significa la cantidad de imágenes que la cámara capturar en un cierto 20 intervalo de tiempo, cuando una cámara posea alta velocidad de cuadros será capaz de capturar con nitidez imágenes que se estén moviendo a gran velocidad. A diferencia de tener una cámara con baja velocidad de cuadros, no se podrá una captura nítida de una imagen que se mueva a gran velocidad. El estándar de velocidad de cuadros para cámaras análogas de video es de 30FPS, lo cual solo capturará 30 imágenes en 1 segundo. Las cámaras digitales permiten una mayor velocidad en la transferencia de datos por lo cual permite una mayor velocidad de cuadros alcanzado el orden de 180FPS 3.1.2 Preprocesamiento de la imagen Llamando también procesamiento de bajo nivel, es una etapa importante en un sistema de visión por computadora, la cual consiste en eliminar el ruido que puede contener la imagen debido a problemas de mala iluminación o de cámara. Así como también mejorar ciertos aspectos de la imagen antes de su siguiente etapa de procesamiento, como puede ser aumentar el brillo de la escena capturada, como también eliminar sombras de ciertas regiones de la imagen. Por lo tanto, esta etapa consiste en transformar la imagen en otra imagen eliminando o mejorando ciertas regiones de la imagen de entrada. Solo se mencionará las técnicas que se utilizarán en este estudio. 3.1.2.1 Filtro lineal La función de un filtro lineal se encuentra exclusivamente especificada por el valor de su matriz de coeficientes o también llamadas máscaras y debido a que la matriz de coeficientes puede consistir de diferentes valores podría existir un número infinito de filtros lineales [15]. El filtrado es una técnica para modificar una imagen, mediante la aplicación de máscaras en la imagen, permitiendo realzar ciertas características y/o eliminar ciertas regiones que contengan ruido. Existen distintos tipos de filtros espaciales para distintos tipos de objetivos como puede ser realzar bordes, suavizar la imagen, eliminar ruido del tipo sal y pimienta (este tipo de ruido se refiere a manchas blancas y negras en la imagen), Filtro Laplace. En su forma más simple una máscara para un 21 filtro se representa como la mostrada en la figura 3.6 la cual es un filtro de caja (coeficientes de la matriz idénticos) de tamaño 3x3. 1 1 1 1 𝐻𝐻 = . �1 1 1� 9 1 1 1 Figura 3.6 Filtro pasa bajo El filtro mostrado se puede variar para que elemento de la matriz tenga diferente valor o peso, y así obtener otros resultados, en vez de colocar valores de 1, se pueden colocar distintos valores. La operación matemática con la que se desarrolla la operación de filtrado sobre una imagen matricial, es la convolución y su contraparte la correlación. La convolución lineal es una operación que permite conectar dos funciones continuas o discretas en una sola. Para dos funciones discretas bidimensionales I y H la convolución lineal es definida como [15]: ∞ ∞ 𝐼𝐼′(𝑥𝑥,𝑦𝑦) = � � 𝐼𝐼(𝑥𝑥 − 𝑖𝑖,𝑦𝑦 − 𝑗𝑗).𝐻𝐻(𝑖𝑖, 𝑗𝑗) ( 3.1) 𝑖𝑖=−∞ 𝑗𝑗=−∞ O escrito en forma compacta: 𝐼𝐼′ = 𝐼𝐼 ∗ 𝐻𝐻 ( 3.2) Donde x e y son las coordenadas o posiciones de los pixeles de una imagen, se podría referir a la traslación de la función discreta I, sobre la función H. La expresión anterior debe reformularse para poder utilizarla en el campo de la visión por computadora, el cual se define mediante rangos finitos o regiones de imágenes determinadas. Reformulando la correlación para este estudio quedaría de la siguiente manera: 𝐼𝐼′(𝑥𝑥,𝑦𝑦) = � 𝐼𝐼(𝑥𝑥 + 𝑖𝑖,𝑦𝑦 + 𝑗𝑗).𝐻𝐻(−𝑖𝑖,−𝑗𝑗) ( 3.3) (𝑖𝑖,𝑗𝑗)∈𝑅𝑅 Por lo que podemos decir que la correlación es la transformación de la convolución rotando la función discreta H o mascara 180°. La operación matemática que se 22 encuentra detrás de cada operación de filtro lineal es la convolución (*) y su resultado es exclusivamente dependiente del valor de los coeficientes de la matriz de filtro 𝑯𝑯(𝒊𝒊, 𝒋𝒋). 3.1.3 Segmentación Proceso por el cual se realiza una transformación de una imagen en elementos de interés contenidas en la imagen, como puede ser bordes, objetos, fondo, etc. Estas transformaciones convierten la imagen en una imagen binaria, en la cual los pixeles pertenecientes al área de interés se representan de color blanco (1 binario) y el fondo u otros objetos que no son de interés se representan de color negro (0 binario). A continuación se conceptualizará los métodos de segmentación que se trabajará en este estudio. 3.1.3.1 Morfología Matemática Es un método general para procesamiento general de imágenes basadas en teoría de conjuntos, por lo cual las imágenes son consideradas como conjunto de puntos, mediante lo cual realizar las operaciones básicas de conjuntos es posible [10]. La morfología matemática, primero fue realizada en imágenes binarias y luego ha sido extendido a imágenes en escala de grises, así como también se puede tratar en imágenes 3D. En este estudio solo se utilizará la morfología matemática aplicada en imágenes binarias. 3.1.3.1.1 Operadores Básicos Las transformaciones básicas de morfología matemática son erosión y dilatación. En el documento “Image Analysis using mathematical morphology” [11] se explica cómo estas transformaciones pueden ser definidas para conjuntos en espacio general para luego ser aplicadas en imágenes binarias y luego extenderlas a imágenes en escala de grises. 23 a. Dilatación La dilatación es una operación morfológica básica correspondiente a la idea intuitiva del crecimiento, o de añadir una capa de pixeles a la estructura de la imagen. La manera específica en la que es controlado el crecimiento, es por medio de una figura llamada elemento estructurante [15.] Esta operación se define de la siguiente forma: 𝐼𝐼⨁𝐻𝐻 = {(𝑥𝑥′,𝑦𝑦′) = (𝑥𝑥 + 𝑖𝑖,𝑦𝑦 + 𝑗𝑗)|(𝑥𝑥′,𝑦𝑦′) ∈ 𝑃𝑃𝐼𝐼 , (𝑖𝑖, 𝑗𝑗) ∈ 𝑃𝑃𝐻𝐻} ( 3.4) Donde I es la imagen a dilatar y H representa el elemento estructurante, y P representa el dominio respectivo de I y H. La operación de dilatación queda definida por el operando (⨁). b. Erosión La erosión es una operación quasi-inversa de la operación dilatación, que se expresa de la siguiente forma: 𝐼𝐼 ⊖ 𝐻𝐻 = {(𝑥𝑥′,𝑦𝑦′)|(𝑥𝑥′ + 𝑖𝑖,𝑦𝑦′ + 𝑗𝑗) ∈ 𝑃𝑃𝐼𝐼(𝑖𝑖, 𝑗𝑗),∀(𝑖𝑖, 𝑗𝑗) ∈ 𝑃𝑃𝐻𝐻} ( 3.5) Donde I es la imagen a erosionar y H representa el elemento estructurante, y P representa el dominio respectivo de I y H. La operación de dilatación queda definida por el operando (⊖). Estas operaciones se diferencian a las operaciones por pixel, ya que las operaciones por pixel o mediante filtros se basan en el concepto de convolución, este proceso se basa en deslizar el elemento estructurante H, por toda la imagen o conjunto I. Los componentes y forma de H, pueden variar para distintas aplicaciones requeridas sus valores de las componentes pueden ser ceros o unos, y su forma puede ser rectangular, circular, esférica, etc. La erosión y dilatación puede ser vista como un tipo especial de un filtro no lineal usando una máscara la cual se refiere a un elemento estructurante, las multiplicaciones son reemplazadas por operaciones de conjuntos. 24 3.1.3.1.2 Operadores Avanzados Las erosiones y dilataciones pueden ser combinadas en serie para poder realizar otras operaciones que brinden resultados distintos. Existen 2 combinaciones bien conocidas llamada apertura y cierre. a. Apertura La apertura es definida como una erosión seguida de una dilatación (ambas operaciones se utiliza el mismo elemento estructurante) 𝐼𝐼𝐼𝐼𝐻𝐻 = 𝐼𝐼 ⊖ 𝐻𝐻⊕𝐻𝐻 ( 3.6) Una operación de apertura sobre una imagen produce, primero la erosión eliminara objetos de menor tamaño a la estructura de referencia para luego con la dilatación tratar de recuperar las formas originales de los objetos no eliminados [15]. Donde el operando que define a esta operación es (𝐼𝐼). b. Cierre El cierre se define como una dilatación seguida de una erosión: 𝐼𝐼 • 𝐻𝐻 = 𝐼𝐼 ⊕ 𝐻𝐻⊖𝐻𝐻 ( 3.7) Una operación de cierre sobre una imagen se rellenan los hoyos encontrados dentro de los objetos de la imagen y que además son más pequeños que el elemento estructurante. Donde el operando que define a esta operación es (•). 3.1.4 Extracción de características Luego de la segmentación de la imagen una etapa importante para poder tener una respuesta del sistema, se refiere a la extracción de características. Mediante esta etapa se extraen características como: el tamaño, la forma, los bordes, la textura, el color y la profundidad, estas características se acomodan en un cierto vector de estados para poder introducir a la siguiente etapa de reconocimiento y realizar la toma de decisiones. 25 Se extenderá la explicación de esta etapa en el siguiente subcapítulo, cuando se acomoden las variables de entrada hacia una red neuronal. 3.1.5 Reconocimiento y toma de decisiones Finalmente, luego de realizar el preprocesamiento, segmentación, y extracción de características se termina con el reconocimiento y toma de decisiones. El reconocimiento se basa en comparar y determinar la igualdad o grado de semejanza entre las características extraídas y una característica patrón. Luego de esta comparación se podrá tomar una decisión que comande la actuación de un sistema determinado. 3.2 Descriptores de forma Una vez que la imagen del racimo ha sido segmentada, es necesario extraer las características de esta imagen. El tamaño y área del racimo pueden ser un indicativo del peso de este, por lo tanto la extracción de estas características de forma automáticamente será un requerimiento para el proceso de clasificación por peso. 3.2.1 Área Luego de obtener la imagen segmentada obtener el área del objeto de interés consiste en contar todos los pixeles con valor binario 1. Por ello calcular el área A del objeto con valor binario 1. 𝐴𝐴 = ��𝑝𝑝(𝑥𝑥, 𝑦𝑦),𝑑𝑑𝐼𝐼𝑑𝑑𝑑𝑑𝑑𝑑 𝑝𝑝(𝑥𝑥,𝑦𝑦) = 1 ( 3.8) 𝑥𝑥 𝑦𝑦 Y p(x,y) es un pixel de la imagen , x es la posición horizontal en el cual el valor del pixel dentro de la imagen es 1, e y es la posición vertical en el cual el valor del pixel en la imagen es 1. 26 3.2.2 Centroide El Centroide de un objeto es el punto en donde por su geometría se encuentra concentrada la masa del objeto. El Centroide (?̅?𝑥,𝑦𝑦�) de un objeto binario se calcula como el punto medio aritmético de las coordenadas en la dirección y, x, tal que: 1 ?̅?𝑥 = 𝐴𝐴 � 𝑥𝑥 ( 3.9) (𝑥𝑥,𝑦𝑦)𝜖𝜖𝜖𝜖 1 𝑦𝑦� = 𝐴𝐴 � 𝑦𝑦 ( 3.10) (𝑥𝑥,𝑦𝑦)𝜖𝜖𝜖𝜖 3.2.3 Bounding Box El bounding Box de un objeto describe el cuadrado mínimo que es capaz de contenerlo. Este rectángulo es descrito mediante la definición de 2 puntos: 𝐵𝐵𝐵𝐵(𝑂𝑂) = (𝑥𝑥𝑚𝑚𝑖𝑖𝑚𝑚,𝑥𝑥𝑚𝑚𝑚𝑚𝑥𝑥,𝑦𝑦𝑚𝑚𝑖𝑖𝑚𝑚,𝑦𝑦𝑚𝑚𝑚𝑚𝑥𝑥) ( 3.11) Donde (𝑥𝑥𝑚𝑚𝑖𝑖𝑚𝑚,𝑥𝑥𝑚𝑚𝑚𝑚𝑥𝑥,𝑦𝑦𝑚𝑚𝑖𝑖𝑚𝑚,𝑦𝑦𝑚𝑚𝑚𝑚𝑥𝑥) representan las coordenadas máximas y mínimas de cada eje que definen al rectángulo. A continuación se muestra una gráfica que define las coordenadas que máximas y mínimas que contiene un bounding box formando un rectángulo mínimo. Figura 3.7 Bounding Box 27 3.3 Reconocimiento de Patrones mediante Redes Neuronales artificiales En esta parte del estudio, se abordará el reconocimiento de patrones mediante un enfoque con redes neuronales artificiales, comenzando con un concepto básico de una red neuronal artificial, para luego explicar las redes neuronales que se desarrollaran en este trabajo. 3.3.1 Red Neuronal Artificial Una red neuronal artificial (RNA), es un modelo computacional inspirado en las neuronas naturales. Las neuronas naturales se comunican con otras neuronas mediantes señales eléctricas, este tipo de comunicación entre neuronas recibe el nombre de sinapsis, cuando estas señales sobrepasan un cierto umbral, las neuronas se activan generando una señal de respuesta que son enviadas a otras neuronas [13]. La complejidad de las neuronas reales es altamente abstracta cuando se quieren modelar artificialmente. Por ello básicamente consiste de entradas, las cuales son multiplicadas por pesos para luego ser calculadas por funciones matemáticas y así realicen la activación de la neurona. Figura 3.8 Neurona Artificial [12] Las RNA presentan una de regla de aprendizaje, mediante el cual sus pesos son ajustados acorde a ejemplos proporcionados, por ello se llaman sistemas de aprendizaje supervisado. Por lo tanto se puede decir que una RNA aprende mediante ejemplos o data conocida, la ventaja del uso de una red neuronal es su rápida convergencia en el aprendizaje. Las funciones de activación de la neurona reciben 28 como entrada la suma de los productos de las entradas con sus respectivos pesos generando una respuesta [12]. Una red neuronal con aprendizaje supervisado puede entenderse en la siguiente figura donde se muestra una interacción entre todas las variable envueltas en la red. Figura 3.9 Aprendizaje supervisado [13] Como se ve en la figura 3.9, para poder realizar un entrenamiento de esta red, se requiere tener información de entrada y salida, para poder realizar el aprendizaje de la red neuronal. Este tipo de sistemas supervisados, necesitan data de entrenamiento para que pueda aprender para ello se necesitan de valores de entrada (P) y valores deseados (T) como entrenamiento, los valores de entrada (P) se ingresan a la red neuronal generando una salida (Y) que se comparan con los valores deseados (T) generando un error, el cual según el tipo de aprendizaje va actualizar los pesos (W) actualizando de esta manera la red neuronal artificial. A continuación se explica las RNA que se utilizarán en este estudio. 3.3.2 Perceptrón Simple Es la forma más elemental de trabajar con redes neuronales artificiales, se basa en una arquitectura que solo contiene una capa de pesos para un conjunto de entradas. Esta arquitectura fue propuesta por McCulloch-Pitts(1943), este tipo de red neuronal es muy potente pero solo trabaja correctamente con funciones lineales o que se puedan clasificar linealmente. 29 Una de las características importantes de esta red es que aunque es capaz de resolver problemas interesantes, existe un grupo importante de problema que no puede resolver. Por esta razón este tipo de redes está casi en desuso en la actualidad, pero no se debe menospreciar la contribución de Rosenblatt a esta área de conocimiento. La gran limitante del Perceptrón es que sólo se puede usar para problemas de clasificación que se consideren linealmente separables. [12] Figura 3.10 Perceptrón simple con 2 entradas En la figura 3.10 se puede observar una representación de una red neuronal tipo Perceptrón que cuenta con 2 entradas y una salida, y como función de activación una función hardlim [12]. 3.3.2.1 Funciones de activación Una neurona biológica puede estar activa o inactiva. La función de activación calcula el estado de actividad de una neurona; transformando la entrada global en un valor (estado) de activación, cuyo rango normalmente va de 0 a 1 o de -1 a 1. Esto es así, porque una neurona puede estar totalmente inactiva (0 o -1) o activa (1) [18]. Las funciones de activación más utilizadas son, Hardlim, Tansig y sigmoide (logsig). 3.3.2.2 Algoritmo de Aprendizaje del Perceptrón Dados los k pares del conjunto de entrenamiento. �(x1, y1), … . , �xk, yk�� Donde, xk = (xk1 , … … , xk), yk = (ykn 1 , … … , ykm) , k=1,2,….,K. 30 • Paso 1 Se elige un factor de aprendizaje ∝> 0 • Paso 2 Se inicializan los pesos 𝑤𝑤𝑖𝑖 con valores pequeños aleatorios, la corrida del error E se fija a 0, k=1 • Paso 3 Empieza el entrenamiento. Se presenta xk, x = xk, y = yk y la salida O es computada. Se escoge la función de activación para activar la salida, usare la función signo. 𝑂𝑂𝑖𝑖(𝑥𝑥) = 𝑠𝑠𝑖𝑖𝑠𝑠𝑑𝑑(< 𝑤𝑤𝑖𝑖. 𝑥𝑥 >), i = 1 … m ( 3.12) • Paso 4 Se actualizan los pesos 𝑤𝑤𝑖𝑖 = 𝑤𝑤𝑖𝑖+∝ (𝑦𝑦𝑖𝑖 − 𝑂𝑂𝑖𝑖(𝑥𝑥)) 𝑥𝑥, i = 1 … m ( 3.13) • Paso 5 El error del ciclo acumulativo se computa agregando el error presente a E, 1 𝐸𝐸 = 𝐸𝐸 + ‖𝑦𝑦 − 𝑂𝑂‖2 ( 3.14) 2 • Paso 6 Si k 0 , y el número de neuronas ocultas a utilizar p. • Paso 2 Se inicializan los pesos 𝑤𝑤𝑖𝑖𝑗𝑗 , 𝑐𝑐𝑗𝑗𝑗𝑗 con valores pequeños aleatorios, la corrida del error 𝛿𝛿 se fija a 0 • Paso 3 Empieza el entrenamiento. Se presenta xk, x = xk, y = yk y la salida de las primeras neuronas ocultas son computadas, así como también de las neuronas de salida. Se escoge la función de activación para activar la neurona oculta, se usara una función de activación 𝜎𝜎(. ) para cada capa de las neuronas. 𝑚𝑚 ℎ𝑗𝑗 = 𝜎𝜎 ��𝑥𝑥𝑖𝑖 𝑤𝑤𝑖𝑖𝑗𝑗� ( 3.15) 𝑖𝑖=1 33 𝑝𝑝 𝑂𝑂𝑗𝑗 = 𝜎𝜎 ��ℎ𝑗𝑗 𝑐𝑐𝑗𝑗𝑗𝑗� ( 3.16) 𝑗𝑗=1 • Paso 4 Se realiza la propagación con retroceso del error o BP error 𝑝𝑝 𝛿𝛿 ′ 𝑗𝑗 = (𝑦𝑦𝑗𝑗 − 𝑂𝑂𝑗𝑗)𝜎𝜎 ��ℎ𝑗𝑗 𝑐𝑐𝑗𝑗𝑗𝑗� ( 3.17) 𝑗𝑗=1 En 2.13 se halla el error de la neurona de salida y se halla el factor de actualización. Δ𝑐𝑐𝑗𝑗𝑗𝑗 = 𝛼𝛼𝛿𝛿𝑗𝑗ℎ𝑗𝑗 ( 3.18) • Paso 5 Se realiza la propagación con retroceso del error ahora para las neuronas ocultas 𝑚𝑚 𝑚𝑚 𝛿𝛿𝑗𝑗 = �𝛿𝛿 ′ 𝑗𝑗 𝑐𝑐𝑗𝑗𝑗𝑗𝜎𝜎 ��𝑥𝑥𝑖𝑖 𝑤𝑤𝑖𝑖𝑗𝑗� ( 3.19) 𝑗𝑗=1 𝑖𝑖=1 En 2.15 se halla el error de la neurona de oculta y se halla el factor de actualización. Δ𝑤𝑤𝑖𝑖𝑗𝑗 = 𝛼𝛼𝛿𝛿𝑗𝑗𝑥𝑥𝑖𝑖 ( 3.20) • Paso 6 Ahora se actualizan los pesos 𝑐𝑐𝑗𝑗𝑗𝑗 = 𝑐𝑐𝑗𝑗𝑗𝑗 + Δ𝑐𝑐𝑗𝑗𝑗𝑗 ( 3.21) 𝑤𝑤𝑖𝑖𝑗𝑗 = 𝑤𝑤𝑖𝑖𝑗𝑗 + Δ𝑤𝑤𝑖𝑖𝑗𝑗 ( 3.22) • Paso 7 El ciclo de entrenamiento es completado. Si e aproximadamente 0, termina la sesión de entrenamiento. 34 CAPÍTULO 4 ____________________________________________________________________ SELECCIÓN Y SIMULACIÓN DEL SISTEMA DE VISIÓN Y CONTROL ____________________________________________________________________ En este capítulo se abordará los conceptos aplicados en la implementación del sistema de visión, así como de la etapa de control del sistema mecánico-eléctrico según los requerimientos para el funcionamiento de esta máquina. En primer lugar, se abordará la explicación del funcionamiento del sistema mecánico-eléctrico en su lógica de control mostrando planos del funcionamiento, seguidamente se explicara el abordaje del sistema de visión para continuar luego con la forma que se seleccionará el hardware del sistema de visión y luego se elegirá el controlador de procesos del sistema mecánico-eléctrico. Por último, se desarrollará la etapa de software y algoritmos que envuelven la parte de visión, así como la parte de la lógica del sistema mecánica-eléctrico. 4.1 Funcionamiento de Sistema mecánico-eléctrico El SME será desarrollado por el Ingeniero Renzo Jo, en una tesis paralela. Esa tesis consiste en el diseño de una máquina que permita la clasificación de los racimos de uva, esta máquina moverá una faja por medio de un motor eléctrico y clasificara uvas de mesa mediante una trampa que será accionada por una electroválvula. En esa tesis se seleccionará un motor, el tipo de arranque del motor, la protección eléctrica del motor, protección eléctrica del controlador y actuadores de mando para la clasificación. Adicionalmente se desarrollará los planos eléctricos de arranque del motor y de control del PLC. 35 En la figura 4.1, se muestra el arranque del motor eléctrico de 9 polos para poder permitir el arranque a 440VAC trifásico y 220VAC trifásico, así como también el circuito de mando del arranque del motor. El circuito mando servirá para poder realizar la programación en el controlador de procesos que se seleccionará en este capítulo. Figura 4.1 Diagrama de fuerza y mando para arranque del motor En la figura 4.2, se muestra el diagrama de entradas y salidas que tendrá el controlador de procesos para poder controlar todo el sistema, a partir del diagrama mostrado se realizará la programación del controlador de procesos. El sistema tendrá 4 lámparas indicadoras, 1 electroválvula que permita actuar una compuerta para clasificar las uvas, 1 electroválvula que permita actuar un sistema de aire para la limpieza de la uva, 6 contactores de 24VDC para un tipo de arranque del motor y 1 contactor para encender la luminaria. Así como también entradas, 2 pulsadores en el 36 tablero para poder arrancar y parar el motor, 1 selector que permita trabajar con 220VAC y 440VAC, 1 parada de emergencia en el tablero, 1 sensor de presencia NPN, 5 protecciones eléctricas (F1, F2, F3, F4, F5). Adicionalmente el SME tiene una fuente de conversión de 220VAC/24VDC (FA1). Figura 4.2 Diagrama eléctrico de Salidas del PLC y de actuadores 4.2 Selección de Hardware En esta etapa se seleccionará todo lo referido a hardware para el sistema de visión y control, empezando con los requerimientos que debe tener la cámara para una correcta etapa de captura en la imagen. 37 Luego se procederá a seleccionar el tipo de fuente de iluminación, que requerirá el proceso para la captura del racimo de uva, la fuente de iluminación debe ser la adecuada para trabajar en cualquier tipo de condición y también para evitar que el algoritmo de visión realice un gasto excesivo en el procesador innecesario. Finalmente se seleccionara el hardware para el controlador de procesos, esta etapa se trabajó teniendo en cuenta los requerimientos del diseñador del sistema mecánico- eléctrico, aquí se refiere a la cantidad de entradas, salidas discretas y/o analógicas con la que contará todo el proceso. 4.2.1 Cámara Una de las partes más importantes en un sistema de visión por computadora, es la selección de la cámara, la cual se encargara de capturar un entorno y convertirlo a un formato digital donde se pueda manipular la información desde un computador. La cámara seleccionada deberá contar con alta velocidad de captura, o un alto FPS ya que se capturará la imagen en movimiento. Adicionalmente, se debe considerar una alta velocidad en el protocolo de comunicación de la cámara debido al alto FPS que tendrá la cámara transmitiendo así una gran cantidad de datos por segundo. La cámara que se seleccionará deberá contar con los requerimientos necesarios para poder alcanzar los objetivos de este estudio. Uno de los requerimientos es la alta velocidad de transmisión de datos, que es un requisito importante ya que se requiere tener un sistema de visión por computadora con respuestas rápidas y que presenten un alta calidad en las imágenes, por ello se elegirá el protocolo de comunicación USB3.0, que según la tabla 3.1, presenta una mayor eficiencia que los otros buses de comunicación. Adicionalmente este protocolo de comunicación permite tener una alimentación propia para la cámara lo cual ahorra en sistemas de acondicionamiento para la alimentación de la cámara. 38 En los objetivos planteados se trata de determinar tamaños y pesos de racimos de uva, por lo cual en este estudio no se realizará una clasificación por color del racimo. Por lo tanto, se requerirá el uso de una cámara de tipo monocromática que permita obtener una buena captura del racimo para su posterior procesamiento. La cámara seleccionada debe tener una alta velocidad de captura, debido a que se capturara imágenes de racimos en una faja, la cual se mueve a una velocidad de 29.63 cm/s por ello se seleccionará una cámara con unos FPS mayor a 90. Después de detallar los requerimientos mínimos con los que debe cumplir la cámara seleccionada para este estudio, se seleccionará una cámara monocromática del fabricante PointGrey modelo: Flea3 FL3-U3-13S2M-CS 1/3” Monochrome USB3.0 Camera Figura 4.3 Cámara Pointgrey Características de la cámara Flea3 FL3-U3-13S2M-CS 1/3” Resolución 1328x1048 Frame Rate 120FPS Megapixels 1.3MP Sensor Nombre Sony IMX035 Tipo Sensor CMOS Tamaño del sensor 1/3” Requerimientos de alimentación Vía USB 3.0 Potencia < 3W Tabla 4.1 Características de la cámara seleccionada En la figura 4.4 se muestra el montaje experimental de la cámara seleccionada en el banco de pruebas. 39 Figura 4.4 Cámara montada en el banco de pruebas 4.2.2 Fuente de iluminación artificial En el capítulo 3 se mencionó con énfasis, en la selección de una buena fuente de iluminación y como su selección puede afectar de diferentes maneras una aplicación puntual generando mayor ciclos de trabajo para el procesador de imagen. Para este propósito se trabajará con un banco de pruebas que se realizó en el ‘sistema mecánico-eléctrico para la selección de productos agrícolas’ que se encuentra en el laboratorio de Oleohidráulica en la Sección Mecánica de la Pontificia Universidad Católica del Perú (PUCP) [14]. 40 Figura 4.5 Sistema Automático de selección [14] El banco de pruebas consistirá en fotografías de los racimos de uva con la cámara seleccionada anteriormente y un sistema de iluminación artificial. A partir de estas fotografías se realizará los cálculos que requiere este estudio. En primer lugar, se definirá los criterios que debe contar nuestro sistema de visión. • El sistema de visión deberá trabajar las 24 horas del día, por ello hacer uso de un sistema de iluminación externo es requerido, ya que la luz solar sería un factor dependiente. • Este sistema también deberá tomar las fotos del racimo de la mejor forma tratando de no capturar las sombras del racimo que puede originar una iluminación incorrecta. • Debido a la velocidad de captura de 120 FPS de la cámara seleccionada, se elegirá un sistema de iluminación con voltaje continuo, para evitar los parpadeos que produce el voltaje alterno de 220VAC a 60Hz. • Se medirá con un luxómetro los diferentes niveles de luminosidad en luxes de 3 sistemas de iluminación para poder seleccionar el más adecuado para el proceso de segmentación. 41 Debido a las dos problemáticas mencionadas, se seleccionará un tipo de iluminación externo tipo difusa domo, que permitirá una iluminación más distribuida evitando así la creación de sombras a los alrededores del racimo de uva. Se probaron con 3 fuentes de iluminación del tipo LED a diferentes voltajes en un área de 0.09m2, con la configuración tipo difusa domo. En la tabla siguiente se muestra el valor de luminosidad para distintos sistemas de iluminación. Tipo de Iluminación Voltaje DC Lux Lumens Tiras de LED 24 1607 144.63 LED puntuales 24 574 51.66 LED dicroicos 12 605 54.45 Tabla 4.2 Tabla experimental de intensidad de luminosidad en el banco de pruebas La fuente de iluminación que se seleccionó para este propósito fue una de tipo LED, se utilizaron tiras de LED de 24VDC a 12W. En la figura 4.3, se muestra la instalación de la fuente de iluminación seleccionada, en el banco de pruebas. Figura 4.6 Sistema de Iluminación instalado en banco de pruebas 42 Figura 4.7 Sistema de iluminación alimentado a 24VDC En la figura 4.6, se muestra una foto luego de montar la cámara seleccionada y la fuente de iluminación seleccionada: Figura 4.8 Montaje final de la cámara con el sistema de iluminación 43 Figura 4.9 Escena real en un banco de pruebas Según la figura 4.7, se observa que la escena real tomada en el sistema mecánico de paprika [14], que la iluminación difusa domo con tiras de led no genera sombras en el racimo, logrando así el objetivo requerido. Si el sistema de iluminación seleccionado hubiera generado gran cantidad de sombras esto hubiera ocasionado un aumento de código de programación en el sistema de cómputo. 4.2.3 Controlador para Sistema Mecánico-Eléctrico (CSME) En este punto se seleccionará el controlador para el SME, el cual se encargará de arrancar al motor trifásico mencionado anteriormente, así como también de protegerlo contra fallas eléctricas. Adicionalmente el controlador, tendrá control sobre todos los sensores y actuadores que contiene el SME. Primero se definirá los requerimientos que debe contar el CSME: • El SME contara con botoneras de Arranque (M1), Parada (P1) y un selector de voltajes de trabajo (S1) en el tablero de control mediante el cual deberá arrancar el sistema o detener al motor. • El CSME, deberá controlar el arranque y proteger al motor eléctrico mediante contactores y llaves termomagneticas respectivamente. 44 • Los contactores, electroválvulas y guardamotores seleccionados, trabajan a un voltaje de 24VDC. • El CSME podrá activar la electroválvula para que pueda actuar la trampa de clasificación mencionada anteriormente así como también otra electroválvula perteneciente a la línea de limpieza. • El CSME, deberá protegerse mediante una llave termomagnetica contra sobrecargas o cortocircuitos. • Finalmente el Controlador de SME, deberá contar con un protocolo de comunicación OPC, permitiendo al controlador convertirse en un OPC Servidor que permita una configuración Maestro-Esclavo, entre el software de visión y el software del controlador respectivamente. Luego de observar estos requerimientos se realizara una tabla de entradas y salidas discretas que requiere el CSME. ENTRADA TAG Comentario ARRANQUE M1 Arranque de motor STOP P1 Parar el motor SELECTOR S11-S12 Selector de voltajes de trabajo para motor PARADA EMERGENCIA PE1 Parada de emergencia en el SME SENSOR PRESENCIA DM Detecta la presencia del racimo para ejecutar la limpieza de la uva PROTECCIÓN ELÉCTRICA F1 Guardamotor para motor PROTECCIÓN ELÉCTRICA F2 Relé térmico 1 de motor PROTECCIÓN ELÉCTRICA F3 Relé térmico 2 de motor PROTECCIÓN ELÉCTRICA F4 Guardamotor para CSME PROTECCIÓN ELÉCTRICA F5 Guardamotor para fuente PLC Tabla 4.3 Entradas discretas del CSME 45 SALIDA TAG Comentario CONTACTOR DE MOTOR KM1 Contactor para configurar arranque del motor CONTACTOR DE MOTOR KM2 Contactor para configurar arranque del motor CONTACTOR DE MOTOR KM3 Contactor para configurar arranque del motor CONTACTOR DE MOTOR KM4 Contactor para configurar arranque del motor CONTACTOR DE MOTOR KM5 Contactor para configurar arranque del motor CONTACTOR DE MOTOR KM6 Contactor para configurar arranque del motor CONTACTOR LUMINARIA KM7 Contactor para encender la luminaria del sistema de visión CONTACTOR CLASIFICA KM8 Contactor que activa la clasificación CONTACTOR LIMPIA KM9 Contactor que permite abrir el sistema de limpieza de la uva LAMPARA ENCENDIDO KM10 Contactor que enciende una lámpara cuando el motor enciende LAMPARA AVISO DE KM11 Contactor que enciende una lámpara cuando FALLA falla la protección del motor LAMPARA AVISO DE Contactor que enciende una lámpara cuando FALLA KM12 falla la protección del CSME LAMPARA AVISO DE Contactor que enciende una lámpara cuando FALLA KM13 falla la protección de la fuente de 220VAC/24VDC Tabla 4.4 Salidas discretas del CSME Según las tablas mostradas el CSME deberán de contar con 11 entradas discretas a 24VDC, ya que los guardamotores, los relés térmicos y sensor de presencia, seleccionados trabajan a 24VDC. Adicionalmente el CSME deberá contar con 13 salidas discretas a 24VDC, ya que todos los contactores seleccionados trabajan a 24VDC. La lógica de control implementada en el CSME, se realizara en una programación secuencial por lo tanto el procesador deberá poder controlar rápidamente las salidas y entradas discretas del CSME, así como también tener una comunicación entre el sistema de visión y el sistema mecánico-eléctrico. 46 Según estos requerimientos se seleccionara un controlador: Componentes Código TAG Comentario PLC S7-1200 6ES7 212-1BE31-0XB0 PLC 8DI/6RLY/2AI, OPC CPU1212C SERVER AC/DC/RLY SM 1221 8 6ES7 221-1BF30-0XB0 - Módulo de 8 entradas entradas x 24 V digitales DC SM 1222 8 salidas 6ES7 222-1BF30-0XB0 - Módulo de 8 salidas x 24 V DC digitales Tabla 4.5 CSME seleccionado El CSME seleccionado es un PLC que cuenta con 8 entradas digitales a 24VDC, 6 salidas tipo relé y 2 entradas analógicas. Adicionalmente se incluirá 2 módulos adicionales de 8 entradas digitales y uno adicional de 8 salidas digitales. Este PLC cuenta con protocolos de comunicación PROFINET, Ethernet TCP/IP y Servidor OPC. En la figura se muestra al PLC seleccionado. Figura 4.10 PLC S7-1200 4.3 Simulación de Algoritmo En esta etapa se desarrollará, lo relacionado a la programación del sistema de visión artificial mencionando las etapas desde la captura de imagen hasta la segmentación del racimo, para luego calcular los descriptores del racimo como son el eje mayor y área. 47 A continuación se describirá cada etapa del sistema de visión. El sistema de visión se realizó con una programación secuencial dividiéndolo en 4 procesos los cuales son: Captura de la imagen, extracción de tamaño y área (filtrado espacial de la imagen, binarización de la imagen y filtrado morfológico de la imagen), prueba de la red neuronal y mandos al CSME. Finalmente se desarrollará el diagrama de flujo del sistema que controlará al CSME, anexando la programación en escalera del controlador que se realizó en el programa del PLC seleccionado llamado TIA PORTAL. 4.3.1 Algoritmo de Visión El algoritmo de visión, consiste en el filtrado del racimo de uva, así como su binarización y extracción de características como tamaño y área, para luego estos valores entren a una red neuronal ya entrenada. El procesamiento final del algoritmo contiene mucho de los procesos que se describirá en los siguientes diagramas de flujo: 48 Figura 4.11 Diagrama de flujo Función principal de Visión Fuente: Propia Adicionalmente se mostrara los diagramas de flujo de las subfunciones que intervienen en la función principal de visión. 49 Figura 4.12 Subfunción que permite detectar la presencia de un racimo mediante la cámara Fuente: Propia 50 Figura 4.13Subfunción que permite extraer el tamaño y área del racimo Fuente: Propia 51 Figura 4.14 Función para entrenar red neuronal a partir de tamaño y área como entradas y peso como salida Fuente: Propia 52 En la figura 4.11 se muestra el diagrama de flujos completo de toda la etapa de visión de este estudio, desde la lectura de la imagen o captura hasta la señal de orden al SME. 4.3.2 Captura de la Imagen Para la obtención de la imagen se utilizará la cámara seleccionada en el apartado anterior. El software Matlab donde se desarrollará el algoritmo de visión debe contar con el driver PointGrey perteneciente al fabricante de la cámara, mediante el cual es posible enlazar la cámara y el software. Logrando así la captura en línea de las imágenes. Para capturar la imagen en el momento adecuado, el cual es cuando la cámara captura totalmente el racimo de uva, se utilizó un disparo por software de la cámara. Este disparo por software, comienza con el procesamiento de la faja sin detección de uva, mediante filtros y binarización, generando un valor de 0 cada vez que no se detecte racimo de uva, al detectar la mínima entrada de un racimo, generara un valor de 1 para realizar la captura 1.2 segundos después de haber generado este valor de 1. El valor de 1.2 segundos se realizó mediante pruebas experimentales en el sistema de pruebas, siendo el valor óptimo para la captura de la imagen. 4.3.3 Preprocesamiento y Segmentación de la Imagen En este apartado, se realizará la metodología para el desarrollo de las etapas de preprocesamiento y segmentación de la imagen, en el cual, la entrada en esta etapa es la imagen monocromática capturada por la cámara y como salida serán el área, tamaño en pixeles del racimo de uva. En la figura 4.15, se muestra esta etapa como una caja negra, esta caja negra se dividió en funciones que se mostró en el diagrama de flujo mostrado en la figura 4.13. 53 Figura 4.15 Caja Negra Preprocesamiento Sistema de Visión A continuación, se detallará cada etapa dentro de la caja negra. 4.3.3.1 Filtrado En esta etapa se aplicará un filtro espacial a la imagen capturada para mejorar la imagen y eliminar los posibles problemas de ruido que contenga la captura. A continuación se realiza el proceso de esta etapa mediante imágenes. Figura 4.16 Imagen original capturada (I1) Al capturar la imagen se aprovechará la gran diferencia en gris, entre el racimo de uva y la faja, a continuación se muestra el histograma de la figura 4.16 54 Figura 4.17 Histograma de la imagen I1 En la figura 4.17 se muestra las diferencias que existen en el histograma de la imagen original, donde el eje horizontal que va de 0 a 255 es el nivel de gris que presenta la imagen, siendo 0 el color negro y 255 el color blanco. El eje vertical indica la cantidad de pixeles a un determinado nivel de gris que existe en la imagen. Como se puede observar esta imagen tiene altos valores de blanco debido a que la mayoría de pixeles en la foto pertenece a la faja que es de un color claro a diferencia del racimo de uva. 𝟏𝟏 𝟏𝟏 𝟏𝟏 𝟏𝟏 𝑭𝑭𝒊𝒊𝑭𝑭𝑭𝑭𝒓𝒓𝒓𝒓 𝒆𝒆𝒆𝒆𝒆𝒆𝒆𝒆𝒆𝒆𝒊𝒊𝒆𝒆𝑭𝑭 = .�𝟏𝟏 𝟏𝟏 𝟏𝟏� 𝟒𝟒 𝟏𝟏 𝟏𝟏 𝟏𝟏 Este filtro espacial se aplicó en la imagen I1 generando la figura 4.18. Este filtro se aplica debido al valle que existe en el histograma, lo que va generar una mejor separación entre el racimo de uva y la faja, como se muestra en la figura 4.18. 55 Figura 4.18 Racimo de uva separación entre racimo y faja (I2) Se observa en la figura 4.18, una buena separación entre la faja y el racimo de uva, pero hay puntos dentro de las bayas que tienen la misma cantidad de brillo que la faja lo que origina huecos blancos dentro del racimo, lo que no es adecuado para este estudio. Por lo tanto para eliminar esos huecos dentro del racimo se utilizaron operaciones morfológicas como apertura, para obtener un racimo completo que no contenga menos huecos. La siguiente operación de filtrado que se realiza es un filtro llamado apertura, la cual fue tratada en el capítulo anterior, a continuación se muestra la imagen del racimo I2 luego de aplicar el filtro mencionado. Se observa la disminución en la cantidad de huecos del racimo, posteriormente se aplicara otro filtro en la etapa de binarización. Figura 4.19 Racimo de uva luego de aplicar filtro apertura cierre (I3) 56 Según la figura 4.19, se observa que los brillos se oscurecen en los bordes para poder realizar una buena segmentación. En la imagen I2, existen aún pequeños bordes diferentes de valor de 255 en la imagen lo cual ocasionará una incorrecta segmentación. Por ello al usar este filtro se oscurecerá los pequeños bordes para luego realizar una umbralización correcta. 4.3.3.2 Umbralización de la Imagen Luego de obtener la imagen I3, se debe realizar la etapa de umbralización para poder obtener una imagen I4 en formato binario (1,0), donde el racimo se identificará por numero 1 y el fondo por número 0, para este propósito se seleccionó que para un umbral de 255 se denote como fondo y valores menores a 255 para el racimo de uva. I4 = I3<255; Figura 4.20 Umbralización de imagen I3 En la figura 4.20, se observa una posible segmentación del racimo. Esta segmentación presenta problemas ya que hay huecos en el racimo, así como las ramas del racimo que no se pudieron segmentar. Para poder eliminar el problema presentado luego de la segmentación se procederá a hacer uso de operaciones morfológicas para poder eliminar los huecos negros en la imagen binaria, y poder capturar de una mejor forma todo el tamaño completo del racimo. Se procede a realizar las operaciones morfológicas sobre la imagen I4. 57 Figura 4.21 Operaciones morfológicas sobre I4 (I5) Según la figura 4.21, se puede observar que se eliminaron correctamente los huecos negros, que ocasionaban una mala segmentación. Ahora es posible extraer características del racimo como puede ser el tamaño y el área que ocupa el racimo dentro de la imagen capturada. En el siguiente apartado se tratará de extraer los descriptores mencionados, para luego poder determinar mediante redes neuronales el peso del racimo. 4.3.4 Cálculo de Descriptores En esta etapa se procede a extraer información importante para introducir al sistema de reconocimiento. Los descriptores o la información más resaltante para poder cumplir con los objetivos de este trabajo de tesis son, el cálculo del Área y el Bounding Box. A continuación se describirá cada etapa en este estudio y como se abordó su solución. 58 4.3.4.1 Cálculo de Área El cálculo del área de la imagen I5, sería el número de pixeles que contiene el racimo. Esta información debe ser extraída ya que es un requisito de entrada para la red neuronal. Contando los pixeles con valor de 1en la imagen I5se obtiene un valor de 674839 pixeles que representaría el valor del área. 4.3.4.2 Bounding Box Uno de los factores importantes y que es requerido en el sistema de visión es el tamaño del racimo de uva, como el ancho y largo. Por ello hacer uso del bounding box (bbox) que circunscribe al racimo, sería la forma más rápida y simple de solucionar lo requerido. Como se explicó en el capítulo anterior el bbox es el mínimo rectángulo que encierra al racimo de uva, por ello sabiendo el tamaño del bbox sería suficiente para conocer el tamaño del racimo. Luego de realizar este procedimiento se consigue el ancho y largo del racimo, todos estos valores fueron calculados en pixeles, pero las medidas reales no deben estar en pixeles sino en sistema internacional centímetros o metros. 4.3.4.3 Conversión de pixeles a sistema internacional En este apartado se convertirá las medidas halladas en el subcapítulo anterior en valores reales como lo es el sistema internacional, para ello en una de las imágenes se capturó la imagen de una regla para poder hacer la transformación de pixeles a centímetros. Figura 4.22 Imagen Patrón regla 59 En la figura 4.22, se muestra la imagen de una regla capturada a las mismas condiciones que los racimos capturados, Esta imagen se tomó en el centro del área cubierta por la cámara. esto se hizo con el propósito de poder determinar la cantidad de pixeles que hay en una longitud determinada. Luego de analizar la figura 4.22, se comprueba que cada 10 centímetros en la regla patrón significan 540 pixeles, por lo cual determinar el tamaño real del racimo o del rectángulo que encierra el racimo de uva será factible. 4.3.5 Diseño Perceptrón Multicapa En esta parte, el propósito principal consiste en diseñar y construir una Red Neuronal MLP, que permita clasificar los racimos de uva según los descriptores extraídos en el capítulo anterior. Estos descriptores se evaluaran en línea con la red entrenada, generando así una respuesta de peso, permitiendo luego la clasificación de los racimos según estándares de calidad por peso. En el capítulo 3, se conceptualizo sobre el tipo de red neuronal a utilizar en este estudio, desde su principio básico llamado Perceptrón simple a MLP. Adicionalmente se planteó sobre los pasos para implementar la red neuronal MLP y el algoritmo BP, que se utilizara en este trabajo. A continuación, se detallará la forma de cómo se abordó el diseño de esta red neuronal. 4.3.5.1 Generación de Base de datos y Escalamiento En esta etapa, se requiere ordenar los datos de entrada para la red neuronal, ordenando las características en un vector así como los pesos en un vector de salidas, Para la generación de la base de datos se utilizaron una cantidad de imágenes para el entrenamiento de data y se reservó otra cantidad para la validación de la red neuronal. 60 Figura 4.23 Racimos de uva para entrenamiento Para la obtener los pesos de las uvas de mesa se utilizó una balanza electrónica. El peso es requerido ya que la red neuronal utilizada es una red supervisada, que necesita conocer entradas y salidas para el entrenamiento. A continuación se mostrara el acomodamiento de los descriptores como un vector de entrada y los pesos como un vector de salida para una muestra dada. 𝐿𝐿𝐿𝐿𝐿𝐿𝑠𝑠𝐼𝐼 1303 𝑥𝑥 = �𝐴𝐴𝑑𝑑𝑐𝑐ℎ𝐼𝐼� = � 814 � 𝐴𝐴𝐿𝐿𝑑𝑑𝐿𝐿 674839 𝑦𝑦 = [𝑃𝑃𝑑𝑑𝑠𝑠𝐼𝐼 ] = [448] La información de los descriptores así como los pesos se deben normalizar, a valores comprendidos entre 0 y 1, esto se debe a que se usaran funciones de activación que varían en ese rango como lo son la función tansig y logsig. Por ello hacer un escalamiento de la data es requerido. Para escalar el ancho y largo se utilizaran un factor de multiplicación de 10−3 y para el área se usaran factores de 10−6. Para escalar el peso se utilizaran un factor de 10−3. Por lo tanto la data utilizada para entrenamiento, cambiara a la siguiente forma mostrada. 𝐿𝐿𝐿𝐿𝐿𝐿𝑠𝑠𝐼𝐼 0.1303 𝑥𝑥 = �𝐴𝐴𝑑𝑑𝑐𝑐ℎ𝐼𝐼� = � 0.814 � 𝐴𝐴𝐿𝐿𝑑𝑑𝐿𝐿 0.674839 61 𝑡𝑡 = [𝑃𝑃𝑑𝑑𝑠𝑠𝐼𝐼 ] = [0.448] Por lo tanto para toda la data que se cuenta se tendrá una data en forma vectorial de la siguiente forma: [𝑿𝑿,𝑻𝑻] = {(𝒙𝒙𝟏𝟏, 𝑭𝑭𝟏𝟏), (𝒙𝒙𝟐𝟐, 𝑭𝑭𝟐𝟐), . . (𝒙𝒙𝒏𝒏, 𝑭𝑭𝒏𝒏)} Donde [X, T], es la data total de entrenamiento que ingresara a la RNA, donde X es la data de entrada a la red neuronal y T es el objetivo que se quiere alcanzar luego de entrenada la red que en este estudio es el peso del racimo. 4.3.5.2 Arquitectura red neuronal En esta etapa luego de normalizar los valores de entrada y salida de la red supervisada, se escogerá la arquitectura de la red neuronal. La arquitectura que se seleccionara dependerá de la velocidad de entrenamiento y el error de generalización, tomando en cuenta diferente cantidad de neuronas en la capa oculta. El modelo del MLP estará constituido por 4 capas, una capa de entrada, dos capas ocultas y una capa de salida. La capa de entrada consistirá de 3 neuronas que es igual al tamaño del vector de descriptores, que proviene de la imagen. Las capas ocultas consisten de 5 neuronas en cada capa, este valor puede ser modificado. La capa de salida, es igual al número de salidas que cuenta el sistema, para este estudio es una sola salida por lo tanto, la capa de salida consistirá de una solo neurona. A continuación se muestra la arquitectura de la RNA que se utilizará en este estudio. 62 Figura 4.24 Estructura de red MLP utilizada 4.3.5.3 Etapa de entrenamiento En este apartado se describirá, la etapa de entrenamiento de la arquitectura seleccionada en el apartado anterior. Para el entrenamiento se hizo uso del entorno matlab para conseguir la red entrenada, luego los valores de pesos y bias de las neuronas en cada capa son extraídas para la etapa de validación. Este entrenamiento logra converger cuando se alcanza una cierta cantidad de épocas o se logra un error mínimo que es introducido en el código matlab. Las funciones de activación que se usaron para esta arquitectura fueron tansig y logsig. A continuación se muestra la interfaz que se utilizó para el entrenamiento y un extracto del código matlab. Figura 4.25Entrenador de red neuronal diseñado Fuente propia 63 Figura 4.26 Entrenamiento de red neuronal MLP Para realizar el entrenamiento, se capturo imágenes de diferentes racimos de uva. A cada racimo se tomó 4 fotos en 4 disposiciones distintas, para poder tener más precisión en el entrenamiento. Se realizó el entrenamiento con 60 racimos de uva en diferentes disposiciones A continuación se muestra el performance de la red, luego de ser entrenada. Figura 4.27 Error medio cuadrático de la red 64 En la figura 4.27, se puede observar el mínimo error cuadrático, que es el error que existe en una época entre la salida de la red neuronal luego del entrenamiento y la salida que se le dio a entrenar al sistema. En la figura 4.26se puede observar la línea de código goal, la cual indica un valor de 10-5 esto indica que nuestra fase de entrenamiento se detendrá cuando el error mínimo cuadrático alcance este valor. En la figura anterior se muestra que se alcanza el objetivo requerido 4.3.6 Etapa de Pruebas y Resultados Para realizar estas pruebas se utilizó una interfaz diseñada en Matlab, esta permite la clasificación por peso o tamaño. Esta es la interfaz fue diseñada para permitir una adecuada interacción con el SME. En la siguiente figura se muestra la interfaz diseñada. Figura 4.28 Interfaz de clasificación de racimos por peso y/o tamaño Con la red obtenida, luego del entrenamiento se procede a validar los valores con data que no fue entrenada. Al validar los datos, los resultados y los errores obtenidos deben ser del factor de la data entrenada, si hubiera problemas y los errores fueran mayores se debería de entrenar la red modificando la arquitectura o entrenando una vez más. A continuación se muestra una tabla de validación de la data no entrenada. 65 Racimo de Uva Disposiciones Peso Real Peso Red Error Error % 1 120 6 -5.26 2 106 -8 7.02 1 114 3 135 21 -18.42 4 140 26 -22.81 1 125 -6 4.58 2 132 1 -0.76 2 131 3 140 9 -6.87 4 145 14 -10.69 1 142 8.5 -6.37 2 153 19.5 -14.61 3 133.5 3 130 -3.5 2.62 4 118 -15.5 11.61 1 240 7 -3.00 2 232 -1 0.43 4 233 3 219 -14 6.01 4 225 -8 3.43 1 280 20 -7.69 2 245 -15 5.77 5 260 3 255 -5 1.92 4 232 -28 10.77 1 150 16 -11.94 2 109 -25 18.66 6 3 134 115 -19 14.18 4 125 -9 6.72 1 400 -6 1.48 2 420 14 -3.45 7 3 406 388 -18 4.43 4 411 5 -1.23 1 215 -5 2.27 2 229 9 -4.09 8 3 220 235 15 -6.82 4 231 11 -5.00 1 355 5 -1.43 2 358 8 -2.29 9 3 350 371 21 -6.00 4 339 -11 3.14 66 1 202 -2 0.98 2 209 5 -2.45 10 3 204 200 -4 1.96 4 195 -9 4.41 1 435 -16 3.55 2 422 -29 6.43 11 3 451 479 28 -6.21 4 459 8 -1.77 1 208 2 -0.97 2 226 20 -9.71 12 3 206 200 -6 2.91 4 236 30 -14.56 1 710 6 -0.85 2 715 11 -1.56 13 3 704 700 -4 0.57 4 690 -14 1.99 1 745 18 -2.48 2 720 -7 0.96 14 3 727 715 -12 1.65 4 750 23 -3.16 1 260 7 -2.77 2 280 27 -10.67 15 3 253 229 -24 9.49 4 245 -8 3.16 1 200 11 -5.82 2 170 -19 10.05 16 3 189 181 -8 4.23 4 185 -4 2.12 1 690 3 -0.44 2 675 -12 1.75 17 3 687 700 13 -1.89 4 702 15 -2.18 1 220 5 -2.33 2 225 10 -4.65 18 3 215 207 -8 3.72 4 200 -15 6.98 1 490 -4 0.81 2 504 10 -2.02 19 3 494 510 16 -3.24 4 485 -9 1.82 Tabla 4.6 Validación de red neuronal 67 El error máximo en la data fue de un error de 53g que solo se dio en una de las imágenes de racimo de uva. Adicionalmente se realizaron pruebas que permitan clasificar por tamaño de racimo, esto se muestra en la tabla siguiente: Racimo de Longitud Longitud Uva Real extraída Error % del estudio 1 15 15.3 2.00 2 21 21.5 2.38 3 18 17.4 -3.33 4 12 11.6 -3.33 5 10 10.4 4.00 6 13 13.9 6.92 7 17 17.1 0.59 8 12 12 0.00 9 22 21.8 -0.91 10 14 13.3 -5.00 11 10 10.2 2.00 12 13 13.1 0.77 13 20 20.2 1.00 14 9 8.8 -2.22 15 17 16.9 -0.59 16 25 24.7 -1.20 17 22 22.3 1.36 18 24 23.5 -2.08 19 16 15.4 -3.75 20 14 13.8 -1.43 Tabla 4.7 Validación de algoritmo para extracción de tamaño 4.3.7 Eficiencia de algoritmo desarrollado Según las tablas mostradas se extrae la eficiencia así como el error máximo de cada control que se requiere tener sobre el racimo de uva como lo son el tamaño y peso. 4.3.7.1 Peso Observando la tabla 4.6, el error máximo de 50g como peso, y un error en 22.81%. Este error de 50g se manifiesta en racimos cuyos pesos superan los 600g y varían a 68 diferente disposición. Sería necesario utilizar otra cámara de video que permita obtener el perfil del racimo e ingresar esta data a la red neuronal para ser entrenada, ya que a diferentes disposiciones del racimo el peso de este varía. 4.3.7.2 Tamaño Observando la tabla 4.7, el error máximo es de 5% generando asi una eficiencia en 95% respecto al tamaño del racimo, no teniendo inconvenientes al variar la disposición del racimo. 4.3.8 Algoritmo de control del sistema mecánico eléctrico En esta parte se desarrollara el concepto referente al algoritmo del controlador del sistema mecánico-eléctrico. Se describirá los diagramas de flujo y se adjuntara en el anexo los diagramas escalera de cada diagrama de flujo. Los diagramas de flujo serán del motor eléctrico, la activación del cilindro neumático, la activación del sistema de presurización para limpieza de las uvas de mesa, los sensores de presencia. Las entradas y salidas del controlador fueron mencionadas en la primera parte de este capítulo. 4.3.8.1 Diagrama de Flujo Se procede a elaborar el diagrama de flujo de la lógica que controlara el motor eléctrico, este debe de estar protegido contra sobrecarga y cortocircuito. 69 Figura 4.29 Diagrama de flujo control motor M1 Luego se procederá a desarrollar el diagrama de flujo de la señal de mando que activará la bobina de la electroválvula para activar al cilindro neumático para clasificar uvas. 70 Figura 4.30 Diagrama de Flujo activar Cilindro neumático Se procederá a mostrar el diagrama de flujo mediante el cual se controlara la limpieza de la uva de mesa. 71 Figura 4.31 Diagrama de Flujo para activar electroválvula limpieza El cilindro neumático puede fallar debido a problemas de alimentación de aire comprimido o fallas en la electroválvula, esto podrá ser controlado mediante el siguiente diagrama de control: 72 Figura 4.32 Diagrama de Flujo Falla de cilindro neumático El controlador debe contener en su programación tipo escalera todos los algoritmos mostrados, como se muestra todos estos algoritmos son de tipo secuencial por ello no es un problema la gran potencia que debe tener el procesador del PLC, por lo cual el controlador seleccionado cumpliría los requisitos. 73 CAPÍTULO 5 ____________________________________________________________________ CONCLUSIONES Y TRABAJO FUTURO ____________________________________________________________________ La elaboración del algoritmo de visión, para controlar los estándares basados en la norma técnica peruana en tamaño y peso, fueron simulados y probados en racimos de uvas de mesa, generando una eficiencia del 95% en clasificación de tamaño y 70% en clasificación por peso. En este sentido se puede afirmar que el algoritmo de visión para controlar tamaño ha sido desarrollado de manera adecuada y se debe obtener imágenes de perfil de los racimos para realizar un entrenamiento adecuado para la red neuronal. La elaboración del algoritmo para controlar el sistema mecánico-eléctrico fue concebido a partir de la información brindada sobre el sistema mecánico-eléctrico, con esta información se elaboró diagramas de flujo y diagrama escalera para controlar el SME. En este sentido se puede afirmar que el algoritmo de control ha sido desarrollado adecuadamente ya que se realizó una simulación en el programa TIA PORTAL. Como trabajo futuro, es necesario realizar una sinergia entre el sistema de visión y el sistema mecánico-eléctrico, para tener una maquina seleccionada en conjunto. Así como desarrollar un algoritmo de visión que permita clasificar por estándares de calidad. 74 ____________________________________________________________________ BIBLIOGRAFÍA ____________________________________________________________________ [1] NORMA TÉCNICA PERUANA NTP 011.012 205 Comisión de Reglamentos Técnicos y Comerciales-Indecopi Uvas de Mesa Requisitos. 2005-01-13 2°Edición [2] Dirección General de Competitividad Agraria Dirección de Información Agraria Características Generales y Económicas de la Uva en el Perú. [3] HONGSHE Dang, Jinguo Song, Qin Guo School of Electric and Information Engineering, Shaanxi University of Science and Technology, Shiping Wang, “A Fruit Size Detecting and Grading System Based on Image Processing” [4]MARTÍNEZ D., G. 2010. El reventado delas bayas de vid. Centro Experimental Costa de Hermosillo. INIFAP. Folleto Técnico # 40. Pág. 10. [5] INSTITUTO de Automática e Informática Industrial. Univesitata Politécnica de Valéncia Actualizada: 05 Noviembre 2014. Disponible en: http://www.upv.es/noticias-upv/noticia-6986-reconstruccion-es.html# [6] Vineyar Yield Estimation Base on the Analysis of High Resolution Images Obtained with Artificial Illumination at Night, Davinia Font, Marcel Tresanchez, Dani Martinez, Javier Moreno, Eduard Clotet and Jordi Palacin [7] Procesamiento Digital de Imagenes, Curso Pregrado Universidad Nacional de Ingenieria, Ingeniero Rocem [8] NATIONAL INSTRUMENTS,. Choosing the Right Camera Bus. National Instruments, Publish Date: Dec 10, 2014 [9] D. Martin, A Practical Guide to Machine Vision Lighting. http://advill.com/upload/downlaod/practicallightingv3.pdf, 2012. [10] A.BLEAU, J. DE GUISE AND A. ROBERT LEBLANC. A new set of fast algorithms for matematical morphology: 1.Idempoten geodesic transforms. CV GIP: Image Understanding, 56(2): 178-209, September 1992 [11] R.M. HARALICK, S. R. STERNBER, AND X. ZHUANG. Image Analysis using mathematical morphology. IEEE Transaction on Pattern Analysis and Machine Intelligence, PAMI-9(4):178-209, July 1987. 75 [12] M.Sc. RODRIGUEZ Bustinza, Ricardo., Análisis de la Red Perceptrón [13] M.Sc. RODRIGUEZ Bustinza, Ricardo., RED NEURONAL MULTICAPA [14] Barriga, Eliseo B., Crisostomo, Pedro M. Dominguez, Daniel E., Muñoz, Karol, Pebes Miguel R., Pebes Miguel R., Torres, Juan J. Sistema Automático de Selección de Productos Agrícolas por visión Artificial [15] Cuevas, Erik., ZALDIVAR, Daniel., PEREZ, Marco. Procesamiento digital de imágenes con Matlab y Simulink. 1a ed. Mexico: Alfaomega Grupo Editor, 2010.09 v.ISBN: 978-607-707-030-6 [16] Johnson, Greg. , The Packer., ‘Fresh Trends 2011’ shows reccion’s influence. [17] Oficica de Promoción Comercial e Inversiones, Los Ángeles., Perfil de Mercado de Uvas de Mesa en Estados Unidos. [18] Matich Damián. , Redes Neuronales: Conceptos Básico y Aplicaciones., ‘Universidad Tecnologica Nacional’ [19]Agrodata Perú, Informes de exportación UVA 2015 http://www.agrodataperu.com/2016/01/uvas-peru-exportacion-diciembre- 2015.html. 76 ANEXO A DIAGRAMA ESCALERA Y CONFIGURACIÓN EN PLC En este apartado, se muestra la configuración del PLC, así como la programación escalera que se realizó. Para realizar la programación y simulación del programa desarrollado en escalera se utilizó el software del PLC seleccionado el cual se llama TIA PORTAL v12.