Sunday, June 8, 2008

Off-Line Cursive Handwritting Recognition from Words using HMM

Handwritting Recognition (Reconocimiento de Escritos hechos a Mano) es la transcripción del dato escrito a mano en un forma digital, tal que dicho dato pueda ser procesado por computadoras y no solo por humanos. Tenemos dos formas: On-Line (el cual es en tiempo real, es decir cual se esta escribiendo, para ello se necesita de dispositivos especiales) y Off-Line (el cual trabaja sobre escritos que se encuentram en forma digital, es decir en una imagen)

En el problema del Reconocimiento Off-Line de Palabras Cursivas Escritas a Mano, tenemos dos alcances para solucionarlo:
  1. El primero está orientado a la segmentación de las palabras en caracteres (o letras) y luego utilizar como técnica de Reconocimiento: Programación Dinámica.
  2. El segundo orientado a convertir la palabra en una secuencia de vectores de observación, siendo utilizado los Modelos Ocultos de Markov (HMM - Hidden Markov Models) para su reconocimiento.
En los últimos años el segundo item mencionado está siendo comunmente usado, ya que la primera entra a la paradoja de Sayre : "Una palabra no puede ser segmentada  sin antes ser reconocida y no puede ser reconocida sin anter haber sido segmentada"... :D

Algunas de las aplicaciones ya fueron mostradas en el item Aplicaciones del presente blog.
Ahora veamos algunos de los pasos que usualmente son seguidos para llegar al proceso de Reconocimiento: Pre-procesamiento, Normalización, Segmentación, Extracción de Caracteristicas, Reconocimiento. Veamos una pequeña descripción de cada uno de ellos:
  • Pre-procesamiento: es uno de los pasos iniciales para cualquier sistema de reconocimiento, el cual consiste en la eliminación de algunos elementos de distorsión, que existan en la imagenpara obtener sólo la palabra a ser reconocida. Aqui podemos encontrar procesos como: Filtrado, binarización, etc.

  • Normalización: es otro de los pasos iniciales para cualquier sistema de reconocimiento, el cual consiste en adecuar la imagen a procesar deacuerdo a ciertas estructuras, de tal forma que todas las imagenes puedan ser procesadas de la misma forma. Para este caso, la normalización comprende dos aspectos respecto a los cuales se normaliza la imagen de una palabra, esto es: Slope (angulo entre la linea horizontal y la linea horizontal implicita sobre la cual se encuentra alineada la palabra) y Slant (similar al slope, pero con respecto a la vertical), ver la siguiente figura para mejor entendimiento.  La normalización es invariante respecto al slope o slant de la palabra a ser procesada.

  • Segmentación: este proceso sobre separar fragmentos de la palabra en unidades tales que sean de información básica para el proceso de reconocimiento. La segmentación puede ser Explicita (se refiere a separar la palabra en simples letras (caracteres), las mismas que como tales pueden ser reconocidas) o Implicita (tambien conocida como sobre-segmentacion, ya que trata de separar la palabra en sub-letras). Acá hay algo a mencionar entre ambos procesos de segmentación: la segmentación explicita es dificil de realizar y se encuentra bajo la paradoja ya menciona y es tratada para el proceso de reconocimiento por la tecnica de Programación Dinámica, por otro lado la segmentación implicita es usada en arquitecturas que involucran a los Modelos Ocultos de Markov (HMM), el mismo que trabaja con secuencias de fragmentos no necesariamente letras (caracteres), y a la vez lidiar con variaciones o ruido que pueda presentar dicha secuencia.
  • Extracción de Características: para este proceso, tenemos tres grupos para extraer características: las de Alto Nivel (involucra caracteristicas de la palabra completa), Medio Nivel (refiere a caracteristicas de las letras o caracteres de la palabra, y tenemos a: vectrización de contornos, variabilidad de sus formas, etc.) y Bajo Nivel (involucra a las sub-letras, y tenemos a: forma, lineas pequeñas, curvas, distribucion de pixels, centro de masa, histograma, etc.)
  • Reconocimiento: consiste en encontrar, entre las palabras del Lexicon (donde se encuentran palabras almacenadas), el que más sea compatible con el dato (palabra) escrito a mano. Tenemos dos técnicas principales: Programación Dinámica y Modelos Ocultos de Markov.

No comments:

Post a Comment