UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE ELECTRÓNICA “Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos” TRABAJO DE GRADUACIÓN Para obtener al grado de: Ingeniero en Electrónica Presentado por: Joaquín Armando Fonseca Rosales Mario Ernesto Orellana Crespín Juan Carlos Rivera García Asesor: Ing. Sergio Adrián Martín San Salvador, El Salvador, Centro América Septiembre de 2005. UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE ELECTRÓNICA AUTORIDADES: RECTOR: ING. FEDERICO MIGUEL HUGUET RIVERA VICERRECTOR ACADÉMICO: PBRO. VÍCTOR BERMÚDEZ YANEZ, SDB SECRETARIO GENERAL: LIC. MARIO RAFAEL OLMOS ARGUETA DECANO DE LA FACULTAD DE INGENIERÍA: ING. ERNESTO GODOFREDO GIRÓN DIRECTOR DE ESCUELA DE ELECTRÓNICA: ING. OSCAR GIOVANNI DURÁN VIZCARRA ASESOR DEL TRABAJO DE GRADUACIÓN: ING. SERGIO ADRIÁN MARTÍN JURADO EVALUADOR: ING. EDUARDO RIVERA ING. ANA DAYSI MONTECINO DR. JORGE ERNESTO LEMUS SANDOVAL UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE ELECTRÓNICA JURADO EVALUADOR DEL TRABAJO DE GRADUACIÓN Ing. Eduardo Rivera JURADO Ing. Ana Daysi Montecino JURADO Dr. Jorge Lemus Sandoval JURADO Ing. Sergio Adrián Martín ASESOR AGRADECIMIENTOS Quiero agradecer a Dios por darme la oportunidad de haber culminado la elaboración de este trabajo y también por haber derramado bendiciones sobre mi persona. A la vez agradecer a mis padres, Joaquín Armando Fonseca y Ana Concepción de Fonseca, por darme todo su apoyo, comprensión y sacrificio en todo el tiempo que duro la realización del trabajo. También agradecer a mis hermanas, Maritza Fonseca, Carolina Fonseca y Guadalupe Fonseca que me apoyaron y estuvieron conmigo en los momentos difíciles, ya que siempre permanecieron pendientes y me dieron ese empuje para salir adelante. A mi esposa, Fara Galeano y mis hijos, Armando Fonseca y Fernando Fonseca, por estar siempre conmigo, por darme su amor y su apoyo, por todos aquellos desvelos que se dieron en el transcurso del proceso. También agradecer a todas aquellas personas que con sus oraciones pedían por que culminara con éxito el trabajo de graduación, por que siempre permanecieron pendientes y me brindaron todo el apoyo para seguir adelante en el desarrollo de este trabajo. Joaquín Armando Fonseca Rosales AGRADECIMIENTOS Gracias a Dios sobre todas las cosas, por darme salud, sabiduría, paciencia y fuerza para lograr finalizar este proyecto. Agradezco a mis padres, ya que sin ellos, sin su apoyo y su gran fe en mí no hubiese logrado vencer todas las dificultades que me ha presentado la vida. A mi papá, por ser mi modelo de vida y el hombre que más admiro, porque siempre me ha enseñado con el ejemplo valores como la responsabilidad, honestidad y amor al prójimo. Gracias a mi mamá por el soporte incondicional, por confortarme y siempre anticiparse a mis necesidades. Agradezco a mi familia: Wendy, Fernando y Mario porque han sido los más sacrificados en este tiempo de trabajo. Gracias por haber sido mi soporte en los momentos difíciles, por su paciencia y por todo su amor. Es solamente por ellos que tiene sentido todo mi esfuerzo. Gracias Jorge, por tu ayuda sustancial, pero sobre todo por ser un verdadero amigo. Gracias Armando y Juan, porque más allá del trabajo está la amistad que me han brindado. Agradezco a todos mis amigos, por sus oraciones, por darme ánimos y su confianza, como también por las palabras de aliento cuando las necesitaba. Gracias a todos aquellos familiares y amigos que no menciono y han sido parte de mi vida durante este trabajo, para quienes también ofrezco mis agradecimientos. Mario E. Orellana Crespín. AGRADECIMIENTOS En primer lugar quiero dar gracias a Dios por permitirme llegar a esta etapa en mi vida, por estar siempre presente con sus bendiciones, darme la confianza y fuerza necesaria para lograr finalizar satisfactoriamente este trabajo. Quiero dar gracias a mi madre, Ana María García, que constantemente ha mantenido sus oraciones y me ha apoyado en toda mi vida. A mi padre, German Rivera Rodriguez, que ha estado presente en el momento que lo he necesitado. Gracias a Diana Gómez Canjura por brindarme todo su apoyo, por estar a mi lado, por compartir mis logros y tristezas, por darme ánimos para seguir adelante ante cualquier circunstancia. A nuestro asesor el Ing. Sergio Martín, por prestar sus conocimientos, su tiempo y mantenerse pendiente de todos los pasos administrativos a realizar para finalizar este trabajo. A mis familiares que se preocuparon y me apoyaron de diversas formas, y mantuvieron comunicación mostrando interés en mi proceso de graduación. A los familiares de mis compañeros Mario Orellana y Joaquín Fonseca, por todas las atenciones que mostraron a mi persona y por ayudarnos en lo que necesitábamos. A mis amigos y compañeros que siempre me han dado ánimos en momentos difíciles han confiado en mí y me han apoyado desde el inicio de mi carrera. A todas las personas que nos ayudaron en este trabajo, dándonos consejos e ideas para corregir errores y optimizarlo, a los que se prestaron para tomarles fotos a sus manos y poder utilizarlas para los entrenamientos de las redes neuronales. Juan Carlos Rivera García CONTENIDOS INTRODUCCIÓN.......................................................................................................................................................X 1 PROCESAMIENTO DE IMÁGENES..............................................................................................................2 1.1 LAS IMÁGENES DIGITALES EN DOS DIMENSIONES. ........................................................................................2 1.1.1 Tipos de imágenes de mapa de bits. .......................................................................................................3 1.1.2 El proceso de digitalización (muestreo y cuantificación).......................................................................6 1.2 DETECCIÓN DE BORDES. ............................................................................................................................11 1.2.1 El Gradiente. ........................................................................................................................................16 1.2.2 Método Canny. .....................................................................................................................................22 1.2.3 Operador de Canny. .............................................................................................................................24 1.2.4 Operador Laplaciana. ..........................................................................................................................26 1.3 PROCESAMIENTO MORFOLÓGICO...............................................................................................................27 1.3.1 Morfología de una Imagen Binaria. .....................................................................................................28 2 RECONOCIMIENTO DE PATRONES.........................................................................................................37 2.1 REDES NEURONALES..................................................................................................................................39 2.2 TIPOS DE REDES NEURONALES. .................................................................................................................39 2.2.1 Neurona Biológica................................................................................................................................40 2.2.2 Neurona Artificial.................................................................................................................................42 2.3 CONCEPTOS BÁSICOS DE UNA RED NEURONAL ARTIFICIAL.......................................................................44 2.3.1 La neurona artificial.............................................................................................................................44 2.3.2 Estado de activación.............................................................................................................................45 2.3.3 Función de transferencia......................................................................................................................45 2.3.4 Conexiones entre neuronas...................................................................................................................50 2.3.5 Regla de activación. .............................................................................................................................51 2.3.6 Regla de aprendizaje. ...........................................................................................................................53 2.3.7 Representación Vectorial......................................................................................................................54 2.4 ESTRUCTURA DE UNA RED NEURONAL ARTIFICIAL. ..................................................................................55 2.4.1 Niveles o capas de neuronas.................................................................................................................56 2.4.2 Formas de conexión entre neuronas.....................................................................................................57 2.5 TOPOLOGÍAS DE LAS REDES NEURONALES.................................................................................................58 2.5.1 Redes Monocapa...................................................................................................................................59 2.5.2 Redes Multicapa. ..................................................................................................................................60 2.5.3 Redes con conexiones hacia delante.....................................................................................................60 2.5.4 Redes con conexiones hacia atrás. .......................................................................................................61 2.6 MECANISMO DE APRENDIZAJE. ..................................................................................................................62 2.6.1 Redes con aprendizaje supervisado......................................................................................................63 2.6.2 Redes con aprendizaje no supervisado.................................................................................................65 3 DISEÑO DE LA APLICACIÓN .....................................................................................................................67 3.1 PRUEBAS DE PROCESAMIENTO DE IMAGEN.................................................................................................67 3.1.1 Captura de imagen. ..............................................................................................................................67 3.1.2 Conversión de la imagen a escala de grises.........................................................................................69 3.1.3 Detección de bordes. ............................................................................................................................72 3.1.4 Función bwmorph.................................................................................................................................80 3.1.5 Compresión de la imagen. ....................................................................................................................86 3.2 PRUEBAS DE RECONOCIMIENTO PARA SELECCIÓN DE RED. ........................................................................96 3.2.1 ROLES ................................................................................................................................................109 3.3 DESCRIPCIÓN DEL FUNCIONAMIENTO. .....................................................................................................135 3.3.1 Descripción del Procesamiento de la Imagen. ...................................................................................135 3.4 PRUEBAS DE EFECTIVIDAD DEL PROGRAMA ROLES.................................................................150 3.4.1 Método Combinado. ...........................................................................................................................150 3.4.2 Método Red Neuronal.........................................................................................................................159 3.4.3 Método de Valores Propios ................................................................................................................167 4 MANUAL DE USUARIO PARA LA INTERFAZ GRÁFICA. ..................................................................175 5 SOBRE ROLES. .............................................................................................................................................175 6 CONOCIENDO LA INTERFAZ GRÁFICA DEL PROGRAMA ROLES...............................................176 7 FORMAS DE APLICAR EL RECONOCIMIENTO..................................................................................181 7.1 RECONOCIENDO UN IMAGEN CARGADA DESDE UN ARCHIVO. ...................................................................182 7.2 RECONOCIENDO UNA IMAGEN DESDE EL VIDEO CAPTURADO POR LA WEBCAM. .......................................184 7.3 RECONOCIENDO DE FORMA CONTÍNUA DESDE EL VIDEO CAPTURADO POR LA WEBCAM. ..........................185 8 APLICACIONES............................................................................................................................................187 9 CONCLUSIONES ..........................................................................................................................................189 9.1 DEL PROCESO CAPTURA DE LA IMAGEN....................................................................................................189 9.2 DEL PROCESAMIENTO DE LA IMAGEN.......................................................................................................191 9.3 DEL ENTRENAMIENTO DE LAS REDES NEURONALES ARTIFICIALES. ........................................................193 9.4 DEL RECONOCIMIENTO. ...........................................................................................................................194 9.5 DEL ALFABETO INTERNACIONAL DEL LENGUAJE DE SEÑAS. ...................................................................195 9.6 DEL INTERFAZ GRÁFICA. .........................................................................................................................196 10 RECOMENDACIONES.................................................................................................................................197 10.1 DEL PROCESO CAPTURA DE LA IMAGEN....................................................................................................197 10.2 DEL PROCESAMIENTO DE LA IMAGEN.......................................................................................................197 10.3 DEL ENTRENAMIENTO DE LAS REDES NEURONALES................................................................................197 10.4 DEL ALFABETO INTERNACIONAL DEL LENGUAJE DE SEÑAS. ...................................................................198 10.5 SOBRE LA ADQUISICIÓN DE IMÁGENES: ....................................................................................................198 10.6 SOBRE EL CAMBIO DE FORMATO DE LAS IMÁGENES..................................................................................199 10.7 SOBRE LA COMPRESIÓN DE DATOS: ..........................................................................................................199 10.8 SOBRE EL RECONOCIMIENTO CON REDES NEURONALES:...........................................................................200 11 BIBLIOGRAFÍA ............................................................................................................................................202 12 ANEXOS..........................................................................................................................................................205 12.1 ALFABETO INTERNACIONAL / LENGUAJE DE SORDOS..............................................................................205 12.2 ESPECIFICACIONES TÉCNICAS WEBCAM ..................................................................................................207 12.3 CÓDIGO (ARCHIVOS ‘.M’)..................................................................................................................208 12.3.1 buscafoto.m....................................................................................................................................208 12.3.2 buscarna.m.....................................................................................................................................208 12.3.3 buscarutas.m..................................................................................................................................208 12.3.4 bwmorf.m .......................................................................................................................................209 12.3.5 horz.m ............................................................................................................................................209 12.3.6 proc_foto.m....................................................................................................................................209 12.3.7 reconocer.m ...................................................................................................................................213 12.3.8 reconocer_eigv.m...........................................................................................................................213 12.3.9 reconocer_red.m............................................................................................................................215 12.3.10 reconocer_video.m.........................................................................................................................216 12.3.11 reduc_img.m ..................................................................................................................................218 12.3.12 roles.m ...........................................................................................................................................218 12.3.13 vert.m .............................................................................................................................................232 x INTRODUCCIÓN El trabajo que a continuación se expone, trata sobre la creación de una herramienta de software que sea capaz de realizar diversos procesos orientados al reconocimiento de las señas del lenguaje de sordos, correspondientes al alfabeto internacional. Para lograr tal objetivo, se plantea el uso de diferentes tareas de procesamiento digital de imágenes, tales como, captura de imagen con webcam, conversión a escala de grises, detección de bordes, reducción o compresión de los datos que se obtienen de la extracción de características propias de cada seña. Para el reconocimiento de la imagen, incluyendo las variaciones posibles que se presentan con cada una de las señas, se plantea el uso de una red neuronal, concentrándose en el desarrollo de la tipo Retro-propagación, presentando las dificultades y ventajas encontradas; como otra opción, el uso de valores propios de la imagen “eigvalues”. Además, este trabajo pretende ser una referencia para el futuro desarrollo de aplicaciones más completas, por lo que se presentan algunas pruebas realizadas con sus respectivos resultados con el fin de que esta información sirva como precedente al lector que se interesa en conocer los aspectos básicos que le permitan escoger un tipo de red para desarrollar una aplicación de procesamiento y reconocimiento de imágenes. Debido a que se implementará un prototipo de software que realice la captura de imágenes de manos representando las señas del alfabeto internacional del lenguaje de sordos, es necesario utilizar equipo de iluminación, dispositivo de captura y computadoras en las que se realizará el procesamiento de la seña. Los dispositivos necesarios son fácilmente encontrados en el mercado, para la iluminación se pueden utilizar lámparas fluorescentes de luz blanca, halógenos, etc. En cuanto al dispositivo de captura, se requiere una webcam que tenga como mínimo resoluciones de 120x160 píxeles, además se necesita una computadora con un xi procesador de alta velocidad y memoria suficiente para los diversos procesos que llevan al reconocimiento de la seña presentada. Este prototipo será desarrollado para sistema operativo Windows 98 en adelante, por ser el más utilizado y más conocido por las personas, a la vez tiene mayor compatibilidad con programas tales como matlab, visual basic, visual c++, etc. El proyecto está destinado a ser utilizado en aulas iluminadas donde se impartan clases a personas que utilicen el lenguaje de señas para comunicarse. Como el software es un prototipo que se basa en el reconocimiento óptico de patrones, éste puede ser tomado como base para otras aplicaciones similares como reconocimiento de rostros, firmas, huellas digitales, sistemas de seguridad, etc. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 2 1 PROCESAMIENTO DE IMÁGENES 1.1 Las imágenes digitales en dos dimensiones. Las imágenes digitales1 en dos dimensiones se dividen en dos tipos: imágenes vectoriales y de mapa de bits. Esta no es una división tajante, ya que las imágenes vectoriales suelen admitir la incrustación de imágenes de mapa de bits en su interior. Las imágenes de mapa de bits se pueden representar, ver Figura 1, mediante retículas de celdillas a las que se van asignando valores. Este modo es la base de todas las imágenes impresas y de buena parte de las digitales. Figura 1- Imagen de mapa de bits, cada celda tiene asignado un valor determinado. Las imágenes digitales en dos dimensiones se realizan creando una retícula de cuatro lados, iguales de dos a dos (ancho y alto). Cada una de las celdillas de dicha retícula se llama "píxel". Un píxel, es un concepto inmaterial que no tiene una medida concreta. No 1 Refiérase a ésta dirección:http://www.andygoldstein.org/lapaginadelalumno/materias/contenidos/colordigital/ Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 3 se puede decir si un píxel mide 1 cm. o 1 Km. En principio, es solamente una medida de división en celdillas. De este modo, se puede hablar de una imagen que tenga 200 × 100 píxeles sin saber que tamaño real y físico tiene. Lo único que se sabe es que se ha dividido en 20,000 celdillas. Sin embargo, cuando se le asigna a esa imagen una resolución, entonces sí se conocerá su tamaño. Por ejemplo, si se dice que tiene 100 píxeles por pulgada, se refiere que cada 2.54 cm. (eso es lo que mide una pulgada), habrá 100 celdillas, con lo que cada píxel equivaldrá a 0.254 mm. Si se dijera que esa imagen tiene una resolución de 1 píxel por pulgada, entonces ahora esa celdilla tomaría el valor de 2.54 cm. Todo ello significa, que el píxel es sólo una unidad de división sin un tamaño real concreto. Sólo cuando se asigna una resolución a la imagen de la que se habla, se le proporciona un tamaño concreto al píxel. Hay imágenes de mayor resolución e imágenes de más baja resolución. A mayor resolución, mayor nitidez del dibujo y mejor se reflejan los detalles. Sin embargo, hay que tener presente que cualquier resolución que supere la que el dispositivo de salida (pantalla, impresora, etc.) es capaz de representar no hace más que sobrecargar el sistema y ralentizar el trabajo. 1.1.1 Tipos de imágenes de mapa de bits. Una forma muy importante de clasificar las imágenes de mapa de bits es según la cantidad y tipo de información que se asigne a cada píxel, a continuación se presentan tres diferentes tipos de imágenes de mapas de bits: Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 4 Imágenes de 1 bit por píxel. En este tipo de imágenes cada celdilla (píxel) sólo puede tener uno de dos valores: Uno o cero. En la Figura 2 se observan imágenes de 1 bit por píxel, basta 1 bit para definir esa alternativa, se les llama "imágenes de 1 bit" (también se les llama "imágenes de mapa de bits, de alto contraste, o imágenes de línea"). (a) Imagen de 32 × 32 píxeles (1024). (b) Imagen de 200 × 200 píxeles (40,000). Figura 2 - Imágenes de 1 bit por píxel. Imágenes de escala de grises (8 bits por píxel). Cada píxel puede tener 256 valores diferentes (las 256 posibilidades combinatorias de un byte u octeto). Este es el modo de las imágenes digitales de blanco y negro "normales". Aunque pueda parecer increíble, en ellas sólo se distinguen hasta 256 tonos diferentes de gris (y no suelen aparecer todos a la vez). Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 5 (a) Imagen de 32 × 32 píxeles (1024) con 1 byte (8 bits) por píxel. (b) 120 × 160 píxeles (19,200) en escala de grises. Figura 3 - Imagen en escala de grises. Imágenes RGB o Lab (24 bits por píxel). Si se toma un píxel y se le asignan tres bytes, se disponen de 24 bits en tres grupos de ocho, siguiendo el sistema de color de los monitores de televisión, que se basan en tres "canales" de luz de color (Rojo, Azul y Verde). De este modo se pueden distinguir hasta 16,777,216 millones de tonos de color ( 256 Rojo × 256 Azul × 256 Verde). En realidad, lo que se hace es superponer tres canales de luz, uno rojo, otro verde y otro azul, cada uno con 256 posibilidades de tono. En la Figura 4 se muestra un ejemplo de una imagen RGB. Figura 4 - Imagen de 120 × 160 píxeles en modo RGB. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 6 1.1.2 El proceso de digitalización (muestreo y cuantificación). Una imagen natural capturada con una cámara, o cualquier otro tipo de instrumento óptico presenta una variación de sombras y tonos continuos. A este tipo de imágenes se le conocen como imágenes analógicas. Para que una imagen analógica, en blanco y negro, en escala de grises (las llamadas comúnmente, imágenes en blanco y negro), o a color, pueda ser "manipulada" usando un ordenador, primero deben convertirse a un formato adecuado. Este formato es la imagen digital correspondiente. En la Figura 5 se ejemplifican las imágenes analógicas a color y las imágenes analógicas en escala de grises, estas últimas conocidas como imágenes en blanco y negro. (a) Imagen "analógica" en color. (b) Imagen "analógica" en escala de grises. Figura 5 - Imágenes analógicas. La transformación de una imagen analógica a otra discreta se llama digitalización y es el primer paso en cualquier aplicación de procesamiento de imágenes digitales. El proceso de digitalización consta de dos partes: muestreo y cuantificación. Un muestreo consiste en una subdivisión de la imagen analógica en porciones. En la Figura 6 se observan particiones que envuelven polígonos regulares, esto es, polígonos con lados y ángulos de valor constante en todos ellos. Se puede demostrar que sólo se pueden usar tres tipos de polígonos regulares: triángulos, cuadrados y hexágonos. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 7 Figura 6 - Tipos de mallados para la digitalización de una imagen. Cada uno de estos polígonos representan sensores sensibles a la intensidad de luz. La salida de estos sensores es un valor (amplitud) dentro de una escala (color). La salida puede ser, o bien un único valor (escala de grises) o bien un vector con tres valores por polígono (RGB) que se corresponden con la intensidad de color rojo (R), verde (G) y azul (B). La escala de colores también tiene un rango discreto (por ejemplo, de 8 bits = 256 valores). Las imágenes en escala de grises con sólo 2 colores: blanco y negro (0 y 1, respectivamente), se llaman imágenes binarias. A este proceso de discretización del color se le llama cuantificación y a un polígono de color constante se le llamará píxel. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 8 Imágenes en escala de grises. La Figura 7 muestra un proceso de digitalización de una imagen. Figura 7 - Pasos a seguir para crear una imagen digital. En la figura anterior se muestra la creación de una imagen digital, el muestreo se ha hecho usando un mallado cuadrangular de 9 por 9 cuadrados y la cuantificación consiste en una paleta de 256 niveles de gris (donde 0 indica el color negro y 255 el color blanco): En la Figura 8 se observa que, partiendo de una misma imagen, es muy diferente la imagen digital obtenida, dependiendo del mallado que se escoja: Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 9 Figura 8 - Efecto espacial de la resolución sobre el pixelado en imágenes digitales. El efecto espacial de la resolución demuestra que el número de filas y columnas van disminuyendo, el ejemplo se ha tomado desde una de 120*140 hasta una de 12*16, por lo que la calidad de la imagen también disminuye. En caso de que la resolución aumente, su calidad será notablemente mejor. También hay que tener en cuenta la paleta de colores, como se observa en el ejemplo siguiente: Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 10 Figura 9 - Resolución en escala de grises y apariencia de la imagen digital. La resolución (el grado de detalle discernible) de una imagen depende estrechamente de estos dos parámetros (muestreo y cuantificación). Cuanto más se incrementan, más se aproxima la imagen digitalizada a la original, así como se muestra en la Figura 9. La cantidad de niveles de gris y la finura del mallado que se escojan, deben producir una imagen digital aceptable, en el sentido que no sea perceptible al ojo humano el paso de un color a otro, entre dos píxeles consecutivos. Sin embargo, se ha de tener en cuenta que si el muestreo consiste en un mallado de N por M cuadrados y el número de niveles de gris permitido son G = 2k, Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 11 entonces el número de bits necesarios para almacenar una imagen digitalizada es: N x M x k Por ejemplo, una imagen de 128 x 128 con 64 niveles de gris necesita 98,304 bits = 96 KB de memoria. Una de 256 x 256 con 132 niveles de gris necesita 458,752 bits = 56 KB. Y una de 1024 x 1024 con 256 niveles de gris necesita 8,388,608 bits = 1024 KB = 1 MB. En el modelo matemático de una imagen, un píxel se identifica con su centro, pudiendo representar los píxeles como puntos (x,y) del plano, donde (x,y) son las típicas coordenadas cartesianas. 1.2 Detección de Bordes. La detección de esquinas y líneas se basa en los operadores de detección de bordes2, éstos, mediante el cálculo de primeras y segundas derivadas permiten determinar puntos de principal importancia para poder realizar las mediciones necesarias. En el análisis de objetos dentro de las imágenes resulta esencial poder distinguir entre el objeto de interés y el resto de la imagen. Las técnicas utilizadas para determinar los objetos de interés son conocidas como técnicas de segmentación. Una de las más comunes es la segmentación mediante la detección de bordes. Un borde se puede definir como cualquier discontinuidad que sufre alguna función de intensidad sobre los puntos de la misma, o una frontera entre dos regiones con propiedades de colores o niveles de gris distintas. La idea básica de las técnicas de detección de bordes es la aplicación de un operador derivativo local para identificar las discontinuidades del nivel de gris. 2 Refiérase a ésta dirección: http://www.us.es/gtocoma/pid/pid8/pid80.htm Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 12 Existen diferentes tipos de bordes, estos están basados en los diferentes cambios que se presenten, En la Figura 10 se ilustran y describen los tipos de bordes, estos son los siguientes: Cambio brusco en la distancia cámara-objeto (dc). Cambio en la normal del objeto (n). Cambio en la reflectancia del objeto (r). Cambio en la proyección de la luz incidente (s). Figura 10 - Tipos de bordes existentes en una imagen. Existe una gran variedad de métodos para la detección de bordes, mismos que se basan en información con respecto a los límites de una imagen. Los métodos de detección de bordes, utilizan para sus fines, diversos operadores que marcan puntos de acuerdo a discontinuidades en los niveles de gris, los colores o las texturas. Como ejemplo, la Figura 11 muestra el proceso de la extracción de bordes: Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 13 Figura 11 - Procesos requeridos para la extracción de bordes. Si se tiene una función f(x,y), la detección de bordes consiste en el filtrado y la extracción, hasta obtener una función diferente g(x,y). La umbralización selecciona pixeles etiquetados como bordes b(x,y) y la localización suministra información exacta de la posición y orientación del borde y = p(x). Al hablar de detección de bordes, el término sugiere que la aplicación de un algoritmo con este propósito dará como resultado un contorno. Sin embargo, el objetivo de un algoritmo de detección de bordes, es obtener imágenes cuya salida muestre pixeles de mayor intensidad en los valores que detecten transiciones cercanas. Los bordes son encontrados en zonas de la imagen donde el nivel de intensidad fluctúa bruscamente. Cuanto más rápido se produce el cambio de intensidad, el borde es más fuerte. Para poder detectar los bordes de los objetos se deben detectar aquellos puntos de borde que los forman. Así, un punto de borde puede ser visto como un punto en una imagen donde se produce una discontinuidad en el gradiente. Un buen proceso de detección de bordes facilita la elaboración de fronteras de objetos, con lo que el proceso de reconocimiento de objetos se simplifica. El método más aceptado en la detección de bordes, consiste en la aplicación de filtros de suavizado seguidos por filtros de derivadas. Estos últimos, son los que sirven para detectar los cambios o transiciones en los niveles de gris en una imagen. A fin de lograr la localización de los puntos en los que se produce la variación de intensidad, se emplean métodos basados en los operadores derivada. Básicamente se Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 14 tienen dos posibilidades: aplicar la primera derivada (gradiente3) o la segunda derivada (laplaciana). En el primer caso se buscarán grandes picos, y en el segundo, pasos de respuesta positiva a negativa o viceversa. A continuación se describen algunas de las propiedades de la primera y la segunda derivada en la detección de bordes: La primera derivada produce un resalte de las zonas en que la intensidad no es homogénea. Requisitos de la primera derivada: Debe ser cero en segmentos planos. Debe ser diferente de cero al inicio de escalones o rampas. Debe ser diferente de cero en las rampas. ( ) ( )xfxf x f −+= ∂ ∂ 1 Ecuación 1 – La primera derivada. La segunda derivada origina un cambio de signo en la posición de borde. “Zero- crossing” (paso por cero). Requisitos de la segunda derivada: Debe ser cero en áreas planas. 3 Refiérase a ésta dirección: http://140.148.3.250/u_dl_a/servlet/mx.udlap.ict.tales.html.Block?Thesis=200&Type=T Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 15 Debe ser diferente de cero al inicio y al final de escalones o rampas. Debe ser cero en rampas de pendiente constante. )(2)1()1(2 2 xfxfxf x f −−++= ∂ ∂ Ecuación 2 – La segunda derivada. Figura 12 - Grafica del comportamiento de la 1º y 2º Derivada. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 16 En la Figura 12 se puede observar gráficamente el comportamiento de la 1ª y 2ª derivada. En ella se pueden ver como es el cambio de la grafica según el perfil de intensidad; en la 1ª derivada se observa un cambio de alto a bajo si la pendiente del perfil va en decremento, por otro lado, si esta pendiente es creciente, la grafica de la 1ª derivada cambiara de bajo a alto. Con respecto a la 2ª derivada, sucede lo mismo, con la diferencia que este tendrá impulsos, estos dependerán si la pendiente es positiva o negativa. 1.2.1 El Gradiente. El gradiente está formulado a partir del modelo de la primera derivada. En procesamiento de imágenes, lo que se utiliza es la magnitud del gradiente. El gradiente de f, en las coordenadas (x,y), se define como un vector columna de la siguiente manera:             ∂ ∂ ∂ ∂ =      =∇ y f x f G G f y x Ecuación 3 – El Gradiente. La magnitud de este vector está dada por: Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 17 ( ) [ ] 2 1 22 2 1 22               ∂ ∂ +      ∂ ∂ = += ∇=∇ y f x f GG fmagf yx Ecuación 4 – Magnitud del Gradiente. Las componentes del vector gradiente son operadores lineales, pero su magnitud no lo es. Una aproximación práctica de la magnitud del gradiente es la siguiente: yx GGf +≈∇ Ecuación 5 – Aproximación de la magnitud del gradiente. Los detectores de bordes utilizan operadores ó máscaras de gradiente, cada detector de borde posee máscaras distintas que los diferencian. Algunos de los algoritmos de detección de bordes más comunes son los siguientes: Técnicas basadas en el gradiente: Operador de Roberts. Operador de Sobel. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 18 Operador de Prewitt. Operador Isotrópico (u operador de Frei-Chen). Operadores basados en cruce por cero: Operador de Marr-Hildreth. Detector de Canny. Los operadores basados en el gradiente asumen que los bordes de una imagen son pixeles con un alto gradiente. Un rápido índice de cambio de intensidad en alguna dirección dada por el ángulo del vector gradiente puede observarse en los pixeles de los bordes. En la Figura 13 se muestra un píxel de borde ideal con su correspondiente vector de gradiente. En el píxel, la intensidad cambia de 0 a 255 en dirección del gradiente. La magnitud del gradiente indica que tan marcado está el borde. Si se calcula el gradiente en regiones uniformes se obtiene un vector de valor 0, lo que significa que no hay pixeles de borde. Figura 13 - Píxel de borde ideal. Un píxel de borde se describe mediante dos características importantes: Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 19 1. Intensidad del borde, que es igual a la magnitud del gradiente. 2. Dirección del borde, que es igual al ángulo del gradiente. Matlab tiene seis métodos diferentes de detección de contorno: Método Sobel, Método Prewitt, Método Roberts, Método Cruce por Cero, Método Laplaciano- Gaussiano y Método Canny. Los tres primeros utilizan una aproximación al operador derivativo (aproximación Sobel, aproximación Prewitt , y aproximación Roberts) y detectan contornos en los puntos donde el gradiente de la imagen es máximo. El método Cruce por Cero filtra la imagen y posteriormente busca cruces por cero, a los cuales interpreta como contornos. El método Laplaciano- Gaussiano4 encuentra los bordes al buscar cruces por cero después de filtrar la imagen con un Laplaciano del filtro Gaussiano. El gradiente se estima por medio del uso de operadores. Algunos de estos operadores se describen a continuación. Operador de Roberts. Es el operador de gradiente más simple. Utiliza las direcciones diagonales para calcular el vector gradiente mediante las máscaras que se muestran en la siguiente figura: 4 Refiérase a ésta dirección: http://140.148.3.250/u_dl_a/servlet/mx.udlap.ict.tales.html.Block?Thesis=200&Type=T Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 20 Figura 14 - Máscara Roberts Operador de Prewitt. Acción compuesta de las máscaras: Figura 15 - Máscara Prewitt. La imagen final se puede formar a partir de la convolución de la imagen inicial con cada una de las máscaras que se muestran en la Fgura 15 (resultados parciales), de alguna de las siguientes maneras: Raíz cuadrada del cuadrado de los resultados parciales. Suma de los valores absolutos de los resultados parciales. Máximo de los valores absolutos de los resultados parciales. Considerando sólo un resultado parcial. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 21 La convolución de la imagen con cada máscara puede originar valores superiores a los de la imagen inicial, que pueden desvirtuar los resultados obtenidos. A tal fin, y siempre que no existan saturaciones en la imagen (por ejemplo, se permiten valores superiores a 255), se suele dividir el resultado final por la mitad de la suma de los valores absolutos de la máscara (en este caso es igual a 3). Si existen saturaciones en la imagen (por ejemplo, cualquier valor superior a 255 se convierte en 255) es conveniente dividir la imagen inicial por dicho número antes de convolucionarla con las máscaras. Operador de Sobel. Acción conjunta de las máscaras: Figura 16 - Máscara Sobel. Cada una de ellas se forma por la convolución de una componente del gradiente con el filtrado de la media ponderada del entorno. La imagen final se puede formar a partir de la convolución de la imagen inicial con cada una de las máscaras de la Figura 16 (resultados parciales), de alguna de las siguientes maneras: Raíz cuadrada del cuadrado de los resultados parciales. Suma de los valores absolutos de los resultados parciales. Máximo de los valores absolutos de los resultados parciales. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 22 Considerando sólo un resultado parcial. La convolución de la imagen con cada máscara puede originar valores superiores a los de la imagen inicial, que pueden desvirtuar los resultados obtenidos. A tal fin, y siempre que no existan saturaciones en la imagen (por ejemplo, se permiten valores superiores a 255), se suele dividir el resultado final por la mitad de la suma de los valores absolutos de la máscara (en este caso es igual a 4). Si existen saturaciones en la imagen (por ejemplo, cualquier valor superior a 255 se convierte en 255) es conveniente dividir la imagen inicial por dicho número antes de convolucionarla con las máscaras. 1.2.2 Método Canny. El Método Canny tiene por definición menor probabilidad que los otros de ser engañado por el ruido y por ello resulta más eficaz para detectar bordes débiles verdaderos. El método Canny es un proceso multi-etapa que se inicia con una convolución Gaussiana para eliminar el ruido y los detalles. La convolución es una operación matemática fundamental para el procesamiento de imágenes dado que ofrece una manera de realizar operaciones con matrices que usualmente son de diferentes tamaños, pero que se ubican en las mismas coordenadas espaciales, ya que describe el comportamiento de cualquier sistema lineal invariante y continuo en el tiempo. La convolución de dos funciones h(t) y x(t), denotado por y(t) = h(t)*x(t), se define por la integral: ∫ ∞ ∞− −= dvvtxvhty )()()( Ecuación 6 – Convolución de dos funciones. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 23 Donde v es una variable de integración. Usualmente uno de los arreglos de entrada es una imagen de intensidad, el segundo arreglo puede ser uni o bi-dimensional, a éste arreglo se le denomina operador. En el caso de la convolución Gaussiana el operador representa la forma de una campana Gaussiana. En una dimensión la distribución Gaussiana tiene la forma : 2 2 2 2 1)( σ πσ x exG − = Ecuación 7 – Distribución Gaussiana. Donde σ es la variación estándar de la distribución. Se asume que la distribución tiene una media igual a cero. Puesto que la imagen es digital y los valores de los píxeles son discretos, se necesita discretizar la función Gaussiana antes de llevar a cabo la convolución. En teoría, la distribución Gaussiana nunca es cero, lo cual requiere un operador infinitamente largo, pero en la práctica, el cero se encuentra a tres desviaciones estándar a partir de la media y así se pueden reducir las dimensiones del operador. La ventaja que presenta el operador surgido de la distribución Gaussiana es que actúa como un punto de dispersión de la convolución. La convolución se lleva a cabo rápidamente puesto que la distribución Gaussiana puede ser separada en sus componentes espaciales, así, la convolución bidimensional se lleva a cabo primero en una dimensión en la dirección de x y luego en la dirección de y. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 24 Después de la convolución Gaussiana, la imagen pasa por un operador derivativo de dos dimensiones para resaltar las regiones de la imagen con una primera derivada espacial. Los contornos de los objetos aumentan la pendiente del gradiente de magnitud de la imagen. Por ello el algoritmo sigue las pistas de éstos márgenes y fija todos los pixeles que no están en el punto máximo en cero para obtener a la salida una línea fina. Este proceso se conoce como supresión de los no-máximos. 1.2.3 Operador de Canny. Se basa en el empleo del gradiente de la imagen filtrada con una función Gaussiana, en la Figura 17 se ilustra el proceso general de la obtención del gradiente. Figura 17 - Proceso general para la obtención del gradiente. El algoritmo de canny efectúa el siguiente proceso: Supresión no máxima al resultado del gradiente Para todo punto se obtiene la dirección más cercana dk a 0º, 45º, 90º y 135º en Ea(i,j). Si Em(i,j) es menor que uno de sus dos vecinos en la dirección dk, IN(i,j)=0. Si no IN(i,j) = Em(i,j). Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 25 Histéresis de umbral a la supresión no máxima. Permite eliminar máximos procedentes de ruido, etc. Entrada IN, Ea, y dos umbrales T1 y T2 (T2>T1) Para todo punto en IN, y explorando en un orden: o Localizar el siguiente punto tal que IN(i,j) > T2 o Seguir las cadenas de máximos locales a partir de IN(i,j) en ambas direcciones perpendiculares a la normal al borde siempre que IN>T1. Marcar los puntos explorados. o La salida es un conjunto de bordes conectados de contornos de la imagen, así como la magnitud y orientación. Cierre de contornos abiertos (Algoritmo de Deriche y Cocquerez) o La imagen de entrada es una imagen de contornos binarizada (1 = borde; 0 = no borde). o Para cada punto de borde de un extremo abierto se le asigna un código, ver Figura 18, que determina las direcciones de búsqueda para el cierre del contorno. Figura 18 - Forma de asignación de códigos. o Para los pixeles marcados con este código se marca como pixel de borde el de máximo gradiente en las tres direcciones posibles. o Se repiten los pasos hasta que se cierren todos los contornos. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 26 1.2.4 Operador Laplaciana. Convolución con la máscara: Figura 19 - Máscara Laplaciano, no se emplea filtrado del ruido. También se emplea la convolución con la máscara: Figura 20 - Máscara formada por laplaciano en cuatro ejes (X-Y-R-C). Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 27 1.3 Procesamiento Morfológico. La palabra morfología refiere al estudio de forma y estructura. En el procesamiento de imágenes, morfología es el nombre de una metodología específica originada en su estudio de materiales porosos. El nombre es adecuado ya que su análisis se basa en la estructura geométrica inherente en una imagen. El análisis morfológico se realiza en una imagen de dos dimensiones en términos de alguna forma geométrica predeterminada conocida como elemento estructurante. Esencialmente, se estudia el modo en que el elemento estructurante está contenido en la imagen. Por ejemplo, en la Figura 21 se ve una imagen S. Un cuadrado del tamaño ilustrado está contenida en la imagen si se posiciona su centro en el punto (1,2), pero no entra si se posiciona su centro en (3,1). Es claro que la forma en que el cuadrado entra en S según cambie su posición en el plano refleja la relación existente entre la estructura geométrica de S y la del cuadrado. 1 2 3 1 2 3 S Figura 21 - Imagen S en un plano de 2 dimensiones. Las operaciones morfológicas se pueden utilizar para diferentes fines, teles como, la detección de bordes, la segmentación, y el realce. En base a las operaciones morfológicas, se pueden construir filtros morfológicos que pueden utilizarse en lugar de los filtros lineales estándar. Es importante decir que los filtros morfológicos, dejan la imagen igual a la original. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 28 1.3.1 Morfología de una Imagen Binaria. Una imagen binaria es aquella que tienen dos niveles, generalmente blanco y negro. Esto hace que pueda ser representada mediante conjuntos. Es decir, el conjunto de todos los píxeles blancos de una imagen blanco y negro constituyen una descripción completa de la imagen. Un elemento estructurante es un subconjunto de puntos en Z2, cuya representación en el plano tiene cierta forma y tamaño. El elemento estructurante se concibe como un simple parámetro de forma para los filtros morfológicos. La idea básica es probar la imagen con un elemento estructurante y cuantificar el modo en que está contenido dentro de la imagen. En una determinada ubicación dentro de la imagen pueden pasar dos cosas: que el elemento estructurante esté contenido o que no lo esté. Marcando las ubicaciones en que está contenido obtenemos información estructural de la imagen. Esta depende de la forma y del tamaño del elemento estructurante. La característica de estar contenido depende de la relación de subconjunto. Las operaciones morfológicas básicas que se estudiarán en detalle son: DILATACION EROSION APERTURA CERRADURA DILATACION. La dilatación es una transformación morfológica que combina dos conjuntos usando la suma vectorial de elementos de un conjunto. A ⊕ B = {a+b : a∈A y b∈B} Ecuación 8 – Dilatación Es decir, el conjunto de todos los posibles vectores es la suma de pares de elementos, uno perteneciente a A y el otro a B. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 29 Ejemplo: A = {(0,1), (1,1), (2,1), (2,2), (3,0)} B = {(0,0), (0,1)} A ⊕ B = {(0,1), (1,1), (2,1), (2,2), (3,0), (0,2), (1,2), (2,2), (2,3), (3,1)} ο • ο • • • • • • • ο • • • • • • • A B A⊕B Figura 22 - Imagen que muestra el resultado de la suma de conjuntos, donde A es la imagen de entrada y B es el elemento estructurante, A⊕B es la suma de pares de elementos. Ejemplo: Dilatación con un elemento estructurante circular, con el origen en el centro del mismo. (a) Imagen original (b) Elemento estructurante (c) Dilatación Figura 23 - Dilatación de una imagen. TRASLACION. La traslación morfológica no es más que el desplazamiento de la imagen en el plano Ax, del conjunto A por el punto x. Ax = {a+x : a ∈ A}. Ecuación 9 – Traslación. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 30 Ejemplo: A = {(0,1), (1,1), (2,1), (2,2), (3,0)} X = (0,1) (A)X = {(0,2), (1,2), (2,2), (2,3), (3,1)} ο • ο • • • • • • • • • A (A)(0,1) Figura 24 - Traslación de una imagen. PRINCIPALES PROPIEDADES DE LA DILATACION DILATACION COMO UNION DE TRASLACIONES. La dilatación de A por B puede ser calculada como la unión de traslaciones de A por los elementos de B. A⊕B = Ub∈B (A)b Ecuación 10 – Dilatación como unión de traslaciones. CONMUTATIVA. La suma de la imagen de entrada más el elemento estructurante es igual a sumar el elemento estructurante más la imagen de entrada. A⊕B = B⊕A Ecuación 11 – Propiedad Conmutativa de la Dilatación. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 31 ASOCIATIVA. (REGLA DE LA CADENA). Si una imagen A va a dilatarse por un elemento estructurante D, el cual a su vez puede ser expresado como la dilatación de B por C, entonces A⊕D puede calcularse como: A ⊕ (B⊕C) = (A⊕B) ⊕ C ya que la suma es asociativa. Ecuación 12 – Propiedad Asociativa de la Dilatación. La forma (A⊕B) ⊕ C representa un considerable ahorro en la cantidad de operaciones que deben efectuarse cuando A es la imagen y B⊕C el elemento estructurante. El ahorro se produce porque la dilatación por fuerza bruta por B⊕C puede llevar operaciones del orden N2 mientras que primero dilatando A por B y luego dilatar el resultado por C llevaría tanto como 2N operaciones, siendo N la cantidad de elementos en B y en C. Ejemplo: ο • ο • • • • • • • • ο • • • • • • A B A⊕B ο • • • • • ο • • • • • • • • • • • • C (A⊕B)⊕C ο • • • • • ο • • • • • • • • • • • • • • • B⊕C A⊕(B⊕C) Figura 25 - Demostración gráfica de la propiedad asociativa. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 32 INVARIANTE A TRASLACIONES. Si a una imagen A de entrada se traslada en el plano, y luego se suma un elemento estructurante, es lo mismo que sumar la imagen de entrada con el elemento estructurante y luego trasladar el resultado de esta suma. Es decir: (A)x ⊕ B = (A⊕B)x Ecuación 13 – Invariante a traslaciones. Ejemplo: ο • ο • • ο • • • • • • • • • ο • • • • • • • • • • • • A B A⊕B (A⊕B)(0,1) ο • ο • • • • • • • • • • • • • (A)(0,1) (A)(0,1) ⊕ B Figura 26 - Demostración gráfica de la propiedad de invariaciones a la traslación. Esta propiedad es aplicada a dilataciones implementadas por la regla de la cadena. Aquí se establece que la traslación de uno de los elementos Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 33 estructurantes en la descomposición de la dilatación traslada la imagen dilatada en la misma forma. A ⊕B1 ⊕...⊕ (Bn)x ⊕...⊕ BN = (A ⊕ B1 ⊕...⊕ Bn ⊕...⊕ BN)x Ecuación 14 – Regla de la cadena. Una traslación en la imagen puede compensarse en la definición del elemento estructurante. En particular, sea el elemento estructurante B que compensa una traslación en la imagen A, tomando a B trasladado en la dirección opuesta. Entonces la traslación en B compensa la de A. (A)x ⊕ (B)-x = A ⊕ B Ecuación 15 – Compensación en la traslación. Ejemplo: ο • ο • • • • • • • ο • • • • • • • A B A⊕B ο • ο • • • • • • • ο • • • • • • • (A)(0,1) B(0,-1) (A)(0,1) ⊕ B(0,-1) Figura 27.- Otro ejemplo de una imagen invariante a la traslación. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 34 EXTENSIVA. Si el origen se encuentra dentro del elemento estructurante, la dilatación tiene el efecto de agrandar la imagen de entrada, obteniendo una imagen que incluye a la original. De no ser así, la imagen resultante puede no incluir a la original. Si B contiene al origen, A ⊕ B0 no incluye A. Ecuación 16 – Propiedad Extensiva Ejemplo: Cuando el elemento estructurante B no contiene al origen, puede pasar que la dilatación de A por B no tenga nada en común con A. ο ο • • • • • ο • • • • • • • • • A B A⊕B Figura 28 - Ejemplo gráfico de la propiedad extensiva. LA EROSIÓN. Es la transformación que combina dos conjuntos usando la resta vectorial de elementos de conjuntos. Si A y B son conjuntos de dimensión N, entonces la erosión de A por B es el conjunto de todos los elementos x para los cuales x+b ∈ A, para todo b ∈ B. AΒB = { x ∈ EN / x+b ∈ A para todo b ∈ B } Ecuación 17 – Erosión. o bien, Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 35 Es decir, son los puntos x para los cuales la traslación de B por x está contenida en A. La utilidad de esta transformación se aprecia mejor con la segunda definición. Ejemplo: A = {(1,0), (1,1), (1,2), (1,3), (1,4), (1,5), (2,1), (3,1), (4,1), (5,1)} B = {(0,0), (0,1)} AΒB = {(1,0), (1,1), (1,2), (1,3), (1,4)} ο ο • • • • • • • • • • • • ο • • • • A B AΒB Figura 29 - Ejemplo gráfico de la erosión de una imagen. Ejemplo: Erosión con un elemento estructurante circular, con el origen en el centro del mismo. (a)Imagen original (b)Elemento estructurante (c)Erosión Figura 30 - Proceso de Erosión de una imagen Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 36 APERTURA Y CERRADURA En la práctica, la erosión y dilatación se utilizan en pares, la erosión seguida de dilatación o viceversa. En ambos casos, el resultado de aplicarlos iterativamente es la eliminación de detalle específico de la imagen menor al tamaño del elemento estructurante, sin una distorsión geométrica global de las características no suprimidas. Por ejemplo, efectuar una apertura (erosión-dilatación) por un elemento estructurante con forma de disco, suaviza el contorno, rompe partes angostes, elimina pequeñas porciones y agudiza picos. Realizar una cerradura (dilatación- erosión) por una elemento estructurante con forma de disco, suaviza el contorno, une roturas angostas y golfos delgados, eliminando pequeños agujeros, y completa espacios en el contorno. La propiedad más saliente de estos filtros es que son independientes, es decir, la aplicación consecutiva de una apertura o cerradura no cambia el resultado de la primera aplicación. La importancia práctica es que constituyen estados completos y cerrados de algoritmos para el análisis de imágenes porque las formas pueden describirse en términos de los elementos estructurantes bajo los cuales pueden aplicarse aperturas o cerraduras sin efectuarse cambio alguno. El origen del elemento estructurante no afecta el resultado de una apertura o de una cerradura. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 37 El siguiente apartado ha sido extraído del libro: REDES NEURONALES ARTIFICIALES Fundamentos, Modelos y Aplicaciones. José R. Hilera/ Victor J. Martínez Id. Biblioteca UDB: 001.535 H644 1995 De los cuales se han tomado los siguientes capítulos: Capitulo I, II y III. 2 RECONOCIMIENTO DE PATRONES En un principio el término de reconocimiento de patrones se refería originalmente a la detección de formas simples, tales como: escritos a mano, mapas del tiempo y espectros del lenguaje. El objetivo principal era el de imitar de una manera muy completa las funciones de los sistemas sensoriales biológicos. Sus inicios, en 1960, estaban sostenidos sobre redes neuronales elementales, como Perceptron, Adaline y matrices de aprendizaje. En un principio les fue fácil su implementación, pero luego se observó que los sistemas biológicos eran muy difícil de alcanzar. En el análisis de imágenes existen requerimientos que son muy difíciles de alcanzar, entre estos se tienen: • Invariabilidad de la detección con respecto a la rotación, escala, perspectiva, oclusión parcial y captura simple de objeto, especialmente en condiciones de iluminación variables. • Relación de observaciones de varios contextos a niveles diferentes de abstracción, en orden de distinguir los eventos más selectivamente. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 38 Es importante destacar que hasta el sistema sensorial biológico más desarrollado no opera de forma autónoma, ya que la percepción sensorial está muy unida con el proceso cognitivo global. Cuando se da una replicación en las funciones sensoriales, no solo se imita el sistema sensorial, sino que se debe replicar todo el cerebro junto con sus capacidades de pensamientos, teniendo que precisar la capacidad de reconocimiento por el alto grado de aprendizaje. Entre las áreas de aplicación más importantes del reconocimiento de patrones se tienen: • Sensación remota. • Análisis de imágenes médicas. • Visión de computadoras industriales (especialmente para robots). • Elementos de proceso de las entradas para computadoras. Tareas concretas para las cuales se han desarrollado ya equipos de computadoras especiales: • Segmentación y clasificación de imágenes. • Reconocimiento de caracteres escritos (manuales y texto impreso). • Reconocimiento del habla. • Procesamiento y restauración de imágenes con ruido. En un nivel más ambicioso, se puede lograr capacidades como: • Análisis de imágenes (en lo referente a diferentes niveles temáticos de abstracción, tales como monitorización de uso terrestre en las bases de imágenes por satélite). • Reconocimiento de imágenes (interpretación de escenas). • Reconocimiento del habla (análisis e interpretación de frases habladas). Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 39 2.1 Redes Neuronales Las redes neuronales son una tecnología muy utilizada para diferentes aplicaciones, éstas se pueden desarrollar en un período de tiempo razonable. Existen diferentes tipos de redes neuronales, las cuales tienen diferente aplicación, entre los campos que utilizan este tipo de tecnología se pueden mencionar: Biología, Empresa, Medio Ambiente, Finanzas, Manufactura, Medicina, Militares. En su mayoría, las aplicaciones consisten en realizar un reconocimiento de patrones, es por ello que tienen que trabajar con datos sensoriales y de percepción, otros realizan filtrado o mapeo de las señales de entrada. 2.2 Tipos de Redes Neuronales. En la siguiente tabla se muestra un resumen de los tipos de redes neuronales más conocidos en lo que respecta al reconocimiento de patrones, en ella se observan sus aplicaciones más importantes, sus ventajas e inconvenientes, sus creadores y el año en que fue desarrollada. Nombre Año Aplicación Comentarios Limitaciones Creador(es) Perceptron 1957 Reconocimientos de caracteres impresos. La red más antigua. No puede reconocer caracteres complejos. Frank Rosenbalt. Backpropagation 1974-85 Reconocimiento de patrones, Síntesis de voz. Control de robots. Predicción. Red más popular, Numerosas aplicaciones con éxitos facilidad de aprendizaje. Potente. Se necesita mucho tiempo para el aprendizaje y muchos ejemplos. Paul Werbos, David Parker, David Rumelhart. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 40 Hopfield 1982 Reconstrucción de patrones y optimización. Fácil de conceptuar. Capacidad de estabilizar. John Hopfield. Teoría de resonancia adaptativa (ART). 1986 Reconocimiento de patrones (radar, sonar, etc.) Sofisticada, poco utilizada Sensible a la traslación, distorsión y escala Gail Carpenter, Stephen Grossberg. Tabla 1 - Redes neuronales utilizadas para el reconocimiento. Las redes neuronales son aquellas que intentan reproducir el funcionamiento que desarrolla el cerebro humano, de la manera más exacta posible, por ello tienen mucho que ver con el estudio de la neurofisiología. Los principales investigadores que propusieron los modelos de neuronas son Warren McCulloch y Walter Pitts. El modelo está compuesto por entradas y salidas, las cuales son afectadas por pesos; donde la activación de cada neurona es igual a la suma de los productos de las entradas, siendo la salida una función de esta activación. La clave del sistema está en los pesos de las diferentes entradas, ya que las entradas son modificadas por los pesos y las salidas están en función de estas variaciones. El entrenamiento de neuronas artificiales se realiza al tener muchas neuronas interconectadas, este entrenamiento consiste en aplicar diferentes entradas a la red, para después verificar la salida. En caso que la salida no tenga el resultado esperado, surge la variación de los pesos, los cuales son ajustados hasta llegar a obtener la salida deseada. Este entrenamiento debe tener varios elementos representativos para que la red vaya aprendiendo. 2.2.1 Neurona Biológica. El cerebro humano está compuesto por una gran cantidad de neuronas, los estudios indican que por cada milímetro existen 50,000 neuronas; su tamaño y su Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 41 forma son variables pero manteniendo su estructura, la cual es mostrada en el siguiente esquema. Figura 31 - Neurona biológica. Los tres componentes principales de una neurona son: Las Dentritas. El cuerpo de la célula o soma. El Axón. La Dentrita se encarga de recoger las señas enviadas por otras células a través de conexiones llamadas Sinápticas, si se relacionan las Dentritas con la neurona artificial, se puede decir que equivalen a la entrada de dicha neurona. El Axón es la salida de la neurona, la cual está interconectada con otras células nerviosas, enviando señales o impulsos. Cuando el Axón esta cerca de sus células destino, se divide en muchas ramificaciones las cuales se conectan con el Soma o Axónes de otras células, esta acción puede ser inhibidora o excitadora, según sea el Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 42 reconocimiento. Por otra parte, el Soma o cuerpo se encarga de todas las actividades metabólicas de la neurona y recibe la información de otras neuronas vecinas a través de las conexiones sinápticas. 2.2.2 Neurona Artificial. Para comprender lo que es una neurona artificial, se relaciona un circuito electrónico, el cual desarrolle la suma de diferentes entradas y luego a la salida se obtenga un resultado que varía dependiendo del valor de las entradas, tal y como se muestra en la Figura: Figura 32 - .- Circuito representativo de una neurona. Ahora se analiza la similitud de la neurona biológica con la neurona artificial. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 43 Figura 33 - Comparación de la neurona biológica y la neurona artificial. Como podemos observar, la neurona artificial es la imitación de la neurona biológica, se comparan los diferentes parámetros de cada una de ellas: Las entradas Xi representan las señales que provienen de otras neuronas y que son capturadas por las Dendritas. Los pesos Wi son la intensidad de la sinápsis que conecta dos neuronas; tanto Xi como Wi son valores reales. F es la función umbral que la neurona debe sobrepasar para activarse; este proceso ocurre biológicamente en el cuerpo de la célula. Las señales de entradas Xi en las neuronas artificiales, son variables continuas en vez de pulsos discretos, las señales de entradas pasan por ganancias o pesos Wi los cuales hacen la función de las funciones sinápticas que realizan las neuronas biológicas, estos pesos si son positivos equivalen a una acción excitadora y si son negativos equivalen a una acción inhibidora, por otro lado la función umbral significa la función de transferencia a la cual será sometida la neurona, matemáticamente la salida será igual a: Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 44 Ecuación 18 – Función matemática de la salida de una neurona. 2.3 Conceptos Básicos de una Red Neuronal Artificial. 2.3.1 La neurona artificial. El funcionamiento de una neurona artificial es simple, trata de recibir las entradas y calcular un valor a la salida. No importando el modelo a desarrollar es importante diferenciar tres tipos de unidades, estas se conocen como: Unidades de entradas. Unidades ocultas. Unidades de salidas. Las unidades de entradas son las que reciben las señales provenientes de su alrededor, éstas pueden ser datos de sensores o de otro tipo de datos, éstas son la entrada de la red. Las unidades ocultas son aquellas las cuales poseen entradas y salidas, pero no tienen ningún contacto con el exterior, y las unidades de salida, son las que envían las señales fuera del sistema, es decir que son la salida de la red. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 45 2.3.2 Estado de activación. Es necesario saber los estados del sistema en un tiempo t. Esto se determina por un vector de números reales, los cuales representan el estado de activación del conjunto de unidades (entradas, ocultas, salidas), En el vector, cada elemento representa una unidad en un tiempo t. A(t) = (a1(t), a2(t), a3(t),…….aN(t)) Ecuación 19 – Vector de estados de activación. Las neuronas que componen la red están en cierto estado, dichos estados se conocen como: reposo y excitado, siendo estos dos los estados de activación. Estos pueden ser continuos o discretos, también pueden ser limitados o ilimitados. Para comprender estos estados se hablará de un valor de activación discreto, estos pueden tomar un conjunto de valores binarios o pequeños, si se tiene un valor binario, el nivel lógico de 1 indicaría que el estado es activo, o sea excitado, y si el valor binario es un cero lógico indicaría un estado en pasivo, o sea reposo. Existen otros modelos los cuales tienen un conjunto continuo de estados de activación, en estos modelos se les asigna valores entre 0 y 1, o valores entre -1 y 1, dependiendo la función que se esté utilizando. 2.3.3 Función de transferencia. En una red neuronal se encuentran un conjunto de conexiones que se unen entre sí, estas se conocen como unidades, cada unidad transmite señales a las que están conectadas a su salida, con cada unidad U se asocia una función de salida o de transferencia F1(a1(t)), la cual hace la transformación de un estado actual de activación a1(t), en una salida y1(t): Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 46 Y1(t) = F1(a1(t)) Ecuación 20 – Función de salida de un estado de activación. Debido a la ecuación anterior, se puede decir que el vector que contiene la salida de la red en un instante t, queda de la siguiente forma: Y(t) = (F1(a1(t)), F2(a2(t)),……. Fi(ait)),….FN(aN(t))) Ecuación 21 – Vector de salida de red. Existen diferentes tipos de funciones las cuales determinan los diferentes tipos de neuronas: Función escalón. Función lineal o mixta. Sigmoidal. Función Gaussiana. Neurona de función escalón (hardlim). Esta función es utilizada cuando a las salidas solamente se necesitan dos posibles valores. Estas salidas se activarán solo cuando el estado de activación es mayor o igual a un valor de umbral de la neurona, esta función puede estar desplazada sobre los ejes. Este tipo de neurona es muy pocas veces utilizada, ya que sus capacidades están limitadas. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 47 Figura 34 - Función Escalón. Neurona de función lineal y mixta (purelin). Figura 35 - Función lineal y mixta. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 48 Esta función conocida como lineal o de identidad responde a la expresión matemática: F(x) = x. Ecuación 22 – Función Identidad. En esta función, si la suma de las señales de entrada es menor que un límite inferior, la activación se define como 0. Caso contrario, si la suma es mayor o igual que el límite superior, la activación en este caso será 1. Por otro lado si la suma de las entradas está dentro del rango de estos límites, la activación está definida como una función lineal de la suma de todas las señales de entrada. Neuronas de Función continua (sigmoidal). Figura 36 - Función contínua. Toda función que esté definida en un intervalo de posibles valores de entrada, teniendo un incremento monótico y a la vez los límites superior e inferior, podrá realizar la función de transferencia de forma satisfactoria. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 49 Con esta función, para la mayoría de valores del estímulo de entrada, el valor dado por la función tiene uno muy cercano a uno de los valores asintóticos, haciendo que en su mayoría su valor de salida esté comprendido en una de las dos zonas, alta o baja del sigmoide. Es por eso que si se tiene una pendiente elevada, ésta se comportará como la de la función escalón. Su importancia recae en que su derivada es siempre positiva o cercana a cero para valores grandes, sin importar su signo. Cuando x = 0 este toma su valor máximo. Para esta función se pueden utilizar las reglas de aprendizaje de la función escalón, con la ventaja de que la derivada está definida en todo el intervalo. De no ser así, no ayudaría a los métodos de aprendizaje en los cuales se usan derivadas. Función de transferencia gaussiana. Figura 37 - Función Gaussiana. En esta función, sus centros y su anchura pueden se adaptados, esto hace que sean más adaptativas que las funciones sigmoidales. Existen mapeos que suelen Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 50 requerir de dos niveles ocultos, utilizando neuronas con funciones sigmoidales; algunas veces se pueden realizar con un solo nivel en redes con neuronas de función gaussiana. 2.3.4 Conexiones entre neuronas. Todas las conexiones que unen a las neuronas en una red neuronal artificial, tienen un peso, el cual hace que la red adquiera conocimiento. Si se considera yi como un valor de salida de una neurona i en cierto tiempo dado, esta neurona recibirá un conjunto de señales que darán la información del estado de activación de todas las neuronas con la que se encuentra conectada. Cuando se conecta una neurona i con una neurona j, se pondera un peso Wij. Es normal considerar que el efecto de cada señal sea aditivo, de tal forma que la entrada neta que recibe una neurona netj es la suma del producto de cada señal individual por el valor de la sinapsis o conexión de ambas neuronas. ¡Error! No se pueden crear objetos modificando códigos de campo. Ecuación 23 – Entrada neta de una neurona. Esta regla muestra que el procedimiento a seguir para combinar los valores de entrada a una unidad con los pesos de las conexiones que llegan a esa unidad, se le conoce como regla de propagación. Es común utilizar una matriz W con todos los pesos Wij, estos indican la influencia de la neurona j sobre la neurona i. Esta matriz son números positivos, negativos o nulos. Si la matriz Wij tiene un valor positivo, la interacción entre las neuronas i y j es excitadora, o sea que cuando la neurona j reciba una señal de la neurona i, esta última tendrá que activarla. Por otro lado si el valor de Wij es negativo, la interacción entre las neuronas i y j es inhibidora. En este caso, si la neurona i está activada, enviará una señal a j que tenderá a desactivar a ésta. Cuando el valor de la matriz Wij es cero, esto indica que no hay conexión entre ambas. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 51 2.3.5 Regla de activación. Es necesario tener una regla que combine las entradas con el estado actual de la neurona para producir un nuevo estado de activación. La función F, produce un estado nuevo de activación en una neurona, a partir del estado (ai) que existía y la combinación de las entradas con los pesos de las conexiones (neti). Si se tiene el estado de activación ai(t) de la unidad Ui y la entrada total que llega a ella, net i, el estado de activación que le sigue será ai(t+1), este se obtiene aplicando una función F, conocida como Función de activación. ai(t+1) = F(a2t), Net2) Ecuación 24 – Estado de activación en t+1. Casi siempre F es la función identidad, es por eso que el estado de activación de una neurona en t+1 coincidirá con el Net de la misma en t. en este caso, el parámetro que se envía a la función F de la neurona, será directamente el Net. El estado de la activación anterior no se tiene en cuenta. O sea que la salida de una neurona i (yi) quedará según la expresión: ¡Error! No se pueden crear objetos modificando códigos de campo. Ecuación 25 – Salida de una neurona en un t+1. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 52 Figura 38 - Neurona artificial. Seguidamente se considera únicamente la función F, que se denominará indistintamente como transferencia o de activación. Además la función de activación no está centrada en el origen del eje que representa el valor de la entrada neta, sino que está desplazada debido a las características internas de la propia neurona y que no es igual en todas ellas. Este valor se denota como θi y representa el umbral de activación de la neurona i. ¡Error! No se pueden crear objetos modificando códigos de campo. Ecuación 26 – Salida de la neurona con umbral de activación. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 53 Figura 39 - Neurona artificial con umbral. Las salidas obtenidas en una neurona para las diferentes formas de la función F, son: Función de activación escalón. Función de activación lineal o identidad. Función de activación lineal-mixta. Función de activación sigmoidal. 2.3.6 Regla de aprendizaje. La regla de aprendizaje es la modificación del comportamiento inducido por la interacción con el entorno y como resultado de experiencias conducente al establecimiento de nuevos modelos de respuesta a estímulos externos. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 54 En una neurona biológica el conocimiento se encuentra en las sinapsis, es decir, la información memorizada en el cerebro está mas relacionada con los valores sinápticos de las conexiones entre las neuronas que con ellas mismas. En la neurona artificial la memoria se encuentra en los pesos de las conexiones entre las neuronas. Una red artificial aprende al modificar los pesos de ella ya que este aprendizaje implica un cierto número de cambios en las conexiones. Cada modelo o tipo red depende de sus propias técnicas de aprendizajes, su funcionamiento está dado por la cantidad de neuronas que ésta posea y el modo en que estén conectadas. 2.3.7 Representación Vectorial. Es común utilizar modelos vectoriales para representar algunas magnitudes, si se toma en cuenta que la red está formada por varias capas de neuronas iguales, se puede decir que las salidas de cierta capa de n unidades se representan como vector n-dimensional Y = (y1, y2, y3,….yn). Si este vector n-dimensional de salida representa los valores de entrada de todas las unidades de una capa m- dimensional, cada capa poseerá una cantidad de n pesos asociados a las conexiones procedentes de la capa anterior, por lo que existen m vectores de pesos n-dimensionales asociados a la capa m. El vector de los pesos de la j-ésima unidad tendrá la forma de: Yj = (yj1, yj2, yj3…..yjn) Ecuación 27 – Vector n dimensional de pesos. La entrada neta de la j-ésima unidad se puede escribir en forma de producto escalar del vector de entradas por el vector de peso. El producto está definido por Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 55 la suma de los productos de los componentes correspondientes de ambos vectores, hay que tomar en cuenta que los vectores tienen que tener la misma dimensión. ¡Error! No se pueden crear objetos modificando códigos de campo. Ecuación 28 – Entrada neta de j-esima unidad. n = representa el número de conexiones de la j-ésima unidad. De acuerdo con lo anterior se utilizarán diferentes vectores, vectores de entrada, vectores de pesos, vectores de salida. 2.4 Estructura de una Red Neuronal Artificial. Se ha venido hablando de los elementos de una neurona artificial, se mencionarán los más importantes: • Unidades de procesamiento. • Estado de activación de cada neurona. • Patrón de conectividad entre neuronas. • Regla de propagación. • Función de transferencia. • Regla de activación. • Regla de aprendizaje. Cada uno de los puntos anteriores están notados a los nodos que componen la red, a continuación se citará una red a una gran escala: • Número de niveles o capas. • Número de neuronas por nivel. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 56 • Patrones de conexión. • Flujo de información. 2.4.1 Niveles o capas de neuronas. Una red neuronal artificial esta compuesta por un determinado número de neuronas las cuales pertenecen a tres diferentes capas, estas se conocen como: Capa de entrada. Capa oculta. Capa de salida. Capa de entrada. Esta capa es la que recibe la información del exterior de la red. Capa oculta. Es la que está entre la capa de salida y la capa de entrada, el número de capas puede ser de cero en adelante según sea necesario, estas capas no tienen contacto con el exterior, las capas ocultas pueden definir el tipo de red que se esté utilizando. Capa de salida. Es la que tiene contacto hacia el exterior. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 57 Figura 40 - Ejemplo de una red neuronal. 2.4.2 Formas de conexión entre neuronas. Cuando se habla de conexiones entre nodos de una red neuronal es de mencionar la conectividad, esto se refiere a la forma en que las salidas de las neuronas están canalizadas para convertirse en entradas de otras neuronas. Esta señal de salida de un nodo puede ser una entrada de otro elemento, incluso puede ser entrada de sí mismo, a este último se le conoce como conexión autorrecurrente. Existen dos tipos de propagación en cuanto su forma de conexión: Propagación hacia delante. Propagación hacia atrás. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 58 La propagación hacia delante se da cuando ninguna de las salidas de las neuronas es entrada del mismo nivel o de niveles anteriores a ésta, caso contrario sucede con las salidas de las neuronas que si pueden ser conectadas con neuronas del mismo nivel o de niveles anteriores a ésta, a éstos se les conoce como sistemas recurrentes. Figura 41 - Red neuronal con propagación hacia adelante. 2.5 Topologías de las Redes Neuronales. Cuando se habla de topología de una red neuronal, se refiere a su forma de organización y disposición de las neuronas en la red, las cuales como ya se sabe están formadas por capas o agrupaciones de neuronas que están un tanto alejadas de la entrada y salida de la red. Es por ello que se pueden mencionar los siguientes parámetros que son fundamentales en una red: • Número de capas. • Número de neuronas por capas. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 59 • Grado de conectividad. • Tipo de conexiones de neuronas. Al realizar la clasificación de las redes en sentido topológico éstos se pueden distinguir según su número de capas; éstas pueden ser de una sola capa o nivel de neuronas, o de redes con múltiples número de capas. 2.5.1 Redes Monocapa. En las redes monocapa se establecen conexiones laterales entre las neuronas que pertenecen a la única capa que constituye la red. Pueden existir redes monocapa autorrecurrentes, más sin embargo, algunas veces tal recurrencia no se utiliza, como el caso de la red hopfield. La topología crossbar, es una topología equivalente a la de las redes de una capa, la red de tipo crossbar consiste en una matriz de terminales o barras que se cruzan en unos puntos a los que se les asocia un peso. Este tipo de topología es utilizada como etapa de transición cuando se pretende implementar físicamente una red monocapa, debido a que es relativamente sencillo desarrollar como hardware una estructura como la indicada. Las redes monocapa son utilizadas comúnmente en tareas relacionadas con lo que se conoce como auto asociación, un ejemplo sería el de regenerar informaciones de entrada que se presentan a la red incompleta o distorsionada. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 60 2.5.2 Redes Multicapa. Este tipo de redes disponen de un conjunto de neuronas agrupadas en varios niveles o capas. Para distinguir a que capa pertenece una neurona, hay que fijarse en el origen de las señales que recibe a la entrada y el destino de la señal de salida. Es común que todas las neuronas de una capa reciban señales de entrada de otra capa anterior, más cercana a la entrada de la red, éstas envían las señales de salida a una capa superior, más cercana a la salida de la red. El nombre que recibe este tipo de conexiones es, conexiones hacia adelante o feedforward. Por otro lado, existen redes en las cuales se pueden conectar las salidas de neuronas de capas posteriores a entradas de capas anteriores, a este tipo de conexiones se les conoce con el nombre de conexiones hacia atrás o feedback. Como podemos observar las redes multicapa las podemos distinguir por sus dos tipos de conexiones, conexiones hacia delante o feedforward, y las de conexiones hacia atrás o feedback. 2.5.3 Redes con conexiones hacia delante. En las redes con conexiones hacia delante o feedforward, las señales de las neuronas son propagadas hacia delante a través de las capas de la red. En este tipo de red no existen conexiones hacia atrás, conexiones recurrentes, ni laterales. La red Backpropagation y la red Perceptron son dos de las redes que utilizan conexión hacia delante. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 61 2.5.4 Redes con conexiones hacia atrás. Las redes con conexión hacia atrás o feedback, tienen la peculiaridad de propagarse tanto hacia delante como hacia atrás, durante el funcionamiento de la red. Existen redes que suelen ser bicapa, por lo cual se encontrarán dos conjuntos de pesos: los que corresponden a la conexión feedforward de la primera capa hacia la segunda y los de las conexiones feedback de la segunda a la primera. En la mayor parte de los casos los valores de los pesos son diferentes. El tipo de estructura bicapa es adecuado para realizar una asociación de información o patrón de entrada en la primera capa, con otra información o patrón de salida en la segunda capa, éste se le conoce como heteroasociación, aunque se pueden utilizar para la clasificación de patrones. En algunos tipos de redes su funcionamiento está basado en lo que se conoce como resonancia, de manera que las informaciones de la primera y segunda capa interactúan entre sí hasta alcanzar el estado estable, permitiendo un mejor acceso a las informaciones almacenadas en la red. La red Art, es una de las redes que utiliza este tipo de conexión. En el grupo de conexiones hacia adelante existen algunas que tienen conexiones laterales entre neuronas de la misma capa. Estas conexiones están diseñadas como conexiones excitadoras, permitiendo la cooperación de neuronas, o como inhibidoras, estableciendo una competición entre neuronas correspondientes. A este tipo de red que también dispone de conexiones autorrecurrentes se les denomina CABAM (Competitive Adaptive Bidireccional Associative Memory). Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 62 2.6 Mecanismo de Aprendizaje. Cuando se habla de aprendizaje en una red neuronal, hablamos de modificar sus pesos debido a una información de entrada. Los cambios que se producen durante el proceso de aprendizaje se reducen a la destrucción, modificación y creación de conexiones entre las neuronas. También los sistemas biológicos realizan una creación y destrucción de conexiones. En el caso de las redes artificiales, cuando se crea una nueva conexión implica que el peso de la misma pasa a tener un valor distinto de cero. Por otro lado, una conexión se destruye cuando su peso pasa a ser cero. Un proceso de aprendizaje termina cuando los valores de los pesos permanecen constantes, o sea, dwij/dt = 0, en este proceso los pesos de las conexiones sufren modificaciones hasta llegar a lograr la estabilidad. Algo bien importante en es conocer como los pesos van cambiando, es decir, que criterios se tienen que tomar en cuenta para cambiar el valor asignado a las conexiones cuando se desea que la red aprenda una nueva información. Estos criterios determinan lo que se conoce como regla de aprendizaje de la red. Se consideran 2 reglas principales: las primeras son las que responden a lo que se llama aprendizaje supervisado, y las segundas responden a lo que se conoce como aprendizaje no supervisado. Según su aprendizaje, existen dos tipos de redes: • Redes neuronales con aprendizaje supervisado. • Redes neuronales con aprendizaje no supervisado. La principal diferencia entre estos dos tipos de redes está en la existencia o no de un agente externo que controle el proceso de aprendizaje de la red. También se puede utilizar para diferenciar las reglas de aprendizaje, la consideración de que si la red puede aprender durante su funcionamiento habitual o si el aprendizaje supone la desconexión de la red; es decir, inhabilitar el proceso hasta que el aprendizaje termine. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 63 Según sea el caso, si es el primer caso se llamará ON LINE y si es el segundo caso sería OFFLINE. El aprendizaje OFFLINE se distingue entre una fase de aprendizaje o entrenamiento y una fase de operación o funcionamiento, existiendo un conjunto de datos de entrenamiento y un conjunto de datos de test o prueba, que serán utilizados en la correspondiente fase. En este tipo de aprendizaje los pesos de las conexiones permanecen constantes después que termina la etapa de entrenamiento de la red. Estos sistemas no presentan inestabilidad en su funcionamiento debido a su carácter estático. Por otro lado, el aprendizaje ONLINE no se distingue entre fase de entrenamiento y de operación, de manera que los pesos estarán variando según se presente nueva información al sistema. Es importante realizar un estudio de estabilidad debido al carácter dinámico de las mismas. 2.6.1 Redes con aprendizaje supervisado. La característica más importante del aprendizaje supervisado, es que su entrenamiento está controlado por un agente externo el cual determina la respuesta que debería generar la red a partir de una entrada determinada. Dicho supervisor comprueba que la salida respecto de la entrada sea la deseada, de lo contrario procederá a modificar los pesos de las conexiones, con el propósito de llegar a obtener la salida deseada. Existen tres tipos de aprendizaje supervisado: Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 64 Aprendizaje por corrección de error. Consiste en ajustar los pesos de las conexiones de la red en función de la diferencia entre los pesos deseados y los obtenidos en la salida de la red; es decir, en función del error cometido en la salida. Existe una versión del algoritmo backpropagation que se suele utilizar en redes multicapa que representan conexiones recurrentes con el fin de que estas redes aprendan la naturaleza temporal de algunos datos. Este tipo de redes de corrección de error también son utilizadas por algunas redes monocapa con conexiones laterales y autorrecurrentes. Aprendizaje por refuerzo. Este tipo de aprendizaje es más lento que el aprendizaje por corrección de error, está basado en la idea de no disponer de un ejemplo completo del comportamiento deseado, o sea, no definir exactamente la salida que se desea ante una entrada determinada. En este aprendizaje se da una indicación dependiendo de el valor de salida, se toma como éxito = +1 si la red fue ajustada, y se toma como fracaso = -1, si la red no fue ajustada. Si fuese este último caso, la red reajusta los pesos basándose en un mecanismo de probabilidades. Aprendizaje estocástico. Este aprendizaje realiza cambios aleatorios de los pesos de las conexiones de la red y evalúa su efecto a partir del objetivo deseado y de distribuciones de probabilidad. Prototipo de Software de Reconocimiento Óptico del Alfabeto Internacional del Lenguaje de Sordos - UDB 65 En el aprendizaje estocástico se asocia la red neuronal con un sólido físico que tiene cierto estado energético. Este estado de energía se relaciona con el funcionamiento deseado de la red, es decir, si el funcionamiento es el adecuado se asume poca cantidad de energía, por lo que no será necesario ajustar los pesos. Si su funcionamiento no es el adecuado, se dice que la cantidad de energía es grande, por lo que será necesario ajustar los pesos. Los cambios de energía de la red pueden ir disminuyendo si el comportamiento de la red se va acercando a lo esperado, por lo que se aceptará el cambio de los pesos; caso contrario, esta energía aumentará y el cambio de los pesos no será aceptado. 2.6.2 Redes con aprendizaje no supervisado. Las redes con aprendizaje no supervisado son conocidas también como redes autosupervisadas, estas no poseen de una influencia externa para la modificación de sus pesos de las conexiones entre sus neuronas. La red no recibe ninguna información de si la salida del sistema es la esperada, por eso se dice que estas redes son capaces de auto organizarse. Debido a que estas redes n