febrero 2, 2022 10:00 am

Jesús

Las siglas OCR, que significan Optical Character Recognition, se usan para referirnos a una familia de técnicas, algoritmos y dispositivos especialmente diseñados para convertir imágenes en texto.

Dicho de manera más simple, con OCR lo que buscamos es “leer” texto proveniente de una imagen, bien sea una fotografía, un documento escaneado o directamente generado por una computadora.

Como sucede con frecuencia en computer vision, a priori, suena como una tarea muy sencilla, pero esconde un sinnúmero de desafíos que debemos sortear.

Después de todo, si extraer texto de una imagen fuese tan fácil, ¿para qué necesitaríamos todo un subcampo de la visión artificial dedicado a tal fin?

Al final de este artículo conocerás:

  • Qué es, a alto nivel, OCR.
  • Cuáles son los sistemas de OCR que existen en la actualidad
  • Un breve repaso a la historia de OCR.
  • Cuáles son las aplicaciones más comunes de OCR.

¿Estás listo para adentrarte al mundo del Reconocimiento Óptico de Caracteres? Si es así, ¡empecemos!

¿Qué es OCR?

Como mencionamos en la introducción, OCR es un término utilizado para describir técnicas y algoritmos capaces de convertir imágenes en texto.

Más concretamente, los sistemas de OCR trabajan así:

  1. 1
    Toman una imagen de entrada, que puede ser escaneada, una fotografía o generada por computadora.
  2. 2
    Detectan automáticamente el texto y lo leen como lo haría un ser humano.
  3. 3
    Convierten el texto a un formato legible por máquina, para que pueda ser indexado, consultado y, en general, utilizado en el contexto de un sistema más amplio de computer vision.

A pesar de que la mayoría de las veces que mencionemos OCR nos referiremos a sistemas de software, también existen alternativas físicas y mecánicas, como el bolígrafo OCR de la imagen de abajo, el cual automáticamente escanea el texto subrayado.

Scanmarker Air sirve para escanear notas instantáneamente

Volviendo al software, por lejos el más utilizado es Tesseract, una librería mantenida por Google de la cual hablaremos más adelante, y que utilizaremos de forma extensa en los tutoriales venideros.

Ahora que tienes un mejor entendimiento de lo que es OCR, hablemos un poco sobre su historia.

Un Breve Repaso a la Historia de OCR

Aunque cueste creerlo, los orígenes del OCR se remontan a comienzos del siglo XX, cuando Emanuel Goldberg “desarrolló una máquina que puede leer caracteres para luego convertirlos en código telegráfico estándar”. Esto sucedió en 1914.

En las décadas de 1920 y 1930, nuestro amigo Emanuel continuó su investigación, esta vez desarrollando un sistema para buscar y extraer caracteres en documentos en microfilm.

Emanuel Goldberg

Emanuel Goldberg

Posteriormente, en el año 1974, la compañía Kurzweil Computer Products Inc. se enfocó en el desarrollo de “una máquina de lectura para los ciegos”.

El trabajo de Kurzweil llamó la atención de Xerox, quien se dispuso a comercializar su software, y lo utilizó como punto de partida para el desarrollo de aplicaciones de OCR para la comprensión de documentos.

En los 80s, Hewlett-Packard inició el desarrollo del software Tesseract, cuyo código fuente se liberó en 2005, convirtiéndose así en el motor de OCR más popular de todos los tiempos.

La explosión en popularidad de deep learning en la década pasada también trajo consigo grandes cambios al mundo del OCR, principalmente de la mano de arquitecturas especializadas como RNNs y LSTMs.

En la actualidad, varios gigantes de la industria, como Google, Amazon y Microsoft ofrecen sus propias herramientas de OCR desplegadas en la nube.

A pesar de los indiscutibles avances que ha tenido el campo del Reconocimiento Óptico de Caracteres desde su concepción, sigue siendo una tarea increíblemente desafiante que requiere de la experticia de un profesional de computer vision para obtener resultados óptimos.

Aplicaciones de OCR

Entre las aplicaciones más comunes de OCR tenemos:

  • Reconocimiento automático de placas de carros.
  • Reconocimiento de señales de tránsito.
  • Análisis de CAPTCHAs.
  • Extracción de datos de tarjetas de negocio.
  • Lectura automática de la machine-readable zone en documentos de identidad como pasaportes y cédulas.
  • Entendimiento del texto que aparece en las fotos que tomamos con nuestros teléfonos.

En resumen, si hay texto en una imagen, tenemos una alta probabilidad de que OCR nos ayude a extraerlo.

Pre y Pos Procesamiento

Uno de los errores más comunes es pensar que las herramientas de OCR, en especial Tesseract, son varitas mágicas infalibles, y que con solo pasarle cualquier imagen, obtendremos el texto presente en ella sin ningún problema.

Falso.

De hecho, si éste fuera el caso, no necesitaríamos un campo dedicado al OCR, ¿no crees?

Como en cualquier otra aplicación de computer vision, el preprocesamiento juega un papel crucial en la consecución de nuestros objetivos.

Técnicas básicas como transformaciones morfológicas, difuminado Gaussiano, detección de bordes, entre otras, pueden conducir a resultados drásticamente distintos en términos de calidad.

El posprocesamiento también juega un rol importante

Teniendo en cuenta que los motores de OCR nunca serán 100% precisos, podemos mitigar sus errores aplicando ciertas técnicas y heurísticas. Por ejemplo:

  • Podemos corregir errores ortográficos.
  • Podemos utilizar expresiones regulares para extraer únicamente la información que nos interesa, como por ejemplo, nombres propios, fechas, lugares, montos.
  • Podemos apoyarnos en nuestra experticia del dominio para corregir las palabras reconocidas por el sistema de OCR.

Como muchas cosas en esta vida, una buena aplicación de OCR es 50% ciencia y 50% arte.

Resumen

En este artículo hablamos sobre el OCR como campo, y como una familia de sistemas y tecnologías enfocadas en la extracción de texto a partir de imágenes.

Descubrimos que, a pesar de su reciente boom en popularidad, los primeros sistemas de OCR datan de principios del siglo pasado, cuando el pionero investigador Emanuel Goldberg trabajó en el desarrollo de una máquina para pasar de texto a código telegráfico.

Adicionalmente, aprendimos que Tesseract es el motor de OCR más popular en la actualidad, debido en gran medida a Google, quien se encarga de su mantenimiento desde 2005, cuando HP decidió liberar su código fuente.

A lo largo de los próximos artículos iremos aprendiendo más y más sobre OCR y sus aplicaciones, así que mantente atento ;).

¡Hasta pronto!

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.