Tecnología OCR, ¿cómo entiende tu PC lo que escribes a mano?

Tecnología OCR, ¿cómo entiende tu PC lo que escribes a mano?

Redacción

La tecnología OCR lleva mucho tiempo entre nosotros y ha sido clave para facilitar el trabajo de mucha gente ya que se trata de la capacidad de poder convertir los caracteres que forman parte integral de una imagen en caracteres que se pueden manipular, lo que evita la tediosa tarea de transcribir el texto. ¿Pero qué hay detrás de todo ello?

El OCR es utilizado hoy en día a todas horas y no solo para digitalizar textos sino también para cosas como traducciones en tiempo real de texto escrito en otras lenguas, e incluso podemos convertir en texto de imprenta nuestro texto escrito a mano.

El OCR y el reconocimiento de patrones

Entendemos como patrón un modelo que sirve para sacar otra cosa igual; mientras que nuestros ojos y cerebro identifican qué es cada letra a través de su grafía, un ordenador no tiene esa capacidad de abstracción y necesita poder realizar una comparación, la cual es siempre el resultado de una substracción entre dos elementos: si la resta da 0 entonces esto significa que la comparación es positiva.

En 1960, Lawrence (Larry) Roberts, un investigador del MIT que paradójicamente luego sería uno de los inventores de lo que acabaría siendo Internet, creó un sistema de reconocimiento de caracteres y un tipo de letra asociados, pensados para poder digitalizar cheques bancarios y demás información sensible que necesitaba ser almacenada por los primeros ordenadores. A esta fuente se la llamó OCR-A.
Grafías para OCR
Si lo pensamos bien, para un ordenador una letra al igual que cualquier otro tipo de datos no es más que un conjunto de bits, por lo que lo único que necesitamos es tener almacenado en el sistema encargado de comparar lo que es la fuente en sus diferentes tamaños como fuente comparativa.

Reconocimiento de caracteres vía OCR

Lo primero que hará el sistema OCR será una lectura en el documento para localizar el texto y eliminar de cara al posterior análisis todo aquello que no sirva para el reconocimiento óptico de caracteres.

Una vez tenga solamente los caracteres, lo que hará será recorrer lo que quede de la imagen tomando bloques de la misma y los digitalizará para una posterior comparativa con la información que tenga en memoria. Dicho de otra manera, lo que hace el sistema de detección de caracteres es recorrer la imagen leyendo ésta en bloques de una cantidad regular de píxeles y realizando comparativas continuas con las formas que tiene almacenadas en su memoria.

Reconocimiento OCR

Si encuentra una correspondencia lo que hará será marcarla en un archivo que luego mostrará y/o almacenará como conclusión; dicho archivo será un archivo de texto con el texto mismo extraído a través del proceso de reconocimiento.

Esto significa que nuestro sistema de reconocimiento de caracteres ha de tener en memoria la fuente en la que ha sido escrito el texto en papel o en la imagen de la que queremos sacarlo con tal de que pueda realizar la comparación. ¿Pero qué ocurre en casos especiales como la escritura a mano o tipografías especiales?

Rizando el rizo, más allá del OCR

Volviendo a cómo funciona nuestro cerebro, éste identifica las cosas porque ha aprendido un patrón que le permite identificarlas. Nuestro cerebro sabe perfectamente bien a través de un patrón aprendido que todas las letras de la siguiente imagen son la letra A.

Ejemplo letra A tipografías

Pero un ordenador, por lo general, no lo sabe de manera directa y necesita el sistema de referencia que hemos comentado más arriba para saber si la comparación es positiva o no, lo que ha llevado que, a la hora de leer la escritura a mano -la cual es diferente para cada persona- se haya tenido que pasar por un largo esfuerzo de varios años.

Como curiosidad histórica, cuando Apple lanzó lo que podríamos considerar el primer ordenador de «mano» del mundo, el Apple Newton, prometieron que tendría un sistema de reconocimiento de escritura a mano que convertía los textos escritos por el usuario a letra de imprenta a tiempo real.

¿El resultado? Un desastre, ya que no reconocía la forma de escribir de la mayoría de la gente y el dispositivo fue un auténtico fracaso.

El motivo de ello no era que el Newton y otros sistemas posteriores fuesen malos sino porque se requiere una gran potencia de cálculo para realizar el reconocimiento de patrones, el cual no estaba disponible ni ha estado disponible durante un largo tiempo. Incluso los sistemas de reconocimiento de escritura utilizan como soporte enormes centros de datos y de procesamiento con los que se comunican a través de Internet.

La inteligencia artificial al rescate del reconocimiento de caracteres

Los sistemas de inteligencia artificial son en realidad sistemas entrenados para reconocer patrones concretos y pueden ser entrenados para que aprendan a reconocer caracteres, no a partir de un elemento comparativo sino a través de aplicar patrones. Por ejemplo, nosotros podemos identificar la letra A con un simple patrón como el siguiente:

Patrón letra A

Pero la idea es entrenar a la máquina para que sepa reconocer el patrón sin necesidad de hacer la comparativa y es en este punto donde entra la inteligencia artificial. De la misma manera que podemos entrenar a una inteligencia artificial para reconocer señales de tráfico para que pueda conducir en modo automático también podemos enseñarle a que aprenda a identificar caracteres. ¿Cómo? Pues a través de una red neural que haya sido entrenada previamente para ello.

Las que más se utilizan en estos casos son las llamadas redes neurales convolucionales, las cuales son un tipo de neurona artificial que tiene una estructura similar a las neuronas de la corteza visual primaria de un cerebro biológico y son excelentes para la clasificación y la segmentación de imágenes y otras aplicaciones de la visión por computador.

Dichas redes neurales lo que hacen es copiar el funcionamiento de los sistemas biológicos encargados de detectar los patrones que nos permiten identificar lo que es cada letra.

Al mismo tiempo cada vez que una identificación es positiva y confirmada varias veces ese ejemplo queda guardado en la base de datos para usarla como patrón posteriormente. En realidad los sistemas en ese caso funcionan primero si hay una correspondencia en la base de datos que se ha ido creando y solo cuando no la encuentra es cuando los mecanismos de identificación de patrones vía inteligencia artificial se activan.

¡Sé el primero en comentar!