Reconocimiento de Patrones-matlab

IMPLEMENTACIÓN MEDIANTE MATLAB® DE UN SISTEMA DE RECONOCIMIENTO DE PATRONES POR REDES NEURONALES PARA LA INSPECCIÓN VISU

Views 143 Downloads 1 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

IMPLEMENTACIÓN MEDIANTE MATLAB® DE UN SISTEMA DE RECONOCIMIENTO DE PATRONES POR REDES NEURONALES PARA LA INSPECCIÓN VISUAL DE GAJOS DE MANDARINAS Manuel Roldán Rueda

Universidad Alfonso X El Sabio

[email protected]

RESUMEN Este Proyecto pretende abordar el reconocimiento de patrones utilizando como herramienta las redes neuronales, para solventar los problemas que padecen los sistemas en el apartado de la visión artificial, donde tienen un importante cuello de botella. El trabajo se ayuda de una herramienta versátil como Matlab para desarrollar toda una aplicación que pueda servir como clasificador de patrones. Estos patrones serán imágenes extraídas de una cinta transportadora industrial de gajos de mandarinas, y el objetivo primario del proyecto es hacer una distinción entre dos clases en principio fácilmente separables. Pero este Proyecto va más allá incluso, llegando a establecer una clasificación con índices de calidad de gajos, ofreciendo una emulación en cierto modo de un sistema multievaluado de lógica difusa,

aproximándolo a dicha teoría. Además de esto, la aplicación desarrollada se muestra como una plataforma multiclasificadora debido a las múltiples opciones que ofrece, lo que permitiría utilizarla para cualquier tipo de aplicación de reconocimiento de patrones, independientemente de la naturaleza de los mismos. Se ha realizado una comparación entre distintos tipos de redes neuronales, considerando no solo el número de nodos y capas entre la entrada y salida, sino también las funciones de activación y el algoritmo de minimización del error. Se discutirán y ofrecerán los resultados obtenidos, así como la bondad y robustez del sistema en conjunto como clasificador. Al mismo tiempo se especulará sobre su aplicación en tiempo real, y los potenciales usos que podría tener.

INTRODUCCIÓ INTRODUCCIÓN

SOFTWARE DESARROLLADO

Es indudable la importancia que tienen hoy en día los sistemas autónomos. De la misma forma, son bien conocidos los problemas de estos sistemas en el campo de la visión artificial, y más concretamente en el reconocimiento de formas y objetos. Por esta razón, han sido muchos los proyectos que han estudiado este aspecto, sobretodo desde el auge de la tecnología electrónica en la década de los 70. La inspección visual realizada por humanos en fábricas, supone aproximadamente el 10 % de los costes de producción, y su eficiencia está en torno al 60 % [1]. Además, no pueden proporcionar funciones avanzadas de clasificación. Este proyecto se apoya en las redes neuronales, una disciplina muy potente, ampliamente probada y comprobada y que proporciona capacidades avanzadas de discriminación y aprendizaje de nuevos modelos.

OBJETIVOS

Software que permite catalogar los gajos como buenos y malos y proporcionar índices de calidad, para diferentes categorías que se correspondan con distintas utilidades de los gajos.

Extraer características

Entrenar red neuronal

Clasificar los gajos

Modular: el programa se divide en 3 módulos principales: el analizador de gajos, encargado de extraer las características, el entrenador de la red neuronal y el clasificador de los gajos, enlazadas por la interfaz. • Extraer características Analizador de gajos • Exportar a fichero • Tipos de redes

• Creación de un sistema flexible, robusto, potente, eficaz, y eficiente

Entrenador de redes

• Posibilidad de ampliaciones y/o modificaciones

• Tipos de errores • Algoritmo • Estructura

• Clasificador potenciado mediante redes neuronales • Obtención de múltiples clases de clasificación

Clasificador de gajos

• Calidad de gajo • Visualización por colores

Módulo extractor de características

FUNDAMENTOS El motor clasificador de nuestro sistema está basado en las redes neuronales. Una red neuronal es un modelo artificial del cerebro humano, pero debido a la inmensidad del modelo natural, no podemos más que emular en cierto modo su funcionamiento a pequeña escala. Una neurona básica está recogida en la Figura 1. Su comportamiento se puede resumir en que la suma de sus entradas ponderadas activan su salida cuando se supera un umbral fijado por una determinada función de activación (Figura 2).

Figura 1: Neurona artificial básica

La verdadera potencia de las redes neuronales radica en la combinación de cientos o miles de ellas (Figura 3). Una vez construida una red neuronal artificial, debe ser entrenada. Para ello se le alimenta con un conjunto de patrones y las salidas que deseamos que produzcan, y mediante un algoritmo de minimización de error, se va reduciendo el error de salida ajustando las conexiones entre ellas [2].

Módulo clasificador de gajos

A pesar de no poder alcanzar dicha potencia, las redes neuronales son sistemas ideales para reconocimiento de objetos [4], formas, texturas, predicciones bursátiles, meteorología local, etc., gracias en gran parte a la capacidad que poseen para generalizar una vez entrenadas. Además, mediante ciertos algoritmos pueden incluso aprender mientras trabajan. Resumiendo, las redes neuronales son un ejemplo de procesamiento paralelo, con las ventajas que éste tiene, como la potencia, la tolerancia a fallos y caída a parte de la red, pero evitando los problemas del verdadero multiprocesamiento, debido a la simplicidad de los nodos.

Figura 3: Red Neuronal artificial 1E+12 1E+10

neurona artificial neurona natural

1E+08 1E+06 1E+04 1E+02 1E+00

Tiempo de Conectividad Nº de conmutación elementos

Figura 4: Comparativa tipos neuronas

METODOLOGÍ METODOLOGÍA Disponemos de imágenes de gajos de mandarinas de 640x640 píxeles en escala de grises para ser analizadas [3], como las de las figuras 4 y 5. Estudiándolas con detenimiento hemos considerado 4 características que permiten una discriminación excelente: la proyección vertical del gajo, la proyección horizontal del gajo, el área del gajo y el cociente entre el perímetro al cuadrado y el área, cada una con él propósito de detectar una particularidad del gajo. Los pasos que se siguieron para diseñar el software fueron los siguientes: • Diseño de diagramas de flujo del programa. • Programación del sistema. • Fase de pruebas.

Figura 4: Gajo deteriorado

Figura 5: Gajo en buen estado

Error de entrenamiento

Polinómica (Feed Forward) Polinómica (Elman)

0.200 0.150 0.100

0.050 En la Figura 7 representamos el error frente al número de neuronas con todo tipo de funciones de activación, donde se puede comprobar la 0.000 0 5 10 15 20 25 30 35 40 45 disminución del error de la etapa de entrenamiento de forma lineal para el Número de neuronas caso de las redes Feed Forward, y la tendencia a aumentar el error en las Figura 7: Error frente a neuronas de la red neuronal 0.250 redes de tipo Elman cuando la red neuronal se complica. Polinómica (Feed Forward)

También quisimos analizar la evolución del error respecto al número de capas. De forma similar a la anterior gráfica, la FeedForward se comporta de un modo descendente, mientras que la Elman a partir de 2 capas comienza a empeorar (Figura 8). También se comprobó que las redes de base radial funcionan mejor cuando el parámetro de la anchura de su campana es menor a 10, aumentando el error de forma cuadrática a medida que se ensancha dicha campana gaussiana. La Figura 9 pone de manifiesto la importancia de la elección de una red adecuada, sobretodo para entrenamiento online. En ella analizamos el tiempo de entrenamiento relacionado con el número de neuronas de la red, mostrando que a medida que aumentan estas últimas, el tiempo de entrenamiento que requiere aumenta consecuentemente, pero de forma exponencial, no lineal. Este fenómeno es más apreciable en las redes de tipo Elman, tal y como puede comprobarse. En el trabajo se ha definido un índice de fiabilidad para que al entrenar la red sepamos ya cual será la eficiencia del clasificador. También se definió una medida de seguridad en el clasificador que indica lo segura que es la clasificación. En la gráfica de la Figura 10 se comparan, y podemos constatar que realmente el índice definido durante el entrenamiento nos proporciona una indicación muy fiable sobre el comportamiento que tendrá el clasificador, lo que nos permite ahorrar tiempo en caso de simplemente estar buscando la configuración óptima de la red. Esto puede ser muy útil en aplicaciones críticas, donde deseamos ajustar a priori la bondad del clasificador.

Error de entrenamiento

Y la respuesta está en la propia naturaleza del cerebro, que con unos 100.000 millones de neuronas (1011) están aún muy lejos de lo que, por ejemplo, el procesador más moderno implementa: 60 millones de elementos. Esto hace que, a pesar de conseguir tiempos de conmutación extremadamente bajos con la tecnología actual, la conectividad que se logre sea limitada (Figura 4).

0.250

Polinómica (Elman)

0.200 0.150 0.100 0.050 0.000 0

1

2

3

4

Capas de la red

5

6

Figura 8: Error frente a capas de la red neuronal 100

Media de seguridad

¿Por qué no construimos cerebros artificiales, consiguiendo así Inteligencia Artificial?

Presentaremos ahora los resultados obtenidos con el sistema, cuya eficiencia es superior al 90%. A continuación analizaremos los resultados arrojados por el clasificador dependiendo de la estructura de la red neuronal.

Lineal (Feed Forward) Lineal (Elman)

80 60 40 20 0 0

10

20

30

40

50

60

70

80

90

100

Fiabilidad

Figura 9: Relación fiabilidad del entrenamiento- media de seguridad Tiempo de entrenamiento

Figura 2: Función de activación

Sin embargo, si el sistema más inteligente que conocemos es el cerebro humano y ya conocemos su funcionamiento grosso modo, podemos hacernos una pregunta:

Módulo entrenador de redes neuronales

RESULTADOS

700 600

Exponencial (Feed Forward)

500

Exponencial (Elman)

400 300 200 100 0 0

5

10

15

20

25

30

35

40

45

Número de neuronas

Figura 10: Tiempo de entrenamiento frente a número de neuronas

CONCLUSIONES Se ha desarrollado una plataforma potente, versátil, de eficacia comprobada y con aplicaciones reales en el campo de la industria. Los resultados obtenidos respaldan el comportamiento teórico esperado del sistema. Es un sistema de bajo coste que puede instalarse de forma inmediata mediante una cámara y un ordenador corrientes, contribuyendo así a la optimización del proceso productivo. El sistema se comporta de acuerdo con las bases de la teoría de las redes neuronales El clasificador de patrones del sistema proporciona distintas formas de discriminación, estableciendo mínimos de calidad o mínimos de seguridad en una clasificación determinada. Referencias: [1] Davidson, V., Chu, T., and Ryks, J., Fuzzy methods for automated inspection of food products, IEEE ISBN 0-7803-5211-4, 909-912, 1999.

[2] Karayiannis, N.B., Venetsanopoulos, A.N., Artificial Neural Networks: Learning Algorithms, Performance Evaluation, and Applications, Boston: Kluwer Academic Publishers, 1993.

El sistema de visualización del clasificador de gajos de mandarinas por colores es un acercamiento a la teoría difusa desde el campo de las redes neuronales, de modo que cuanto más calidad tengan los gajos, serán más verdes y según aumente su grado de deterioro, serán más rojos, lo que simplifica enormemente la supervisión. Si la aplicación del sistema varía, desde el punto de vista de reusabilidad, el único bloque que debería modificarse sería el extractor de características de las imágenes, adecuándolo al tipo de patrón a discriminar. Gracias a todas las comparativas realizadas, se puede escoger un tipo de red, seleccionando los parámetros que deseemos para nuestro sistema en particular: fiabilidad, rapidez, seguridad, o un compromiso entre las mismas. [3] Young, T.Y., Fu, K.S., Handbook of Pattern Recognition and Image Processing, Academic Press, 1986. [4] Pham, D.T., Liu, X., Neural Networks for Identification, Prediction and Control, Springer, 220-245, 1995.

Cartel presentado para la fase final del V Certamen Universitario “Arquímedes” de Introducción a la Investigación Científica, celebrado en la Universidad de Córdoba del 29 de Noviembre al 1 de Diciembre de 2006.