EL RECONOCIMIENTO DE TEXTOS Federico Debandi Miriam Redi 100082589 Estudiante Erasmus Torino - Italia 100078831 Estudiante Erasmus Torino - Italia [email protected] [email protected] 1. INTRODUCCIÓN La sigla ingles OCR es el acrónimo de Optical Character Recognition, ósea Reconocimiento Óptico de Carácter. Un programa para el OCR es un sistema experto en condición de convertir una imagen textual digitalizada de un documento de texto, sea él en un formato digital o manuscrito, reconociendo la disposición en líneas de caracteres alfabéticos y señas diacríticas, para producir un fichero, en qué ellos son traducios en un formato ASCII o Unicode que cualquier ordenador puede editar. Es justo a través de algoritmos de inteligencia artificial que se volvió posible esto diálogo entre las dos líneas de búsqueda, implementando programas para los más variados usos. 2. MENCIÓNES HISTÓRICAS Los estudios sobre el reconocimiento de los caracteres empezaron hace más de un siglo y desde entonces la tecnología empleada siempre usó como modelo primario los qué se retiene ser los mecanismos del ser humano en la lectura: los ojos escanden el texto según líneas horizontales siguientes, la lens del cristalino enfoca la luz incidente sobre la retina y el nuestro cerebro puede traducir el mensaje escrito. Justo por esto motivo muchos de los primeros desarrollos en el reconocimiento de los caracteres se consiguieron en el curso de búsquedas directas en la construcción de auxilios de lectura para los ciegos o sin embargo para individuos afectos de defectos de vista: hablamos de patentes que se atestan ya ante de 1809. En séquito de los resultados conseguidos gracias a los primordios de algunas maquinas - como el primero escáner a retina de C.R. Carey de 1870, el disco para escansiones de imágenes de P. Nikpkow de 1890, la herramienta de transposición de textos en código Morse de E. Goldberg y el robot lector-escritor GISMO de M. Sheppard de 1954 – las técnicas de reconocimiento conocieron rápidos progresos, sobre todo porque muchas entre las grandes empresas, entre que IBM y Bell Laboratories, se percataron de los potenciales conectados a la tecnología OCR, constituyendo apropiados grupos de búsqueda. En el 1956 la American Banker’s Association estandardizó un font de caracteres especial, llamado MICR (Magnetic Ink Character Recognition, Fig.1), para el empleo sobre las asignaciones bancarias, para aplicaciones con requisitos apremiantes de lectura en alta velocidad.: adecuadas bandas de tintas simplificaban el compito del lector de caracteres, o en la discriminación de caracteres símiles, como por ejemplo el 1 (uno) la l (ele minúscula) y la I (la i mayúscula), o en la minimización de los errores debidos por polvo o por falsificación. Figura 1. El character MICR. El principal inconveniente del font MICR residía en el facto que casi ninguna de las maquinas de escribir de la época eran en grado de generar los caracteres relativos y además un sujeto humano podía leer los textos escritos con esto carácter con relativa dificultad. Por lo tanto, pos la realización de otros estándares más intuitivos, como por ejemplo el OCR-A (ANSI – 1966) y OCR-B (desarrollado en Europa), durante los años Setenta fueron conducidas búsquedas fundamentales en el campo del omnifont, ósea maquinas en grado de descifrar todos los tipos de escritura. Por la primera vez fueron afrontadas problemáticas relativas al reconocimiento de caracteres no latines (como los chinos, japoneses, indianos, coreanos, judíos, etc.) y aparecieron también los primeros tentativos significativos de reconocimiento óptico ce caracteres manuscritos. Entre el fin de Setentas y el inicio de Ochentas el gran publico vino a contacto con el OCR por causa de la rapidísima difusión de un dispositivo sencillo y barato para la lectura óptica, llamado bar-code reader (lector de códigos de barras). In un lector de códigos de barras, un sensor de luz explora un área constituida de bandas blancas i negras en alternación, que según sus anchos, componen un código con el cual se pueden representar informaciones (como el nombre del producto, el precio o el número de inventario). El lector puede elaborar estos datos in tiempo real consintiendo así de suministrar, por ejemplo, el recibo de pagamiento para un cliente y los datos de trasferencia al ordenador dedicado a la contabilidad. Tras la primera “traducción”, los siguientes lectores se basan solamente sobre el código de barras, bajando drásticamente la posibilidad de error. Actualmente las metodologías de reconocimiento son muy progresadas respeto de las técnicas primitivas y llegaron a la aplicación de técnicas sofisticadas para el reconocimiento de una grande variedad de complejos caracteres manuscritos, símbolos e ideogramas incluidos también los caracteres chinos y japoneses. 3. APLICACIONES Esta tecnología tiene un enorme número de usos prácticos. El uso que históricamente dio por primer lugar impulso a búsquedas en esto campo es el del auxilio a los ciegos e a las personas afectadas para limitaciones o patologías al sistema visual: la lectura del testo se va a ejecutar mediante sensores ópticos y el texto reconocido va a ser restituido como estimules táctiles o como ondas sonoras. Otros sistemas podían leer y traducir originales en alfabeto Braille. Primero entre todos y arquetipo de la búsqueda para algoritmos OCR, permanece de todas maneras seguramente el reconocimiento óptico de las direcciones para la clasificación del correo. Ya desde el 1965, en efecto, en los Estados Unidos se utiliza esta tecnología: en las oficinas de correo cada carta o paquete esta escandido para un lector óptico que interpreta la dirección y el código postal, que sean ellos impresos o escritos a mano, y genera un correspondiente código de barras, impreso en el sobre con una tinta especial notable solamente con el uso de rayos ultravioletas. parecido ocurre en los terminales portuarios Un procedimiento donde los sistemas OCR se implementan para identificar mas rápidamente y con una cierta fiabilidad los containers y las matriculas de vehículos. El sistema que ves el mayor empleo de estos sistemas, además, es precisamente el reconocimiento de matriculas para el control de carreteras y de autopistas. Los radares son dispositivos capaces de reconocer la velocidad de los autos vehículos. Si por una parte, como estos se van a accionar no nos interesa, porque es pertinente a otras tecnologías, podemos encontrar la presencia de sistemas de reconocimiento de caracteres inmediatamente después que la foto esta sacada: esta maquina es capaz de reconocer entre la imagen la matricula del coche, seccionándola, agrandándola oportunamente y haciendo operaciones que vayan a rendir los caracteres más evidentes. Luego el reconocimiento de la secuencia de números y letras, el puede enviar los datos a las centrales o a otros dispositivos. Esto ultimo es el caso del sistema de controlo de velocidad Tutor, gracias al cual dos puentes posicionados en una autopista registran in continuación (en una distancia de muchos kilómetros) la matricula de los vehículos, teniendo en memoria el instante exacto del paso y haciendo una media entre tiempo y distancia que notificaría la velocidad: donde resulta que el conductor ha cometido una infracción, los datos van a ser entregados a las centrales para el controlo del trafico. Esto sistema de todas maneras no es solamente útil para hacer daño a los automovilistas, pero también puede ser un buen medio para reconocer matriculas en otras situaciones. Esto es el caso de Reader Plate de FAAC que permite el acceso a los vehículos autorizados en determinadas áreas (oficinas, cocheras,...). Otras aplicaciones muy comunes son las atadas a la elaboración directa de documentos de papel en la fase de data entry (como por ejemplo le lectura electrónica de paginas en el trato automático de gran cantidades de correo) y en general a la transformación de textos y grafica en formatos que leíbles para un ordenador: el ordenador se porta en manera automática y solamente supervisada para el hombre. En esto modo, la enorme cantidad de datos para ser adquiridos toma ventaja para la velocidad y la infatigabilidad que tiene el ordenador trabajando. Desgraciadamente no es siempre posible tener surgentes de óptima calidad, a veces mas bien se recurre a programas OCR muy en caso de textos gravemente estropeados, difíciles para ser interpretados también para el ojo humano. Es el caso de la utilización de OCR en sectores de arqueología e historia. En esto, obviamente, el ordenador es solamente un instrumento de soporte, un ojo mucho mas preciso y objetivo de lo humano. Esta, luego, un otro sector muy reciente donde OCR se revela como indispensable: en la utilización de palmares o dispositivos muy pequeños que no integran un teclado. Por estos pero están un par de diferencias: en primero lugar non es una tradicional adquisición de la imagen, pero l os caracteres son directamente interpretados para el movimiento del bolígrafo sobre una superficie sensible; además, ahora no es el ordenador que tiene que ser adiestrado, pero el hombre. Para escribir sobre un palmar hay que re-aprender un alfabeto mas estilizado y atenerse escrupulosamente a ella grafía para pretender de ser comprendidos. Otras aplicaciones OCR segundarias como difusión pero no por supuesto como importancia son las siguientes: - la medida y la análisis de la calidad de impresión de los caracteres; - las operaciones de reservación de plazas en vuelos aéreos; - la lectura automática de los contadores para la facturación de consumes, por ejemplo en servicios telefónicos; la lectura de tarjetas como las de crédito en los sistemas - de identificación del personal; - la optimización de las estrategias de ordenamiento y archivo de asignaciones bancarias; - la lectura de etiquetas de presencia para el calculo automático de sueldos y la contabilidad de empresa; - la lectura automática de telegramas. 4. ARQUITECTURA DE SISTEMAS OCR La estructura funcional de un típico sistema OCR es en gran medida independiente por el hardware sobre lo cual esta implementada, porque la secuencia de operaciones pedidas para la conversión desde una pagina empresa presenciada al lector es igual in casi todos los sistemas, de cualquier grado de sofisticación; la estandardización de la secuencia de operaciones es debida también al suporte que das el ordenador en todos los sistemas OCR. Después una fase preliminar para poner en punto el sistema y plantear los parámetros operativos, la pagina que contiene el texto que va a ser convertido, se somete a escansión óptica mediante un dispositivo de input, el escáner, capaz de digitalizar la imagen presente sobre el papel convirtiéndola en una matriz de valores numéricos asociados a la intensidad de la luz refleja para cada punto del papel. Para analizar una matriz así obtenida hay que tener en cuentas las características fundamentales de esto tipo de imágenes. 4.1 Problemas 4.1.1 El ruido del dispositivo Las imágenes reales no son perfectas, sobre todo cuando estas imágenes son escaseadas introducen algunas alteraciones. El dispositivo que obtiene la imagen, puede introducir niveles de grises en el fondo de la imagen dando lugar a niveles de grises no pertenecientes a la imagen real o, peor, el scanner puede añadir regiones negras dentro de las áreas que deberían ser blancas. Además, la resolución finita de estos dispositivos puede afectar a los píxeles que deben ser evaluados. 4.2.1 Binarizacion La mayor parte de los algoritmos para reconocer escritura están escritos a partir de imágenes binarias, por esto, se convierte una imagen en niveles de gris (o color) a una binaria. Además esto permite reducir el volumen de los datos a tratar sin quitar las propiedades esenciales de la imagen. 4.2.2 Segmentacion Una vez obtenida la imagen binaria se deberá fragmentar en entidades lógicas invariables y significativas para su reconocimiento. Estas unidades corresponden a las letras, y el sistema tiene que localizarlas dentro de la imagen, operación que se queda más sencilla después de la binarizacion de la imagen. No hay métodos estándar que se puedan aplicar siempre, porque más comúnmente se asocia la segmentación a un estudio del contexto. 4.1.2 La natura textual Los símbolos alfabéticos son uno de los conjuntos de entrada más complejos por lo que concierne los estudios de reconocimiento de patterns. Esto ocurre porque la natura de su representación pictórica es impredecible, y no tiene nada a que ver con la secuencia de los caracteres. 4.2.3 Mapatura Trazar el mapa en este caso tiene el sentido de convertir los objetos detectados en la imagen en matrices de píxel que puedan ser leídas por un sistema estándar. Esto es decir, tamaño y resolución iguales o similares por todas las letras encontradas. 4.2.4 Un ejemplo en Matlab Figura 2. Un ejemplo de caótico y no caótico Además, tan en la escritura de maquina como en la escritura manual se puede verificar la conexión de dos o más caracteres por píxeles comunes. Por ejemplo, cuando dos caracteres estén unidos provocan que existan píxeles que pertenezcan tanto a uno como a otro carácter, esta se llama inseparabilidad ortogonal. También puede ocurrir que no exista un espacio fijo entre caracteres: esto provoca errores a la hora del reconocimiento del perímetro de las letras. 4.2 Procesamiento de imágenes Antes de empezar la verdadera búsqueda de la letra mas cercana a nuestro trozo de imagen, tenemos que preparar dichos segmentos para su lectura. La matriz va a ser somita por algoritmos de segmentación, que proceden para la identificación y la clasificación de bloques de texto siempre más pequeños en el interior de la pagina y tienen como objetivo final el aislamiento de una serie de sub-matrices cada una continente la imagen digitalizada de cada carácter; casa de estas sub-matrices se va luego a someter por un proceso de clasificación mediante el cual el carácter en ella contenido se puede analizar y identificar. Un ejemplo básico de segmentación de una imagen que puede contener texto, construido con las funciones de las librerías de Matlab. Limpio la imagen: la convierto en niveles de gris, y la paso en un filtro que haga la media por cada sección 3*3. Esto permite de reducir el ruido salt and pepper si desenfocar demasiado la imagen. Figura 3. La imagen limpiada Individuo los objetos que hay en la imagen, primero usando la función bwlabel, que determina el numero de los objetos separados que hay, asignando a los píxeles del mismo objeto detectado el mismo numero. Figura 4. Individuación de los objetos Ahora, conociendo el numero de los objetos que hay en mi imagen, puedo empezar un ciclo que por cada objeto, busque las coordinadas de sus píxeles, y las use para colorar en negro los mismos píxeles de una matriz blanca tan grande como la imagen inicial. pattern prototipos: el prototipo que presenta el mayor grado de correlación se va a asumir como ejemplar del carácter incógnito. Una vez obtenida una matriz grande por cada carácter, hago un clip de todo lo que no es información evidente y paso esta nueva matriz en función que redimensione la matriz a un tamaño estándar. En el caso de que ningún prototipo dé lugar a un grado de correlación suficiente, el pattern incógnito se retiene no clasificable o desconocido. Cuando, en vez, se obtiene un grado de correlación bastantemente alto con dos o más prototipos, el sistema envía la decisión a la fase de post-processing. En este algoritmo, el aprendizaje es muy sencillo: se basa substancialmente en el almacenamiento de los datos de ejemplo, y de su estructura de entradas y salidas, y es el algoritmo del vicino mas cercano. Figura 5. Obtengo cada letra 4.3 Inteligencia artificial en OCR Una vez creada una instancia con una forma parecida a esa de las informaciones de entrada del sistema, se encuentran los ejemplos mas parecidos, a través de la distancia euclìdea (Fig. 6), y se toman las mismas salidas de ellos. Después una oportuna re-agregación de las informaciones sacadas mediante la segmentación y la clasificación, en fin se van a generar uno o más ficheros en salida, que tengan oportuno formato y que contengan el texto basto, que sea depurado por las informaciones no relevantes para el reconocimiento, como por ejemplo la forma y la dimensión de los caracteres, la forma y la posición del bloqueo de texto y así por el estilo. Figura 6. La formula de la distancia de Euclide Una vez que la sub-imagen que contiene cada carácter sea identificada y extraída, el lector sigue con la clasificación del relativo pattern, ósea la configuración de píxel binarios que constituyen la sub-imagen. Para que un sistema OCR vaya a llevar a cabo este objetivo, como por todos los otros sistemas de inteligencia artificial, tenemos que dotarlo con la cualidad humana del aprendizaje, ósea que se vuelva capaz de adquirir nuevos conocimientos a partir de las experiencias que ha vivido, las relaciones con el entorno. Esto significa que el sistema tiene que incrementar su conocimiento adquirido en sus fases de trabajo para que pueda realizar todos sus deberes con mayor eficiencia cada vez que se vayan presentando in diferentes ocasiones. Para actuar esto aprendizaje el sistema tiene que dialogar con un medio o con un otro sistema teniendo, así, una relación con el entorno que pueda ser memorizada y incorporada en su conocidos y en fin saber como comportarse en otros momentos. Principalmente están dos tipos de metodologías para la clasificación del carácter y ellos son distintos entre dos clases: - template matching (usada para lectores más baratos) - feature analysis (que es mas sofisticadas) Una vez encentradas estas salidas, se puede elegir la medida con la cual calcular la salida correcta por la instancia de las entradas, por ejemplo, haciendo la media o tomando el valor mas frecuente. Presentamos ahora un ejemplo de un algoritmo de OCR construido con el concepto del vecino más cercano. Cuando ya el fichero que contiene texto escrito a mano ha sido procesado a través de funciones de Matlab, encontramos un ciclo que por cada carácter encontrado, busca la salida más probable, y la escribe en un fichero. Para hacer esto, tengo unos ficheros en los cuales son almacenadas letras mas o menos parecidas a las letras del alfabeto y a los dígitos. Estos ficheros son guardados, al inicio del programa, en una matriz tridimensional, que entonces contiene, en orden, todas las letras y todos los dígitos. Es decir, ponemos que esta matriz se llame “3Dletras”. Entonces, 3dletras(1,:,:) será la imagen correspondiente a la letra A, 3dletras(2,:,:) será la B etc. Vamos a ver en el detallo que características diferentes ellos tengan y que ventajas y cual es el nivel de dificultad que implementan. Figura 7. El vector memorizado para las letras a, b y c 4.3.1 Template matching: Nearest Neighbour El método de template matching prevé la presencia en memoria de una serie de prototipos (templates), uno por cada carácter que va a ser reconocido, en forma de pattern incluidos en sub-imágenes. La clasificación del pattern relativo a un carácter incógnito consiste en la ejecución de correlación con cada uno de los Por cada letra que me sale del procesamiento, veo la correlación con cada una de estas, - - la función corr2 me restituye un coeficiente de correlación por cada letra con la mía. Este paso se podría hacer también tomando la distancia euclidea de mi instancia con la matriz correspondiente a cada letra; guardo un index en un array correspondiente a cada - coeficiente de correlación; lo mas alto, o sea, lo que indica cual imagen es la mas parecida a mi imagen, me sirve para determinar la letra de salida, para poderla escribir en el fichero textual; una vez obtenido el index, simplemente lo traduzco en la letra correspondiente gracias al hecho que los patrones están ordenados secuenciamente con el orden alfabético. Entonces, el index 4 significará la letra D etc. La operación de correlación entre el pattern incógnito y el pattern prototipo presenta una cierta complejidad computacional, pero puede ser ejecutada en tiempos razonablemente breves si se implementa adecuadamente. Sin embargo, cuando el número de prototipos se pone muy alto – cuando por ejemplo el sistema tiene que reconocer un gran numero de estilos (font) y/o un gran numero de cuerpos (dimensiones) – los tiempos de clasificación se mutan mucho y intolerablemente largos. Esta técnica resulta relativamente insensible al ruido, con tal que esto sea presente en cantidad limitada, pero presenta un grave inconveniente, porque es incapaz de “generalizar”. En otras palabras el template impone una estructura bien precisa para cada carácter y puede pasar que ligeras variaciones a la forma del prototipo, como la inclinación o el aumento de las dimensiones o distorsiones estilísticas, rendan el carácter irreconocible. En general, los lectores que utilizan esta técnica pueden reconocer solamente un numero limitado de font y cuerpos, pero siempre especificado con precisión. Ellos ofrecen las mejores prestaciones para textos a espaciado constante, como los escritos a maquina, mientras difícilmente pueden evitar errores en textos con espaciado proporcional. 4.3.2 Feature analysis La técnica de la feature analysis consiste, en vez, en la extracción de una serie de features, o características, que tienen un pattern incógnito (por ejemplo, la presencia de tractos horizontales o verticales o inclinados, ellos punto de encuentro, la presencia de curvas o cúspides y así por el estilo), en la descripción de sus relaciones (cercanía, contacto, atravesamiento, etc.) y en el confronto de esta descripción estructural con la de los caracteres prototipos. reconocimiento, pero solamente los de los cuales la descripción estructural no parezca bastante semejante. El sistema puede así reconocer los caracteres también fuertemente distorsionados o con ruido, siempre que la deterioración del pattern no conduzca a una alteración excesiva de su descripción estructural. Si el conjunto de los templates y de las características que intervienen en la descripción estructural es elegido con sagacidad, el sistema puede clasificar virtualmente cualquier carácter de cualquier estilo con cualquier dimensión; desde aqui la definición de omnifont por esta tipología de técnica e por los sistemas que la utilizan. Siguen unos ejemplos de los algoritmos de aprendizaje inductivo que se aplican a este tipo de analysis. Árboles Los árboles de decisión son técnicas que permiten de analizar decisiones basadas en el uso de los resultados y probabilidades asociadas, y describen las relaciones entre entradas y salidas a través de una forma ramificada. En estos sistemas, se modela una estructura donde las entradas y sus valores son los nodos y las ramas del árbol, y las hojas finales son las salidas del sistema. Los nodos que están mas arriba representan las cuestiones más importantes sobre las cuales tomar una decisión. Entonces, ¿cómo se define el orden correcto de los atributos? Para ello se emplean funciones de evaluación, donde se determina la relevancia de cada atributo de acuerdo con algún criterio específico de cada algoritmo. Dicha función se calcula evaluando el atributo que, puesto en el punto considerado, permite una reducción de la entropía, o sea, de la cantidad de información necesaria para exprimir los datos. En la Fig.8 presentamos un ejemplo de una implementación de un árbol ocr, y los criterios en los cuales se basa el desarrollo de la estructura de ramas y nodos. Un carácter se va así a clasificar por un criterio de máxima semejanza entre la su descripción estructural y la de uno de los prototipos. La operación de generación de descripción estructural puede sin embargo ser muy larga y compleja, porque el único factor verdaderamente crítico de esta técnica es constitutito muy por la elección de las features y por las relaciones que constituyen la descripción estructural. En contra de lo que pasa en el pattern matching, de todas maneras, el conjunto de elementos que constituyen la descripción es en general bastante pequeño y por lo tanto la operación de comparación con las descripciones de los templates puede ser rendidos muy rápidos. Además, el feature matching es capaz por su naturaleza de generalizar; como consecuencia no es necesario incluir en el set de templates todos los estiles de los que se desea el Figura 8. Ejemplo de albor OCR Después de haber limpiado la imagen original, llegando a una matriz de puntos negros y blancos, las características que ponemos como entrada, o sea, nodos, de nuestro árbol, son las intersecciones con los ejes x/y que pasan por el centro de la imagen de los píxeles negros, es decir, lo que describen la letra. 1. Entonces, el primer nivel de decisiones se basa en el numero de intersecciones con el eje x, y el según sobre el mismo valor referido al eje y. El cerebro humano trabaja en paralelo, aunque a una velocidad mas baja que la del ordenador, que tiene una natura secuencial: por esto, aunque Las redes neuronales artificiales sean hoy en día implementadas en tradicionales ordenadores seriales, simulan el poder paralelo del cerebro para producir salidas mas razonadas. Estos sistemas aprendes con ejemplos: desde conjuntos de datos, a través de algoritmos de entrenamiento, entienden la estructura de los datos, o sea la relación entre sus entradas y sus salidas. ¿Cómo puede un sistema hacer esto? Un ejemplo es el perceptron (Fig.10), la red neuronal más sencilla: una neurona artificial recibe en ingreso unas entradas, y con cada entrada llega también un peso, positivo o negativo que sea, que seria la eficaz sináptica en una neurona biológica. Figura 9. Las intersecciones de los ejes x e y 2. La segunda característica que vamos a tratar es si existen agujeros en la imagen. Esta característica es muy importante ya que divide muy claramente la imagen dentro de una clase u otra. Un agujero es identificado como presencia de mas de una área extensa de puntos blancos. 3. El tercero atributo es el resultado del calculo del numero de píxeles que definimos “finales”, o sea los píxeles que hay cuando se acaba de escribir. En este atributo se añade también los números de píxeles internos al carácter, es decir, los que describen la letra. 4. Para su cálculo se examinan las 8 adyacencias de cada píxel y según este dato se determina si son puntos de árbol, finales, o nada. Si el número de píxeles adyacentes con valor negro es igual a 1, entonces será un punto final. Por otro lado si este numero es mayor o igual a 3 será un punto interior. 5. Como ultimo, por cada carácter, el calculo del perímetro se toma como cuarta característica bajo la cual sacar conclusiones. 6. Las clases finales son elegidas a través de una comparación del carácter que ha llegado al nodo con todos los patrones o modelos de letras que satisfacen las características de dicha rama del árbol. Redes neuronales Las redes neuronales traen sus bases de la manera en la cual las neuronas celébrales comunican una con la otra: son modeles matemáticos que intentan de recrear las propiedades del pensamiento del ser humano y de su razonamiento. Figura 10. El modelo de perceptron Cada neurona tiene también un valor umbral que es substraído a la suma pesada de las entradas. Esta operación equivale a buscar la señal de activación de la neurona. Una función de activación filtra dicho señal, y produce la salida de la neurona. Las neuronas para trabajar en red tienen que ser conectadas, es decir, que cada entrada de una neurona corresponda a una salida de una otra. Perceptron es una típica red feedforward, y como tal, vea sus neuronas organizadas por niveles, o capas. El nivel de input no es exactamente neuronal: estas unidades simplemente sirven para introducir los valores de las variables. Además, hay la capa de output y los niveles centrales, o escondidos, en las cuales todas las neuronas de una capa anterior vean conectada su salida con cada una de las neuronas de la capa posterior. El numero de los niveles y de las neuronas es proporcional a la complejidad de la función que la red es capaz de modelar Figura 12. El proceso escondido de Markov ¿Cómo se traduce todo esto en un OCR? Figura 11. Los niveles de procesamiento Cada machina es un carácter. Si vemos este carácter como una matriz de arrays verticales, podemos definir cada estado como una columna de la matriz del patrono de la letra. En este ejemplo de red neuronal, se implementan tres niveles de procesamiento: el input, el output, y uno escondido. En este sentido, el pasaje de un estado al otro ocurre con probabilidad igual a 1 y cada estado, como vector vertical, puede asumir mas o menos los mismos valores. La capa de entrada es constituida por 150 neuronas, y esto es porque cada carácter identificado en la imagen surgente, llega en la red bajo la forma de una matriz 10*15 de puntos binarios: cada neurona permitirá la entrada de un píxel de la imagen. Cada entrada llega con un peso que ha sido inicializado por una función aleatoria que saca un numero comprendido entre dos extremos. En el segundo nivel hay 250 neuronas, cuyos numero ha sido decidido a través de estudios de optimización y evaluaciones estadísticas del error. Cada combinación de valores, en fin, es un símbolo conectado al estado y tiene su propia probabilidad de ocurrir. Cuando tenemos una nueva imagen que tiene que ser traducida en caracteres, simplemente se busca la correspondencia de cada vector vertical de la nueva imagen con unos de los símbolos de la librería que hemos memorizados con los vectores conectados a los estados de los caracteres, y luego se deduce el carácter correspondiente, a través de calculo de probabilidad y evaluando las transacciones. La capa de salida es un nivel de 16 unidades, una por cada bit de la codifica unicode del carácter correspondiente a la imagen de entrada. Un otro ejemplo: Los proceses de Markov Un proceso markoviano es muy parecido a una maquina a estados que funciona a través de arcos que corresponden a una probabilidad. Es decir que la transacción entre estados según la distribución de probabilidad de que el sistema, tomado el estado corriente, pueda pasar a otro nuevo. Si añadimos lo que se llama proceso escondido de Markov (Fig. 12), podemos extender esta propiedad a un dominio más ancho, incluyendo por cada estado, la probabilidad que un símbolo conectado con el estado ocurra. Figura 13. El proceso de reconocimiento 5. CONCLUSIONES Cuando las operaciones de reconocimiento de caracteres se sean completadas, el usuario puede intervenir manualmente sobre las informaciones extraídas por el sistema, o para corregir los eventuales errores generados durante el proceso o para la manipulación y la adaptación de del texto extraído. En el campo de campo de archivo de documentos algunos sistemas OCR son capaces de extraer también informaciones relativas a lo estilo de carácter (cursivo, negrita, subrayado, etc.) usado en cada porción de texto; es evidente que, en caso de que el usuario tenga intención de reutilizar en un programa word processor el texto extraído, estas informaciones suplementarias, si organizadas en manera adecuada, pueden tener muchísima importancia en fines de productividad. A inconvenientes como lo que hemos citado para el template matching e a otros se ha intentado de eludir, in estos últimos anos, con paquetes mas sofisticados que tienen el nombre de Intelligent Character Recognition (ICR), en los cuales el titulo de inteligente viene da la asociación con los sistemas de Inteligencia Artificial, que basan sus procedimientos también sobre un patrimonio de conocimientos capaz de crecer en manera automática durante la realización de los mismos procedimientos. En particular, los ICR se equiparon de diccionarios para la verificación según los cuales reconocer letras como licitas, y reconstruir entre ellos cada letra no reconocida. En consecuencia de esta experiencia ellos pueden aprender las idiosincrasias de los estiles con los cuales son confrontados. Además los ICR pueden analizar mejor la imagen digitalizada, en manera de reconocer algunas estructuras del diseño de los textos, excluyendo por ejemplo las imágenes, ósea tratando aparte ventanas extrañas al texto principal; y pueden también insertar en el fichero producido elementos de codifica que adviertan de la existencia de estas particularidades. Un procedimiento muy eficaz para esto puede ser el de las redes neuronales, por la capacidad que estas tienen en probar simultáneamente muchas alternativas de soluciones y también por la poca interferencia que el ruido genera en estas funciones. Además, puesto que una sola y mecanicista búsqueda de semejanzas no es bastante, se potencia el algoritmo sin analizar cada carácter, pero las enteras palabras o incluso los conjuntos de palabras que en confronto con un diccionario digital ponen más inmediata la elección de algunos términos, descartando los más improbables. Como todos los sistemas expertos estos últimos pasajes necesitan de un real adiestramiento, durante el cual el ordenador aprende como asociar las imágenes raster y las vectoriales a segunda de la frecuencia con la cual se presentan ciertas características. Podría ser considerada como parte del adiestramiento también la contextualización del texto para traducirlo. Esto en efecto permite en la fase de comparación con un diccionario o con una base da datos análoga, de focalizarse sobre los que pueden ser los términos de real interés. Si por ejemplo se va a digitalizar un texto medico, tendré la prioridad termines médicos mas que jurídicos o económicos. Por supuesto además, tanto mas está precisa la transposición, como más alta será la calidad del texto para adquirirlo. En porcentuales hoy somos cercanos a un 100% en el reconocimiento de textos escribidos a maquina en alfabeto latino y no más de 98% para textos impresos pero in caracteres cursivos, y en cerca de 80-90% para textos escritos a mano. 6. REFERENCIAS [1] http://www.ing.unife.it/elettr/IntelligenzaArtificiale/Lucidi/1 8-k-NN.pdf [2] http://www.pmar.it/pmag/ocr/ocr.htm [3] http://www.itl.nist.gov/iad/894.03/nn/finnc.pdf [4] http://www.codeproject.com/KB/recipes/UnicodeOCR.aspx [5] http://alojamientos.us.es/gtocoma/pid/pid10/OCRarbolbinari o.htm [6] http://www.inf.uszeged.hu/~ssip/2001/handouts/hajdua/sld016.htm [7] http://cslu.cse.ogi.edu/HLTsurvey/ch2node6.html [8] http://kt.ijs.si/jan_rupnik/Slides/Optical%20Character%20Re cognition%20using%20Hidden%20Markov%20Models.pptx [9] http://www.mathworks.com/ [10] http://www.eqbyte.com/