520 likes | 681 Views
Facultad de Informátida y Estadística. Grupo de Trabajo 16. Chain Code & Thinning OCR. Autores: Manuel Ramón León Jiménez Javier López Moreno. Chain Code & Thinning OCR. Facultad de Informátida y Estadística. 1. Introducción. 1. Introducción. 2. Metodología. ¿Qué es el OCR?.
E N D
Facultad de Informátida y Estadística Grupo de Trabajo 16 Chain Code & Thinning OCR • Autores: • Manuel Ramón León Jiménez • Javier López Moreno
Chain Code & Thinning OCR Facultad de Informátida y Estadística 1. Introducción 1.Introducción 2. Metodología • ¿Qué es el OCR? 3. Aplicaciones 4. Mejoras • Problemas del OCR 5. Bibliograría 6. Enlaces • Caracteres mecanografiados • Caracteres escritos a mano
Chain Code & Thinning OCR Facultad de Informátida y Estadística ¿ Qué es el OCR? 1.Introducción • Definición • Problemas El Reconocimiento Óptico de Caracteres (OCR) es un método para reconocer la parte textual de una imagen digitalizada. El resultado de esto es un archivo de texto que puede ser editado y usado como tal por cualquier programa o aplicación que lo necesite. 2. Metodología 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Problemas del OCR 1.Introducción • Definición • Caracteres mecanografiados • Problemas • No se distingue el fondo 2. Metodología • Caracteres unidos 3. Aplicaciones • Caracteres cortados 4. Mejoras 5. Bibliograría • Caracteres escritos a mano 6. Enlaces • La letra no es clara Ejemplo
Chain Code & Thinning OCR Facultad de Informátida y Estadística 2. Metodología de trabajo 1.Introducción 2. Metodología 2.1. Binarización 3. Aplicaciones 2.2. Fragmentar la imágen 4. Mejoras 5. Bibliograría 2.3. Adelgazar las componentes 6. Enlaces 2.4. Código de cadenas 2.5. Comparar con patrones y/o propiedades
Imagen de Entrada Imagen Binaria Binarización Adelgazar Componentes Conexas Fragmentado Chain Code & Thinning OCR Facultad de Informátida y Estadística Fases 1.Introducción 2. Metodología 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Código de Cadenas Códigos de Cadenas Información del Reconocimiento Componentes Adelgazadas Caracteres Reconocidos Reconocimiento Chain Code & Thinning OCR Facultad de Informátida y Estadística Fases 1.Introducción 2. Metodología 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística 2.1. Binarización 1.Introducción 2. Metodología • Definición • Binarización • Fragmentar • Adelgazar Consiste en pasar una imagen que inicialmente puede estar a color, primero a escala de grises y después a blanco y negro. • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría • Implementación 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Implementación 1.Introducción 2. Metodología • Pasar de Color a Grises • Binarización • Fragmentar • Adelgazar • Mediante la banda del verde • Código Cadenas • Comparar • Pasar de RGB a Grises 3. Aplicaciones 4. Mejoras • De Grises a Blanco y Negro 5. Bibliograría • Thresholding 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Pasar de Color a Grises 1.Introducción 2. Metodología • Mediante la banda del verde • Binarización Luminacia • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces Una imagen en escala de grises representa la respuesta del ojo a la luminosidad.
Chain Code & Thinning OCR Facultad de Informátida y Estadística Pasar de Color a Grises 1.Introducción 2. Metodología • Pasar de RGB a Grises • Binarización • Fragmentar • Adelgazar Matriz de Rojo (R) • Código Cadenas • Comparar 3. Aplicaciones + Matriz de Verde (G) 4. Mejoras + Imagen a Color 5. Bibliograría Matriz de Azul (B) 6. Enlaces ImagenGris = 0.299*R + 0.587*G + 0.114*B
0 64 128 192 255 Negro Blanco Chain Code & Thinning OCR Facultad de Informátida y Estadística De Grises a Blanco y Negro 1.Introducción 2. Metodología • Thresholding • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras Negros Blancos 5. Bibliograría 6. Enlaces Valor Umbral
Chain Code & Thinning OCR Facultad de Informátida y Estadística Implementación 1.Introducción 2. Metodología • Pasar de Color a Grises • Binarización • Mediante la banda del verde • Fragmentar • Adelgazar • Pasar de RGB a Grises • Código Cadenas • Comparar Ejemplo 3. Aplicaciones 4. Mejoras • De Grises a Blanco y Negro 5. Bibliograría • Thresholding 6. Enlaces Ejemplo
Chain Code & Thinning OCR Facultad de Informátida y Estadística Pasar de Color a Grises 1.Introducción 2. Metodología • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar Imagen en Grises con la banda del verde 3. Aplicaciones 4. Mejoras Imagen a Color 5. Bibliograría 6. Enlaces Imagen de RGB a Grises
Chain Code & Thinning OCR Facultad de Informátida y Estadística De Grises a Blanco y Negro 1.Introducción 2. Metodología • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar Imagen Blanco y Negro: Umbral 128 3. Aplicaciones Imagen en Grises 4. Mejoras 5. Bibliograría 6. Enlaces Imagen Blanco y Negro: Umbral 225 Histograma
Chain Code & Thinning OCR Facultad de Informátida y Estadística 2.2. Fragmentar la Imagen 1.Introducción 2. Metodología Consiste en ir separando componentes conexas, puesto que el reconocimiento de caracteres se realiza componente a componente. • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar Ejemplo 3. Aplicaciones 4. Mejoras • Posibles Implementaciones 5. Bibliograría A) Algoritmo de etiquetado visto en clase 6. Enlaces B) Otras implementaciones
1 0 1 0 ... 1 0 1 0 ... 1 0 1 0 ... Chain Code & Thinning OCR Facultad de Informátida y Estadística 2.2. Fragmentar la Imagen 1.Introducción Ejemplo 2. Metodología • Binarización • Fragmentar 1 0 1 0 ... • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 a a a a 1 1 0 0 0 0 0 0 1 0 0 0 a a a Chain Code & Thinning OCR Facultad de Informátida y Estadística Posibles Implementaciones 1.Introducción 2. Metodología A) Algoritmo de etiquetado visto en clase • Binarización • Fragmentar Se va recorriendo la matriz y etiquetando componentes conexas según los vecinos ya recorridos. • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Posibles Implementaciones 1.Introducción 2. Metodología B) Otras implementaciones • Binarización • Fragmentar • Versión Lenta • Adelgazar • Código Cadenas Recorremos la matriz hasta encontrar un pixel negro. Se hace un algoritmo recursivo para enmarcar esa componente. Se continua por la columna siguiente al marco encontrado. Si se encuentra una componente registrada, no se vuelve a registrar. • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría Ejemplo 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Versión Lenta 1.Introducción Ejemplo 2. Metodología • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Posibles Implementaciones 1.Introducción 2. Metodología B) Otras implementaciones • Binarización • Fragmentar • Adelgazar • Versión Rápida • Código Cadenas • Comparar 3. Aplicaciones Es igual que la anterior, pero en este caso cuando llega a un pixel negro, se comprueba primero si ya está registrado en una componente conexa, evitando así realizar el algoritmo recursivo. 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Posibles Implementaciones 1.Introducción 2. Metodología B) Otras implementaciones • Binarización • Fragmentar • Versión por Renglones • Adelgazar Al registrar la primera componente conexa, se continúa la búsqueda por la fila central del dígito y por la columna siguiente a dicha componente conexa, además se calcula el salto que se debe dar para pasar a una nueva fila. • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras Inconvenientes 5. Bibliograría Los caracteres deben ser del mismo tamaño al primero. 6. Enlaces Los caracteres deben estar alineados por renglones. Ejemplo
Altura = 6 Sigo por: (6+1)/2 = 3 Salto = Altura = 6 3 3 6 Chain Code & Thinning OCR Facultad de Informátida y Estadística Versión por Renglones 1.Introducción 2. Metodología • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras Siguiente Salto 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Versión por Renglones 1.Introducción 2. Metodología • Inconvenientes • Binarización • Si hay componentes de distintos tamaños puede que no las capte. • Preferiblemente las componentes tienen que • estar alineadas en renglones. • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría Esta componente no la reconoce 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística 2.3. Adelgazar la Imagen 1.Introducción 2. Metodología • Definiciones • Binarización • Fragmentar A) Punto Simple • Adelgazar Los 8 vecinos de P forman una sola componente conexa adyacente a P. • Código Cadenas • Comparar 3. Aplicaciones A) Punto Final Solo tiene un vecino negro. 4. Mejoras A) Punto Aislado 5. Bibliograría No tiene vecinos negros. 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Ejemplo de las Definiciones 1.Introducción 2. Metodología • Binarización No simple • Fragmentar • Adelgazar Final • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría Simple Aislado 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Algoritmo 1.Introducción Consiste en ir barriendo la matriz en las direcciones Norte, Sur, Este y Oeste alternativamente, encontrando en cada barrido los pixeles en negro con su antecesor blanco. Si el pixel es simple y no final se elimina. Se deben eliminar todos a la vez, por lo que antes de eliminarlos se marcarán. El algoritmo para cuando en una iteración no se elimina ningún pixel en ningún barrido (N, S, E, O). 2. Metodología • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Ejemplo del Algoritmo 1.Introducción 2. Metodología • Primera Iteración • Binarización • Fragmentar • Adelgazar • Código Cadenas Norte Sur Este Oeste • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Sur, Este y Oeste No se marca ningún punto Chain Code & Thinning OCR Facultad de Informátida y Estadística Ejemplo del Algoritmo 1.Introducción 2. Metodología • Segunda Iteración • Binarización • Fragmentar • Adelgazar Norte • Código Cadenas • Comparar 3. Aplicaciones En la próxima iteración no se elimina ningún pixel en ningún barrido (N, S, E, O), luego el algoritmo finaliza. 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Ejemplo de Adelgazamiento 1.Introducción 2. Metodología A continuación se muestra un ejemplo del adelgazamiento completo de un cero, completando todas las iteraciones necesarias para ello. • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Posibles Mejoras 1.Introducción 2. Metodología • No escanear los marcos, ya que son blancos. O no hacer necesarios marcos blancos • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones • No comprobar un pixel en una iteración si en una anterior se había comprobado que no se podía borrar, es decir, marcar los puntos no borrables 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística 2.4. Código de Cadenas 1.Introducción 2. Metodología • Se calcula el código de cadenas de cada componente conexa. • Solo calculamos el borde externo, porque para reconocer ceros y unos no nos vale de nada calcular el interno, ya que el 1 no tiene y el 0 tiene, pero es igual que el externo, por eso solo calculamos el borde externo. • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Algoritmo 1.Introducción • La función para buscar el siguiente vecino en el código de cadenas es: 2. Metodología • Binarización • Fragmentar • Cojo la dirección por la que he llegado al pixel actual. A partir de ella, como estoy calculando el código de cadena externo, comienzo a buscar el proximo vecino en dirección contraria a las agujas del reloj. • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 1º 4. Mejoras Venía del 2 2º 5. Bibliograría 0 1 2 4 P 0 5 6 7 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Ejemplo de Código de Cadenas 1.Introducción 2. Metodología • Finalmente mostramos un ejemplo donde se muestra un uno, con su único código de cadenas, el externo, así como el punto inicial del mismo • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras • Punto inicial: (3, 6) 5. Bibliograría • Código de Cadenas externo: • 5 5 1 1 7 6 6 6 6 2 2 2 2 3 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística 2.5. Comparar con Patrones 1.Introducción 2. Metodología Punto fundamental y crítico del OCR. • Binarización De que esta fase se realice correctamente depende que el OCR sea adecuado o no a las características exigidas. • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones • Primera aproximación 4. Mejoras • Otros métodos 5. Bibliograría • Nuestro método 6. Enlaces • Otras herramientas
Chain Code & Thinning OCR Facultad de Informátida y Estadística Primera aproximación 1.Introducción Consiste en comparar nuestro código de cadenas con unos patrones predeterminados. 2. Metodología • Binarización • Fragmentar • Si concuerda será igual • Adelgazar • Código Cadenas • Si no concuerda no será igual • Comparar 3. Aplicaciones • Inconvenientes 4. Mejoras Es un reconocedor muy pobre, ya que solo reconoces imágenes exactas a la del patrón, si no coincide en algo, falla. No puede ser ni más grande, ni estar en cursiva, etc. 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Otros Métodos 1.Introducción 2. Metodología Comparar características topológicas y morfológicas de la imagen a reconocer con las de nuestros patrones. • Binarización • Fragmentar • Adelgazar • Código Cadenas Esta comparación es más precisa que la anterior, ya que no hace falta que la imagen sea exacta al patrón. En este caso solo se comparan características del carácter. • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Rectas del carácter 1 • Detección de curvas • Detección de ángulos 1 0 Chain Code & Thinning OCR Facultad de Informátida y Estadística Características a tener en cuenta 1.Introducción • Nº de Agujeros 2. Metodología • Binarización 1 NO 0 1 agujero • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Código de Cadenas: ... 6 6 2 2 ... Código de Diferencias: ...-4... Chain Code & Thinning OCR Facultad de Informátida y Estadística Características a tener en cuenta 1.Introducción 2. Metodología • Detección de cambios bruscos en el código de cadenas • Binarización • Fragmentar • Adelgazar • Código Cadenas 1 • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Código de Cadenas: ... 6 6 2 2 ... Código de Diferencias: ... -4 ... Chain Code & Thinning OCR Facultad de Informátida y Estadística Nuestro Método 1.Introducción 2. Metodología Vamos a reconocer el 1 fijándonos en el número de giros de 180º en el código de cadenas. Esto se observa cuando en el código de diferencias sale - 4. • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar El 1 tiene al menos dos giros de 180º, mientras que el 0 no tiene ninguno. 3. Aplicaciones 4. Mejoras 1 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Nuestro Método 1.Introducción 2. Metodología Además de los cambios bruscos en el código de cadena, nos vamos a fijar que tras el último de estos cambios bruscos si observamos dicho código de cadenas, la dirección 2 va a predominar con respecto al resto de direcciones, en particular va a haber más de un 50% de direcciones 2 hasta el final. El cero, en cambio, no cumple ninguna de estas dos propiedades. • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces Ejemplo
Hasta el final queda: • Codigo de Cadena: ... 2 2 2 2 3 • Número de dirección 2: 4 • Número de direcciónes no 2: 1 4 • Porcentaje de 2 = = 0.8 4 + 1 El 80% son 2 Chain Code & Thinning OCR Facultad de Informátida y Estadística Ejemplo 1.Introducción Punto Final 2. Metodología • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces Giro brusco
Chain Code & Thinning OCR Facultad de Informátida y Estadística Ventajas 1.Introducción • El reconocimento depende del Universo de discurso. Si nos llegan solamente 0 y 1, podríamos reconocerlos viendo simplemente si el carácter a reconocer tiene un agujero. • Nuestro reconocedor, sin embargo se fija en otras cosas para no reconocer todo lo que nos llegue como un 0 o un 1. Si nos fijaramos en si tiene o no agujeros entrarían muchas cosas más de las deseadas. 2. Metodología • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística Ventajas 1.Introducción • Nuestro reconocedor es insensible a desplazamientos. Nos pueden llegar caracteres desplazados, que los vamos a reconocer de igual forma. • Insensible a rotaciones hasta cierto punto. Si nos llega un 1 rotado, lo vamos a reconocer dentro de un determinado ángulo de rotación, si se gira demasiado, ya no lo reconocemos. 2. Metodología • Binarización • Fragmentar • Adelgazar • Código Cadenas • Comparar 3. Aplicaciones 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística 3. Aplicaciones del OCR 1.Introducción 2. Metodología • Escaneado de documentos para almacenar 3. Aplicaciones • Detección de Matrículas 4. Mejoras 5. Bibliograría • Detección de Códigos Postales 6. Enlaces • Etc
Chain Code & Thinning OCR Facultad de Informátida y Estadística 4. Futuras Mejoras 1.Introducción 2. Metodología • Mejorar el Interfaz de Usuario 3. Aplicaciones 4. Mejoras • Añadir funciones no implementadas 5. Bibliograría • Resolver errores 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística 4. Futuras Mejoras 1.Introducción • Optimizar Algoritmos 2. Metodología 3. Aplicaciones • Si la imagen tiene un margen en blanco, empezarrecorridos por (2,2) hasta (N-1,M-1) • Mejorar clases: Muchas clases incluyen objetos de • otras, mejor usar herencia • Comprobar el uso de la memoria: se ha vigilado poco el uso y liberación de la memoria • Realizar preprocesado para eliminar el ruido por algún método (como dilatación y erosión). 4. Mejoras 5. Bibliograría 6. Enlaces
Chain Code & Thinning OCR Facultad de Informátida y Estadística 5. Bibliografía 1.Introducción 2. Metodología • Apuntes de Procesamiento de Imágenes Digitales (PID) 3. Aplicaciones • Profesor: Pedro Real Jurado 4. Mejoras • Apuntes de Tratamiento de Voz e Imágenes (TVI) 5. Bibliograría • Profesor: Fco. Javier Molina Cantero 6. Enlaces • Apuntes de Ingeniería del Software II (ISWII) • Profesor: Amador Durán Toro • Apuntes de Procesadores de Lenguajes II (PLII) • Profesores: Rafael Corchuelo Gil Beatriz Bernárdez Jiménez
Chain Code & Thinning OCR Facultad de Informátida y Estadística 5. Bibliografía 1.Introducción 2. Metodología • Introducción a la programación: Un enfoque práctico 3. Aplicaciones • Editorial: Algaida • Autores: Juan Mauel Cordero Valle José Mariano González Romero Rafael Martínez Gasca Rafael Romero Aleta 4. Mejoras 5. Bibliograría 6. Enlaces • Visual C++, Aplicaciones para Win32, 2ª Edición • Editorial: Ra-ma • Autor: Fco. Javier Ceballos Sierra
Chain Code & Thinning OCR Facultad de Informátida y Estadística 5. Bibliografía 1.Introducción 2. Metodología • Detection of Curved and Straight Segments from Gray • Scale Topography 3. Aplicaciones • Autores: Li Wang and Theo Pavlidis 4. Mejoras Department of Computer Science, Stony Brook, New York, 1992 5. Bibliograría • A Model-Based Segmentation Method for Handwritten • Numeral Strings 6. Enlaces • Autores: Jianming Hu and Hong Yan Department of Electrical Engineering, University of Sidney, 1997 • Fast Binary Image Processing Using Binary Decision • Diagrams • Autores: L. Robert and G. Malandain INRIA-Sophia Antipolis, France, 1997