INTRODUCCIÓN
Actualmente, la selección de los frutos de café considerados aptos para la producción sigue realizándose de forma artesanal o manual en un gran sector de la industria, especialmente en la pequeña industria. Muchos investigadores han propuesto soluciones de automatización para este proceso mediante redes neuronales artificiales, obteniendo niveles de precisión elevados en la clasificación de granos de café empleando algoritmos bayesianos y cámaras de alta definición (1-4) Otros sistemas también están basados en lógica difusa (5) y visión artificial (6-8). Sin embargo, requieren necesariamente de una exigente adquisición de imágenes y elevada iluminación para conseguir mayor eficiencia. Con respecto a los dispositivos de control empleados para la clasificación, proponen el uso de Raspberry (9) evitando el uso de una computadora pero con menores recursos para la programación. En contraparte (4) emplea una laptop con más recursos para realizar procesos de procesamiento de imágenes más avanzados. Por otro lado, (10) emplea Interfaz de Programación de Aplicaciones API con recepción y envío de datos mediante Linux, pero depende de una conexión de internet estable.
La Plataforma empleada para el desarrollo del algoritmo más usual por los investigadores es Matlab (11,1), lo cual requiere de licencia para su uso. Otros, emplean OpenCV que es de acceso libre (9,12,13), quienes aplicaron además C++. Python y Visual Studio. Sin embargo, estos sistemas son más complejos a pesar de tener menor carga computacional (6); por lo cual, otros autores proponen conversiones de color mediante RGB, HIS y CIE*L*a*b* (14), para análisis físico-químicas de los frutos, aplicando el método de agrupamiento de K-medias a través de sus características colorimétricas (15). Siendo que esto implica mayor carga computacional e incrementa el tiempo de procesamiento.
Como se aprecia, las investigaciones previas proponen la identificación de frutos de café mediante algoritmos de visión artificial (11) mediante el análisis de imágenes (12) y el empleo de métodos de segmentación, reconocimiento de contornos, conversiones de color, redes neuronales, algoritmos bayesianos (16) y lógica difusa, todos ellos implementados en hardware que implican el uso de cámaras de alta definición y procesadores con sistemas operativos, con el consiguiente problema de tener un sistema limitado en su velocidad de respuesta de la cámara, código de procesamiento y sistema operativo.
En consecuencia, esta investigación busca determinar un algoritmo de control óptimo y evaluar sus resultados para determinar la eficiencia del sistema de para la identificación de los frutos de café reconociéndolos por su color. Por lo cual, se propone el diseño de un algoritmo en base al reconocimiento de colores que pueda de implementarse en un hardware de bajo costo empleando un microcontrolador y fotodiodos en lugar de cámaras de alta definición buscando conseguir un sistema óptimo respecto al tiempo, precisión y costo. Para ello se tendrá como entrada los datos las características de color de los frutos de café adquiridos mediante un sensor de color con modo RGB, a fin de lograr una mayor velocidad de respuesta en la selección de frutos de café en comparación con los sistemas que emplean cámaras. La implementación de esta propuesta beneficiará a la industria del café, principalmente donde se requiera procesar y garantizar la calidad de los frutos para que sea precisa, rápida y eficiente, cuando se trate de considerables cantidades.
MATERIALES Y MÉTODOS
Para la presente investigación se evaluaron varias posibles soluciones en busca de un control automático mediante algoritmo que permita la clasificación óptima de los frutos de café, teniendo en cuenta criterios como la velocidad de procesamiento, la carga computacional del sistema, precisión, velocidad de respuesta, consumo de energía y costo del sistema. Es así, que se optó por un sistema de adquisición de datos en base a RGB que se adquiere de las imágenes de las muestras representativas de fruto de café para proceder al entrenamiento y posterior simulación de la red neuronal multicapa, la misma que se implementará al microcontrolador STM32F103C8 por tener una arquitectura ARM de 32 bits y sobretodo una FPU, para finalmente evaluar la eficiencia de este sistema, como se explica en la Figura 1, donde se precisa el proceso metodológico mediante el cual toma la adquisición de las características de color de los frutos de café a través de un sensor de color RGB consistente en fotodiodos con filtro de color y un microcontrolador, llevándose a cabo un sensado por secciones empleando estos datos para la clasificación precisa de los frutos de café y contando para ello con una red neuronal multicapa que se implementó en un microcontrolador Arduino. Este microcontrolador enviará una señal al circuito del driver del servomotor para que lleve a cabo la clasificación de los frutos en base a su madurez apropiada. Por consiguiente, el método empleado para el desarrollo del sistema propuesto se aprecia en la Figura 2.
Toma de imágenes
Empleando una cámara digital se tomaron fotos de 120 frutos de café maduros, 120 inmaduros y 120 frutos sobremadurados; es decir 360 frutos en distintos estados de maduración. La captura de fotos se hizo en un fondo blanco considerando una iluminación adecuada y estable aplicándose un filtro con el fin de cambiar el color del fondo blanco al color negro, empleando la aplicación gráfica GIMP para optimizar el sensado posterior. Asimismo, las imágenes fueron seccionadas en matrices tipo simétricas de 150 pixeles. Se utilizaron 300 imágenes para el entrenamiento, así como para la validación y prueba de la red neuronal y 60 para llevar a cabo las pruebas del sistema desarrollado con la red neuronal considerando en cada grupo muestras correspondientes a los frutos maduros, e inmaduros.
Adquisición de datos RGB
Esta etapa del proceso se realizó con el sensor de color RGB TCS3200 de 4 diodos led, el cual se conecta al microcontrolador STM32F103C8 teniendo en cuenta realizar 5 mediciones para cada dato tipo imagen de fruto de café, logrando así un promedio de color de una sección mayor de cada fruto, como se señala en la Figura 3.
Programación del microcontrolador
Haciendo uso de la librería “tcs3200.h” se procede a programar el microcontrolador empleando Arduino, como se aprecia en la Figura 4, se crea la base de datos consistente en promedios de color RGB de los frutos de café evaluados.
Entrenamiento de red neuronal multicapa
La red neuronal multicapa es entrenada empleando MatLab, teniendo en cuenta la adquisición de datos organizados en una matriz de datos RGB 3x300; para lo cual, se utilizaron tres entradas (uno para cada color) y una salida para señalar si el fruto de café corresponde al que tiene “madurez óptima” o “madurez no óptima”. Con esto, los valores iniciales se modificaron para conseguir un diseño de red más óptima, considerando el proceso de “prueba y error”, así se obtuvo una red neuronal tipo multicapa consistente en una capa en la entrada, tres capas ocultas y una capa en la salida así como seis neuronas correspondientes a la primera capa oculta de tipo función tangente hiperbólica sigmoidea como función de activación; también, tres neuronas para la segunda y la tercera capa oculta conjunción sigmoidea como función de activación y finalmente, una neurona para la capa de salida con característica de función de activación lineal.
De esta manera se obtiene el código desarrollado en la Plataforma MatLab para el diseño de la red neuronal donde se aplica el método bayesiano para el entrenamiento con la plataforma Matlab (17) para el entrenamiento de la red neuronal como se aprecia en la Figura 5. Habiendo obtenido los “pesos” y “bias” éstas fueron declaradas como variables constantes en la programación implementada en el microcontrolador seleccionado consiguiéndose así los códigos fuentes de la red neuronal. En seguida se procede con la programación de la red neuronal empleando la función creada para la adquisición de datos RGB, siendo previamente normalizados para procesarlo en la capa de entrada, de acuerdo a la Figura 6. Cabe señalar que se utilizaron las funciones de activación sigmoidea y tangente hiperbólica sigmoidea.
RESULTADOS Y DISCUSIÓN
Sistema electrónico
El sensor de color TCS3200 y el microcontrolador STM32F103C8 se integraron eficientemente para permitir la calificación óptima de frutos de café, al realizar medidas de características de color aplicando el promedio de 5 medidas de cada muestra con el fin de optimizar la precisión. La velocidad de respuesta del sistema con un tiempo de 269 ms considerando una iluminación adecuada y distancia aproximada de 1,5 cm del fruto a sensar, cuyo resultado se muestra en la Figura 7.
Plataforma para el entrenamiento de la red neuronal
MatLab, como plataforma flexible ha demostrado que permite diversas arquitecturas de redes neuronales con distintos entrenamientos mediante “prueba” y “error” para optimizar la red neuronal, permitiendo utilizar la herramienta “nntraintool” para la visualización de los resultados obtenidos del entrenamiento, como se aprecia en la Figura 8. Asimismo, también permite visualizar el estado actual del entrenamiento, notándose la variación entre la “gradiente” y “mu” así como la conformación de validación, tal como se observa en Figura 9.
Desempeño del algoritmo propuesto
El tiempo de clasificación de un fruto de café se logró en un tiempo de 454 ms, de acuerdo a la Figura 10, donde se muestra una parte de los resultados a través de la ventana de monitor serial.

Figura 10 Resultados de la clasificación de los frutos de café obtenidos de la red neuronal desarrollada en el microcontrolador.
Para realizar la evaluación del sistema, se empleó una muestra conformada por 60 imágenes de frutos de café, para ser clasificados como fruto con “Madurez Óptima” (MO) y “Madurez No Óptima” (MNO), en el cual, de una de un total de 60 pruebas para comprobar la eficiencia de la selección, se encontró que en 2 casos fueron erradas, como se observa en la matriz de confusión resultantes en la Tabla 1.
Tabla 1 Resultados de la matriz de confusión.

Nota: En la eficiencia de la selección, se encontró que en 2 casos fueron erradas.
Asimismo, en la Figura 11 se evidencia de forma precisa la eficiencia total y la eficiencia especifica respecto al entrenamiento, validación y prueba de la red neuronal.
Discusión
Esta investigación permitió demostrar la eficiencia de un algoritmo de control para la clasificación eficiente de los frutos de café, para lo cual se obtuvo una eficiencia de 96.67% evidenciándose en los resultados de la red neuronal implementada a un microcontrolador electrónico (STM32F103C8) operando con un sensor de color (TCS3200), y técnicas bayesianas (16), siendo el color como principal característica para la inspección de alimentos. Así, investigaciones similares, consiguieron eficiencias en un 98,7% (3), (4) e incluso superior partiendo del uso de cámaras de alta precisión, redes neuronales apoyados en Matlab para desarrollar sistemas avanzados de control (17) lo cual nos permite considerar que el nivel del algoritmo propuesto en esta investigación podría llegar al 100% si optimizamos el uso de recursos como el empleo de una cámara de alta definición, puesto que habiendo logrado una exactitud de la clase de madurez óptima en un 100% y la exactitud de madurez no optima en un 95%, la matriz de confusión puede ser elevada sin problemas.
CONCLUSIONES
De acuerdo a los resultados obtenidos cabe precisar que el algoritmo diseñado para la red neuronal de tipo multicapa es capaz de identificar de manera los frutos de café basados en su estado de maduración, con una eficiencia del 96,67 %; con lo cual, se afirma que el sistema de clasificación mediante el algoritmo propuesto es óptimo. Con respecto al sistema electrónico formado por el sensor TCS 3200 y el microcontrolador STM32F103C8 resultó eficiente para la clasificación de tipos de café considerando su bajo costo y precisión. Respecto a la plataforma flexible capaz de llevar a cabo el modelado del algoritmo, Matlab resultó adecuado y eficiente para diseñar y entrenar una red neuronal con poco uso de fases de programación. Finalmente, la red neuronal implementada en el microcontrolador mostró una buena, con error del 3,33% relativamente bajo, resaltando más bien, la eficiencia conseguida del 96,67%. Precisamente, para optimizar la eficiencia se recomienda entrenar la red neuronal empleando una mayor cantidad de imágenes de frutos de café con diferentes estados de maduración.