El reconocimiento óptico de caracteres o el 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 escena-foto (por ejemplo el texto en letreros y vallas publicitarias en una foto de paisaje) o del texto de subtítulos superpuesto a una imagen (por ejemplo: de una transmisión de televisión).
Ampliamente utilizado como una forma de entrada de datos de registros de datos impresos en papel, ya sean documentos de pasaporte, facturas, extractos bancarios, recibos computarizados, tarjetas de visita, correo, impresiones de datos estáticos o cualquier documentación adecuada, es un método común de digitalización de impresos. textos para poder editarlos, buscarlos, almacenarlos de forma más compacta, mostrarlos en línea y utilizarlos en procesos de máquina como la computación cognitiva, la traducción automática, la conversión de texto a voz (extraída), datos clave y minería de textos. 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 personaje y trabajar en una fuente a la vez. Los sistemas avanzados capaces de producir un alto grado de precisión de reconocimiento para la mayoría de las fuentes son ahora comunes y son compatibles con una variedad de entradas de formato de archivo de imagen digital. Algunos sistemas son capaces de reproducir resultados formateados que se aproximan mucho a la página original, incluidas imágenes, columnas y otros componentes no textuales.
El reconocimiento óptico temprano de caracteres se remonta a tecnologías que involucran la telegrafía y la creación de dispositivos de lectura para ciegos. En 1914, Emanuel Goldberg desarrolló una máquina que leía caracteres y los convertía en código telegráfico estándar. Al mismo tiempo, Edmund Fournier d'Albe desarrolló el Optophone, un escáner de mano que cuando se movía a través de una página impresa, producía tonos que correspondían a letras o caracteres específicos.
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 microfilm utilizando un sistema de reconocimiento óptico de códigos. 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 comenzó la compañía Kurzweil Computer Products, Inc. y desarrollo continuo de omni fuente OCR, lo que podría reconocer el texto impreso en prácticamente cualquier fuente (Kurzweil a menudo se le atribuye la invención omni-fuente OCR, pero estaba en uso por empresas, incluida CompuScan, a finales de los sesenta y setenta). Kurzweil decidió que la mejor aplicación de esta tecnología sería crear una máquina de lectura para ciegos, que permitiría a las personas ciegas tener una computadora que les lea el texto en voz alta. Este dispositivo requirió la invención de dos tecnologías habilitadoras: el escáner de superficie plana CCD y el sintetizador de texto a voz. El 13 de enero de 1976, el exitoso producto terminado fue revelado durante una conferencia de prensa encabezada por Kurzweil y los líderes de la Federación Nacional de Ciegos. 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 papel legal y documentos de noticias en sus nacientes bases de datos en línea. Dos años más tarde, Kurzweil vendió su empresa a Xerox, que tenía interés en comercializar aún más la conversión de texto de papel a computadora. Xerox finalmente lo 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 servicio (WebOCR), en un entorno de computación en la nube y en aplicaciones móviles como la traducción en tiempo real de letreros 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 el texto capturado con la cámara del dispositivo. Estos dispositivos que no tienen la funcionalidad de OCR incorporada en el sistema operativo normalmente usarán una API de OCR para extraer el texto del archivo de imagen capturado y proporcionado por el dispositivo. 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 (bengalíes), devanagari, tamil, chinos, japoneses y coreanos.
Los motores de OCR se han desarrollado en muchos tipos de aplicaciones de OCR específicas del dominio, como OCR de recibos, OCR de facturas, OCR de cheques, OCR de documentos de facturación legal.
Pueden utilizarse para:
El OCR es generalmente un proceso "sin conexión", que analiza un documento estático. Hay servicios basados en la nube que brindan un servicio API de OCR en línea. El análisis del movimiento de escritura a mano se puede utilizar como entrada para el reconocimiento de escritura a mano. En lugar de simplemente usar las formas de glifos y palabras, esta técnica es capaz de capturar movimientos, como el orden en el que se dibujan los segmentos, la dirección y el patrón de dejar el bolígrafo y levantarlo. Esta información adicional puede hacer que el proceso de un extremo a otro sea más preciso. Esta tecnología también se conoce como "reconocimiento de caracteres en línea", "reconocimiento dinámico de caracteres", "reconocimiento de caracteres en tiempo real" y "reconocimiento inteligente de caracteres".
El software de OCR a menudo "preprocesa" las imágenes para mejorar las posibilidades de reconocimiento exitoso. Las técnicas incluyen:
La segmentación de fuentes de paso fijo se logra de manera relativamente simple alineando la imagen a una cuadrícula uniforme basada en donde las líneas de cuadrícula verticales se cruzan con menos frecuencia con las áreas negras. Para fuentes proporcionales, se necesitan técnicas más sofisticadas porque los espacios en blanco entre letras a veces pueden ser mayores que entre palabras, y las líneas verticales pueden cruzar más de un carácter.
Hay dos tipos básicos de algoritmos de OCR centrales, que pueden producir una lista clasificada de caracteres candidatos.
Software como Cuneiform y Tesseract utilizan un enfoque de dos pasos 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 es ventajoso para fuentes inusuales o escaneos de baja calidad donde la fuente está distorsionada (por ejemplo, borrosa o descolorida).
El software de OCR moderno como, por ejemplo, OCRopus o Tesseract utiliza redes neuronales que fueron entrenadas para reconocer líneas completas de texto en lugar de centrarse en caracteres individuales.
Una nueva técnica conocida como OCR iterativo recorta automáticamente un documento en secciones según el diseño de la página. El OCR se realiza en las secciones individualmente utilizando umbrales de nivel de confianza de caracteres variables para maximizar la precisión del OCR a nivel de página. Se ha emitido una patente de la Oficina de Patentes de los Estados Unidos para este método.
El resultado de OCR se puede almacenar en el formato ALTO estandarizado, un esquema XML dedicado mantenido por la Biblioteca del Congreso de los Estados Unidos. Otros formatos comunes incluyen 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 la salida está limitada por un léxico , una lista de palabras que pueden aparecer en un documento. 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.
El flujo de salida puede ser un flujo de texto sin formato 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 con capacidad de búsqueda..
El "análisis de vecinos cercanos" puede hacer uso de frecuencias de co-ocurrencia para corregir errores, notando que ciertas palabras a menudo se ven juntas. 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 escanea 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.
En los últimos años, los principales proveedores de tecnología OCR comenzaron a ajustar los sistemas OCR para tratar de manera más eficiente tipos específicos de entrada. Más allá de un léxico específico de la aplicación, se puede obtener un mejor rendimiento si se tienen en cuenta las reglas comerciales, la expresión estándar o la rica información contenida en las 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.
The New York Times ha adaptado la tecnología OCR a una herramienta patentada que ellos mismos titulan, 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 lo que equivale a 5400 páginas por hora en preparación para que los reporteros revisen el contenido.
Existen varias técnicas para resolver el problema del reconocimiento de caracteres por medios distintos a los algoritmos mejorados de OCR.
Las fuentes especiales como las fuentes OCR-A, OCR-B o MICR, con tamaños, espacios y formas de caracteres distintivos especificados con precisión, permiten una mayor tasa de precisión durante la transcripción en el procesamiento de cheques bancarios. Irónicamente, sin embargo, varios motores de OCR prominentes 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 de uso popular. Como Google Tesseract puede capacitarse para reconocer nuevas fuentes, puede reconocer fuentes OCR-A, OCR-B y MICR.
Los "campos de peine" son recuadros preimpresos que animan a los humanos a escribir de forma más legible: un glifo por recuadro. A menudo se imprimen en un "color de omisión" que el sistema OCR puede eliminar fácilmente.
Palm OS utilizó un conjunto especial de glifos, conocido como " Graffiti ", que son similares a los caracteres ingleses impresos pero simplificados o modificados para un reconocimiento más fácil en el hardware computacionalmente limitado de la plataforma. Los usuarios deberían aprender a escribir estos glifos especiales.
El OCR basado en zonas restringe la imagen a una parte específica de un documento. Esto a menudo se conoce como "Plantilla OCR".
El crowdsourcing de humanos para realizar el reconocimiento de caracteres puede procesar rápidamente imágenes como 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 con OCR en el formato ALTO estandarizado. El crowdsourcing también se ha utilizado no para realizar el reconocimiento de personajes directamente, sino para invitar a los desarrolladores de software a desarrollar algoritmos de procesamiento de imágenes, por ejemplo, mediante el uso de torneos por orden de clasificación.
Encargado por el Departamento de Energía de EE. UU. (DOE), el Instituto de Investigación en Ciencias de la Información (ISRI) tenía la misión de fomentar la mejora de las tecnologías automatizadas para comprender los documentos impresos a máquina, y llevó a cabo la prueba anual de precisión de OCR más autorizada de 1992. hasta 1996.
El reconocimiento del texto escrito a máquina en escritura latina todavía no es 100% exacto, 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 de OCR carácter por carácter para software comercial de OCR variaba del 81% al 99%; 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 escritura a mano, la escritura cursiva y el texto impreso en otras escrituras (especialmente los caracteres del idioma de Asia oriental que tienen muchos trazos para un solo carácter), siguen siendo objeto de una 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 formas, y la forma en que se miden puede afectar en gran medida la tasa de precisión informada. Por ejemplo, si el contexto de palabras (básicamente un léxico de palabras) no se usa 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% (95% de precisión).) o peor si la medición se basa en si cada palabra completa fue reconocida sin letras incorrectas. El uso de un conjunto de datos lo suficientemente grande es muy 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.
Un ejemplo de las dificultades inherentes a la digitalización de texto antiguo es la incapacidad del OCR para diferenciar entre los caracteres " s " largos y "f".
Los sistemas de OCR basados en la web para reconocer texto impreso a mano sobre la marcha se han vuelto muy conocidos como productos comerciales en los últimos años (consulte la historia de Tablet PC ). Se pueden lograr tasas de precisión del 80% al 90% en caracteres limpios e impresos a mano mediante un software de computación con lápiz, pero esa tasa de precisión aún se traduce en docenas de errores por página, lo que hace que la tecnología sea útil solo en aplicaciones muy limitadas.
El reconocimiento de texto en cursiva es un área activa de investigación, con tasas de reconocimiento incluso más bajas que las del texto impreso a mano. Es probable que no sea posible lograr tasas más altas 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 tratar de analizar caracteres individuales de un guión. La lectura de la línea 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 las tasas de reconocimiento. Las formas de los caracteres cursivas individuales en sí mismas simplemente no contienen suficiente información para reconocer con precisión (más del 98%) todas las letras cursivas escritas a mano.
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 "error tipográfico" ).
Los caracteres para admitir OCR se agregaron al estándar Unicode en junio de 1993, con el lanzamiento de la versión 1.1.
Algunos de estos caracteres se asignan a partir de fuentes específicas de MICR, OCR-A u OCR-B.
Cuadro de códigos oficial del Consorcio Unicode de reconocimiento óptico de caracteres (PDF) | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | mi | F | |
U + 244x | ⑀ | ⑁ | ⑂ | ⑃ | ⑄ | ⑅ | ⑆ | ⑇ | ⑈ | ⑉ | ⑊ | |||||
U + 245x | ||||||||||||||||
Notas
|
![]() | Wikimedia Commons tiene medios relacionados con el reconocimiento óptico de caracteres. |