Prototipo de un sistema que determine el estado de madurez de un plátano utilizando Deep Learning y Visión Artificial
Prototype of a system that determinates the state of maturity of a plantain using Deep Learning and Artificial Vision
Andrea Villalba1, Tomás Requena1, Fabio Solanilla1, José Carlos Rangel2*
1Licenciatura en Ingeniería en Sistemas y Computación – Campus Víctor Levi Sasso– Universidad Tecnológica de Panamá
2ROBOTSIS - Facultad de Ingeniería de Sistemas Computacionales – Universidad Tecnológica de Panamá
*Corresponding author: [email protected]
DOI: https://doi.org/10.33412/rev-ric.v6.0.3155
Resumen Las aplicaciones de Deep Learning (DL) y Visión Artificial han revolucionado la manera de como se ejecutan los procesos en las industrias de alimentos, para disminuir la pérdida de material por procesos ineficientes. Por lo tanto, este proyecto propone la creación de un modelo inteligente de clasificación industrial con asistencia robótica, enfocado inicialmente en la distinción del estado de maduración del plátano (Musa balbisiana). Se llevó a cabo con la ayuda de librerías como TensorFlow y OpenCV, las cuales permiten la utilización de redes neuronales convolucionales. Luego de probar varios modelos, se obtuvo que el que presentó mayor precisión y menor pérdida logró clasificar correctamente los tres estados de maduración del plátano, siempre y cuando las imágenes a predecir mantengan el formato establecido.
Palabras clave Clasificación, deep learning, estado de maduración, plátano, redes neuronales convolucionales, visión artificial.
Abstract Deep Learning (DL) and Artificial Vision applications have revolutionized the identification of wasteful and inefficient processes in the food industry. This project proposes the creation of an intelligent model of industrial classification with robotic assistance focused initially on the distinction of the maturation state of the plantain (Musa balbisiana). This research was possible with the help of libraries such as TensorFlow and OpenCV, which allow the use of convolutional neural networks. After testing several models, the one that presented the best accuracy and loss, was capable of correctly classifying the three stages of maturation of the plantain, if the images maintain the preestablished format.
Keywords Classification, deep learning, stages of maturation, plantain, convolutional neural networks, artificial vision.
1. Introducción
Actualmente se espera que la industria de la agricultura produzca un 50% más de alimentos para poder abastecer a la población mundial en un futuro, teniendo en cuenta que a medida que pasan los años hay menos mano de obra capaz de realizar dichas cosechas. Estos cambios deben ser atacados con urgencia y la tecnología puede proporcionar soluciones para optimizar procesos agrícolas como instrumentos de detección de contaminantes en tiempo real, aviones y drones que mapean zonas agrícolas y logran detalladas imágenes de una planta, elementos de robótica en máquinas clasificadoras de fruta, cosecha mecanizada, tractores manejados por GPS, paletizadoras y empaquetadoras automáticas, softwares de monitoreo de huertos y trazabilidad [1].
En este caso, nos decidimos enfocar en los clasificadores de frutas automáticos, específicamente del plátano. Esto permitirá tanto abaratar costos como automatizar el proceso del control de calidad, ya que el mismo será capaz de reconocer y diferenciar entre plátanos dañados, maduros y verdes, utilizando cámaras que escanean y reconocen el estado de la fruta, para eventualmente poder tomar una decisión correcta. Con un sistema como este, se puede llegar a crear clasificadores de maduración de cualquier tipo de fruta, pues lo único a cambiar sería el dataset propuesto y claramente crear una máquina que se adapte a la respectiva necesidad.
1.1 Trabajos previos
Con el pasar de los años, la evolución de la inteligencia artificial ha permitido implementar las ramas de esta ciencia en diversos ámbitos. En este estudio, se consideran la visión artificial y el deep learning (DL) el desarrollo de un sistema automatizado que reconozca el estado de una fruta, en este caso particular de un plátano para su posterior implementación en granjas y depósitos.
En el año 2013, un grupo de investigadores del Instituto Tecnológico Superior de La Huerta en Jalisco, diseñó un sistema de visión artificial para seleccionar limones [2], capaz de determinar el grado de madurez y tamaño del limón con base en el procesamiento de imágenes, utilizando filtros y algoritmos con Matlab. Se desarrolló una tarjeta de adquisición de datos con el microcontrolador PIC18F4550 para detectar la presencia del limón con un sensor de proximidad y para seleccionar la fruta con el resultado del procesamiento. Otro caso de estudio se remonta al 2014, cuando un grupo de investigadores de la Universidad Nacional de Colombia presentó una aplicación de visión artificial utilizando el Toolbox de procesamiento de imagen de Matlab [3]. El propósito era clasificar el mango de variedad tipo Tommy de acuerdo con sus características de color y tamaño. Este trabajo implementó programación en código M-file, métodos de segmentación, procesamiento de la imagen y la obtención de gráficas y resultados que describen el proceso de clasificación mediante la red de decisión.
Otro aporte importante en el desarrollo de reconocimiento de frutas ocurrió en el Instituto de Automática y Electrónica Industrial de la Universidad Nacional de Córdoba. Un grupo de ingenieros ha desarrollado un sistema informático- electrónico para resolver problemas de control de calidad en productos agroalimentarios [4], en su caso particular, de manzanas. El sistema permite capturar las imágenes, procesarlas, calcular el tamaño de la fruta contenida en la imagen, determinar características adicionales, determinar cuál es el envase que le corresponde, activar los dispositivos de derivación en el momento oportuno y llevar registros de todo el proceso. El usuario puede configurar el sistema para distintos tipos de frutas y modificar la asignación de clases (tamaño de la fruta de cada envase) y puertos (ubicación física de los mecanismos envasadores) según sus necesidades.
En la Universidad Utara de Malaysia, un grupo de investigadores realizó un proyecto con la finalidad de mejorar el desarrollo de modelos de clasificaciones de imágenes capturadas en ambientes naturales [5]. Para ello, se usó como modelo de estudio la jatropha. Mediante el desarrollo de un modelo de red neural con configuración 6-7-4, aumentaron la precisión de la clasificación basados en el color de la superficie de la fruta. La clave fue el uso de un algoritmo de procesamiento de imágenes, lo cual optimizó la calidad de cada imagen del dataset, eliminando iluminación u otros factores.
Investigadores del Instituto Tecnológico de Vishwakarma en Pune desarrollaron un sistema de clasificación de vegetales a partir de imágenes, usando Tensorflow para el aprendizaje automático y OpenCV para el procesamiento de imágenes [6]. Para el modelo de red neuronal, utilizaron Inception-v3, la cual es una red neuronal profunda brindada por Tensorflow, que tomó un largo periodo de tiempo para ser entrenada.
El uso de las técnicas de procesamiento de imágenes ha tenido una gran repercusión en el análisis y ejecución de las operaciones agrícolas. Es común ver sistemas inteligentes con un grado de similitud a nuestra propuesta en los almacenes y granjas de gran parte de Europa y Norteamérica.
1.2 Propuesta
La primera fase del proyecto propone el desarrollo de un sistema inteligente de clasificación de imágenes, enfocado inicialmente en la determinación del estado de maduración de una fruta (figura 1). En este caso, se utilizó el plátano (Musa balbisiana) como prototipo. Dicha fruta es de tipo tropical, tiene apariencia lineal o alargada, entre los 7 a 14 centímetros de longitud con un diámetro no mayor a los 4 centímetros, la planta de la que proviene pertenece a la familia de las Musáceas, uno de los progenitores de la banana. Se presenta como falsa baya y se agrupan por racimos [7].
Figura 1. Estados de madurez del plátano.
La finalidad del proyecto es optimizar la productividad en las granjas y almacenes (warehouses), automatizando el proceso de diferenciación de productos y agilizando así, la línea de producción. La fase posterior consta de la creación de un dispositivo de estructura robótica que cumpla la función de un separador de racimos, y su posterior implementación en la línea de producción. Cada plátano de forma individual es evaluado y transportado a su respectivo contenedor para su correcto almacenamiento, tal como muestra la figura 2.
Figura 2. Prototipo del dispositivo clasificador.
La implementación de sistema inteligente se lleva a cabo en el lenguaje de programación Python, con la utilización de TensorFlow [11] y Keras [8], librerías de Machine Learning y Redes Neuronales de alto nivel.
2. Materiales y métodos
Para lograr la clasificación de imágenes a través del uso y aplicación de CNN (Convolutional Neural Networks) [9], se debe contar con un dataset de imágenes con los diferentes estados a clasificar.
La fase inicial se enfocó básicamente en la creación de dicho dataset. Para esto, se tomaron 650 imágenes de cada estado del plátano (verde, maduro y dañado). Estas debían ser lo suficientemente diversas, razón por la cual, la captura se realizó con gran cantidad de plátanos, desde varios ángulos, con diferentes tipos de iluminación y con un mismo color de fondo (blanco). Dicho fondo permite estandarizar las imágenes y así optimizar la eficiencia del clasificador. Luego se separaron en carpetas de acuerdo con su estado, para facilitar el manejo de imágenes en el programa.
Una vez armado el dataset, comienza la segunda fase del proyecto, la cual consta de la creación del modelo predictivo. Luego de importar la lista de imágenes ya etiquetadas (0 = Verde, 1 = Dañado, 2 = Maduro), se realiza un ciclo de iteraciones para convertir cada imagen (matriz original de píxeles) en tres matrices de canales RGB (red, green, blue). Al obtener los datos de forma numérica, se procede a almacenar la variable dependiente (etiqueta de la imagen) y la variable independiente (imagen a evaluar) en diferentes arreglos para su futura utilización.
A la hora de la creación del modelo clasificador con la CNN, se decidió hacer una prueba en donde se variaban la cantidad de convoluciones que se hacían, la cantidad de neuronas que tenía cada capa y por último la cantidad de capas densas (totalmente conectadas) que tendría la red [10]. Las convoluciones se encargan de aplicar diversos filtros a las imágenes, las cuales están ligadas a la capa de max pooling,responsable de simplificar grandes matrices, reduciendo la cantidad de parámetros para quedarse con las características más comunes. Siempre teniendo en cuenta la presencia de una capa Flatten [10], la cual organiza todos los datos en una dimensión y la última capa densa que siempre se mantuvo con 3 neuronas, pues lo que se esperaban eran 3 posibles respuestas. En la Figura 3, se puede observar la arquitectura diseñada para la red neuronal de nuestro modelo.
Después de hacer las diferentes pruebas, se procedió a guardar el modelo que tuviera mayor porcentaje de precisión a la hora de validar, para eventualmente hacer la predicción con una imagen de un plátano que no perteneciera al dataset.
3. Resultados y discusión
En la figura 4 se pueden observar los 8 resultados obtenidos después de entrenar el modelo cambiando ciertas condiciones, tomando en cuenta que el eje x considera la cantidad de épocas entrenadas (10 épocas).
El modelo que presentó un mayor porcentaje de precisión y un menor porcentaje de pérdida es el que implementa 2 capas de convoluciones, utiliza 256 neuronas en cada capa y no utiliza ninguna capa densa en adición a la última. Por ello, se decidió utilizar dicho modelo para realizar las diversas predicciones, manipulando los datos preseleccionados de prueba, diferente a la de entrenamiento. Se logró una precisión del 96%, pues hubo ciertas clasificaciones que el modelo no logró predecir correctamente, tal como muestra la matriz confusión presente en la figura 5. Se observa que hubo 18 imágenes de plátano verde las cuales predijo que serían plátanos maduros, adicionalmente las de dañado las confundió en la misma proporción tanto con verde como con maduro. La clasificación de los maduros fue casi perfecta confundiendo solo uno con el verde.
Figura 3. Diagrama de la red neuronal.
Figura 4. Gráfica de la precisión obtenida en la corrida de validación del modelo.
Figura 5. Matriz de confusión de los diferentes estados del plátano.
Posteriormente, se procedió a hacer la prueba con 3 imágenes de cada estado de maduración, tal como muestra la Figura 6. El modelo logró clasificar exitosamente las 3 imágenes, sin embargo, al colocar una imagen con un fondo diferente al blanco o con más de un plátano, el modelo no era capaz de predecir correctamente.
Figura 6. Imágenes de prueba usadas por el modelo para realizar la predicción del estado.
4. Conclusiones
El objetivo principal del proyecto era realizar un sistema capaz de reconocer 3 estados de maduración del plátano. Dicho objetivo se cumplió satisfactoriamente, creando un modelo que es capaz de identificar el estado de maduración de un plátano, bajo condiciones especificadas para el análisis de la imagen. El DL y las redes neuronales han probado ser una buena herramienta para la solución de este tipo de problemas.
Para futuras investigaciones similares, sugerimos que se genere un dataset con fotos más variadas y en mayor cantidad para cada estado de maduración imágenes dataset, considerando una cantidad de muestra mínima de 2000 imágenes por categoría. También se prevé la integración del sistema de clasificación con los dispositivos de manipulación de los racimos y de esa manera construir el sistema completo.
AGRADECIMIENTOS
En este trabajo José Carlos Rangel ha sido apoyado con fondos del Sistema Nacional de Investigación (SNI) del SENACYT.
REFERENCIAS
[1] J. Velasco Cruz. (2017). “El avance de la automatización en la agricultura de Red Agrícola” [En línea] Disponible: http://www.redagricola.com/cl/el-avance-de-la- automatizacion-en-la-agricultura/
[2] L. H. Rivera Cambero, G. Martínez Orozco, M. L. Jiménez Vicencio y J. C. Rodríguez Ramos, “Diseño de un sistema de visión artificial para seleccionar limón”, de 1er. Congreso Internacional de Robótica y Computación (CIRC 2013), Los Cabos, Baja California Sur, México, 2013. doi: 10.13140/2.1.2308.7043
[3] Á. Romero-Acero, A. Marín-Cano y J. Jiménez-Builes, “Sistema de clasificación por visión artificial de mangos tipo Tommy”, Revista UIS Ingenierías, vol. 14, nº 1, pp. 21-31, enero-junio 2015 [En línea]. Disponible en: http://www.redalyc.org/articulo.oa?id=553756867002 [Accedido: 15-jun-2019].
[4] M. Distéfano, M. Fernández y M. Ponzo, “Clasificación de frutas con visión artificial”, de IV Congreso Argentina de Ciencias de la Computación, Ciudad de Neuquén, Argentina, 1998 [En línea]. Disponible en: http://sedici.unlp.edu.ar/handle/10915/24014 [Accedido: 17- jun-2019]
[5] H. A. Hambali, S. L. S. Abdullah, N. Jamil, H. Harun, “Fruit Classification using Neural Network Model”, Journal of Telecommunication, Electronic and Computer Engineering (JTEC), vol. 9(1-2), pp.43-46. 2017.
[6] O. Patil, V. Gaikwad, “Classification of Vegetables using TensorFlow”, International Journal for Research in Applied Science and Engineering Technology (IJRASET), vol 6, Issue IV, pp 2926-2934, ISSN: 2321-9653, April 2018.
[7] D. Cifuentes. (2019). Plátano Macho: origen, propiedades, beneficios, y todo lo que debes saber. [En línea] Conozcamos Todas Las Propiedades De Cada Alimento. Disponible: http://hablemosdealimentos.com/c-frutas/platano-macho/ [Accedido: 18-jun-2019].
[8] F. Chollet. (2015). “Keras Official Page” [En línea] Disponible: https://keras.io/
[9] R. Prabhu. (2019). “Understanding of Convolutional Neural Network (CNN) — Deep Learning.” [En línea] Medium. Disponible:https://medium.com/@RaghavPrabhu/understandin g-of-convolutional-neural-network-cnn-deep-learning- 99760835f148 [Accedido: 18-jun-2019].
[10] sitiobigdata.com. (2019). “Red neuronal convolucional: vista rápida con una implementación”. [En línea] Disponible: http://sitiobigdata.com/index.php/2018/08/28/red-neuronal- convolucional-vista-rapida-implementacion/# [Accedido: 18- jun-2019].
[11] G. Brain, (2019). “TensorFlow.” [En línea]. Disponible: https://www.tensorflow.org. [Accedido: 24- jul.-2019]