Está en la página 1de 7

Clasificación de frutas mediante el uso de redes

neuronales feed forward y mapas autoorganizados


David Sebastian Rodriguez Jimenez Jonnathan Andres Sandino Angulo

pertenecen los datos de entrada, que corresponden a 21


I. INTRODUCCIÓN
números por imagen que representan los 7 momentos
En el siguiente documento se mostrará el procedimiento invariantes de Hu para cada capa (RGB) de las imágenes de
realizado para la clasificación de 5 frutas (Cerezas, Fresas, cada fruta.
Frambuesas, Arándanos y Moras) de una base de datos, esto a
partir de los momentos invariantes de Hu y para un primer IV. OBJETIVOS ESPECIFICOS
enfoque desde los modelos supervisados, una red neuronal de  Modelar y entrenar una red neuronal de tipo feed
tipo feed forward, como segundo enfoque para un modelo no forward la cual clasifique las imágenes de entrada.
supervisado, se implementará un modelo de mapas  Implementar un modelo de mapas autoorganizados el
autoorganizados de Kohonen.
cual clasifique las imágenes de entrada.
II. PLANTEAMIENTO DEL PROBLEMA  Observar el impacto de la eliminación de momentos
Con el propósito de reducir la necesidad de la de Hu en el error de generalización.
presencia humana en los cultivos, en los últimos años se han
V. ESTADO DEL ARTE
desarrollados avances en la automatización de los mismos, los
cuales, si bien no han logrado desligar por completo la 1.Automatic fruit classification using random forest
necesidad de la intervención de personas, si han logrado algorithm:
disminuir la cantidad de tiempo empleado en el cuidado de los En este proyecto se plantea clasificar tres diferentes
mismos. Esto es necesario debido a que, según lo muestran frutas, se analizaron manzanas, fresas y naranjas, se usa de
datos recolectados por la ONU, con el paso del tiempo la pre-procesamiento la redimensión de las imágenes y mediante
población humana se hace cada vez mayor [1], por dos algoritmos se extrajeron la forma, características de color
consiguiente, el número y tamaño de cultivos para alimentar y un algoritmo de función invariante de escala. Como
dicha población también debe hacerse más grande, y esto hace algoritmo de clasificación se usa Random Forests (RF),
necesario la industrialización de los mismos, para poder además el entorno de Matlab y una cámara digital.
satisfacer la demanda de la población. Muchas de las
soluciones propuestas para conseguir dicho objetivo están 2.Identification and Counting of Mature Apple Fruit
basadas en el uso de inteligencia computacional [2]. Based on BP Feed Forward Neural Network:
Dentro de la larga cadena de procesos necesaria para cultivar En este proyecto se plantea clasificar la madurez de
algún alimento, previo a su recolección es necesario conocer las manzanas, esto se plantea desde las características de
identificar el tipo de alimento para que, a la hora de ser color, más exactamente de sacar las componentes de color
recogidos, estos no estén mezclados, sino agrupados por tipos, (RGB). El modelo de red neuronal tiene tres pasos: pre-
y pensando en un futuro proceso automatizado de recolección, procesamiento, extracción de características y clasificación de
es necesario que esto se haga sin intervención de seres la maduración que al simularse tiene una precisión del 98.1 %.
humanos, con estos problemas nos planteamos ¿es posible,
mediante el uso de inteligencia computacional en un cultivo 3.Classification of Maturity level of Fuji Apple Fruit With
donde se han sembrado varios tipos de frutas, poder Fuzzy Logic Method:
clasificarlas para identificar qué tipo de fruta son? Para este proyecto se plantea clasificar las manzanas
Fuji, para esto se transforma el tipo de imagen de RGB a
escala de grises, para así clasificar las manzanas en tres
III. OBJETIVO GENERAL categorías (cruda, medio madura, madura) mediante un
Implementar dos modelos, uno de aprendizaje modelo difuso y el software Matlab. El número de variables
supervisado basado en redes neuronales feed forward y otro de que se escojan puede aumentar el número de reglas, lo que
aprendizaje no supervisado basado en el método de clustering implica un nivel de cómputo mayor, al igual que mayor
k-means, los cuales deben estar en la capacidad de clasificar complejidad.
correctamente en la mayoría de los casos a que fruta
4.Fruit and Vegetables Classification System Using Image
Saliency and Convolutional Neural Network:
Se propone un sistema de clasificación de frutas y
verduras mediante una red convolucional para extraer las
características de la imagen. Se usa un modelo VGG para
entrenar y la prominencia de la imagen para seleccionar las
principales regiones de prominencia. El modelo tiene una
precisión del 95.6%.

5.Identification of Fruit Size and Maturity Through Fruit


Images Using OpenCV-Python and Raspberry Pi:
Para este proyecto se plantea clasificar la madurez
del mango, tomando como las características más importantes
el tamaño y el color. El algoritmo creado en Python se
implementa sobre una Raspberry Pi y es capaz de determinar  Momentos invariantes de Hu:
el tamaño de la fruta mediante la distancia euclidiana y usar el
agrupamiento K-Means para determinar el color dominante de Los momentos invariantes pretenden extraer características
la fruta para ser comparado con el histograma en Python. para poder reconocer los objetos, aunque no se encuentren
siempre en la misma posición, estén girados o su tamaño sea
6.Development of Control System for Fruit Classification distinto (De la Escalera 2001). Para ello se parte de los
Based on Convolutional Neural Network: momentos ordinarios, donde, para una función continua
Se pretende desarrollar un sistema de control de bidimensional f(x,y), el momento de orden (p+q) está definido
reconocimiento de objetos basado en una red convolucional. en la ecuación.
Este tipo de red detecta y reconoce las frutas a través de ∞

optimización de parámetros, se usa Alexnet para mejorar la 𝑚𝑝𝑞 = ∬ 𝑥 𝑝 𝑦 𝑞 𝑓(𝑥, 𝑦)𝑑𝑥 𝑑𝑦


clasificación y el proceso de simulación. La precisión lograda −∞
es cercana al 94%. Al representar la ecuación en forma digital.

7.Classification on Passion Fruit’s Ripeness using K-


𝑚𝑝𝑞 = ∑ ∑ 𝑥 𝑝 𝑦 𝑞 𝑓(𝑥, 𝑦)
Means Clustering and Artificial Neural Network:
𝑥 𝑦
En este artículo se desea identificar el nivel de
madurez del maracuyá, clasificándolos en maduro, casi Donde la suma de p y q representa el orden del momento
calculado.
maduro e inmaduro. Se usa el método K-Means Clustering
para la segmentación del maracuyá y una red neuronal para la
Para conseguir la invariancia se le resta a las coordenadas de
clasificación basada en características RGB. Las entradas son
videos y el sistema cuenta con una precisión del 90%. cada punto el centro de gravedad, lo que da como resultado los
momentos centrales.
8.Fruit Classification Based on Six Layer Convolutional
Neural Network: 𝜇𝑝𝑞 = ∑ ∑(𝑥 − 𝑥̃)𝑝 (𝑦 − 𝑦̃)𝑞 𝑓(𝑥, 𝑦)
Se propone clasificar nueve frutas mediante Deep 𝑥 𝑦
Learning y una red convolucional de seis capas que consisten
en capas de convolución, capas de agrupación y capas Donde 𝑥̃ 𝑦 𝑦̃ están definidas como:
completamente conectadas. Se logró una precisión del 91.44%
que, aunque es difícil de interpretar los pesos de la red, ha 𝑚10 𝑚01
𝑥̃ = 𝑦 𝑦̃ =
superado tres enfoques de última generación: La máquina de 𝑚00 𝑚00
vectores de soporte basado en votación, entropía wavelet y Donde:
algoritmo genético.  𝑥̃ Representa el centro de gravedad o centroide del
objeto en el eje de las abscisas.
VI. PREPROCESAMIENTO  𝑦̃ Representa el centro de gravedad o centroide del
Dado que el problema es clasificar 5 frutas diferentes objeto en el eje de las ordenadas.
(Cerezas, Fresas, Frambuesas, Arándanos y Moras), es  𝑚10 Representa el momento ordinario de primer
necesario hacer un proceso para extraer las características de orden, cuando pes igual a 1 y q es igual a 0 en l
cada imagen para la base de datos que tiene imágenes de las  𝑚01 Representa el momento ordinario de primer
frutas como las siguientes: orden, cuando pes igual a 0 y q es igual a 1 en l.
 𝑚00 Es el momento de orden cero y representa el
área del objeto.
Los momentos centrales permiten reconocer figuras dentro de
una imagen independientemente de su posición. El momento
central de orden 0 es igual al área del objeto, los momentos
centrales de orden 1 son por definición 0, los de orden 2
forman la matriz de rotación para calcular de ahí el ángulo de
rotación y la excentricidad del objeto, y los momentos
centrales de orden 3 se utilizan para calcular los momentos
invariantes.

El siguiente paso es obtener los momentos invariantes a la


Ahora, se extrae la característica de color verde (G), lo que nos
rotación y a la escala. Para ello se definen primero los
deja:
momentos centrales normalizados.

𝜇𝑝𝑞
𝑛𝑝𝑞 = 𝛾
𝜇00

Donde, 𝑛𝑝𝑞 representa el momento central normalizado


independiente del tamaño del objeto.
Siendo
𝑝+𝑞
𝛾= +1
2
Por último, se extrae la característica de color perteneciente al
Para (p + q) = 2, 3, …, n. azul (B), con esto tenemos:
Donde, representa el factor de normalización. Al dividir cada
momento por el área (momento de orden cero) se consigue
que sean valores independientes de la escala

 Implementación:

Para comenzar, se tienen las imágenes de la base de datos, que


son como las mostradas a continuación:

Después de la extracción de características, se calculan los


momentos invariantes de Hu. Para esto:

1. Se calcula el momento crudo.


2. Se calcula el momento central.
3. Se calculan los siete (7) primeros momentos.
VII. DESCRIPCIÓN DE LA EXPERIMENTACIÓN
Luego se procede a extraer las características de color, para esto
se extraen de acuerdo al estándar RGB (Red Green Blue), en  Redes Neuronales Feed Forward:
donde cada color tiene un máximo de doscientos cincuenta y
cinco (255) y un mínimo de cero (0). Es una red neuronal artificial donde las conexiones entre las
unidades no forman un ciclo. Estas son diferentes de las redes
Inicialmente se extrae el color rojo (R) lo que nos deja la neuronales recurrentes.
siguiente imagen:
La red neuronal prealimentada fue la primera y más sencilla
forma de red neuronal artificial ideada. En esta red, la
información se mueve en una única dirección: adelante. De los
nodos de entrada, a través de los nodos escondidos (si los hay)
hacia los nodos de salida. No hay ningún ciclo o bucle en estas
redes.
Teuvo Kohonen, debido a lo cual en ocasiones son llamadas
redes o mapas de Kohonen.

Al igual que la mayoría de las redes neuronales artificiales, los


SOMs operan en dos modos: entrenamiento y mapeo. En el
entrenamiento construye el mapa usando ejemplos
entrenantes, mientras que en el mapeo clasifica una nueva
entrada.

Un mapa auto organizado consiste en componentes llamadas


 Implementación:
nodos o neuronas. Asociado con cada neurona hay un vector
de pesos, de la misma dimensión de los vectores de entrada, y
Con los datos obtenidos por el método de momentos una posición en el mapa. La configuración usual de las
invariantes de Hu, se procede a crear una red neuronal de tipo neuronas es un espacio regular de dos dimensiones, en una
Feed Forward, teniendo en cuenta que las entradas son los rejilla hexagonal o rectangular. Los mapas auto organizados
siete momentos de Hu por cada componente RGB, es decir, describen un mapeo de un espacio de mayor dimensión a uno
veintiún entradas (21), y las salidas de clasificación son cinco de menor dimensión. El procedimiento para ubicar un vector
(5). Fue necesario probar varios modelos para encontrar una del espacio de los datos en el mapa es encontrar la neurona
red adecuada, la cual luego de varios intentos fue: con el vector de pesos más cercano (menor distancia métrica)
al vector del espacio de los datos.

Existen extensiones útiles que incluyen el uso de rejillas


toroidales donde los ejes opuestos son conectados y usan un
gran número de neuronas. Se ha demostrado que mientras los
SOMs con un pequeño número de neuronas tienen un
comportamiento similar a las K-medias, los grandes mapas
auto organizados reconfiguran los datos de forma
fundamentalmente topológica en carácter.
La red mostrada posee una capa oculta con una (1) neurona y
una capa de salida con dos (2) neuronas, se usa el gradiente Es también común el uso de matrices U. El valor de la matriz
conjugado como método de entrenamiento y además se U de una neurona en particular es la distancia promedio entre
configuran 1000 iteraciones para entrenar la red. Para la capa la neurona y sus vecinos más cercanos. Por ejemplo, en una
oculta se usa una función de activación de tipo tangente rejilla cuadrada se deben considerar cercanos 4 u 8 neuronas,
hiperbólica sigmoidal (por defecto) y la capa de salida usa la según las vecindades de Von Neumann y Moore
función softmax con cinco salidas, la cual se define por tener respectivamente.
un mejor rendimiento en problemas de clasificación y usa
probabilidades de pertenencia para cada clase.

Los datos de entrada provenientes del pre-procesamiento y que


son usados para el entrenamiento son solo el 80% de las
imágenes de la base de datos, ya que se reserva un 20% para la
posterior validación, para la cual es necesario presentar datos
que no han sido vistos por la red.
En grandes SOMs aparecen propiedades emergentes. En
 Mapas Autoorganizados de Kohonen: mapas compuestos por cientos de neuronas es posible
desarrollar operaciones de agrupamiento en el propio mapa.
Los mapas auto organizados son diferentes de otras redes
neuronales artificiales, en el sentido que estos usan una Los mapas autoorganizados, es un algoritmo bio-inspirado en
función de vecindad para preservar las propiedades las funciones cerebrales y su algoritmo de entrenamiento es el
topológicas del espacio de entrada. siguiente:

Los SOMs son útiles para visualizar vistas de baja dimensión 𝑇


1. Inicializar los vectores 𝑤 = [𝑤1𝑗 , 𝑤2𝑗 , … , 𝑤𝑖𝑗 ] .
de datos de alta dimensión, semejante a un escalado
2. Escoger 𝑥 = [𝑥1 , 𝑥2 , … , 𝑥𝑑 ]𝑇 .
multidimensional. El modelo fue descrito por primera vez
3. Calcular similitud con los pesos:
como una red neuronal artificial por el profesor finlandés
‖𝑥 − 𝑤𝑗 ‖ = min‖𝑥 − 𝑤𝑗 ‖
4. Modificar la vecindad de la unidad ganadora: Este fue el resultado para un modelo con un tamaño de 5x5, al
𝑤𝑘+1 = 𝑤𝑘 +∝𝑘 (𝑥𝑘 − 𝑤𝑘 ) cual se le elimino el segundo momento, es decir fueron 18
5. Repetir el proceso (en gris) para un número de entradas y tubo un error de validación de 3.52%, además
iteraciones. podemos notar que tiene 3 neuronas a las cuales pertenecen
más de un tipo de clases.
 Implementación:

Como primera aproximación al problema se hacen pruebas


preliminares. Estas primeras pruebas fueron realizadas con
modelos cuadrados, es decir, un arreglo de N x N, probadas en
el rango de neuronas de cinco (5) a diez (10) y se prueba para
el sistema completo y para el sistema sin un momento, lo que
equivale a quitar 3 entradas.
Para poder evaluar el sistema, se decidió etiquetar mediante
colores cada una de las neuronas con los datos de entrada, de
modo que a cada clase le fue asignado un color del cual sería la
neurona, si en ella son clasificados los datos de únicamente un
tipo de clase, en caso de que a una neurona no pertenezca
ninguna clase, le será asignado el color negro, finalmente el
color cian es para aquellas neuronas a las que les es asignado
más de una clase.
A partir de los resultados obtenidos de estas primeras pruebas Este fue el resultado para un modelo con un tamaño de 7x7, al
se determinó realizar pruebas acotadas a un rango de cual se le elimino el primer momento y tubo un error de
variaciones más pequeño, pero eliminando un mayor número validación de 1.32%, además podemos notar que tiene no
de entradas, con la finalidad de encontrar el modelo más simple tiene neuronas a las cuales pertenecen más de un tipo de
que funcione de manera satisfactoria, los criterios escogidos clases.
para determinar cuál sería el modelo que cumpla dichas
características son las siguientes:

 El modelo no tenga ninguna neurona que comparta


clases (su grafica no tenga puntos cianes).
 Debe tener un error mínimo cercano a cero (0).
 El tamaño del arreglo sea el menor posible.
 El número de entradas sea el menor.

En las siguientes figuras se ven algunas de las primeras


pruebas, en las que se varió el tamaño del arreglo y el número
de entradas y de las cuales se establecieron los criterios
mencionados anteriormente.

Finalmente, este resultado es para un modelo con un tamaño


de 10x10, al cual no se le elimino ningún momento y tubo un
error de validación de 1.14%, además podemos notar que tiene
no tiene neuronas a las cuales pertenecen más de un tipo de
clases.

En los anteriores ejemplos se evidencia el motivo de los


criterios escogidos, el primer criterio se evidencia en la
primera imagen de ejemplo, la cual tiene el peor desempeño
de las tres mostradas, y a su vez fue la que tuvo una neurona
con una más de una clase asignada, por ende si para una
entrada es asignada dicha neurona existen dos posibles
opciones, asignar permanentemente una clase a dicha neurona,
o seleccionar de manera arbitraria, mediante una variable
aleatoria alguna de las posibles clases, pero en ambos casos se Por último, se grafica la matriz de confusión de la red, la cual
incurrirá eventualmente en un error, por consiguiente esto es es la siguiente:
poco deseable.
El motivo del segundo criterio es evidente, ya que siempre
será deseable obtener el menor error de validación
(generalización).
El motivo del tercer criterio se evidencia en el segundo y
tercer ejemplo, donde es notorio como los errores de
validación no son demasiado lejanos entre sí, siendo el del
tamaño de 10x10, menor con 1.14%, y el de 7x7 algo mayor
con 1.32%, sin embargo, su tamaño si es drásticamente
diferente, conteniendo uno 100 neuronas, y el otro
aproximadamente la mitad con 49, asi que se obtienen
resultados similares por la mitad del costo computacional.
Finalmente, el motivo del ultimo criterio consiste en encontrar
una primera aproximación a cuál es la cantidad de
información mínima para poder resolver nuestro problema,
representado en encontrar el modelo con menor número de
entradas.

Ya con las reglas definidas se procede a hacer una segunda


prueba en el que se agrupan los errores según el tamaño del
arreglo que se varió de seis (6) a ocho (8) y el número de
entradas, es decir, con todas las entradas y luego quitando de
uno a tres momentos de Hu. Se optó por una manera simple de
quitar entradas, de manera que se quitaron únicamente de
modo consecutivo, dando como resultado un total de 19 tipos
 Mapas Autoorganizados de Kohonen:
de variaciones por cada modelo de NxN, dando un total de 57
posibles modelos. Una vez realizadas las pruebas, obtenemos los errores de
VIII. ANÁLISIS DE RESULTADOS validación dividiendo los resultados en 12 grupos, los cuales
dependen del tamaño de la matriz del mapa auto organizado y
 Redes Neuronales Feed Forward: el número de momentos de Hu utilizados. Los mínimos por
grupo se muestran en la siguiente tabla:
Luego de entrenar y validar se obtiene un error porcentual de
cero (0%) y se tiene la gráfica de desempeño (performance) Tamaño N x N Momentos de Hu Error mínimo
mostrada a continuación: 6 7 3.9150
6 6 1.6779
6 5 1.6779
6 4 4.1387
7 7 2.0134
7 6 1.0067
7 5 1.3423
7 4 2.0134
8 7 1.1186
8 6 1.1186
8 5 1.0067
8 4 0.8949

De cada uno de estos grupos fue seleccionado el mínimo, para


cumplir con el segundo criterio (mínimo más cercano a cero),
además fueron descartados aquellos resultados que no
cumplieran con el primer criterio (que cada neurona
pertenezca a solo una clase o a ninguna).
Para seleccionar el mejor modelo basta con escoger con base
en el tercer y cuarto criterio (menor tamaño y menor número
de entradas respectivamente), sin embargo, es necesario antes
cuestionarse que es más importante a la hora de encontrar la pre-procesamiento es bueno y la base de datos
solución, si se desea obtener el menor error de validación a presenta las frutas sin un fondo definido.
cualquier costo computacional, o se desea un balance entre el  Se observó que el modelo con mapas auto organizados
error y el costo computacional, para este caso particular, se puede disminuir su complejidad sin afectar demasiado
optó por la segunda opción, donde no se tomó en cuenta el error de generalización.
necesariamente el menor error de validación, sino uno  Las pruebas con el número de entradas para los mapas
pequeño, pero que tuviera poca carga computacional, y el autoorganizados fueron hechas de manera muy
número de entradas fuera pequeño, por consiguiente el modelo simple, con buenos resultados, sin embargo aún queda
escogido fue el de 8 x 8, al que se le quitan 3 momentos de por explorar una mayor variedad de posibilidades,
Hu, es decir, 9 entradas, debido a que el modelo de 6x6 quitando los momentos de manera no consecutiva, e
irremediablemente contenía neuronas a las cuales se les incluso retirando algunas entradas, ya que puede que
asignaba más de 1 clase, y el modelo de 7x7 tenían una carga los momentos de cada componente de color no tengan
computacional 1.3 veces mayor (64 neuronas vs 49 neuronas), la misma importancia, dichas pruebas no fueron
pero para el mismo número de entradas el error de validación realizadas para este proyecto debido a que la
es 2.24 veces más pequeño, siendo el menor error de combinatoria para 21 entradas eliminándolas
validación de 3 entradas y de todos los modelos, el modelo sistemáticamente hasta obtener tan solo una seria
seleccionado se muestra en la siguiente gráfica: demasiado grande.
REFERENCIAS

[1] “Poblacion” Naciones unidas. Disponible en:


https://www.un.org/es/sections/issues-depth/population/index.html
[2] KirtanJha, AalapDoshi, PoojanPatel, MananShah, “A comprehensive
review on automation in agriculture using artificial intelligence,” in
Artificial Intelligence in Agriculture, Volume 2, June 2019, Pages 1-12.
Disponible en:
https://www.sciencedirect.com/science/article/pii/S2589721719300182
[3] Hossam M. Zawbaa, Maryam Hazman, Mona Abbass, Aboul Ella
Hassanien - Automatic fruit classification using random forest algorithm.
[4] Ansar Suyuti, Intan Sari Areni, Ingrid Nurtanio - Classification on Passion
Fruit’s Ripeness using K-Means Clustering and Artificial Neural
Network.
[5] Guoxiang Zeng - Fruit and Vegetables Classification System Using Image
Saliency and Convolutional Neural Network.
[6] Evi Dewi Sri Mulyani, Susanto, Jeni Poniman - Classification of Maturity
level of Fuji Apple Fruit With Fuzzy Logic Method.
[7] Siyuan Lu, Zhihai Lu, Soriya Aok, Logan Graham - Fruit Classification
Based on Six Layer Convolutional Neural Network.
[8] Zaw Min Khaing, Ye Naung, Phyo Hylam Htut - Development of Control
IX. CONCLUSIONES System for Fruit Classification Based on Convolutional Neural Network.
[9] Izadora Binti Mustaffa, Syawal Fikri Bin Mohd Khairul - Identification
 Se definió que el mejor error para evaluar las redes fue of Fruit Size and Maturity Through Fruit Images Using OpenCV-Python
el error porcentual, dado que es un problema de and Raspberry Pi.
clasificación. [10] Shreya Lal, Santi Kumari Behera, Prabira Kumar Sethy, Amiya Kumar
Rath - Identification and Counting of Mature Apple Fruit Based on BP
 Se encontró que el error de generalización en el Feed Forward Neural Network.
modelo feed forward es cero (0), esto se debe a que el

También podría gustarte