Reconocimiento de Frutas

July 18, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Reconocimiento de Frutas...

Description

 

 

“AÑO DEL DIÁLOGO Y

LA RECONCILIACIÓN NACIONAL”.

PROYECTO DE REDES NEURONALES  1.

“Sistema de reconocimiento de frutas” 

CURSO REDES NEURONALES Y LOGICA DIFUSA PROFESOR JOSE LUIS BOHORQUEZ BENDEZU INTEGRANTES JESUS SULCA QUINTO ---------------------------------- 1311840 JOSÉ LUIS CALDAS PASTRANA---------------------- 0920766 RIMAC COLQUI GUSTAVO-------------------------------1330485 RIVERA ESPEJO ERIC-------------------------------------1411854

 

Sistema de reconocimiento reconocimiento de frutas RESUMEN

En este proyecto se detalla el desarrollo de la implementación de un sistema que, dada una imagen de un una a fruta, pueda clasificar dentro de un conjunto ya estudiado, dicha fruta. La implementación se realizará usando el sistema Matlab y realiza una serie de tratamientos previos a la imagen para poder ser analizada de manera fiable y aporte una clasificación lo más verídica posible.

1. Introducción En la actualidad, el uso de las nuevas tecnologías está llegando cada vez a diferentes aspectos de la vida cotidiana, buscando facilitarnos los actos que realizamos diariamente, creando sistemas dirigidos a realizar dichas tareas, tareas que pueden ser, salir de compras, sellar el paro, ver el periódico, etc. Podemos decir que la principal función de las TIC es ofrecer servicios que reduzcan el esfuerzo físico-psicológico necesario para realiz realizar ar dicho acto, servicio servicio u otra actividad. Existen empresas como Amazon Fresh y Shopping Express que nos ofrecen un servicio de entrega de alimentos a domicilio en un tiempo récord, también se desarrolló un sistema llamado Dash Button, que simplemente es un botón que, al ser pulsado, ordena de manera automática la compra de los artículos vinculados. Llegados a este punto, viendo la facilidad con la cual podemos realizar dichos actos, nos planteamos la idea de un sistema de reconocimiento que pudiera reconocer, interpretar y clasificar diferentes tipos de alimentos. Esto es un tema bastante amplio y ambicioso en el que se tendría que abordar desde diferentes aspectos (software, hardware, convenios con diferentes empresas). Por ello en este proyecto se aborda uno de los temas que podrían, en un futuro, y añadiendo un desarrollo mucho más exhaustivo y dedicado, sería el reconocimiento de frutas. Por lo l o tanto, este trabajo desarrolla uno de de los primeros pasos que tendrían que darse para la implantación de este tipo de sistemas, ofreciendo tanto un software que permita reconocer diferentes tipos de fruta, como un artículo de información, para que posibles personas futuras, con la misma ambición, partan de una base.

2. Planteamiento teórico  En este apartado encontrará todo el planteamiento teórico usado a la hora de realizar este proyecto. Se realizará una explicación teórica de todos los métodos y operaciones usadas ofreciendo una justificación coherente sobre las mismas.

 

2.1.

Segmentación 

Tras una correcta carga de imagen en Matlab, es necesario realizar una segmentación de la l a misma, llegados a este punto nos planteamos una serie de preguntas. Sabemos que al trabajar con el modelo RGB podíamos intentar quedarnos con alguna de las capas de forma generalizada para poder binarizar la imagen de la forma más óptima posible.  Aquí tenemos la p primera rimera cuestión del proyecto ¿Cuál será la capa correcta? Para resolver esta cuestión realizamos pruebas pruebas y sacamos los histogramas de la imagen. Sabemos que con los histogramas es posible ver la distribución de intensidades en una imagen.

La idea es buscar una distribución en la que las intensidades están claramente cercanas a los valores 0 y 255 en nuestra escala de grises, como podemos observar en la imagen.

2.1.1

Binarización 

 Ahora deberíamos realizar la binarización de la imagen, podemos decir que la binarización consiste en una reducción de información en la que los únicos valores posibles son verdadero y falso (1 y 0). El uso de la binarización nos ayuda a la hora del análisis de la imagen, pues nos permite crear una diferencia difer encia entre el objeto y su fondo. Para binarizar la imagen usaremos el método O Otsu, tsu, este método usa la técnica de la umbralización, que se emplea cuando tenemos una clara diferencia entre el objeto y el fondo. Este método se rige por los principios de similitud entre píxeles pertenecientes a un objeto y a sus diferencias respecto al resto. La escena a la que nos enfrentamos es ideal para este método, pues tenemos un fondo uniforme y el objeto claramente diferenciad diferenciado, o, ya que elegimos la capa azul para nuestras distintas imágenes, al aplicar el umbral, la imagen en escala de grises quedará binarizada etiquetando con ‘1’ los píxeles correspondientes al objeto y con ‘0’ aquellos que son del fondo

 

 

Debemos las ventajas de usar elel desarrollo método de Otsu, ellas y puede queremarcar la más interesante planteando futuro deuna estede proyecto, es la capacidad de respuesta que encontramos ante imágenes más cercanas a situaciones reales (imágenes mal iluminadas, ruidosas, con histogramas planos, etc.), este método precisa de automatismo ya que no necesita supervisión alguna.

2.1.2

Operaciones Morfológicas  Ya con nuestra iimagen magen binarizada, debemos realizar ciertas operaciones para poder conseguir una binarización más exacta. Para ello usaremos las operaciones morfológicas, estas nos ayudan a simplificar las imágenes conservando las principales características de forma de los objetos. Para conseguir una binarización más exacta, se aplicará la operación morfológica de cierre (se aplica una dilatación seguida de una erosión), ya que elimina detalles oscuros de la imagen, dejando el resto prácticamente igual. esta operación conseguirá para las frutas con irregularidades en su piel evitar que estas generen píxeles de ruido en la imagen a segmentar.

 

 

2.1.3

Normalización 

Tras esto ya consideraremos la imagen resultante una imagen segmentada. Ahora realizaremos una serie de pasos para contener la imagen en el menor rectángulo posible (BoundingBox) y después, estandarizar todas las imágenes a un mismo tamaño para a partir de aquí comenzar con la obtención de los descriptores. Es importante negar nuestra imagen binarizada, pues el método regionprops utiliza los píxeles ‘on’ como el objeto y los ‘off’ como el fondo. Es necesaria una buena elección de las propiedades que definen a la imagen, a estas las llamaremos descriptores de la imagen. Regionprops se encarga de calcular las propiedades de cada región dentro de una imagen, en nuestro caso al solo existir una región por imagen, solo identificará una región, pero este método identifica tantas regiones como existan en la imagen. Devuelv Devuelve e una matriz de estructura, un e elemento lemento por región, cuyos nombres de los campos son las propiedades pedidas al método. Debemos normalizar la imagen, ya que debemos tratar la imagen reescalada al mismo tamaño, pues obtendremos diferentes valores, para los diferentes descriptores de una misma imagen. im agen. Regionprops nos devuelve un valor para la bounding box, que nos es más que las coordenadas del borde rectangular que encierra totalmente la imagen.  Ahora que tenemos contenida la imagen en este cuadrado mínimo, la recortaremos por las coordenadas dadas y reescalaremos dicha imagen resultante. Debido al resultado obtenido por las pruebas, el cual podrá encontrar en el apartado experimental, decidimos usar una escala de 450x600. 

2.2

Descriptores 

Llegados a este punto es necesario definir los descriptores que vamos a usar, los que hemos considerado más importantes para realizar la calificación de las frutas son: -

Área. Perímetro. Redondez. Excentricidad. Media de las capas RGB.

 A continuación, se definen más detalladamen detalladamente te cada uno de los descriptores usados.

Área: Regionprops nos devolverá un escalar que especifica el número real de píxeles ‘on’ en la región. Perímetro: Para este caso nos devolverá un escalar que especifica la distancia alrededor del límite de la región. Regionprops obtiene el perímetro calculando la distancia entre cada par contiguo de píxeles alrededor del borde d de e la región.

 

 

Redondez: Esta propiedad no la podemos encontrar en regionprops, por lo que debemos definirla adecuadamente. La intención es que esta propiedad nos devuelve un valor entre 0 y 1, de tal forma que cuanto más cercano a uno sea nuestro valor, más nivel de redondez tendrá nuestro objeto. La fórmula que define esta propiedad es la siguiente:

Excentricidad: La excentricidad es la relación de la distancia entre los focos de la elipse y su longitud del ejecuya principal. El valor es está entre 0 y 1. (0 y 1 son casos degenerados. Una elipse excentricidad 0 es en realidad un círculo, mientras que una elipse cuya excentricidad es 1 es un segmento de línea.) Es cierto que regionprops nos ofrece la propiedad excentricidad, aunque como podemos ver en la fórmula no es más que la raíz cuadrada de las diferencias de los ejes mayor y menor al cuadrado, partido por su eje mayor.

descriptor nos facilitara la tarea de orientar al sistema Media capas RGB: acerca del color queEste predomina en la imagen. Para obtener este descriptor se procedió a realizar la media del bounding box de cada una de las capas RGB, esto nos dio las medias de las columnas que al aplicar de nuevo la función mean ya nos dio un valor único para cada una de las capas RGB.

 

 

2.3.

Reconocimiento 

Llegados a este punto, hemos conseguido extraer de cada imagen una serie de datos (descriptores) que nos podrán ayudar en el proceso de calificación. Tras una correcta clasificación clasificación de los datos obtenidos en unas correspondientes tablas de datos, es necesario proceder a la elección de un método de reconocimiento.

2.3.1. KNN  El algoritmo K-NN es un algoritmo de clasificación. Dado un conjunto de objetos prototipo de los que ya se conoce su clase, es decir, dado un conjunto de muestras de entrenamiento y dado un nuevo objeto cuya cuya clase no conocemos, se busca entre el conjunto de prototipos los “k” más parecidos al nuevo objeto.  A este se le asigna la clase más numerosa entre los “k”  objetos prototipo seleccionados.

Vemos como en la imagen tenemos 24 casos ya clasificados en dos posibles valores y que se ha seleccionado k=3. De los 3 casos ya clasificados que se encuentran más cercanos al nuevo caso a clasificar, dos de ellos pertenecen a una misma clase, por tanto, el clasificador 3-NN predice la clase mayoritaria para el nuevo caso. Si el k varía la solución varía. La elección del número adecuado de vecinos k es una tarea que no tiene un procedimiento fijo, y en ocasiones su búsqueda se vuelve un proceso iterativo.

 

 

4. Parte Experimental En este punto podrá encontrar todo el estudio experimental realizado a la hora de llevar a cabo la realización del proyecto, desde las pruebas que llevaron a su éxito, hasta aquellas que fueron erróneas, explicando los factores que producen este error. Para empezar nuestro estudio experimental, debemos disponer previamente de un conjunto de entrenamiento dado. La primera barrera a la que tenemos que enfrentarnos, es la selección previa de la capa RGB, para poder realizar una correcta segmentación de la imagen. Para poder decidir correctamente la capa a usar realizamos pruebas con diferentes imágenes y diferentes fondos, observando los resultados del histograma. En las siguientes imágenes podrán observar los resultados obtenidos. 

[Figura 1]

 

 

[Figura 2] 

[Figura 3]

 

 

[Figura 4] 

En este caso (Figura 3 y 4) ,hemos tratado con imágenes, en la que los fondos se observa una gran variedad de tonalidades y texturas, el histograma obtenido para dichas imágenes, no nos asegura poder generalizar un patrón de elección de capas, pues dependiendo de la tonalidad del fondo, obtendremos diferentes valores en el histograma, y por lo tanto tendríamos que elegir una capa diferente para el tratamiento de cada imagen, dependiendo del color de su fondo. Con los resultados obtenidos al realizar estas pruebas podemos asegurar que tratar con imágenes con el fondo blanco, nos asegura que podremos trabajar siempre con la capa azul, ahora podemos binarizar nuestra imagen para convertirla únicamente en valores 0 y 1, para ello aplicamos el método de Otsu (la explicación de la elección de este método lo podemos encontrar en el apartado teórico). Como era de prever en las imágenes binarizadas podemos observar cierto ‘ruido’,  como hemos explicado en el apartado del planteamiento teórico para quitar ese ‘ruido’  debemos usar operaciones morfológicas y al trabajar con escala de grises tenemos operaciones de dilatación, erosión, apertura y cierre. Las pruebas realizadas fueron las siguientes: Para empezar, probamos con el elemento estructural que nos aconseja el documento, disco de tamaño 11.

 

 

[Figura 5] 

[Figura 6] 

ealizamos las pruebas con Squa e amaño 11:

[Figura 7] 

[Figura 8] 

 

 

5. Manual de Usuario Para el correcto funcionamiento del programa desarrollado, en primer lugar, será necesario tener instalado en el sistema que se desea ejecutar, el programa Matlab, podrá obtenerlo de su página oficial a la cual le aportamos el enlace: https://es.mathworks.com/products/matlab.html  En esta página podremos encontrar tanto una versión de prueba como la versión de pago ya que Matlab se trata de un sistema que para usarlo deberemos pagar la licencia. Una vez ya tenemos Matlab instalado en el equipo, tenemos dos posibilidades para ejecutar el programa: -

Se ha utiliz utilizado ado la h herramienta erramienta d deploytool eploytool de Matlab para crear un ejecutable, el usuario solo tendría que ejecutar el archivo y empezar a disfrutar de la aplicación, siempre y cuando tenga la misma versión de Matlab con la que se creó el ejecutable (MATLAB 2011b). 2011b).

-

Como segunda posibilidad, debemos abrir la herramienta, y copiar en el path de Matlab los archivos que se aportan en el zip incluidos en la carpeta archivos Matlab Por último, se abrirá el archivo ‘presentación.m’  que nos lanzará la interfaz a través de la cual debemos ir avanzando y completando los pasos que se nos indican para que el sistema sea capaz de clasificar la fruta en cuestión. Como única restricción para la correcta clasificación usando la interfaz gráfica, es pulsar en todos los botones antes de avanzar al siguiente paso o ventana del programa.

Por último, comentar que se incluyen también los métodos de que se desarrollaron durante la creación del sistema con vistas que estos puedan ser usados como comando propios de Matlab, hemos decidido aportar este conjunto de archivos .m ya que la claridad del código en ellos es muchísimo mayor que en la interfaz gráfica además de facilitar f acilitar la realización de nuevas versiones de este sistema de manera mucho más fácil.

 

 

6. Manual de Interfaz Gráfica  Una interfaz gráfica es el vínculo entre el usuario y un programa computacional, constituida generalmente por un conjunto de d e comandos o menús, instrumentos y métodos por medio de los cuales el usuario se comunica con el programa durante las operaciones que se desean realizar, facilitando la entrada y salida de datos e información. Por consiguiente, para crear una interfaz gráfica utilizaremos el lenguaje de programación de Matlab. Matlab nos permite realizar GUIs de una manera sencilla usando una herramienta llamada GUIDE. GUIDE es un entorno de programación visual para realizar y ejecutar programas que necesiten ingreso continuo de datos. Para dar comienzo a nuestro proyecto, pulsaremos sobre el icono que se muestra en la figura siguiente:

El cual, nos lleva al siguiente cuadro de diálogo:

 

 

Donde se presentan siguientes opciones:

las

a) Blank GUI (Default): La opción de interfaz gráfica de usuario en blanco (viene predeterminada), nos presenta un formulario nuevo, en el cual podemos diseñar nuestro programa. b) GUI with Uicontrols: Esta opción presenta un ejemplo en el cual se calcula la masa, dada la densidad y el volumen, en alguno de los dos sistemas de unidades. Podemos ejecutar este ejemplo y obtener resultados. c) GUI with Axes and Menu: Esta opción es otro ejemplo el cual contiene el menú File con las opciones Open, Print y Close. En el formulario tiene un Popup menu, un push button y un objeto d)

Modal Question Dialog: Con esta opción se muestra en la pantalla un cuadro de diálogo común, el cual consta de una pequeña imagen, una etiqueta y dos botones Yes y No, dependiendo del botón que se presione, el GUI retorna el texto seleccionado (la cadena de caracteres ‘Yes’  o ‘No’). 

Elegimos la opción Blank GUI, obtenemos la figura siguiente:

 

 

La interfaz gráfica obtiene las herramientas her ramientas siguientes: Barra de Menús: Se encuentran las funciones f unciones elementales de Edición de GUIs.





Barra de herramientas:



Paleta de componentes: ○ ○

Selecciona el objeto deseado. Invoca un evento inmediatamente.

 

 



Usado para representar un rango de

valores. ○

Indica una opción que puede ser seleccionada.



Indica el estado de una opción o atributo.



Caja para editar texto.



Muestra un string de texto en una caja.



Provee una lista de opciones.



Muestra una lista deslizable.



Solo dos estados, “on” o “off”. 



Indica una figura.



 Agrupa botones como un grupo.



Permite exclusividad de selección con los radio

button. 

Cada uno de los elementos de GUI, tiene un conjunto de opciones que podemos acceder con click derecho.

Pulsamos sobre la opción Property Inspector, el cual nos permite personalizar cada elemento.

 

 

 Al hacer clic derecho en el elemento ubicado en el área de diseño, una de las opciones más importantes es View Callbacks, la cual, al ejecutarla, abre el .m asociado a nuestro diseño y nos posiciona en la parte del programa archivo que corresponde a la subrutina que se ejecutará cuando se realice una determinada acción sobre el elemento el emento que estamos editando. Por ejemplo, al ejecutar View Callbacks>>Callbacks en el Push Button, nos ubicamos en la parte del programa:

Una aplicación GUIDE consta de dos archivos: .m y .fig. El archivo .m es el que contiene el código con las correspondencias de los botones de control de la interfaz y el archivo .fig contiene los elementos gráficos.  A continuación, comenzaremos con la mostración de los pasos a seguir seguir de nuestra interfaz gráfica. Para la presentación de nuestro programa hemos programado una pantalla donde se ha colocado un tema de nuestro diseño, y una imagen de fondo.

 

 

El siguiente paso, tras pulsar en el botón “CONTINUAR” se ha realizado nuevos GUIDEs en los cuales se usan Panel, Axes, Static Text y Push Button. 

 

 

27

 

7. Conclusión Debemos tener en cuenta la importancia del tratamiento de imágenes digitales, gracias a esto podemos realizar diferentes acciones sobre la imagen modelándola para resolver un problema o necesidad. En nuestro caso la necesidad se trata de conseguir tratar imágenes de diferentes frutas, con el fin de su posterior reconocimiento. Pero, como era de prever siempre que te enfrentas a algo nuevo, surgen dudas, dilemas, problemas, por ello debemos dar gracias a todos los proyectos encontrados en la red y sobre todos a aquellos mencionados en nuestra bibliografía. Gracias a las investigaciones realizadas, por todas estas personas y, a las pruebas obtenidas en el desarrollo de nuestro proyecto, conseguimos sacar adelante este trabajo que presentamos ante ustedes. 20 

 

El proceso de tratamiento de las imágenes que se desarrolla sigue una serie de pasos muy importantes para obtener los resultados deseados. El primer objetivo es obtener una imagen segmentada la cual deberíamos binarizar, para ello tomamos la capa más influenciable (AZUL) para distinguir el contorno de la fruta todo por la imagen tener el fondo blanco, binarizarmos la capa y llegados a este punto tenemos una imagen que trabaja con 0 y 1. Sabemos que deberíamos trabajar con un tamaño de imagen igual i gual para todas, pues si no la información obtenida de estas vendría escalada por sus tamaños, para quitarnos esta barrera normalizamos la imagen, ahora podíamos obtener sus descriptores, en este aspecto remarcar que el uso de un tamaño proporcional a 450x600 da mejores resultados que por ejemplo otras normalizaciones probadas en la parte experimental [550x500 o 450x450 600x450]. Ya con estos descriptores en nuestro poder (después de definir bastantes) y usando conocimientos de inteligencia artificial, en este caso en método KNN, podemos llegar a la correcta calificación y reconocimiento de imágenes en el que nos enfrascamos con este proyecto. Esperemos que estas investigaciones puedan ayudar ayudar o servir tanto para tema escolar, como para su posible desarrollo futuro en busca de mejoras. Las cuales pueden ser muchísimas, tales como encontrar un método más efectivo de reconocimiento, realizar el reconocimiento para una variedad más amplia de frutas, insertar este reconocimiento en aparatos electrónicos con el fin de convertirlos en lo que ahora se llaman “aparatos inteligentes”.  La interfaz aportada podría usarse en centros educativos, pues de forma interactiva muestra paso a paso con explicaciones todo el proceso seguido para poder reconocer diferentes frutas. Dicho todo esto, agradecer una vez más todas t odas las aportaciones recibidas por terceros y el trabajo de las personas implicadas en el proyecto, nuestro equipo tiene el placer de presentaros un sistema de reconocimiento de frut

21 

 

8. Bibliografía y Web grafía  Woo Chaw Seng y Seyed Hadi Mirisaee. A new method for fruits f ruits recognition system. Electrical Engineering and Informatics, 2009. ICEEI '09. International Conference on. ●

● Christian Montoya  Andrés Chaves Osorio.Holguin, Jimmi Alexander Cortés Osorio y José Sistema basado en visión por computador. Ingeniare. Rev. chil, ing. vol.22 no.4 Arica oct. 2014 ●

Para el método Otsu: https://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ca d=rja&uact=8&ved=   d=rja&uact=8&ved= 0ahUKEwiQtoHYlIjRAhWDmBoKHfcjDUQQFgguMAI&url=http%3A%2F %2Fwww.ilopez.e s%2Fproyectos%2Fmatematicas%2FOtsu.pptx&usg=AFQjCNFsCuTHeU1Z_5A4Nj9i9y37Fi6 vw&sig2=Z1btu3VrZePTmx5cdgsSNw&bvm=bv.142059868,d.d24   vw&sig2=Z1btu3VrZePTmx5cdgsSNw&bvm=bv.142059868,d.d24

Continuación método Otsu:   https://es.wikipedia.org/wiki/M%C3%A9todo_del_valor_umbral https://es.wikipedia.org/wiki/M%C3%A9todo_del_valor_umbral  ●

Uso de la APi de Matlab para la compresión de métodos y opciones: https://es.mathworks.com/  ●

Para el uso de regionprops: https://es.mathworks.com/help/images/ref/regionprops.html   https://es.mathworks.com/help/images/ref/regionprops.html ●

●  Algunas consultas, consultas, material de la asignatura: asignatura: http://asignatura.us.es/imagendigital/  ●

Crear .exe en Matlab: http://colab-matlab.blogspot.com.es/2012/05/como-realizar-un-ejecutablede-un-guide.html   de-un-guide.html

●  Para obtener las imágenes de las diferentes iimágenes mágenes de los limones

https://www.google.es/search?q=google+imagenes&espv=2&biw=1707 q=google+imagenes&espv=2&biw=1707 https://www.google.es/search? &bih=817&site=webhp   &bih=817&site=webhp &source=lnms&tbm=isch&sa=X&sqi=2&ved=0ahUKEwih8tP9kojRAhVM WhQKHe_NDVcQ   WhQKHe_NDVcQ  _AUIBigB#tbm=isch&q=limon 

●  Para obtener las imágenes de las diferentes iimágenes mágenes de los plátanos

https://www.google.es/search?q=platano&espv=2&rlz=1C1MSNA_enES https://www.google.es/search?q=platano&espv=2&rlz=1C1MSNA_enES 709ES709&biw=1707   709ES709&biw=1707 &bih=817&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjK7c_Sk4jRAh UFrxoKHTgUANE Q_AUIBigB  Q_AUIBigB  ●  Para obtener las imágenes de las diferentes iimágenes mágenes de las fresas https://www.google.es/search?q=fresas&espv=2&rlz=1C1MSNA_  https://www.google.es/search?q=fresas&espv=2&rlz=1C1MSNA_    22 

 

23  23 

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF