El reconocimiento óptico de caracteres o lector óptico de caracteres ( OCR ) es la conversión electrónica o mecánica de imágenes de texto mecanografiado, escrito a mano o impreso en texto codificado por máquina, ya sea de un documento escaneado, una foto de un documento, una foto de una escena (por ejemplo, el texto de carteles y vallas publicitarias en una foto de un paisaje) o de un texto de subtítulos superpuesto a una imagen (por ejemplo: de una transmisión de televisión). [1]
Ampliamente utilizado como una forma de entrada de datos a partir de registros de datos en papel impresos, ya sean documentos de pasaporte, facturas, extractos bancarios , recibos computarizados, tarjetas de presentación, correo, datos impresos o cualquier documentación adecuada, es un método común de digitalización de textos impresos para que puedan editarse electrónicamente, buscarse, almacenarse de manera más compacta, mostrarse en línea y usarse en procesos de máquina como computación cognitiva , traducción automática , texto a voz (extraído) , datos clave y minería de texto . El OCR es un campo de investigación en reconocimiento de patrones , inteligencia artificial y visión por computadora .
Las primeras versiones debían entrenarse con imágenes de cada carácter y trabajar con una fuente a la vez. Hoy en día, son comunes los sistemas avanzados capaces de producir un alto grado de precisión para la mayoría de las fuentes y que admiten una variedad de formatos de archivo de imagen . [2] Algunos sistemas son capaces de reproducir una salida formateada que se aproxima mucho a la página original, incluidas imágenes, columnas y otros componentes no textuales.
Los primeros sistemas de reconocimiento óptico de caracteres se remontan a tecnologías que incluían la telegrafía y la creación de dispositivos de lectura para ciegos. [3] En 1914, Emanuel Goldberg desarrolló una máquina que leía caracteres y los convertía en un código telegráfico estándar. [4] Al mismo tiempo, Edmund Fournier d'Albe desarrolló el Optophone , un escáner portátil que, al moverse sobre una página impresa, producía tonos que correspondían a letras o caracteres específicos. [5]
A finales de la década de 1920 y principios de la de 1930, Emanuel Goldberg desarrolló lo que llamó una "máquina estadística" para buscar archivos de microfilmes utilizando un sistema de reconocimiento de código óptico. En 1931, se le concedió la patente estadounidense número 1.838.389 por la invención. La patente fue adquirida por IBM .
En 1974, Ray Kurzweil fundó la empresa Kurzweil Computer Products, Inc. y continuó el desarrollo del OCR omni- font , que podía reconocer texto impreso en prácticamente cualquier fuente. (A Kurzweil se le atribuye a menudo la invención del OCR omni-font, pero ya lo utilizaban empresas, incluida CompuScan, a finales de los años 1960 y 1970. [3] [6] ) Kurzweil utilizó la tecnología para crear una máquina de lectura para que las personas ciegas tuvieran una computadora que les leyera el texto en voz alta. El dispositivo incluía un escáner plano tipo CCD y un sintetizador de texto a voz. El 13 de enero de 1976, el producto terminado se dio a conocer durante una conferencia de prensa ampliamente difundida encabezada por Kurzweil y los líderes de la Federación Nacional de Ciegos . [ cita requerida ] En 1978, Kurzweil Computer Products comenzó a vender una versión comercial del programa informático de reconocimiento óptico de caracteres. LexisNexis fue uno de los primeros clientes y compró el programa para cargar documentos legales y de noticias en sus incipientes bases de datos en línea. Dos años después, Kurzweil vendió su empresa a Xerox , que finalmente la escindió como Scansoft , que se fusionó con Nuance Communications .
En la década de 2000, el OCR se puso a disposición en línea como un servicio (WebOCR), en un entorno de computación en la nube y en aplicaciones móviles como la traducción en tiempo real de signos en idiomas extranjeros en un teléfono inteligente . Con la llegada de los teléfonos inteligentes y las gafas inteligentes , el OCR se puede utilizar en aplicaciones de dispositivos móviles conectados a Internet que extraen texto capturado con la cámara del dispositivo. Estos dispositivos que no tienen una funcionalidad de OCR incorporada normalmente utilizarán una API de OCR para extraer el texto del archivo de imagen capturado por el dispositivo. [7] [8] La API de OCR devuelve el texto extraído, junto con información sobre la ubicación del texto detectado en la imagen original a la aplicación del dispositivo para su posterior procesamiento (como texto a voz) o visualización.
Hay varios sistemas de OCR comerciales y de código abierto disponibles para los sistemas de escritura más comunes , incluidos los caracteres latinos, cirílicos, árabes, hebreos, índicos, bengalíes (bangla), devanagari, tamiles, chinos, japoneses y coreanos.
Los motores de OCR se han desarrollado en aplicaciones de software especializadas en diversos temas, como recibos, facturas, cheques y documentos de facturación legal.
El software se puede utilizar para:
El OCR es generalmente un proceso offline, que analiza un documento estático. Existen servicios basados en la nube que proporcionan un servicio API de OCR online. El análisis del movimiento de la escritura a mano se puede utilizar como entrada para el reconocimiento de la escritura a mano . [14] En lugar de utilizar simplemente las formas de los glifos y las palabras, esta técnica puede capturar el movimiento, como el orden en el que se dibujan los segmentos , la dirección y el patrón de colocar y levantar el lápiz. Esta información adicional puede hacer que el proceso sea más preciso. Esta tecnología también se conoce como "reconocimiento de caracteres online", "reconocimiento dinámico de caracteres", "reconocimiento de caracteres en tiempo real" y "reconocimiento inteligente de caracteres".
El software de OCR suele preprocesar las imágenes para mejorar las posibilidades de un reconocimiento exitoso. Las técnicas incluyen: [15]
La segmentación de fuentes de paso fijo se logra de manera relativamente sencilla alineando la imagen con una cuadrícula uniforme en función del lugar donde las líneas de cuadrícula verticales intersectan con menor frecuencia las áreas negras. Para las fuentes proporcionales , se necesitan técnicas más sofisticadas porque el espacio en blanco entre letras a veces puede ser mayor que entre palabras y las líneas verticales pueden intersectar más de un carácter. [22]
Hay dos tipos básicos de algoritmos de OCR centrales, que pueden producir una lista clasificada de caracteres candidatos. [23]
Los programas informáticos como Cuneiform y Tesseract utilizan un método de dos pasadas para el reconocimiento de caracteres. La segunda pasada se conoce como reconocimiento adaptativo y utiliza las formas de las letras reconocidas con alta confianza en la primera pasada para reconocer mejor las letras restantes en la segunda pasada. Esto resulta ventajoso para fuentes inusuales o escaneos de baja calidad en los que la fuente está distorsionada (por ejemplo, borrosa o descolorida). [22]
A partir de diciembre de 2016 [actualizar], el software de OCR moderno incluye Google Docs OCR, ABBYY FineReader y Transym. [26] [ necesita actualización ] Otros como OCRopus y Tesseract utilizan redes neuronales que están entrenadas para reconocer líneas completas de texto en lugar de centrarse en caracteres individuales.
Una técnica conocida como OCR iterativo recorta automáticamente un documento en secciones según el diseño de la página. Luego, el OCR se realiza en cada sección individualmente utilizando umbrales de nivel de confianza de caracteres variables para maximizar la precisión del OCR a nivel de página. La Oficina de Patentes de los Estados Unidos ha expedido una patente para este método. [27]
El resultado del OCR se puede almacenar en el formato estandarizado ALTO , un esquema XML dedicado que mantiene la Biblioteca del Congreso de los Estados Unidos . Otros formatos comunes son hOCR y PAGE XML.
Para obtener una lista de software de reconocimiento óptico de caracteres, consulte Comparación de software de reconocimiento óptico de caracteres .
La precisión del OCR se puede aumentar si el resultado está limitado por un léxico , una lista de palabras que pueden aparecer en un documento. [15] Esto podría ser, por ejemplo, todas las palabras del idioma inglés o un léxico más técnico para un campo específico. Esta técnica puede ser problemática si el documento contiene palabras que no están en el léxico, como nombres propios . Tesseract usa su diccionario para influir en el paso de segmentación de caracteres, para mejorar la precisión. [22]
El flujo de salida puede ser un flujo de texto simple o un archivo de caracteres, pero los sistemas de OCR más sofisticados pueden preservar el diseño original de la página y producir, por ejemplo, un PDF anotado que incluye tanto la imagen original de la página como una representación textual que se puede buscar.
El análisis de vecinos cercanos puede utilizar frecuencias de coocurrencia para corregir errores, al observar que ciertas palabras suelen verse juntas. [28] Por ejemplo, "Washington, DC" es generalmente mucho más común en inglés que "Washington DOC".
El conocimiento de la gramática del idioma que se está escaneando también puede ayudar a determinar si es probable que una palabra sea un verbo o un sustantivo, por ejemplo, lo que permite una mayor precisión.
El algoritmo de distancia de Levenshtein también se ha utilizado en el posprocesamiento de OCR para optimizar aún más los resultados de una API de OCR. [29]
En los últimos años, los principales proveedores de tecnología OCR comenzaron a ajustar los sistemas OCR para que pudieran manejar de manera más eficiente tipos específicos de datos de entrada. Más allá de un léxico específico de la aplicación, se puede lograr un mejor rendimiento si se tienen en cuenta las reglas comerciales, expresiones estándar, [ aclaración necesaria ] o información enriquecida contenida en imágenes en color. Esta estrategia se denomina "OCR orientado a aplicaciones" u "OCR personalizado", y se ha aplicado al OCR de matrículas , facturas , capturas de pantalla , tarjetas de identificación , licencias de conducir y fabricación de automóviles .
El New York Times ha adaptado la tecnología OCR a una herramienta propia, llamada Document Helper , que permite a su equipo de noticias interactivas acelerar el procesamiento de documentos que necesitan ser revisados. Señalan que les permite procesar hasta 5.400 páginas por hora para prepararlas para que los periodistas revisen el contenido. [30]
Existen varias técnicas para resolver el problema del reconocimiento de caracteres por medios distintos a los algoritmos de OCR mejorados.
Las fuentes especiales como las fuentes OCR-A , OCR-B o MICR , con tamaños, espaciados y formas de caracteres distintivos especificados con precisión, permiten una mayor precisión durante la transcripción en el procesamiento de cheques bancarios. Varios motores de OCR destacados fueron diseñados para capturar texto en fuentes populares como Arial o Times New Roman, y son incapaces de capturar texto en estas fuentes que son especializadas y muy diferentes de las fuentes más utilizadas. Como Google Tesseract se puede entrenar para reconocer nuevas fuentes, puede reconocer fuentes OCR-A, OCR-B y MICR. [31]
Los campos de peine son cuadros preimpresos que alientan a los humanos a escribir de manera más legible: un glifo por cuadro. [28] Estos suelen estar impresos en un color que se puede eliminar fácilmente con el sistema de OCR. [28]
Palm OS utilizaba un conjunto especial de glifos, conocido como Graffiti , que son similares a los caracteres impresos en inglés, pero simplificados o modificados para facilitar su reconocimiento en el hardware computacionalmente limitado de la plataforma. Los usuarios debían aprender a escribir estos glifos especiales.
El OCR basado en zonas restringe la imagen a una parte específica de un documento. Esto suele denominarse OCR de plantilla .
El crowdsourcing de personas para realizar el reconocimiento de caracteres puede procesar imágenes rápidamente como el OCR controlado por computadora, pero con mayor precisión para reconocer imágenes que la obtenida a través de computadoras. Los sistemas prácticos incluyen Amazon Mechanical Turk y reCAPTCHA . La Biblioteca Nacional de Finlandia ha desarrollado una interfaz en línea para que los usuarios corrijan textos OCR en el formato estandarizado ALTO. [32] El crowdsourcing también se ha utilizado no para realizar el reconocimiento de caracteres directamente sino para invitar a los desarrolladores de software a desarrollar algoritmos de procesamiento de imágenes, por ejemplo, mediante el uso de torneos de orden de clasificación . [33]
Encargado por el Departamento de Energía de los EE. UU. (DOE), el Instituto de Investigación en Ciencias de la Información (ISRI) tuvo la misión de fomentar la mejora de las tecnologías automatizadas para comprender los documentos impresos por máquinas, y llevó a cabo la prueba anual más confiable de precisión de OCR entre 1992 y 1996. [35]
El reconocimiento de texto escrito a máquina en latín aún no es 100% preciso, incluso cuando se dispone de imágenes claras. Un estudio basado en el reconocimiento de páginas de periódicos del siglo XIX y principios del XX concluyó que la precisión del OCR carácter por carácter para el software de OCR comercial variaba del 81% al 99%; [36] la precisión total se puede lograr mediante revisión humana o autenticación de diccionario de datos. Otras áreas, incluido el reconocimiento de la impresión a mano, la escritura cursiva y el texto impreso en otras escrituras (especialmente aquellos caracteres de idiomas del este asiático que tienen muchos trazos para un solo carácter), aún son objeto de investigación activa. La base de datos MNIST se usa comúnmente para probar la capacidad de los sistemas para reconocer dígitos escritos a mano.
Las tasas de precisión se pueden medir de varias maneras, y la forma en que se miden puede afectar en gran medida la tasa de precisión informada. Por ejemplo, si no se utiliza el contexto de la palabra (un léxico de palabras) para corregir el software que encuentra palabras inexistentes, una tasa de error de caracteres del 1 % (99 % de precisión) puede resultar en una tasa de error del 5 % o peor si la medición se basa en si se reconoció cada palabra completa sin letras incorrectas. [37] El uso de un conjunto de datos lo suficientemente grande es importante en las soluciones de reconocimiento de escritura a mano basadas en redes neuronales. Por otro lado, producir conjuntos de datos naturales es muy complicado y requiere mucho tiempo. [38]
Un ejemplo de las dificultades inherentes a la digitalización de texto antiguo es la incapacidad del OCR para diferenciar entre los caracteres " s larga " y "f". [39] [34]
Los sistemas de OCR basados en la Web para reconocer textos escritos a mano al vuelo se han vuelto muy conocidos como productos comerciales en los últimos años [ ¿cuándo? ] (ver Historia de las Tablet PC ). Se pueden lograr índices de precisión del 80% al 90% en caracteres escritos a mano limpios y prolijos mediante software de computación con lápiz , pero ese índice de precisión todavía se traduce en docenas de errores por página, lo que hace que la tecnología sea útil solo en aplicaciones muy limitadas. [ cita requerida ]
El reconocimiento de textos en cursiva es un área de investigación activa, con índices de reconocimiento incluso más bajos que los de textos escritos a mano . Probablemente no será posible alcanzar índices más altos de reconocimiento de la escritura cursiva general sin el uso de información contextual o gramatical. Por ejemplo, reconocer palabras completas de un diccionario es más fácil que intentar analizar caracteres individuales de la escritura. Leer la línea de monto de un cheque (que siempre es un número escrito) es un ejemplo en el que el uso de un diccionario más pequeño puede aumentar considerablemente los índices de reconocimiento. Las formas de los caracteres cursivos individuales simplemente no contienen suficiente información para reconocer con precisión (más del 98 %) toda la escritura cursiva escrita a mano. [ cita requerida ]
La mayoría de los programas permiten a los usuarios establecer "índices de confianza". Esto significa que si el software no alcanza el nivel de precisión deseado, se puede notificar al usuario para que lo revise manualmente.
Un error introducido por el escaneo OCR a veces se denomina scanno (por analogía con el término typo ). [40] [41]
Los caracteres compatibles con OCR se agregaron al estándar Unicode en junio de 1993, con el lanzamiento de la versión 1.1.
Algunos de estos caracteres están asignados a fuentes específicas de MICR , OCR-A u OCR-B .
Cuando generamos los corpus originales de Ngram Viewer en 2009, nuestro OCR no era tan bueno […]. Esto era especialmente obvio en el inglés anterior al siglo XIX, donde la
s medial alargada
(ſ) a menudo se interpretaba como una f, […]. Aquí hay evidencia de las mejoras que hemos realizado desde entonces, utilizando el operador de corpus para comparar las versiones de 2009, 2012 y 2019 […]
{{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace )