240 likes | 520 Views
Reconocimiento de Escritura Manuscrita. ~ Caso Práctico: Un reconocedor de vocales ~. Francisco Pazo Sánchez Pablo Maldonado López Manuel Argenis Rodríguez Gutiérrez. 1.- Introducción. Vamos a ver como hacer un reconocedor de escritura manuscrita, en concreto uno de vocales.
E N D
Reconocimiento de Escritura Manuscrita.~Caso Práctico: Un reconocedor de vocales~ Francisco Pazo Sánchez Pablo Maldonado López Manuel Argenis Rodríguez Gutiérrez
1.- Introducción • Vamos a ver como hacer un reconocedor de escritura manuscrita, en concreto uno de vocales. • Veamos un par de conceptos, como la Visión Artificial, clasificador de imágenes... • En todo reconocedor tenemos cuatro fases generales: • Obtener el Original a tratar. • Preprocesarlo para simplificar su análisis. • Sacar sus características más importantes. • Procesar estas características para ver a que patrón se acerca más a imagen original. • Estas cuatro fases se repetirán en cualquier reconocedor que veamos, sea de lo que sea.
2.- Problemática • No sabemos como vemos, es el gran problema de la IA, donde podemos englobar el reconocimiento de escritura manuscrita. • ¿cómo saber donde comienza una letra y acaba la anterior? • Saber interpretar los espacios y la inclinación de los renglones. • Diversidad de patrones de escritura distintos para una misma letra. • Muchos otros problemas...
Pero el gran problema en esto, como en casi todo es la falta de cooperación entre los investigadores y la falta de una línea de investigación única, con lo que todo avanzaría a una mayor velocidad
3.- Metodología General • Fases del proceso general para reconocer: • Adquisición • Pretratamiento • Segmentación • Reconocimiento – Clasificación • Post-tratamiento
Adquisición • Binarización de la escritura • Dos tipos: • “en línea” “en diferido” - PDA - Scáners - LCD - Cámaras - Papel electrónico - Imágenes
Pretratamiento • Sirve para reducir variables en el problema. • Métodos Generales • Filtrado y adelgazamiento • Enderezar línea base de la escritura • Enderezar pendiente en letras • Normalizar caracteres (por ahora imágenes)
Pretratamiento • Métodos en la escritura “en diferido” • Estructuración de Manuscritos • Separación de líneas y párrafos • Esqueletización • Adelgazamiento del trazo completo (erosionando).
Pretratamiento • Métodos en la escritura “en línea” • Eliminación de puntos aislados • Elevaciones de estilo y restablecer uniones • Normalizar contornos • Normalizar puntos de acentuación
Segmentación • Consiste en dividir el documento en diferentes entidades lógicas. • Entidades a nivel de palabras • Entidades a nivel de letras. • ¡Ojo! No serán probablemente ni palabras ni letras • Dificultad: No suele haber relación entre estas entidades lógicas y físicas...
Segmentación • Misión: Localizar zonas de interés en el texto y separar por ahí. • Localizaciones: • Palabras Letras C.Conexas Explícitos Proyecciones Implícitos I. Exhaustivos
Reconocimiento • Métodos Globales y Métodos Analíticos • Reconocimiento de Caracteres Aislados • Reconocimiento de Palabras • Caracteres Aislados: • Globales: Poco adaptados no se usan excepto los basados en programación dinámica.
Reconocimiento • Métodos Analíticos: • Geométricos y Estadísticos • Estructurales • Neuro-Miméticos • Markovianos • Basados en I.A. • De Zadeh • Mixtos
Reconocimiento • Reconocimiento de Palabras • Métodos Globales: Por cadenas de símbolos, deterministas y probabilistas. • Métodos Analíticos: • Generalización de los usados en caracteres aislados. • Implícitos: Basados en predicciones y derivados de los markovianos.
Post-tratamiento • Se trata de la parte menos metódica. • Depende de la aplicación del reconocimiento. • Generalmente: Afinan el reconocimiento, valiéndose de conocimientos lingüísticos.
4.- Aplicaciones • Las aplicaciones de reconocimiento de escritura manuscrita son cada vez más cercanas y útiles,un claro ejemplo lo tenemos en las PDA´s y Pocket PC´s • La policía y los bancos lo usan para comprobar la autenticidad de firmas y documentos. • Encontramos varias aplicaciones muy peregrinas, como: • El proyecto de una universidad de México para usar esta técnica con antiguos documentos de su República y luego colgarlo en una web para que todo el mundo tenga acceso a ellos • También el proyecto de www.manolo.net, con el que impedidos visuales podrán leer cualquier tipo de documento manuscrito con ayuda de un ordenador y un escáner.
5.- Nuestro Método • Deberemos de tener en cuenta las cuatro fases de todo reconocedor • Primero: Tomar una imagen .jpg, abrirla y guardarla en una matriz cuadrada para su manipulación. • Segundo: Preprocesarlo. Es decir, binarizar la imagen y adelgazar la imagen. • Tercero: Características. Conseguir el vector de características. Usamos el código cadena de la imagen y calculamos en número de “puntos finales” • Cuarto: Con estas características ver a cual de las cinco vocales se parece más nuestra imagen.
5.1.- Imagen original • Creamos una imagen jpg en un editor cualquiera, por ejemplo el paint. • Volcamos su información en una matriz cuadrada. De esta manera trataremos de una manera mucho más eficaz en nuestros algoritmos la imagen • Poco más en este apartado
5.2.- Preprocesado • Binarizamos la imagen, es decir, la convertimos en una matriz de 0´s y 1´s. De esta manera eliminamos considerablemente el tamaño de información a tratar. • Adelgazamos la imagen. Para hacerlo usamos un algoritmo que va eliminando píxeles no finales y que al quitarlos no cambia la estructura de la imagen. Lo hacemos con varias iteraciones, haciendo recorridos desde el norte, este, sur y oeste, hasta que la imagen ha quedado adelgazada.
5.3.- Vector de Características • Para calcular el vector de características hemos hecho uso del Código Cadena en 8-adyacencia, ya conocido por todos. • También hemos ideado un método para obtener una característica bastante útil para nuestro reconocimiento. Si nos fijamos en la cantidad de puntos finales de las vocales, podemos ver: La 'A' tiene 2 píxeles terminales La 'E' tiene 3 píxeles terminales La 'I' tiene 4 píxeles terminales La 'O' tiene 0 píxeles terminales La 'U' tiene 2 píxeles terminales
5.4.- Comparación • Del código cadena obtenemos si la imagen original tiene componentes cerradas. • Otra característica que obtenemos es si la imagen tiene concavidades. • Esto junto a nuestro calculo de puntos finales nos es suficiente para saber que letra es la de la imagen original. • ¿cómo?, vamos a verlo...
5.4. ¿Como? • Tenemos una array[5] donde vamos guardando la posibilidad de que la imagen sea cada una de las vocales • Le hemos dado un peso a cada una de las características calculadas. • Cuando una letra cumple una característica, su valor dentro del array se incrementa según el peso que tenga dicha característica. • Al final, la que tenga un mayor valor será la que el programa de por buena.
6.- Conclusiones • El reconocimiento de escritura manuscrita parece que poco a poco va entrando en nuestra vida, con aplicaciones muy cercanas, y claros ejemplos de tecnología casera, como las Palms. • No hay que olvidar, no obstante, que es un campo en el que queda aún mucho por estudiar y que mientras que las distintas líneas de investigación sigan por caminos distintos, no avanzará tanto como pudiera. • El futuro del reconocimiento de la escritura manuscrita, parece que permitirá dotar de Visión Artificial a programas y autómatas. • El campo de las aplicaciones de esta materia es muy amplio y con gran futuro. Debemos intentar que las aplicaciones sean lo más humana posible, y que de verdad llegue a quien la pueda sacar un mayor partido en el sentido humano de la palabra.
¡Fin! • Gracias a todos por su atención... • Esperemos que no haya sido muy pesado... • Suerte a todos en los exámenes... • Trabajo realizado por: Francisco Pazo Sánchez Pablo Maldonado López Manuel Argenis Rodríguez Gutiérrez