Reconocimiento optico de caracteres.

Reconocimiento óptico de caracteres

En los últimos años la digitalización de la información (textos, imágenes, sonido, etc ) ha devenido un punto de interés para la sociedad. En el caso concreto de los textos, existen y se generan continuamente grandes cantidades de información escrita, tipográfica o manuscrita en todo tipo de soportes. En este contexto, poder automatizar la introducción de caracteres evitando la entrada por teclado, implica un importante ahorro de recursos humanos y un aumento de la productividad, al mismo
tiempo que se mantiene, o hasta se mejora, la calidad de muchos servicios.

El Reconocimiento Óptico de Caracteres (OCR), así como el reconocimiento de texto, en general son aplicaciones dirigidas a la digitalización de textos. Identifican automáticamente símbolos o caracteres que pertenecen a un determinado alfabeto, a partir de una imagen para almacenarla en forma de datos con los que podremos interactuar mediante un programa de edición de texto o similar.

CONTENIDO
Problemas con el Reconocimiento Óptico de Caracteres
El proceso básico que se lleva a cabo en el Reconocimiento Óptico de Caracteres es convertir el texto que aparece en una imagen en un archivo de texto que podrá ser editado y utilizado como tal por cualquier otro programa o aplicación que lo necesite. Problemas:

El dispositivo que obtiene la imagen puede introducir niveles de grises al fondo que no pertenecen a la imagen original.
La resolución de estos dispositivos puede introducir ruido en la imagen, afectando los píxeles que han de ser procesados.
La distancia que separa a unos caracteres de otros, al no ser siempre la misma, puede producir errores de reconocimiento.

La conexión de dos o más caracteres por píxeles comunes también puede producir errores.

Esquema básico de un algoritmo de Reconocimiento Óptico de Caracteres
Todos los algoritmos de Reconocimiento Óptico de Caracteres tienen la finalidad de poder diferenciar un texto de una imagen cualquiera. Para hacerlo se basan en 4 etapas:

Binarización

La mayor parte de algoritmos de OCR parten como base de una imagen binaria (dos colores) por lo tanto es conveniente convertir una imagen de escala de grises, o una de color, en una imagen en blanco y negro, de tal forma que se preserven las propiedades esenciales de la imagen. Una forma de hacerlo es mediante el histograma de la imagen donde se muestra el número de pixeles para cada nivel de grises que aparece a la imagen. Para binarizarla tenemos que escoger un umbral adecuado, a partir del cual todos los pixeles que no lo superen se convertirán en negro y el resto en blanco.

Mediante este proceso obtenemos una imagen en blanco y negro donde quedan claramente marcados los contornos de los caracteres y símbolos que contiene la imagen. A partir de aquí podemos aislar las partes de la imagen que contienen texto (mas transiciones entre blanco y negro).
Fragmentación o segmentación de la imagen

Este es el proceso más costoso y necesario para el posterior reconocimiento de caracteres. La segmentación de una imagen implica la detección mediante procedimientos de etiquetado determinista o estocástico de los contornos o regiones de la imagen, basándose en la información de intensidad o información espacial.

Adelgazamiento de las componentes

Una vez aisladas las componentes conexas de la imagen, se les tendrá que aplicar un proceso de adelgazamiento para cada una de ellas. Este procedimiento consiste en ir borrando sucesivamente los puntos de los contornos de cada componente de forma que se conserve su tipología.

Comparación con patrones

En esta etapa se comparan los caracteres obtenidos anteriormente con unos teóricos (patrones) almacenados en una base de datos. El buen funcionamiento del OCR se basa en gran medida a una buena definición de esta etapa. Existen diferentes métodos para llevar a cabo la comparación. Uno de ellos es el Método de Proyección, en el cual se obtienen proyecciones verticales y horizontales del carácter por reconocer y se comparan con el alfabeto de caracteres posibles hasta encontrar la máxima coincidencia

Reconocimiento de texto manuscrito

Las dificultades que podemos encontrar a la hora de reconocer un texto tipografiado, no se pueden comparar con las que aparecen cuando queremos reconocer un texto manuscrito.
El reconocimiento de un texto manuscrito continúa siendo un desafío. Aunque el texto se compone básicamente de caracteres individuales, la mayoría de algoritmos OCR no consiguen buenos resultados, ya que la segmentación de texto continuo es un procedimiento complejo.

Reconocimiento de matrículas

Una de las aplicaciones más claras en las que se puede encontrar el OCR es el reconocimiento de matrículas utilizada en los radares. Estos deben ser capaces de localizar una matrícula de un vehículo con condiciones de iluminación, perspectiva y entorno variables.
Indexación en bases de datos
Con el gran aumento de información publicada que ha tenido lugar en los últimos años, cada vez son más los métodos que se utilizan para organizar todo este material almacenado en bases de datos. Uno de estos contenidos son las imágenes. Una de las formas más corrientes de buscar imágenes es a partir de metadato introducidos manualmente por los usuarios.

Reconocimiento de datos estructurados con OCR Zonal

Se usa para digitalizar de forma masiva grandes cantidades de documentos estructurados o semiestructurados (facturas, nóminas, albaranes, pólizas, justificantes bancarios, etc.), catalogando automáticamente los documentos con los meta datos obtenidos y archivándolos en formato digital de forma indexada para facilitar su posterior búsqueda. Tiene el inconveniente de que es necesario diseñar previamente las plantillas, pero con una buena configuración se ahorra mucho tiempo en el proceso de digitalización.