You are on page 1of 5

Algoritmo de Reconocimiento de

caracteres basado en visin


asistida por computador
utilizando OCR y OpenCV
Ingeniera Artificial UNPRG Agosto 2016

2 autores, incluyendo:
C. Mercedes Guevara Velez
129047H

Wilman Delgado Gonzales


Codigo

Algoritmo de Reconocimiento de
caracteres basado en visin asistida
por computador utilizando OCR y
OpenCV
M. Guevara *, W. Delgado*
*Curso de Inteligencia Artificial, Escuela de Ingeniera de Sistemas, Universidad
Nacional Pedro Ruiz Gallo
Resumen - La sofisticacin del desarrollo de
muchas aplicaciones de procesamiento de
computadora se utilizan en el reconocimiento ptico
de caracteres (OCR) o simplemente. OCR es una
conversin mecnica o electrnica de imgenes
escaneadas de manuscrito, mecanografiado o
impreso en texto codificado a la computadora. El
estudio de OCR ltimamente ha dado mtodos con
buena precisin y la velocidad de la computadora
que es cada vez ms ligera. El propsito del
desarrollo de esta aplicacin es hacer ms fcil para
los usuarios la conversin a texto digital.
La implementacin de la aplicacin de OCR,
mediante el mtodo del contorno con la librera
OpenCV (EmguCV), se realiza mediante la funcin
del mtodo de deteccin de contorno. El programa
fue desarrollado utilizando software libre de
Microsoft corporativo, es decir, Microsoft Visual C#
2015 Express.
Los resultados de esta investigacin, es decir, en
la forma de aplicacin de OCR basado en el
escritorio que se ha desarrollado con xito. Los
requisitos funcionales todos han sido implementados
con xito segn el proyecto. Anlisis de algunas
muestras existentes que se han aplicado con xito.

informacin en ayudar a las necesidades


humanas. Uno de ellos es una sofisticacin
informtica muy utilizado para ayudar a un trabajo
que va desde contar, escribir, crear informes, hasta
el procesamiento digital de imgenes. La
computadora optimiza el trabajo, abre nuevas
innovaciones para ayudar a trabajar en cualquier
campo, con la ayuda de ordenadores que trabajan
eficientemente.
En la sofisticacin del desarrollo del
tratamiento por ordenador, muchas aplicaciones
utilizan el Reconocimiento de caracteres ptico o
OCR, se abrevia a menudo. OCR es una
aplicacin que sirve para descargar las imgenes
escaneadas en imagen y texto, aunque estas
tambin pueden ser un soporte de aplicaciones
adicionales para escneres.
Se pueden implementar en la computadora
gran cantidad de textos, un ejemplo que ser
aplicado por los autores, usando imgenes que
sern transformadas en letras latinas. Las
imgenes estarn representando la inscripcin
sobre el papel y luego se llevar a cabo el proceso
de obtencin de un resultado de salida en la forma
del texto latino.
II. DESARROLLO

Palabras claves: OCR,


contorno

mtodo de

deteccin

I. INTRODUCCIN
La corriente de la tecnologa en evolucin
fuerza e un hombre a abandonar la vieja cultura
por la cultura moderna para aprender
continuamente, es afectado por las actividades que
implican la funcin de tecnologa de la

Una vez que la imagen ha sido tratada y se


tiene en la perspectiva deseada, hay que realizar la
extraccin de caracteres. Es decir, reconocer las
letras y los nmeros que componen la placa de la
matrcula. Para ello se implementa un algoritmo
OCR (Optical Character Recognition).
El reconocimiento de caracteres se puede
realizar de diversas formas, tales como

operaciones XOR con unas plantillas, extraccin


de caractersticas (nmero de Euler, nmero de
agujeros, etc.), etc.

Para reconocer los caracteres, se pueden crear


algoritmos propios o utilizar, como en este trabajo,
una librera ya existente. Para utilizar esta librera
se crea un programa, el cual hace llamadas a las
API de dicha librera. La librera utilizada es
Tesseract, que es un motor OCR, el cual contiene
una gran cantidad de funcionalidades.
La extraccin de los caracteres va a permitir
guardarlos en un archivo para que se puedan
utilizar de la forma que el usuario desee.
Para poder aplicar un OCR, es importante que
la calidad de la imagen donde se encuentran los
caracteres sea alta, es decir, sin ruidos ni
elementos extraos. Tambin hay que tener en
cuenta que la tipografa de texto a reconocer no
debe ser poco comn, ya que sera muy
complicado detectar los caracteres.
Para su reconocimiento, se parte de la premisa
de que los caracteres ya estn segmentados, es
decir, etiquetados. Tambin es necesario que la
imagen contenga slo dos niveles de gris; est
binarizada.
Aun as, las imgenes reales no son perfectas,
de modo que el OCR se encuentra con varios
problemas:

El dispositivo que toma la imagen puede


introducir niveles de gris al fondo que no
pertenecen a la imagen original.
La resolucin de los dispositivos puede
introducir ruido en la imagen, afectando los
pxeles que han de ser procesados.
La distancia entre caracteres, que no
siempre es la misma, puede producir
errores de reconocimiento.
La conexin de dos o ms caracteres por
pxeles comunes tambin puede producir
errores.

Todos los algoritmos OCR tienen como


finalidad diferenciar texto de una imagen
cualquiera. Para hacerlo se basan en cuatro etapas,
que se muestran en la figura 2.1.

Figura 2.1. Etapas de un algoritmo OCR


a.

Binarizacin.

Las imgenes digitales se componen utilizando un


amplio rango de valores de intensidad, a las que se
las denomina imgenes de nivel de gris.
Normalmente el rango de niveles de grises 256 (8
bits por pxel), pero ello no quiere decir que tenga
que ser siempre as. De modo que puede variar
dependiendo de la aplicacin.
Por otro lado, hay aplicaciones que no necesitan
tantos niveles de gris, ya que las imgenes pueden
estar representadas por pocos niveles. En caso de
reducir el nivel de gris hasta llegar a tener 2
valores, se tiene una imagen binaria. Este tipo de
imagen se muestra en la figura 2.2.

Figura 2.2. Imagen normal / binarizada


Donde los pxeles en negro equivalen a 0 y los
pxeles en blanco a 1 (255), que se almacenan en
la memoria del ordenador. Con este tipo de

imgenes se consigue reducir la representacin y


el procesamiento de la imagen al mnimo.
Reducir la representacin de la imagen hace
que se aproveche la memoria y la potencia
computacional. Adems, se pueden obtener las
propiedades geomtricas y topolgicas de manera
rpida de los objetos que componen la imagen.
Para realizar una correcta binarizacin, la
etapa clave es la eleccin del umbral, que es la
referencia para separar el fondo de los objetos.
A continuacin, se expone un algoritmo
sencillo no optimizado de eleccin de un umbral
que funciona bien siempre que el histograma
presente dos modos. Se calculan el valor de nivel
de gris medio y su varianza para cada uno de los
dos modos del histograma, uno entre 0 y k y el
otro en k y N. El algoritmo busca iterativamente el
valor m para el que la suma ponderada de las
varianzas la mnima.
Sea una imagen I de N niveles de gris, el
pseudocdigo para la binarizacin automtica es
el siguiente:

Calcular el histograma de I.
Para cada valor k del nivel de gris, generar
dos poblaciones dividiendo el histograma en
k.
Calcular las varianzas de los grupos
generados.
Calcular la suma ponderada de estas dos
varianzas (ponderar con el porcentaje de
pxeles de su poblacin).
Guardar este valor de la suma en un vector
de N elementos.
Buscar el ndice m correspondiente a la suma
mnima de las varianzas.
Binarizar la imagen en el umbral m.

Los algoritmos OCR parten de una imagen


binaria, de modo que es necesario convertir la
imagen de entrada (color, escala de grises, etc.) en
una imagen en blanco y negro. Al realizar esto, se
conservan las propiedades esenciales de la
imagen. El resultado de este proceso es una
imagen en blanco y negro donde quedan marcados
de manera clara los contornos de los caracteres y
smbolos de la imagen.
b. Segmentacin de la imagen.
Es el proceso ms costoso y necesario para el
posterior reconocimiento de caracteres. La
segmentacin implica la deteccin mediante el
etiquetado de los contornos o regiones de la
imagen.
Para ello se basa en la informacin de
intensidad o informacin espacial. No existe un
nico mtodo genrico para realizar la
segmentacin que sea lo suficientemente eficaz
para el anlisis de un texto. Aunque las tcnicas
ms utilizadas son variaciones de los mtodos
basados en proyecciones lineales.
La mayora de las aplicaciones en visin
artificial estn destinadas o requieren encontrar y
clasificar cada uno de los elementos que
encuentran dentro de la imagen. La forma de
hacerlo es empleando el etiquetado, el cual asigna
un mismo valor a todos los pxeles que forman
parte de un mismo objeto en una imagen.
Con ello se podr contar ms adelante los
elementos, ver si alguno no es apto,obtener
caractersticas de cada uno de ellos, etc.
La principal precaucin a tener en cuenta, es el
diferenciar a partir de una imagen binaria cual es
el fondo y cules son los objetos. Unos
correspondern a partes blancas y otros a partes
negras, pero hay que identificarlo. Los objetos
siempre han de corresponder a partes blancas para
poder etiquetarlos. En el caso de que no coincida,
se realizar una inversin de la imagen.
Para realizar el algoritmo, en primer lugar hay
que enumerar cada pxel que compone la imagen
como se muestra en la figura 2.4.
A continuacin, el algoritmo agrupa las
etiquetas por proximidad, de modo que a cada
grupo de pxeles conectados les asigna un valor, el
que sea el menor de todos ellos (figura 2.5).

Figura 2.3. Histograma con el umbral ptimo

Figura 2.5. Enumeracin de los pxeles de un


objeto [8]
c.

Figura 2.4. Enumeracin de los pixeles [8]


El etiquetado necesita recorrer la imagen varias
veces para clasificar debidamente las etiquetas
mnimas. Se necesitar una variable (etiqueta) de
valor inicial 1 y que deba ir incrementndose
segn se encuentre pxeles de valor 0 (negro).

Adelgazamiento de componentes.

Una vez etiquetados los componentes de la


imagen, se les tiene que aplicar un proceso de
adelgazamiento para cada uno de ellos. Este
procedimiento consiste en ir borrando
sucesivamente los puntos de los contornos de cada
componente de forma que se conserve su
tipologa. La eliminacin de los puntos ha de
seguir un esquema de barridos sucesivos para que
la imagen siga teniendo las mismas proporciones
que la original y conseguir que no se deforme.
d. Comparacin con patrones.
En esta etapa se comparan los caracteres
obtenidos con anterioridad con unos tericos que
estn almacenados en una base de datos. Para
realizar esta comparacin existen diversos
procedimientos: mtodo de proyeccin, mtodos
estadsticos, mtodos estructurales, etc.

You might also like