You are on page 1of 8

1

M. S. Armijos, Miembro del Proyecto, y R. F. Jumbo, Miembro del Proyecto

Aplicacin de Reconocimiento ptico de Caracteres


(OCR) para el Proceso de Digitalizacin de

Documentos
que permite digitalizar y reconocer caracteres de algn tipo de
Resumen En este artculo se desarrolla una solucin a los fuente de texto, que tiene una mayor dificultad en textos
diferentes problemas que se presentan en el reconocimiento escritos a mano por los diferentes tipos de caligrafa de cada
ptico de caracteres (OCR), enfocado a la digitalizacin de persona. Para lograr este proceso se debe seguir cuatro etapas
documentos e imgenes. Se utiliz Tesseract como la librera por
que permitirn diferenciar el texto [1]:
ser robusta, potente y por la capacidad de poder ser entrenada,
adems utiliza leptnica como algoritmo OCR; se muestran los Binarizacin: Digitaliza los caracteres en una
principales problemas al momento de reconocer los documentos, imagen blanco y negro.
as como una serie de mtodos de correccin de caracteres y Fragmentacin: Segmentacin de la imagen
filtros de imagen que permitieron obtener un mejor resultado.
carcter por carcter para trabajar con cada uno de
ellos individualmente.
Palabras Claves: OCR, Algoritmos, Leptnica, Tcnicas
OCRs. Reduccin de los componentes: Eliminacin de
informacin irrelevante que puede alterar los
AbstractIn this article a solution is developed for different caracteres.
problems presented in the Optical Characters Recognition, Comparacin de caracteres: Se compara los
focused on the digitalization of documents and images. Tesseract caracteres obtenidos con patrones definidos y
was used as a wide-ranged library and because of capacity it has conocidos para su reconocimiento.
to be trained, also Leptonica was used as OCR algorithm; the
main problems at the time of recognizing the characters are B. Tesseract
showed as well as several methods to correct characters and
Este documento puede usarse como plantilla para preparar
image filters to get better results.
su escrito tcnico. Puede sobre escribir en las diferentes
secciones del documento, cortar y pegar en l y/o usar los
estilos de las diferentes secciones y sus ttulos.
I. INTRODUCCIN

E
Tesseract es un motor OCR libre. Fue desarrollado
L Reconocimiento ptico de caracteres o OCR por originalmente por Hewlett Packard como software propietario
sus siglas en ingls, Optical Characters Recognition- entre 1985 y 1995. Tras diez aos sin ningn desarrollo, fue
es un proceso que tiene como objetivo digitalizar y liberado como cdigo abierto en el ao 2005 por Hewlett
reconocer los caracteres de un determinado alfabeto o Packard y la Universidad de Nevada, Las Vegas. Tesseract es
simbologa contenidos en diferentes fuentes de texto, como desarrollado actualmente por Google y distribuido bajo la
puede ser una hoja impresa por un procesador de palabras o licencia Apache, versin 2.0.
texto escrito a mano por un humano, donde este tiene el mayor Tesseract est considerado como uno de los motores OCR
nivel de dificultad para su reconocimiento por la diversa libres con mayor precisin disponibles actualmente [2].
caligrfica de cada individuo; adems de otros factores como
el tamao y la similitud entre smbolos.
C. Caractersticas de Tesseract
II. BACKGROUND En 1995, Tesseract era uno de los tres mejores motores
Use el espaciado y la revisin ortogrfica automticos. OCR en cuanto a precisin, adems est disponible para
Asegrese adicionalmente que sus oraciones estn completas y Linux, Windows y Mac OS X, sin embargo, slo ha sido
que haya continuidad dentro de los prrafos. Revise la probado por los desarrolladores en Windows y Ubuntu. Hasta
numeracin de sus grficas (figuras y tablas) y asegrese que la versin 2, Tesseract slo poda aceptar como entrada
incluya todas las referencias apropiadas. imgenes de una sola columna en formato TIFF. En estas
primeras versiones no se inclua anlisis de patrones, y por
A. OCR tanto, las imgenes con mltiples columnas o anotaciones
OCR (reconocimiento ptico de caracteres), es un proceso producan resultados ilegibles. Desde la versin 3, Tesseract
Este trabajo fue realizado por el grupo de desarrollo y conto con la tutora soporta el formato en el texto y el anlisis del patrn de la
del docente de la Universidad Nacional de Loja Ing. Manuel Crdoba pgina. A travs de la biblioteca Leptonica, se consigue la
M. S. Armijos Estudiante Universidad Nacional de Loja, Carrera de compatibilidad con nuevos formatos de imagen, adems, se
Ingeniera en Sistemas, (e-mail: manuel.s.armijos@unl.edu.ec).
R. F. Jumbo Estudiante Universidad Nacional de Loja, Carrera de
puede detectar si el texto proporcional o monoespaciado.
Ingeniera en Sistemas, (e-mail: rfjumboh@unl.edu.ec). Tesseract puede procesar ingls, francs, italiano, alemn,
espaol, portugus brasileo y neerlands, y puede ser
2

entrenado para funcionar con otros idiomas [2].


Juan Pablo Ordez, dice que trabajar con redes neuronales
como la que se utiliza en este trabajo, se distingue entre una
D. Lenguaje de Programacin(Java)
primera etapa de aprendizaje o entrenamiento de la red y una
Java es un poderoso lenguaje de programacin de segunda etapa de funcionamiento u operacin de la red. y que
computadoras, divertido para los principiantes y apropiado la caracterstica ms importante del algoritmo
para los desarrolladores experimentado que desarrollan backpropagation es su capacidad para la generalizacin es
sistemas de informacin de tamao considerable [3]. decir su facilidad para salidas satisfactorias a entradas que el
sistema nunca vio en la fase de entrenamiento esta
Los programas de java cuando se compilan, se convierten caracterstica le da versatilidad para que este puede ser
en un cdigo intermedio (bytecode), el cual se comprueba, se implementado en aplicaciones muy complejas.
carga en la memoria y luego es interpretado por la JVM (Java
Virtual Machine) no genera ejecutables, ni cdigo nativo para En su artculo la Ing. Maria Fernanda Frydson [6], de
el sistema operativo [4]. Guayaquil nos muestra una implementacin de un sistema de
reconocimiento de caracteres aplicado a la deteccin de los
caracteres de placas vehiculares. En este estudio utiliza
Tesseract con algoritmo OCR por ser robusto, potente y por su
capacidad de ser entrenado.

Maria Fernanda Frydson describe a Tesseract en dos etapas


la primera de aprendizaje supervisado o entrenamiento, que
consiste en la extraccin de caractersticas de un carcter para
que sean almacenadas en una librera de modelos, con la que
finalmente, en la etapa de reconocimiento, se realice una
verificacin de los caracteres coincidentes siguiendo algn
modelo matemtico o estadstico y dependiendo del porcentaje
de coincidencias se escoger el carcter resultante del anlisis
y concluye que se consigui realizar una librera de
entrenamiento con excelentes resultados que podra mejorar
con un entrenamiento ms robusto.

Como podemos observar la utilizacin de OCR se ha


incrementado y cada da la utilidad que se le da a esta tcnica
es ms importante, tanto as que existen aplicaciones para
smartphones que utilizan esta tcnica para la resolucin de
Fig. 1 Ejemplo de funcionamiento de Java Virtual Machine
ejercicios matemticos complejos como es el caso de
photomath, la cual por medio de la cmara del celular se
encarga del reconocimiento de caracteres para utilizarlo en la
E. Trabajos Relacionados resolucin de problemas que van desde una suma hasta
Segn Juan Pablo Ordoez [5], de la ciudad de Loja nos ecuaciones diferenciales complejas [7].
manifiesta que, para procesar informacin mediante un
computador de un documento impreso, existen dos formas:
Una primera consistira en introducirla a travs
del teclado, labor larga y tediosa
Otra posibilidad es automatizar esta operacin
por medio de un sistema de OCR compuesto de un
software y hardware adecuado que reducira
III. PROPUESTA
considerablemente el tiempo de entrada de datos.
La
Y propone resolver el problema con redes neuronales,
utilizando una red tipo multicapa denominada
backpropagation Algoritmo de aprendizaje supervisado que
se usa para entrenar redes neuronales artificiales. El algoritmo propuesta del grupo
consiste en minimizar un error (comnmente cuadrtico) por encargado del presente proyecto se centra en la
medio de gradiente descendiente, por lo que la parte esencial implementacin de una aplicacin de escritorio desarrollada
del algoritmo es clculo de las derivadas parciales de dicho en java que permita la digitalizacin de documentos e
error con respecto a los parmetros de la red neuronal. imgenes mediante la tcnica de reconocimiento ptico de
3

caracteres (OCR). Mediante el ingreso de una imagen digital


guardada en la computadora o una imagen tomada con el
celular u otro dispositivo electrnico. La aplicacin procesa
esta imagen mediante el algoritmo leptonica incluida en la
librera Teserract el cual devuelve un texto editable al usuario.

IV. EXPERIMENTOS Y DISCUSIN

A. Protocolo Experimental
Aplicacin de reconocimiento ptico de caracteres (OCR)
para el proceso de digitalizacin de documentos, se desarroll
como un proyecto de investigacin que permite introducir una Fig. 3 Imagen maestral de un texto plano con ruido para su pre procesamiento
imagen (jpg, PNG, TIFF, bmp, etc), en un programa con el programa realizado en NetBeans-Java por el grupo investigativo
utilizando la librera Tesseract 3.2.1
desarrollado en el lenguaje de programacin JAVA, mediante
la librera TESSERACT, desarrollada actualmente por Google
y considerado como uno de los motores con mayor precisin. B. Resultados y discusin
Segn Juan Pablo Ordoez [5], de la ciudad de Loja nos TESSERACT ORIGINAL Fig. 2
manifiesta que, para procesar informacin mediante un Luego de la implementacin y configuracin de la librera
computador de un documento impreso, existen dos formas: TESSERACT con su algoritmo original se obtuvo el siguiente
Una primera consistira en introducirla a travs texto editable de una imagen limpia donde no existir ningn
del teclado, labor larga y tediosa problema al momento de su reconocimiento:
Otra posibilidad es automatizar esta operacin
por medio de un sistema de OCR compuesto de Equilibrio del color
un software y hardware adecuado que reducira EI algoritmo de equilibrio de color aplica un factor
considerablemente el tiempo de entrada de datos multiplicador independiente sobre cada canal para
El Objetivo principal de este proyecto fue el de desarrollar de esta manera conseguir que tengamos una serie
un programa para escritorio funcional en donde se puede de puntos considerable en ambos extremos del
aplicar el proceso OCR que comprende las siguientes etapas: histograma. De esta manera se consigue un
Binarizacin contraste interesante haciendo que las fotos tomen
Segmentacin de la imagen ms viveza. Este ltro trata los canales por
separado consiguiendo que no haya ningn canal
Adelgazamiento de los componentes
que sea predominante sobre los otros.
Comparacin con patrones
Y as, mediante la utilizacin de la librera TESSERACT, el Para realizar este algoritmo almacenaremos tres
grupo obtuvo buenos resultados con imgenes limpias, ntidas histogramas, uno por cada canal y para obtenerlo
y claras como la Fig. 2 donde no se tiene problemas con el contaremos cuantos puntos hay en cada tono [0
reconocimiento, sin embargo en la Fig. 3, los resultados no 255] para cada canal [rgb]. Una vez tenemos el
son los esperados por lo que la imagen est constituida en un histograma de los tres canales, vamos a desechar el
70% de ruido y al momento de su reconocimiento este ruido 1% de puntos en cada extremo. De esta manera
toma valores lo que nos da un resultado negativo, en imgenes evitamos que algn punto que pueda ser ruido o un
que tengan problemas como ruido, demasiado contraste, baja pequeo objeto no apreciable no dele expandir los
nitidez, poco texto, colores opacos entre otros, por lo que se tonos por todo el espectro.
implement unas mejoras en el pre procesamiento de la
Fig. 4 Resultado de la Fig. 2 con el algoritmo original
imagen mediante la creacin de mtodos de como:
Escala de grises Discusin Fig 2 - Tesseract Original: TESERRACT no
Blanco y negro obtuvo problemas al momento de extraer el texto de esta
Recorte imagen, los factores que intervienen para obtener un buen
Eliminacin de ruido resultado son:
Para evidenciar los resultados obtenidos con la Imagen Clara
implementacin de las mejoras se utiliz las siguientes Imagen Ntida
imgenes mustrales. Imagen con un porcentaje (%) de ruido mnimo
Resolucin 756*432 pixeles
Fig. 2 Imagen maestral limpia de un texto plano para su pre procesamiento
Fondo Blanco
con el programa realizado en NetBeans-Java por el grupo investigativo
utilizando la librera Tesseract 3.2.1 TESSERACT ORIGINAL Fig. 3
Luego de la implementacin y configuracin de la librera
TESSERACT con su algoritmo original se obtuvo el siguiente
texto editable de una imagen con ruido donde habr algunos
pequeos errores en su reconocimiento:
4

Imagen Caracteres Error xito Confusi


n
'33
DESKTOP-HGJFOP Fig. 6 57 0% 100 % 5.26 %
est listo para conectarse de forma na\mbrica.
TESSERACT CON BLANCO Y NEGRO Fig. 3

Fig. 5 Resultado de la Fig. 3 con el algoritmo original

Discusin Fig. 3 Tesseract Original: TESERRACT


reconoce los grficos contenidos en la imagen como caracteres
e intenta interpretarlos como texto por lo que se presentan en
los resultados smbolos desconocidos, de igual manera no
interpreta bien algunos caracteres como la ele debido a que en
el momento de la comparacin con patrones elige uno muy
similar, los factores que intervienen para obtener este error
son:
Imagen con un porcentaje alto de ruido
Fondo Azul Fig. 8 Imagen aplicada el filtro de blanco y negro

TABLA I Luego de aplicar el filtro de blanco y negro a la imagen


RESULTADOS EXPERIMENTALES DE LA FIG. 3 original y realizar el proceso TESSERACT a la nueva imagen
Imagen Caracteres Error xito Confusi modificada se obtuvo el siguiente texto:
n
Fig. 3 57 5.26 % 94.7% 7.01 %
r33
DESKTOPL1GJFOP
TESSERACT CON ESCALA DE GRISES Fig. 3
est listo para conectarse de forma inalmbrica.

Fig. 9 Resultado de la Fig. 2 con el filtro de blanco y negro

Discusin Fig. 8 A diferencia de las imgenes en escala de


grises donde cada color RGB tiene su tonalidad equivalente en
gris, la imagen en blanco/negro es monocromo, es decir solo
acepta el blanco y el negro sin ninguna escala intermedia.
Java nos permite trabajar con imgenes en blanco y negro y
realizar la conversin fcilmente utilizando la clase
Fig. 6 Imagen aplicada el filtro escala de grises BufferedImage.TYPE_BYTE_BINARY, los factores que
intervienen para obtener este error son:
Luego de aplicar el filtro escala de grises a la imagen Imagen con un porcentaje considerable de ruido
original y realizar el proceso TESSERACT a la nueva imagen
modificada se obtuvo el siguiente texto: TABLA III
RESULTADOS EXPERIMENTALES DE LA FIG. 8
r33 Imagen Caracteres Error xito Confusi
DESKTOPL1GJFOP n
est listo para conectarse de forma inalmbrica. Fig. 8 57 0% 100 % 5.26 %

Fig. 7 Resultado de la Fig. 2 con un filtro de escala de grises


Discusin Fig. 6 Para obtener la escala de grises se
obtiene para cada punto una tonalidad idntica para asociarla a
los tres colores primarios. En nuestro caso para obtener valor Fig. 10 Aplicando un recorte a la Fig. 2
nico vamos a realizar la media de las tres tonalidades de la
imagen origen, TESERRACT reconoce la nueva imagen con
mucha ms claridad que cuando se tena un fondo azul, as en
el momento de la binarizacin y comparacin con patrones lo
hace de una manera mejor, los factores que intervienen para
obtener este error son:
Imagen con un porcentaje considerable de ruido

TABLA II
RESULTADOS EXPERIMENTALES DE LA FIG. 6
5

Fig. 11 Resultado de la Fig. 10 aplicado un recorte


Fig. 14 Resultado de la Fig. 12 aplicado la eliminacin de ruido

Discusin Fig. 13 Para aplicar la eliminacin de ruido de


una imagen se sigue el siguiente proceso:
El proceso es el siguiente:
1. Se toman los pixeles vecinos.
20 22 22

40 50 40

Fig. 11 Imagen aplicada un recorte 25 10 22

Luego de aplicar un recorte nicamente al rea especfica


2. Se ordenan en forma ascendente para quedar as.
donde se tiene texto en la imagen se obtuvo el siguiente texto:
10, 20, 22, 22, 22, 25, 40, 40

DESKTOPL1GJFOP 3. Se elige el valor que est en medio.


est listo para conectarse de forma ina!mbrica. 10, 20, 22, 22, 22, 25, 40, 40
Fig. 12 Resultado de la Fig. 10 aplicado un recorte
4. Se pone el nuevo valor en la posicin en la cual
Discusin Fig. 11 Para aplicar un recorte a una imagen estamos, para quedar asi.
que tiene poco texto se cre una capa encima de la imagen
original que permite mediante un cuadro de color rojo 20 22 22
seleccionar el rea donde se encuentra el texto, TESERRACT
reconoce la nueva imagen con mucha ms claridad ya que se 40 22 40
centra nicamente en la parte recortada y no en las dems
25 10 22
partes que no tienen nada de texto conocido como ruido, un
recorte a una imagen tambin implica menos peso de pixeles y
por ende la librera TESSERACT se va a tardar menos tiempo 5. Este proceso se hace hasta recorrer todos los pixeles y
en realizar el proceso OCR, los factores que intervienen para sirve para tomar el valor de en medio para borrar el efecto
obtener este error son: ruido de una imagen
Imagen con un porcentaje mnimo de error
Imagen recortada TABLA V
RESULTADOS EXPERIMENTALES DE LA FIG. 13
TABLA IV Imagen Caracteres Error xito Confusi
RESULTADOS EXPERIMENTALES DE LA FIG. 11 n
Imagen Caracteres Error xito Confusi Fig. 13 57 8.77 % 91.22 % 5.26 %
n
Fig. 11 57 1.7 % 98.24 % 0.0 %
DISCUSIN FINAL
TESSERACT CON ELIMINACIN DE RUIDO Fig. 2 La aplicacin y resultado de TESSERACT son muy buenos
considerando que no solo nos permite el reconocimiento de
caracteres de imgenes sino tambin nos permite el
reconocimiento de caracteres de archivos .PDF obteniendo
muy buenos resultado debido a que los caracteres de un .PDF
son digitales.
La aplicacin de los diferentes mtodos creados por el
grupo funcionan en imgenes que presentes problemas como
los antes mencionado, para el correcto funcionamiento de cada
uno de los mtodos depende mucho el tipo de imagen, ya que
si por ejemplo ponemos un filtro de eliminacin de ruido a una
imagen que no tiene problemas con esto, el filtro en vez de
Fig. 13 Resultado de la Fig. 2 aplicado la eliminacin de ruido ayudarnos a tener un mejor resultado lo nico que va hacer es
daarnos la imagen y por ende TESSERACT va a reconocer
Luego de aplicar el mtodo de eliminacin de ruido se caracteres que no existen en la imagen original.
obtuvo el siguiente texto: TESSERACT tambin permite el reconocimiento de
caracteres de imgenes tomadas con el celular de algn
documento, hoja, informacin, que no necesariamente tiene
D?3
que ser informacin digital o impresa, tambin de informacin
DESKTOP-L1GJFOP
escrita a mano como las siguientes:
est Iusto para conectarse de forma nalmbnca
6

A SaFe 'Plzce 4:o Fall

Fig. 20 Resultado de la Fig. 19

Fig. 15 Imagen tomada con el celular


Fig. 21 Imagen tomada con el celular
Firma:
Ing. Jorge Ivn Tacto Ms. C. AAA123
C.I.
Fig. 22 Resultado de la Fig. 21 con la eliminacin de ruido
DOCENTE RESPONSABLE DE PRACTICAS
PRE PROFESIONALES
V. CONCLUSIONES
Fig. 16 Resultado de la Fig. 15 aplicando un recorte con TESSERACT
A. Anlisis
TABLA VI
RESULTADOS FINALES
Imagen Caracteres Error xito
Confusi
n
Fig. 3 57 5.26 % 94.7% 7.01 %
Fig. 6 57 0% 100 % 5.26 %
Fig. 8 57 0% 100 % 5.26 %
Fig. 11 57 1.7 % 98.24 % 0.0 %
Fig. 13 57 8.77 % 91.22 % 5.26 %
El anlisis de la imagen sometida a pruebas con la librera
TESSERACT y con los mtodos creados para mejorar los
resultados de la misma reflejan un porcentaje de xito del 96,7
% y el porcentaje de confusin es de 4.55 %.
Los resultados muestran que la librera TESSERACT
sumado a los mtodos de pre procesamiento de imgenes son
aceptables, el texto obtenido se puede interpretar y entender a
Fig. 17 Imagen tomada con el celular la perfeccin.
POR FAVOR SIRVASE B. Conclusiones
TOCAR
Fig. A LAdePUERTA
16 Resultado la Fig. 15 aplicando TESSERACT ORIGINAL.
TESSERACT no solo realiza el reconocimiento de
PARA BRINDARLE
imgenes digitales, tambin de imgenes tomadas
ATENCIN
con el celular o con otro cualquier dispositivo y de
Fig. 18 Resultado de la Fig. 17 aplicando TESSERAC ORIGINAL
documentos digitales de formato PDF.
Para el Pre procesamiento de imgenes con
problemas es necesario realizar un mejoramiento de
la misma, como aplicar filtros que permitan tener una
imagen ms clara y ms entendible para
TESSERACT.
La librera TESSERACT es muy ligera y escalable, lo
que permite poder utilizarla en cualquier proyecto y
posibilita su mejoramiento mediante la aplicacin de
mtodos para el tratamiento de imgenes antes de
realizar el proceso OCR.
C. Mejoras y Posibles Trabajos
La utilizacin de TESSERACT para posibles trabajos
futuros o proyectos, implica una excelente eleccin, no solo
Fig. 19 Imagen tomada con el celular
por su precisin al momento de realizar el proceso de OCR,
7

sino tambin por su sencillez al momento de su programacin


y depuracin.
VII. ANEXOS
TESSERACT es una librera completa, solo tienes que
descargarla desde su pgina oficial, e implementarla en el
proyecto especfico. Una manera de ayudar a tener un mejor
resultado es la utilizacin de mtodos o procedimientos para
tratar de mejorar la imagen antes de pasarla como parmetro a
la librera y as obtener un margen de error menor a los
obtenidos en este proyecto.

El grupo pretende seguir desarrollando mtodos y


procedimientos para el pre procesamiento de las imgenes, as
como posibles aplicaciones administrativas, educativas, entre
otras.

VI. REFERENCIAS
Fig. 23 Resultado de una imagen digital

[1] O. M. Piragauta, O. D. Bello and B. Montes, Reconocimiento ptico de


nmeros escritos a mano usando funciones de base radial y sistema
memtico diferencial.
[2] Kale, K., Mehrotra, S. and Manza, R. (2010). Computer vision and
information technology. 1st ed. New Delhi: I.K. International Publishing
House Pvt. Ltd.
[3] Paul Deitel., (2011). Cmo programar en JAVA. 1st ed. Pearson
Educacin de Mxico, S.A. de C.V.
[4] Paul Deitel., (2011). Cmo programar en JAVA. 1st ed. Pearson
Educacin de Mxico, S.A. de C.V.
[5] J. P. Ordoez, Reconocimiento ptico de caracteres (ORC) con redes
neuronales.
[6] M. F. Frydson, Aplicacin de visin por computador para el
reconocimiento automtico de placas vehiculares utilizando OCR
convencionales.
[7] Photomath - Camera calculator, Photomath.net. [Online]. Available:
https://photomath.net/en/. [Accessed: 16-Nov-2016].
Fig. 24 Resultado de una imagen tomada con el celular

Fig. 25 Resultado de una imagen digital


8

Fig. 26 Resultado de una imagen digital

You might also like