CLASIFICACIÓN AUTOMÁTICA DE
MANZANA SEGÚN SU COLOR DE PIEL
GONZALO VÁZQUEZ SUAREZ
LUIS CARLOS PÉREZ PIZARRA
Manzanas
Nuestras manzanas amarillas son las Golden Delicius. Su piel es
de color verde amarillento y muy dulce al paladar. Es propenso
a los moretones y marchitamiento, por lo que requiere de un
manejo y almacenamiento cuidadoso. Es uno de los favoritos
para ensaladas, salsa de manzana y mantequilla de manzana.
Manzanas
Nuestras manzanas rojas son las Red Delicius. Comprende más
de 50 variedades, La piel es gruesa y amarga y tiene hay que
masticarla vigorosamente. Es deliciosa, conserva su alegre
buena apariencia mucho tiempo después de que se le vaya el
sabor.
Manzanas
Las manzanas verdes son Granny Smith. El fruto tiene la piel de
color verde claro duro y una carne crujiente y jugosa. Pasó de
ser amarilla a completamente verde. La acidez se suaviza
considerablemente, y luego toma un sabor equilibrado.
Manzanas
Las que denominamos mixtas en realidad son Braeburn. Es una
variedad que es firme al tacto, con un aspecto veteado vertical
roja/naranja sobre un fondo de color amarillo/verde. Su
intensidad del color varía con las diferentes condiciones de
crecimiento. Ellos son conocidos por tener una explosión de
sabor cuando mordido.
Definición de Objetivos
• Profundizar en el concepto de clustering, más
concretamente en el algoritmo de k-medias.
• Desarrollar un plugin para la aplicación ImageJ
para clasificar manzanas según su color de piel.
• Se deberá implementar una interfaz simple e
intuitiva que permita al usuario desarrollar las
funciones del plugin de manera eficaz.
• El plugin deberá implementar las funciones de
entrenamiento y clasificación.
Un poquito de Teoría
Clustering
Procedimiento de agrupación de una serie de objetos de
acuerdo con un criterio. Para nosotros el criterio será la
similitud.
Generalmente, los vectores de un mismo grupo (o clústers)
comparten propiedades comunes. El conocimiento de los
grupos puede permitir una descripción sintética de un
conjunto de datos multidimensional complejo. De ahí su uso
en minería de datos. Esta descripción sintética se consigue
sustituyendo la descripción de todos los elementos de un
grupo por la de un representante característico del mismo.
Un poquito de Teoría
Clustering por K-medias
Es uno de los algoritmos de aprendizaje no supervisado más simples para
resolver el problema de la clusterización. El procedimiento aproxima por
etapas sucesivas un cierto número (prefijado, en nuestro caso 3) de clusters
haciendo uso de los centroides de los puntos que deben representar.
El algoritmo se compone de los siguientes pasos:
1. Sitúa K puntos en el espacio en el que "viven" los objetos que se quieren
clasificar. Estos puntos representan los centroides iniciales de los grupos.
2. Asigna cada objeto al grupo que tiene el centroide más cercano.
3. Tras haber asignado todos los objetos, recalcula las posiciones de los K
centroides.
4. Repite los pasos 2 y 3 hasta que los centroides se mantengan estables.
Esto produce una clasificación de los objetos en grupos que permite dar
una métrica entre ellos.
Un poquito de Teoría
Ejemplo Clustering por K-medias
En el primer paso situamos los centros de manera
aleatoria sobre nuestra nube de puntos. En este caso
se han situado dos centros. Se calculan los clusters,
que son los puntos que están más cercanos a cada
centro.
En el segundo paso, los centros cambian su posición
para pasar a ser el centro de los clusters que
representa.
Un poquito de Teoría
Ejemplo Clustering por K-medias
En el paso 3, como los centros han cambiado de
posición se vuelven a calcular los puntos que están
más cercanos. Hay varios puntos que cambian de color
porque están más cerca del centro del clúster al que
no pertenecían antes.
En el paso 4, los centros vuelven a cambiar de
posición y a situarse en medio del clúster al que
representan.
Un poquito de Teoría
Ejemplo Clustering por K-medias
En los pasos 5 y 6, los clusters no cambian, por lo que
los centros no se mueven. El algoritmo para.
Un poquito de Teoría
Cielab
El CIE L*a*b* es el modelo cromático usado normalmente
para describir todos los colores que puede percibir el ojo
humano. Fue desarrollado específicamente con este propósito
por la Comisión Internacional de la Iluminación.
Los tres parámetros en el modelo representan la luminosidad
de color (L*, L*=0 rendimientos negro y L*=100 indica blanca),
su posición entre rojo y verde (a*, valores negativos indican
verde mientras valores positivos indican rojo) y su posición
entre amarillo y azul (b*, valores negativos indican azul y
valores positivos indican amarillo).
Un poquito de Teoría
Cielab
El modelo de color Lab es tridimensional y sólo puede ser
representado adecuadamente en un espacio tridimensional.
Aplicación APPLEUGIN
Antes De Empezar
Copiar previamente los archivos a la carpeta
“Plugins” que aparece en el directorio donde
está instalado ImageJ
Aplicación APPLEUGIN
Compilar y Ejecutar
Seleccionar la imagen con la manzana que
queremos clasificar. Entrar en menú “Plugins” y
seleccionar la opción “Compile and Run...”.
Aplicación APPLEUGIN
Proceso
Seleccionar
Manzana
Cargar
Entrenamiento
Entrenamiento
Manual
Salvar
Entrenamiento
Clasificación
Aplicación APPLEUGIN
Entrenamiento Manual
Aplicación APPLEUGIN
Entrenamiento Manual
Aplicación APPLEUGIN
Entrenamiento Manual
Aplicación APPLEUGIN
Entrenamiento Manual
Aplicación APPLEUGIN
Entrenamiento Manual
Aplicación APPLEUGIN
Guardar Entrenamiento
Aplicación APPLEUGIN
Guardar Entrenamiento
Importante: Extensión .ent
Aplicación APPLEUGIN
Cargar Entrenamiento
Aplicación APPLEUGIN
Cargar Entrenamiento
Importante: Extensión .ent
Aplicación APPLEUGIN
Segmentación con Clustering
Aplicación APPLEUGIN
Segmentación con Clustering
Aplicación APPLEUGIN
Evaluación
Desarrollo APPLEUGIN
Procesado a Cielab
Las imágenes las procesamos a Cielab, esto
permite obtener su color en base a los
parámetros L*, a* y b*.
Manzana 1
Color 1
Color 2
……
Color N
L
4
-2
a
8
15
B
7
32
7
0
32
Nota: Los números de los ejemplos no son reales. Simplemente interesa
que se entiendan los procedimientos, por lo que son números sencillos.
Desarrollo APPLEUGIN
Segmentación con Clustering
Con técnicas de clustering (kmedias con K=3) se
obtienen 3 colores. Por un lado el fondo, que se
supone como el clúster con mayor número de puntos,
y los dos colores de cada manzana.
Manzana 1
Color 0 (fondo)
Color 1
Color 2
L
6
-23
0
a
15
-45
12
b
0
73
35
Desarrollo APPLEUGIN
Entrenamiento
Obtiene los 2 colores predominantes (rechazando el
fondo) de cada manzana y realiza la media de los
parámetros cielab.
Manzana 1
Verde 1
Verde 2
L
-38
-17
a
31
11
B
27
-15
Manzana 2
Verde 1
Verde 2
L
-1
-23
a
-39
-12
B
-5
28
a
50
-5
B
-38
-20
…
Manzana N
Verde 1
Verde 2
L
-18
-9
Desarrollo APPLEUGIN
Entrenamiento
Análogamente se calculan con los diferentes tipos. Y
se obtiene la tabla de Entrenamiento calculando la
media de casa parámetro.
Entrenamiento
Verde 1
Verde 2
Rojo 1
Rojo 2
Amarillo 1
Amarillo 2
Mixta 1
Mixta 2
L
-29
-14
20
22
-1
-34
18
-10
a
39
-24
-24
26
26
24
-32
14
B
-30
-13
-17
17
45
13
-3
-19
Desarrollo APPLEUGIN
Evaluación
Calcula los parámetros cielab de la imagen a clasificar.
Compara esos parámetros con los parámetros de
cada tipo del entrenamiento. Y se clasifica como el
tipo con el que su diferencia sea menor.
Manzana Evaluar
Color 1
Color 2
L
3
-35
a
12
-4
b
-35
8
|Verde 1 L – Color 1 L| + |Verde 1 a – Color 1 a| + |Verde 1 b – Color 1 b| = V1
|Verde 2 L – Color 2 L| + |Verde 2 a – Color 2 a| + |Verde 2 b – Color 2 b| = V2
|Rojo 1 L – Color 1 L| + |Rojo 1 a – Color 1 a| + |Rojo 1 b – Color 1 b| = R1
|Rojo 2 L – Color 2 L| + |Rojo 2 a – Color 2 a| + |Rojo 2 b – Color 2 b| = R2
|Amarillo 1 L – Color 1 L| + |Amarillo 1 a – Color 1 a| + |Amarillo 1 b – Color 1 b| = A1
|Amarillo 2 L – Color 2 L| + |Amarillo 2 a – Color 2 a| + |Amarillo 2 b – Color 2 b| = A2
|Mixtas 1 L – Color 1 L|+ |Mixtas 1 a – Color 1 a| + |Mixtas 1 b – Color 1 b| = M1
|Mixtas 2 L – Color 2 L|+ |Mixtas 2 a – Color 2 a| + |Mixtas 2 b – Color 2b | = M2
Desarrollo APPLEUGIN
Evaluación
La aplicación evalúa al Verde de la mínima suma
parcial. Compara V1+V2, A1+A2, R1+R2, M1+M2 y
clasifica como el más pequeño.
V1
V2
R1
R2
A1
A2
M1
M2
64
62
71
96
98
34
91
70
V1+V2
R1+R2
A1+A2
M1+M2
126
167
132
161
La Seleccionaría Verde
Desarrollo APPLEUGIN
Archivo de Entrenamiento
El archivo de entrenamiento contiene toda la
información codificada de tal manera que el sistema
pueda interpretarla correctamente.
Para cada tipo de manzana, se tiene las coordenadas CIELAB de los dos
colores dominantes. Los tres números que aparecen para cada línea
indican las coordenadas L*, A* y B*, respectivamente.
Experimentación
Para llevar a cabo la experimentación, se han seleccionado 8
manzanas, dos de cada tipo, una que identifique
perfectamente el color, y otra que intente distorsionarlo lo
más que se pueda, y además se irán cambiando los
entrenamientos, de manera que se vaya dotando al sistema
de más información sobre las manzanas y sus propiedades.
Es importante decir que las manzanas que se van a evaluar no pueden
estar contenidas en el entrenamiento
Experimentación
Manzanas Verdes
VA: Poco identificativa (amarillenta)
VB: Muy identificativa (fuerte nivel de verde)
Experimentación
Manzanas Amarillas
AA: Poco identificativa (matices verdes)
AB: Muy identificativa (fuerte nivel de amarillo)
Experimentación
Manzanas Amarillas
RA: Poco identificativa (casi mixta)
RB: Muy identificativa (color rojo marcado)
Experimentación
Manzanas Amarillas
MA: Poco identificativa (matices rojos)
MB: Muy identificativa (fuerte contraste)
Experimentación
Entrenamiento 1
L*
A*
B*
verde1
70.29815572469705
-38.626767171786646
64.0012846383592
verde2
amarillo1
83.83857482349518
74.62162143463107
-31.799883487627966 -1.1321313696395219
58.21156003623935
75.180432264964
amarillo2
84.43520432938396
-4.005187717590841
59.5609177695955
L*
A*
B*
rojo1
25.309404649442115
41.25711587526562
26.617119720478804
rojo2
47.346031452399764
43.15083914791551
23.03097733388445
mixta2
70.41325976625974
29.127109833506303
42.99058954699919
mixta1
50.49779140421407
59.070887553953455
40.85318086896791
Experimentación
Conclusiones 1
Las manzanas de evaluación mencionadas anteriormente, los
resultados obtenidos fueron los siguientes:
VA
VB
AA
AB
RA
RB
MA
MB
Acierto/Fallo
Acierto
Acierto
Acierto
Acierto
Acierto
Acierto
Fallo
Acierto
Predicción
Esto supone que el porcentaje de
acierto del sistema ha sido de un
87.5%
Roja
La deliberación del sistema tiene sentido, ya que la manzana que se evaluó con
color amarillo tenía muchos matices que podrían ser verde perfectamente,
mientras que la de color mixto podría pasar por roja perfectamente.
Experimentación
Entrenamiento 2
Se añade al Entrenamiento 1 las siguientes manzanas
L*
A*
B*
L*
A*
B*
verde1
verde2
70.95794896737931
91.549258264142
-29.58841903922749 -16.068379435637326
55.06828737092632 29.579822542493403
amarillo1
66.88193594874451
-7.383973948747624
58.59248120229458
rojo1
rojo2
mixta1
37.88193837420919 57.603236386027135 41.21444328611912
49.87144934015901 38.57524476303654
46.972357592929434
25.529610195331877 17.318590343187687 34.060596477686374
amarillo2
82.52242686930262
-6.350652545885433
64.26752647405536
mixta2
70.4290755065968
23.229490213079295
41.73459086293195
Experimentación
Conclusiones 2
Los resultados obtenidos fueron los siguientes:
VA
VB
AA
AB
RA
RB
MA
MB
Acierto/Fallo
Fallo
Fallo
Acierto
Acierto
Acierto
Acierto
Fallo
Acierto
Predicción
Amarilla
Mixta
Hemos disminuido la tasa de
aciertos a un 75%
Roja
Esto se debe a que el umbral que toma el programa para decidir si una manzana
es verde o amarilla se ha reducido, por lo que la manzana, que nosotros hemos
supuesto verde, el programa la ha determinado como amarilla. Además, el
equipo no ha sido capaz de identificar el fallo de porqué ha devuelto como mixta
una manzana que es claramente verde
Experimentación
Entrenamiento 3
Se han añadido al entrenamiento, todas las manzanas, menos
las que se van a evaluar al entrenamiento, para estudiar el
comportamiento del programa.
L*
A*
B*
L*
A*
B*
verde1
verde2
amarillo1
70.29815572469705
83.83857482349518 74.62162143463107
-38.626767171786646 -31.799883487627966 -1.1321313696395219
64.0012846383592
58.21156003623935
75.180432264964
rojo1
rojo2
mixta1
25.309404649442115 47.346031452399764 50.49779140421407
41.25711587526562 43.15083914791551
59.070887553953455
26.617119720478804 23.03097733388445
40.85318086896791
amarillo2
84.43520432938396
-4.005187717590841
59.5609177695955
mixta2
70.41325976625974
29.127109833506303
42.99058954699919
Debido a la cantidad de manzanas que se han añadido, no se muestran en el documento.
Aunque se encuentran en las imágenes proporcionadas junto con el código fuente.
Experimentación
Conclusiones 3
Los resultados obtenidos fueron los siguientes:
VA
VB
AA
AB
RA
RB
MA
MB
Acierto/Fallo
Acierto
Acierto
Acierto
Acierto
Acierto
Acierto
Acierto
Acierto
Predicción
Ya se ha obtenido el 100% de aciertos en el entrenamiento. Los problemas
anteriores han podido ser paliados añadiendo distintos tipos de color a las
manzanas verdes, para que el sistema pueda establecer umbrales para la
elección de colores, que le permitan acertar en las conclusiones
Posibles Mejoras
• Nuestras imágenes están sacadas de internet y
contienen sobras que dificultan el proceso.
• Analizar el contorno a través de alguna técnica de
reconocimiento de objetos. En nuestra aplicación si
metemos un limón (o cualquier otra cosa) en vez de
una manzana no lo da por malo.
Posibles Mejoras
• La aplicación siempre devuelve una predicción del tipo
de la manzana. Se podría haber buscado unos
márgenes de resultados, es decir, si la imagen a evaluar
no tiene unas características parecidas a los valores del
conjunto de entrenamiento podría devolver que no
encuentra la categoría la categoría.
• Evaluación de un conjunto de manzanas al mismo
tiempo. El plugin solo clasifica de manzana en
manzana.
Conclusiones
Con Appleugin podemos clasificar manzanas según su color.
Debido al proceso de clustering, que es donde nos hemos
centrado y puesto mayor interés para la realización del
trabajo. Mediante esta técnica analizamos todos los pixeles de
la imagen, realizamos una segmentación manual del fondo y
obtenemos los colores predominantes.
Hay que ser meticulosos en el entrenamiento porque de esta
fase depende que la clasificación se haga correctamente.
Appleugin tiene buen uso a la hora de identificar o clasificar
manzanas y fácilmente se podría extrapolar a cualquier objeto
que presente pocos colores predominantes.
Referencias
K-Medias
http://www.cs.us.es/~fsancho/?e=43
http://www.java2s.com/Open-Source/Java/Graphic-Library/ImageJ-Plugins1.4.1/net/sf/ij_plugins/clustering/KMeans.java.htm
http://rsbweb.nih.gov/ij/developer/api/ij/ImageJ.html
http://rsbweb.nih.gov/ij/docs/pdfs/tutorial10.pdf
http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_%28procesamiento_de_im%C3%A1genes%29
http://www.java2s.com/Open-Source/Java/Graphic-Library/ImageJ-Plugins1.4.1/net/sf/ij_plugins/multiband/VectorProcessor.java.htm
CIElab
http://es.wikipedia.org/wiki/Espacio_de_color_Lab
Manzanas
http://en.wikipedia.org/wiki/Braeburn
http://en.wikipedia.org/wiki/Granny_Smith
http://en.wikipedia.org/wiki/Red_delicious
http://en.wikipedia.org/wiki/Golden_Delicious
Descargar

Presentación