La tecnología de reconocimiento óptico de caracteres, hace pocos años nos parecía sorprendente, pero hoy la usamos de manera cotidiana. Dentro de la conversación actual sobre el desarrollo de la inteligencia artificial es un ejemplo interesante. Primero, porque se ha convertido en un componente de sistemas tecnológicos más complejos y, segundo, porque es uno de los muchos procesos que se han beneficiado con el desarrollo de la inteligencia artificial.
En este artículo haremos un recorrido por las múltiples aplicaciones que tienen los procesos de reconocimiento óptico de caracteres (OCR por su sigla en inglés Optical Character Recognition). Veremos su valor para la industria de la comunicación gráfica, la forma en que se desarrolló la tecnología y sus limitaciones actuales. Sobre todo, nos preguntaremos en qué medida es una tecnología de inteligencia artificial y si lo que ha pasado con ella será una muestra de lo que se puede esperar de otras aplicaciones de la inteligencia artificial, ahora que se han vuelto tan importantes en nuestra vida cotidiana.
Leer como los seres humanos
Como muchos otros animales, los humanos somos muy buenos reconociendo patrones. Por ejemplo, desde bebés somos capaces de reconocer caras. A lo largo de la evolución, esta habilidad nos ha permitido reconocer a nuestras madres, pero también identificar potenciales depredadores. A medida que crecemos somos capaces de identificar patrones más complejos, podemos “leer” en la cara de nuestro interlocutor si lo que decimos le molesta o le agrada, también podemos identificar señales de la naturaleza como una tormenta que se aproxima o si una fruta está lista para comer.
Sin embargo, el reconocimiento de patrones tiene sus desventajas, podemos ver caras en unos huevos fritos, encontrar una imagen divina en las manchas de humedad de una pared o un perro en las vetas de una pieza de madera.
Sin embargo, hemos logrado aprovechar esa capacidad de ver los patrones básicos en imágenes que pueden diferir mucho unas de otras. Es así como logramos desarrollar la escritura. Escribir nos permite transmitir conceptos dibujando patrones que pueden representar ideas o sonidos.
En nuestro sistema de escritura, transmitimos información usando letras, que son pequeños dibujos que representan cada uno un sonido. Combinándolos podemos crear palabras que representan conceptos, acciones, características de ellos o que le dan estructura al discurso.
Antes de aprender a escribir, pasamos miles de años desarrollando la capacidad de hablar, las palabras y la forma de usarlas. Hace relativamente poco, unos cinco mil años, empezamos a desarrollar sistemas de escritura.
Hoy la mayor parte de las personas pueden aprender a leer y escribir, en su lengua materna, a muy temprana edad. Gracias a nuestra ancestral capacidad de reconocer patrones en signos muy variados, los seres humanos somos capaces de distinguir con facilidad, la escritura a pesar de la gran variedad de formas en que se puede expresar. Por ejemplo, podemos distinguir entre las muy diferentes formas de una misma letra:
Hace apenas unas décadas, estamos construyendo máquinas que gestionan información. Los computadores son máquinas digitales, es decir que están basadas en sistemas numéricos binarios, porque como aparatos eléctricos en el fondo únicamente pueden conocer dos estados: apagado y encendido, que se pueden hacer equivaler a cero y uno.
Para que un computador pueda entender una letra, se ha desarrollado una convención que permite que cada una de ellas se represente con una combinación única de unos y ceros. Así, usando únicamente miles de combinaciones de unos y ceros usted puede leer este texto.
Sin embargo, queda un problema. Mucha información está ahí afuera, escrita como texto, en papeles, en avisos en las calles, en las pantallas de otras máquinas que no son su computador o su teléfono, por mencionar solo algunas de las muchas posibilidades. ¿Cómo hacer que esa información se pueda capturar en su equipo? Si se necesita recopilar esa información, traducirla, organizarla, responderla o cualquier tarea en la que sea necesario, no simplemente tener la imagen de esa información, sino usar el texto que contiene es un reto clave para los sistemas computacionales.
Es ahí donde aparecen los sistemas de reconocimiento óptico de caracteres, también conocidos como OCR, por su acrónimo en inglés: Optical Character Recognition.
Historia de los sistemas de reconocimiento óptico de caracteres
Desde finales del siglo XIX se registraron varios intentos por desarrollar herramientas que pudieran leer libros a las personas invidentes, aunque ninguno de estos intentos logró consolidarse. En las primeras décadas del siglo XX hubo nuevos intentos, incluso las primeras patentes de sistemas que intentaban leer la clave morse. Sólo con la aparición de los primeros computadores en los años 50 se pudo empezar a desarrollar un sistema de reconocimiento óptico de caracteres que funcionara. Apenas en las décadas de 1960 y 1970, se desarrollaron los primeros sistemas OCR para reconocer caracteres en imágenes escaneadas, pero su precisión era limitada y solo podían reconocer un conjunto limitado de caracteres.
Los primeros OCR funcionales
Estos primeros algoritmos de OCR se basaban en técnicas de reconocimiento de patrones y sistemas basados en reglas, lo que limitaba su precisión y capacidad para reconocer diferentes tipos de texto. Generalmente requerían un alto grado de preprocesamiento para preparar las imágenes para el reconocimiento, incluidos umbrales, segmentación y normalización. En otras palabras, estos sistemas eran como un gran catálogo, que tenía cada carácter representado en diversas fuentes. Lo que hacía el programa era recorrer esa base de datos comparando cada carácter con los modelos establecidos, hasta encontrar el que mejor coincidiera. Esto implicaba un enorme trabajo de cómputo, mucho tiempo y resultados que dejaban mucho que desear.
Cuando la fuente con la que estaba escrito el texto no estaba incluida en la base de datos del sistema OCR se podían producir errores en la digitalización. Los caracteres diacríticos, como las vocales con tildes o las eñes del español y muchas “letras raras” de otros idiomas no se podían comprender. Muchos lectores recordarán que los primeros sistemas de OCR a menudo tenían problemas para distinguir entre caracteres de aspecto similar, como “ó” y “6”.
Los nuevos avances
Los algoritmos de OCR modernos se basan en técnicas de aprendizaje automático e inteligencia artificial, que han mejorado drásticamente su precisión y solidez. Estos algoritmos son capaces de aprender de grandes cantidades de datos y pueden adaptarse a nuevos patrones y variaciones en el texto, las fuentes y los diseños. También pueden manejar una gama más amplia de calidad de imagen, desde escaneos de baja resolución hasta fotografías digitales de texto.
Estos algoritmos emplean técnicas de aprendizaje profundo, como redes neuronales convolucionales (CNN) y redes neuronales recurrentes (RNN), para reconocer texto en una imagen, con lo que han demostrado una precisión notable y la capacidad de generalizar a datos no vistos, es decir, ya no sólo pueden entender textos escritos con las fuentes y diseños con los que fueron entrenados, sino reconocer características generales de la escritura, independientes de la forma en que se presentan, de la misma manera que lo hacemos los seres humanos.
Además, pueden reconocer no solo los caracteres ASCII, que es el protocolo para codificar los 26 caracteres que usa el idioma inglés, sino que también las escrituras en el alfabeto latino extendido como la del español, que tiene tildes y eñe, los idiomas del centro de Europa que usan signos como ł, ń, ś, ż, ź. También pueden entender otros alfabetos como el griego o el cirílico, así como abyades o sistemas consonánticos de escritura como el árabe o el hebreo y escrituras en conjuntos de caracteres complejos, como el devanagari (con el que se escriben varios idiomas de la India), así como textos chinos, japoneses y coreanos. Es decir, usando el sistema de codificación UTF, lo que ha permitido que los OCR sean usados a nivel global.
Todos los usuarios de Internet contribuimos a entrenar las inteligencias artificiales, para que fueran capaces de hacer las complejas tareas que hoy cumplen. Hace unos años se crearon los sistemas CAPTCHA, que son medidas de seguridad que presentan texto distorsionado que los humanos deben leer y transcribir para demostrar que no son máquinas.
Al hacer que los humanos transcriban estos caracteres distorsionados, los datos generados se han usado para entrenar modelos de aprendizaje automático para reconocer texto distorsionado, lo que ha demostrado ser una fuente valiosa de datos de entrenamiento, ya que cubre una amplia gama de orientaciones, estilos y distorsiones que el sistema OCR puede encontrar en el mundo real. Así un sistema de OCR hoy en día puede reconocer también los textos escaneados de un libro, aunque en la imagen se distorsiones los bordes interiores de la página.
Estos son algunos ejemplos de CAPTCHA con texto, que hoy en día, casi no se usan, porque las máquinas ya saben cómo leerlos y, por tanto, se pierde su función principal que es distinguir si el usuario es realmente un ser humano o una máquina. Tal vez habrá notado que ahora se pide identificar elementos comunes en las calles, como semáforos o bicicletas, de esta manera, contribuimos a entrenar los sistemas de inteligencia artificial que podrán conducir vehículos.
De otro lado, el problema de la distinción entre caracteres similares, como “ó” y “6”, se ha resuelto usando información contextual para eliminar la ambigüedad de los caracteres. Los sistemas OCR modernos pueden tener en cuenta los caracteres vecinos y sus relaciones entre sí para determinar la interpretación correcta de un carácter. Además, los algoritmos se pueden entrenar con grandes cantidades de datos de texto en varios idiomas, lo que les permite aprender el contexto y los patrones de los caracteres en varios idiomas y escrituras.
Los retos del futuro
Aunque en los últimos años el reconocimiento óptico de caracteres ha evolucionado muchísimo, aún queda un gran camino por recorrer.
La tecnología OCR ha avanzado hasta el punto en que puede reconocer y transcribir una variedad de escrituras con alta precisión. Sin embargo, el reconocimiento de algunas escrituras, que no están basadas en alfabetos, como el árabe o el chino, aún presenta desafíos debido a sus sistemas de escritura complejos y llenos de matices.
En la escritura árabe, los sistemas modernos de OCR son capaces de reconocer y transcribir la escritura con relativa precisión, pero aún quedan algunos desafíos por superar. El árabe no se escribe con un alfabeto, sino con un abyad, es decir un conjunto de letras que sólo incluye consonantes, mientras que los sonidos vocálicos se representan con signos adicionales encima o debajo de los caracteres, es decir con signos diacríticos, que con frecuencia se omiten. El reconocimiento de esos diacríticos, que pueden cambiar el significado de una palabra, es todavía muy difícil para los OCR.
En la escritura china, el reconocimiento es más desafiante, debido a la amplia variedad de estilos y la gran cantidad de caracteres utilizados en el sistema de escritura. Sin embargo, los avances en el aprendizaje automático y el aprendizaje profundo han mejorado en gran medida la precisión de los sistemas OCR para la escritura china.
El reconocimiento de escritura a mano es otra tarea desafiante para los sistemas OCR, ya que la escritura a mano puede ser muy variable y puede contener muchas distorsiones y variaciones. Aunque los sistemas OCR modernos son capaces de reconocer texto escrito a mano, la precisión del reconocimiento depende de muchos factores, como la calidad y el estilo de la escritura, el tipo de sistema OCR que se utiliza y los datos de entrenamiento que tiene el sistema.
Si un sistema OCR ha estado expuesto, es decir ha sido diseñado y entrenado específicamente para reconocer escritura a mano, puede ser más preciso para reconocer texto manuscrito o en cursiva. De hecho, este tipo de entrenamiento se usa para trabajos como la digitalización de archivos históricos o notas escritas a mano. Estos sistemas suelen emplear técnicas avanzadas de aprendizaje automático, como el aprendizaje profundo
Aplicaciones de los sistemas OCR
La tecnología OCR hace parte de sistemas digitales que agregan valor a una amplia gama de tareas humanas. Al automatizar aquellas que de otro modo requerirían una cantidad significativa de esfuerzo manual, ahorra tiempo y dinero, además permite que los textos digitalizados se puedan editar y buscar dentro de ellos. La información almacenada en texto ocupa menos espacio de memoria, así que también es más rápida para enviar y cargar para cualquier transformación
Algunas de las tareas clave en las que la tecnología OCR agrega valor incluyen:
- Digitalización de documentos: permite la conversión automática de documentos físicos, como registros en papel, a formato digital. lo que permite almacenarlos, buscarlos y compartirlos más fácilmente, así como gestionar de grandes cantidades de información. Ejemplos de esta capacidad son aplicaciones bancarias que permiten verificar cheques, recibos de depósito y otros documentos, disminuyendo las posibilidades de fraude.
- Preservación de archivos: al digitalizar documentos históricos y de archivo, la tecnología OCR ayuda a preservar estos importantes artefactos culturales para las generaciones futuras. Este tipo de procesos permite que investigadores y estudiantes puedan leer, manipular y trabajar con documentos históricos antiguos, cuyo original, que está en papel y fue escrito a mano, debe preservarse en condiciones especiales.
- Extracción de datos: se puede utilizar para extraer automáticamente información de documentos, como nombres, direcciones y otros tipos de datos estructurados. Esto puede ser útil en una variedad de aplicaciones, como el procesamiento de tarjetas de crédito y de reclamaciones de seguros. En los procesos logísticos se usa esta característica para hacer seguimiento.
- Análisis de contenido: la tecnología OCR, junto con otras técnicas de inteligencia artificial, se puede utilizar para analizar el contenido de gran cantidad de documentos y extraer información significativa, como la identificación de tendencias y patrones. Esto puede ser útil en una variedad de industrias, incluidas las finanzas, el marketing y la atención médica, además de la investigación académica.
- Traducción: puede traducir automáticamente texto de un idioma a otro, lo que facilita que las personas comprendan información escrita en un idioma extranjero. Esta tecnología se usa ya en los teléfonos inteligentes, para traducir en vivo carteles informativos.
- Accesibilidad: El OCR puede hacer accesibles documentos para personas con discapacidades visuales, por ejemplo, al convertir documentos físicos a formato digital y transcribirlo al alfabeto braille o conectarlo con un sistema de síntesis de voz.
En general, la tecnología OCR agrega valor al agilizar los procesos manuales, reducir la necesidad de ingresar datos manualmente; facilitar el acceso y el análisis de grandes cantidades de información. Esto puede conducir a aumentar la eficiencia, mejorar la precisión y reducir los costos de una variedad de industrias.
En la industria de la impresión los sistemas OCR tienen aplicaciones muy específicas. En la preprensa, por ejemplo, suele suceder que sea necesario ajustar un texto que se entregó como imagen. Algunos programas como PackZ pueden, no solo reconocer el texto, sino también la fuente con la que está escrito, de manera que permiten ajustar sus detalles de manera rápida
OCR, una inteligencia artificial que no asusta
Una de las tareas más comunes entre los monjes de la Edad Media era ser copistas, muchos dedicaban su vida entera a hacer copias de libros, algunos se esmeraban porque sus copias fueran completamente fieles al original, otros se ponían creativos y agregaban notas al margen con comentarios, aclaraciones o aportes a la obra. También había quienes se especializaban en traducir textos de idiomas como el griego, el hebreo, el árabe o incluso el arameo. Cualquiera de esas tareas que a uno de estos monjes le podría implicar años de su vida, la hacemos ahora en minutos con sistemas OCR.
Hace apenas unos lustros, usar un sistema OCR era mágico y sorprendente. Sin embargo, requería de aparatos de escáner y software que eran caros y escasos. Además, que sus resultados dejaban mucho que desear por los errores en el proceso, en especial cuando el texto escaneado no estaba en inglés.
Hoy podemos tener en nuestros teléfonos diferentes aplicaciones que usan OCR. Algunas de escáner, nos permiten digitalizar de manera sencilla y rápida, por ejemplo, una fórmula médica, o el acta de una reunión, tomada a mano, en el momento en que la terminamos. Otras de traducción nos permiten ver, en nuestro propio idioma y a través de la cámara, un documento, una señal de tránsito o incluso un grafiti, que originalmente están escritos en idiomas extranjeros.
En la industria gráfica se usan técnicas de OCR en procesos de preprensa y en la logística. De manera similar, muchas otras industrias han incorporado OCR como un componente de sistemas más complejos, que les permiten ahorrar tiempo y dinero en la captura de grandes cantidades de información impresa o escrita a mano.
De alguna manera los sistemas OCR se han vuelto invisibles, no son una solución en sí mismos, sino un componente de soluciones específicas para las necesidades de una industria o un usuario. Aunque ya no hablemos tanto de ellos, siguen presentes y seguramente lo seguirán por mucho más tiempo.
Los avances más recientes de los sistemas OCR se deben a la inteligencia artificial, que les ha permitido ser potentes, efectivos y capaces de hacer tareas que hace poco no podían llevar a cabo. A su vez, algunos sistemas de inteligencia artificial pueden usar sistemas de OCR para realizar tareas más complejas, como analizar tendencias en grandes cantidades de documentos impresos.
Teniendo en cuenta el desarrollo de los sistemas OCR, tal vez podríamos pensar que los sistemas de inteligencia artificial generativa, que hoy son el centro de la conversación, se conviertan con el tiempo en herramientas cotidianas, incluso en componentes, muchas veces no explícitos, de otras sistemas computacionales que hacen tareas más grandes, pero específicas. ¿Usted qué opina? ¿Cree que es válida esta comparación? ¿Será que podemos estar tranquilos con las nuevas herramientas de inteligencia artificial como lo estamos con los sistemas OCR?