EL RECONOCIMIENTO DE TEXTOS

Anuncio
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/
Descargar