50
CLASIFICACIÓN AUTOMÁTICA DE MANZANA SEGÚN SU COLOR DE PIEL GONZALO VÁZQUEZ SUAREZ LUIS CARLOS PÉREZ PIZARRA

Manzanas

Embed Size (px)

DESCRIPTION

Manzanas. - PowerPoint PPT Presentation

Citation preview

CLASIFICACIÓN AUTOMÁTICA DE MANZANA SEGÚN SU COLOR DE PIEL

GONZALO VÁZQUEZ SUAREZLUIS 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

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.

Clustering

Un poquito de Teoría

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.

Clustering por K-medias

Un poquito de TeoríaEjemplo 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íaEjemplo 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íaEjemplo 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

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).

Cielab

Un poquito de Teoría

El modelo de color Lab es tridimensional y sólo puede ser representado adecuadamente en un espacio tridimensional.

Cielab

Aplicación APPLEUGIN

Copiar previamente los archivos a la carpeta “Plugins” que aparece en el directorio donde está instalado ImageJ

Antes De Empezar

Aplicación APPLEUGIN

Seleccionar la imagen con la manzana que queremos clasificar. Entrar en menú “Plugins” y seleccionar la opción “Compile and Run...”.

Compilar y Ejecutar

Aplicación APPLEUGINProceso

Entrenamiento Manual

Cargar Entrenamiento

Clasificación

Seleccionar Manzana

Salvar Entrenamiento

Aplicación APPLEUGINEntrenamiento Manual

Aplicación APPLEUGINEntrenamiento Manual

Aplicación APPLEUGINEntrenamiento Manual

Aplicación APPLEUGINEntrenamiento Manual

Aplicación APPLEUGINEntrenamiento Manual

Aplicación APPLEUGINGuardar Entrenamiento

Aplicación APPLEUGINGuardar Entrenamiento

Importante: Extensión .ent

Aplicación APPLEUGINCargar Entrenamiento

Aplicación APPLEUGINCargar Entrenamiento

Importante: Extensión .ent

Aplicación APPLEUGINSegmentación con Clustering

Aplicación APPLEUGINSegmentación con Clustering

Aplicación APPLEUGINEvaluación

Desarrollo APPLEUGINProcesado 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 L a BColor 1 4 8 7Color 2 -2 15 32

……Color N 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 APPLEUGINSegmentació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 L a bColor 0 (fondo)

6 15 0

Color 1 -23 -45 73Color 2 0 12 35

Desarrollo APPLEUGINEntrenamiento

Obtiene los 2 colores predominantes (rechazando el fondo) de cada manzana y realiza la media de los parámetros cielab.

Manzana 1 L a BVerde 1 -38 31 27Verde 2 -17 11 -15

Manzana 2 L a BVerde 1 -1 -39 -5Verde 2 -23 -12 28

Manzana N L a BVerde 1 -18 50 -38Verde 2 -9 -5 -20

Desarrollo APPLEUGINEntrenamiento

Análogamente se calculan con los diferentes tipos. Y se obtiene la tabla de Entrenamiento calculando la media de casa parámetro.

Entrenamiento

L a B

Verde 1 -29 39 -30Verde 2 -14 -24 -13Rojo 1 20 -24 -17Rojo 2 22 26 17

Amarillo 1 -1 26 45Amarillo 2 -34 24 13

Mixta 1 18 -32 -3Mixta 2 -10 14 -19

Desarrollo APPLEUGINEvaluació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

L a b

Color 1 3 12 -35Color 2 -35 -4 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 APPLEUGINEvaluació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 64V2 62R1 71R2 96A1 98A2 34M1 91M2 70

V1+V2 126R1+R2 167A1+A2 132M1+M2 161

La Seleccionaría Verde

Desarrollo APPLEUGINArchivo 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ónManzanas Verdes

VA: Poco identificativa (amarillenta)VB: Muy identificativa (fuerte nivel de verde)

ExperimentaciónManzanas Amarillas

AA: Poco identificativa (matices verdes)AB: Muy identificativa (fuerte nivel de amarillo)

ExperimentaciónManzanas Amarillas

RA: Poco identificativa (casi mixta) RB: Muy identificativa (color rojo marcado)

ExperimentaciónManzanas Amarillas

MA: Poco identificativa (matices rojos) MB: Muy identificativa (fuerte contraste)

ExperimentaciónEntrenamiento 1

verde1 verde2 amarillo1 amarillo2L* 70.29815572469705 83.83857482349518 74.62162143463107 84.43520432938396A* -38.626767171786646 -31.799883487627966 -1.1321313696395219 -4.005187717590841B* 64.0012846383592 58.21156003623935 75.180432264964 59.5609177695955

rojo1 rojo2 mixta1 mixta2L* 25.309404649442115 47.346031452399764 50.49779140421407 70.41325976625974A* 41.25711587526562 43.15083914791551 59.070887553953455 29.127109833506303B* 26.617119720478804 23.03097733388445 40.85318086896791 42.99058954699919

ExperimentaciónConclusiones 1

Las manzanas de evaluación mencionadas anteriormente, los resultados obtenidos fueron los siguientes:

Acierto/Fallo PredicciónVA Acierto VB Acierto AA AciertoAB Acierto RA Acierto RB Acierto MA Fallo RojaMB Acierto

Esto supone que el porcentaje de acierto del sistema ha sido de un

87.5%

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ónEntrenamiento 2

verde1 verde2 amarillo1 amarillo2L* 70.95794896737931 91.549258264142 66.88193594874451 82.52242686930262A* -29.58841903922749 -16.068379435637326 -7.383973948747624 -6.350652545885433B* 55.06828737092632 29.579822542493403 58.59248120229458 64.26752647405536

rojo1 rojo2 mixta1 mixta2L* 37.88193837420919 57.603236386027135 41.21444328611912 70.4290755065968A* 49.87144934015901 38.57524476303654 46.972357592929434 23.229490213079295B* 25.529610195331877 17.318590343187687 34.060596477686374 41.73459086293195

Se añade al Entrenamiento 1 las siguientes manzanas

ExperimentaciónConclusiones 2

Los resultados obtenidos fueron los siguientes:Acierto/Fallo Predicción

VA Fallo Amarilla VB Fallo MixtaAA AciertoAB Acierto RA Acierto RB Acierto MA Fallo RojaMB Acierto

Hemos disminuido la tasa de aciertos a un 75%

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ónEntrenamiento 3

verde1 verde2 amarillo1 amarillo2L* 70.29815572469705 83.83857482349518 74.62162143463107 84.43520432938396A* -38.626767171786646 -31.799883487627966 -1.1321313696395219 -4.005187717590841B* 64.0012846383592 58.21156003623935 75.180432264964 59.5609177695955

rojo1 rojo2 mixta1 mixta2L* 25.309404649442115 47.346031452399764 50.49779140421407 70.41325976625974A* 41.25711587526562 43.15083914791551 59.070887553953455 29.127109833506303B* 26.617119720478804 23.03097733388445 40.85318086896791 42.99058954699919

Se han añadido al entrenamiento, todas las manzanas, menos las que se van a evaluar al entrenamiento, para estudiar el comportamiento del programa.

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ónConclusiones 3

Los resultados obtenidos fueron los siguientes:Acierto/Fallo Predicción

VA Acierto VB Acierto AA AciertoAB Acierto RA Acierto RB Acierto MA AciertoMB Acierto

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.

ConclusionesCon 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.

ReferenciasK-Mediashttp://www.cs.us.es/~fsancho/?e=43http://www.java2s.com/Open-Source/Java/Graphic-Library/ImageJ-Plugins-1.4.1/net/sf/ij_plugins/clustering/KMeans.java.htm

http://rsbweb.nih.gov/ij/developer/api/ij/ImageJ.htmlhttp://rsbweb.nih.gov/ij/docs/pdfs/tutorial10.pdfhttp://es.wikipedia.org/wiki/Segmentaci%C3%B3n_%28procesamiento_de_im%C3%A1genes%29http://www.java2s.com/Open-Source/Java/Graphic-Library/ImageJ-Plugins-1.4.1/net/sf/ij_plugins/multiband/VectorProcessor.java.htm CIElabhttp://es.wikipedia.org/wiki/Espacio_de_color_Lab Manzanashttp://en.wikipedia.org/wiki/Braeburnhttp://en.wikipedia.org/wiki/Granny_Smithhttp://en.wikipedia.org/wiki/Red_delicioushttp://en.wikipedia.org/wiki/Golden_Delicious