You are on page 1of 41

Modificacin de

Tesseract
Tesseract OCR
OBJETIVOS
Modificar el cdigo de Tesseract para la implementacin de un sistema de
captura.

Agregar componentes de pre procesamiento de imgenes como el


suavizado y el algoritmo de deteccin de piel.
TESSERACT OCR : Definicin
Tesseract es una herramienta de cdigo abierto (Apache License 2.0) que suministra un motor
de reconocimiento OCR que puede procesar diferentes formatos de imagen y realizar la
identificacin de hasta 60 lenguajes diferentes.
Esta herramienta comenz como un proyecto de investigacin de Ray Smith en 1985 y se
desarroll por HP Labs para su lnea de escneres de escritorio hasta 1995, ms tarde en 2005
fue liberada como cdigo abierto bajo las manos de Google Inc hasta la fecha.
Se desarroll con la arquitectura step-by-step pipeline que ejecuta paso a paso sus
componentes, y est escrita bajo lenguaje de programacin C/C++ lo cual le permite ser
ejecutado en casi cualquier sistema operativo incluyendo mviles.
Logr obtener su mayor reconocimiento en 1995 cuando fue una de las tecnologas ms
precisas de OCR.
TESSERACT OCR : Arquitectura
TESSERACT OCR : Arquitectura
Adquisicin: La adquisicin es la primera etapa y una de las ms
importantes en el proceso de OCR. Consta de la captura de la
informacin de una imagen o documento digital mediante la clase File del
paquete java.io que gestiona el flujo de entradas y salida de datos, donde
captura la ruta de la imagen en forma de cadenas.
TESSERACT OCR : Arquitectura
PRE - PROCESAMIENTO

Una vez obtenida una imagen se realiza el proceso de binarizacin, el cual


consiste en convertir una imagen en escala de grises en una imagen en blanco
y negro. Este proceso se efecta mediante la utilizacin de un umbral sobre
los valores de gris de la imagen, se dice que la informacin que est por
debajo de este umbral es negro y lo que est por encima es blanco. En este
paso se aplican tambin otro tipo de algoritmos llamados filtros y
transformaciones para eliminar imperfecciones y resaltar caractersticas
relevantes de la imagen.
TESSERACT OCR : Arquitectura
SEGMENTACIN

Teniendo una imagen de buena calidad ya se puede obtener la informacin


relevante para su reconocimiento. Primero se segmenta separando secciones
de imagen que comparten caractersticas.Es posible decir que los pxeles que
componen un carcter estn conectados y separados de otro carcter
diferente, a este proceso de separacin de caracteres se le llama etiquetado y
permite identificar elementos individuales en la imagen.
TESSERACT OCR : Arquitectura
EXTRACCIN DE CARACTERSTICAS

Es considerado uno de los pasos ms complejos del proceso de OCR. Una vez
obtenidos los caracteres individuales se obtiene un conjunto de
caractersticas, tambin llamado vector de caractersticas, las cuales se utilizan
para una posterior clasificacin de los elementos.Las caractersticas de un
elemento se obtienen a partir de su distribucin de puntos o pixeles en la
imagen.
TESSERACT OCR : Arquitectura
CLASIFICACIN

La etapa de clasificacin consiste en tomar los segmentos etiquetados


asociados con sus vectores de caractersticas y compararlos mediante
algoritmos llamados clasificadores.
Esta comparacin se realiza con bases de datos en donde se encuentran
almacenados y clasificados muchos segmentos con anterioridad.
TESSERACT OCR : Arquitectura
POST - PROCESAMIENTO

Por ltimo se toman todos los elementos clasificados y se marcan con la clase
a la que pertenecen, de esta forma se asocia un carcter especfico a cada
segmento.
INSTRUMENTOS DE ANLISIS :
DIAGRAMA DE CLASES
INSTRUMENTOS DE ANLISIS :
Diagrama de clases
INSTRUMENTOS DE ANLISIS :
Diagrama de clases
INSTRUMENTOS DE ANLISIS :
Diagrama de clases
INSTRUMENTOS DE ANLISIS :
Diagrama de clases
INSTRUMENTOS DE ANLISIS :
Diagrama de clases
INSTRUMENTOS DE ANLISIS :
Diagrama de clases
INSTRUMENTOS DE ANLISIS :
Diagrama de clases
INSTRUMENTOS DE ANLISIS :
Diagrama de clases
INSTRUMENTOS DE ANLISIS :
DIAGRAMA DE SECUENCIA
Tesseract.doOcr():
Tesseract.setImage():
Tesseract.createDocument():
INSTRUMENTOS DE ANLISIS :
DIAGRAMA DE LGICA DE
NEGOCIOS
Diagrama de lgica de negocios
En lo que se refiere a la vista lgica, la aplicacin, como puede verse en la vista
conceptual, presenta la funcionalidad de los algoritmos para el tratamiento de
imgenes digitales. Se tiene por un lado la carga de entrada, que ser una
imagen que cargaremos directamente al sistema.

Por otro lado, aparece el Tratamiento de imgenes, el cual se encargar de


realizar los algoritmos para poder localizar las zonas de inters del OCR.

Por ltimo, aparece el Reconocimiento de caracteres; una vez localizadas las


zonas requeridas, se proceder a la lectura de dichos caracteres.
Diagrama de lgica de negocios
MODIFICACIN DE
CDIGO
DIAGRAMA DE CASOS DE USO
FICHAS DE CASO DE USO
FICHAS DE CASO DE USO
FICHAS DE CASO DE USO
5
Resultados
Fases de Preprocesamiento
1. Algoritmo de segmentacin de piel

2. Suavizado

3. Binarizado
Algoritmo segmentacion de piel
Algorimo de suavizado
Se utilizo el algoritmo de media ponderada para eliminacion de ruido
logrando asi una mejor segmentacion de la imagen, los valores ponderados
para una mascara de 3 x 3 son :arr[1][1]=1/16, arr[1][2]=1/8, arr[1][3]=1/16,
arr[2][1]=1/8,arr[2][2]=1/4,arr[2][3]=1/8,arr[3][1]=1/16,arr[3][2]=1/8,arr[3]
[3]=1/16
Binarizado
Se Utillizo un algoritmo con escala de grises con una tolerancia de 10
Entrenamiento
Se utilizo la herramienta JTessBox editor para la manipulacion de los objetos
entrenados .
Errores de entrenamiento
Conclusiones
La principal fuente de algoritmos de procesamiento de imagenes se
encuentra en la libreria dll libTesseract.dll .

La herramienta Tess4j es un buen parser para esta libreria .

Si bien es cierto que de esta libreria se encuentra el codigo fuente. Las


operaciones de cambio de algoritmo no podran ser realizadas desde el
lenguaje java . Por lo tanto existe cierta dependencia al codigo fuente original
de Tesseract.

Tesseract limita su entrenamiento a caracteres especificos predeterminados


Conclusiones
Si se desea implementar una herramienta para la deteccin de lenguajes a
futuro , lo ideal seria cambiar de lenguaje de programacion a c++ para
trabajar directamente con los algoritmos de Tessearct o no usar Tesseract.

You might also like