Reconocimiento óptico de caracteres
Ampliamente utilizado como una forma de ingreso de datos de registros de datos impresos en papel, ya sean documentos de pasaporte, facturas, extractos bancarios, recibos computarizados, tarjetas comerciales, correo, impresiones de datos estáticos o cualquier documentación adecuada, es un método común. de digitalizar textos impresos para que puedan ser editados electrónicamente, buscados, almacenados de manera más compacta, mostrados en línea y utilizados en procesos de máquina tales como computación cognitiva, traducción automática, texto a voz (extraído), datos clave y minería de texto. OCR es un campo de investigación en reconocimiento de patrones, inteligencia artificial y visión artificial.
Las primeras versiones necesitaban ser entrenadas con imágenes de cada carácter y trabajaron 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 ahora son comunes y admiten una variedad de entradas de formato de archivo de imagen digital. Algunos sistemas pueden reproducir resultados formateados que se aproximan mucho a la página original, incluidas imágenes, columnas y otros componentes no textuales.
Historia
El reconocimiento óptico de caracteres temprano se puede rastrear hasta 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 por 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 década de 1930, Emanuel Goldberg desarrolló lo que llamó una "máquina estadística" para buscar archivos de microfilm usando 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.
Usuarios ciegos y con problemas de visión
En 1974, Ray Kurzweil fundó la empresa Kurzweil Computer Products, Inc. y continuó con el desarrollo del OCR omnifuente, que podía reconocer texto impreso en prácticamente cualquier fuente (a menudo se le atribuye a Kurzweil la invención del OCR omnifuente, pero fue en uso por empresas, incluida CompuScan, a fines de los años 60 y 70). 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 leyera el texto. alto. 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, se dio a conocer el exitoso producto terminado durante una conferencia de prensa ampliamente difundida 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 documentos legales y 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 se separó como Scansoft, que se fusionó con Nuance Communications.
En la década de 2000, OCR estuvo disponible 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 de 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 integrada 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 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.
Aplicaciones
Los motores de OCR se han desarrollado en muchos tipos de aplicaciones de OCR específicas de dominio, como OCR de recibos, OCR de facturas, OCR de cheques, OCR de documentos de facturación legal.
Se pueden utilizar para:
- Entrada de datos para documentos de negocios, por ejemplo Cheque, pasaporte, factura, declaración bancaria y recibo
- Reconocimiento automático de matrícula
- En aeropuertos, para reconocimiento de pasaportes y extracción de información
- Documentos de seguro automáticos información clave extracción
- Reconocimiento de la firma de tráfico
- Extracting información de la tarjeta de visita en una lista de contactos
- Más rápidamente hacer versiones textuales de documentos impresos, por ejemplo, escaneado de libros para el Proyecto Gutenberg
- Haga que las imágenes electrónicas de los documentos impresos puedan buscarse, por ejemplo. Google Books
- Convertir escritura en tiempo real para controlar un ordenador (pen computing)
- Derrotar los sistemas antibot de CAPTCHA, aunque están diseñados específicamente para prevenir OCR. El propósito también puede ser probar la robustez de los sistemas antibots de CAPTCHA.
- Tecnología de asistencia para usuarios ciegos y con discapacidad visual
- Escribir las instrucciones para los vehículos identificando imágenes CAD en una base de datos que son apropiadas para el diseño del vehículo, ya que cambia en tiempo real.
- Haciendo que los documentos escaneados busquen por convertirlos en PDF
Tipos
- Reconocimiento óptico de caracteres (OCR) – objetivos de texto escrito, un glifo o carácter a la vez.
- Reconocimiento de palabras ópticas: el texto escrito por objetivos, una palabra a la vez (para los idiomas que utilizan un espacio como dividedor de palabras). (Usually just called "OCR".)
- Reconocimiento de caracteres inteligentes (ICR) – también se dirige a la impresión escrita a mano o texto cursivo un glifo o carácter a la vez, generalmente implicando el aprendizaje automático.
- Reconocimiento inteligente de palabras (IWR) – también se dirige a la impresión escrita a mano o texto cursivo, una palabra a la vez. Esto es especialmente útil para idiomas donde los glifos no se separan en script cursivo.
OCR es generalmente un "sin conexión" proceso, que analiza un documento estático. Existen 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 los glifos y las palabras, esta técnica puede capturar movimientos, como el orden en que se dibujan los segmentos, la dirección y el patrón de dejar y levantar el bolígrafo. Esta información adicional puede hacer que el proceso de extremo a extremo sea más preciso. Esta tecnología también se conoce como "reconocimiento de caracteres en línea", "reconocimiento de caracteres dinámico", "reconocimiento de caracteres en tiempo real" y "reconocimiento de caracteres inteligente". reconocimiento".
Técnicas
Preprocesamiento
El software de OCR a menudo "procesa previamente" imágenes para mejorar las posibilidades de un reconocimiento exitoso. Las técnicas incluyen:
- De-skew – Si el documento no estaba alineado correctamente cuando se escanea, es posible que tenga que inclinarse unos pocos grados en sentido de reloj o en sentido contrario para hacer líneas de texto perfectamente horizontales o verticales.
- Despeckle – eliminar puntos positivos y negativos, los bordes de suavidad
- Binarisation – Convertir una imagen de color o gris en blanco y negro (llamada "imagen binario" porque hay dos colores). La tarea de la binarización se realiza como una forma sencilla de separar el texto (o cualquier otro componente de imagen deseado) del fondo. La tarea de la binarización es necesaria ya que la mayoría de los algoritmos de reconocimiento comercial funcionan sólo en imágenes binarias ya que resulta ser más simple de hacerlo. Además, la eficacia del paso de binarización influye en gran medida en la calidad de la etapa de reconocimiento de caracteres y las decisiones cuidadosas se toman en la elección de la binarización empleada para un tipo de imagen de entrada dado; ya que la calidad del método de binarización empleado para obtener el resultado binario depende del tipo de imagen de entrada (documento grabado, imagen de texto de escena, documento histórico degradado etc.).
- Eliminación de líneas – Limpia cajas y líneas no glifosas
- Análisis de diseño o "zonificación" – Identifica columnas, párrafos, capciones, etc. como bloques distintos. Especialmente importante en diseños y tablas multi-column.
- Detección de líneas y palabras – Establece la base para formas de palabras y caracteres, separa palabras si es necesario.
- Reconocimiento del script – En documentos multilingües, el script puede cambiar a nivel de las palabras y por lo tanto, la identificación del script es necesaria, antes de que se pueda invocar el OCR adecuado para manejar el script específico.
- Aislamiento de carácter o "segmentación" – Para per-character OCR, deben separarse varios caracteres conectados debido a los artefactos de imagen; los caracteres individuales que se dividen en múltiples piezas debido a los artefactos deben estar conectados.
- Normalizar la relación de aspecto y la escala
La segmentación de las fuentes de paso fijo se logra con relativa sencillez alineando la imagen en una cuadrícula uniforme basada en el lugar donde las líneas verticales de la cuadrícula intersectarán con menos frecuencia las áreas negras. Para las fuentes proporcionales, se necesitan técnicas más sofisticadas porque los espacios en blanco entre las letras a veces pueden ser más grandes que entre las palabras, y las líneas verticales pueden cruzarse con más de un carácter.
Reconocimiento de texto
Hay dos tipos básicos de algoritmo OCR central, que pueden producir una lista clasificada de caracteres candidatos.
- Matrix matching implica comparar una imagen con un glifo almacenado en una base pixel-por-pixel; también se conoce como "pattern matching", "reconocimiento de la pata", o "relación de imagen". Esto se basa en el glifo de entrada que está correctamente aislado del resto de la imagen, y en el glifo almacenado en una fuente similar y a la misma escala. Esta técnica funciona mejor con texto escrito y no funciona bien cuando se encuentran nuevas fuentes. Esta es la técnica que implementó el OCR basado en fotocélulas físicas tempranamente, más bien directamente.
- Extracción de objetos descompone glifos en "features" como líneas, bucles cerrados, dirección de línea y intersecciones de línea. Las características de extracción reducen la dimensionalidad de la representación y hacen que el proceso de reconocimiento sea computacionalmente eficiente. Estas características se comparan con una representación abstracta como vector de un personaje, que podría reducir a uno o más prototipos de glifos. Las técnicas generales de detección de características en la visión de la computadora son aplicables a este tipo de OCR, que se ve comúnmente en el reconocimiento de escritura "inteligente" y de hecho el software OCR más moderno. Clasificadores vecinos más cercanos como el algoritmo de vecinos de k-nearest se utilizan para comparar características de imagen con características de glifo almacenadas y elegir el partido más cercano.
Software como Cuneiform y Tesseract utilizan un enfoque de dos pasos para el reconocimiento de caracteres. El segundo pase se conoce como "reconocimiento adaptativo" y utiliza las formas de las letras reconocidas con gran 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 OCR moderno incluye Google Docs OCR, ABBYY FineReader y Transym. Otros, como OCRopus y Tesseract, utilizan redes neuronales 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.
Posprocesamiento
La precisión de OCR se puede aumentar si la salida está restringida por un léxico, una lista de palabras que pueden aparecer en un documento. Esto podría ser, por ejemplo, todas las palabras en 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 conservar 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 un Representación textual buscable.
"Análisis de vecinos cercanos" puede hacer uso de frecuencias de co-ocurrencia para corregir errores, al notar que ciertas palabras a menudo se ven juntas. Por ejemplo, "Washington, D.C." 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.
Optimizaciones específicas de la aplicación
En los últimos años, los principales proveedores de tecnología de OCR comenzaron a modificar los sistemas de OCR para manejar 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 al tener en cuenta las reglas comerciales, la expresión estándar o la información enriquecida contenida en las imágenes en color. Esta estrategia se llama "OCR orientado a aplicaciones" o "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 en una herramienta patentada que denominan, Document Helper, que permite a su equipo de noticias interactivo acelerar el procesamiento de documentos que necesitan para ser revisado Señalan que les permite procesar lo que asciende a 5400 páginas por hora en preparación para que los reporteros revisen el contenido.
Soluciones alternativas
Existen varias técnicas para resolver el problema del reconocimiento de caracteres por medios distintos a los algoritmos OCR mejorados.
Forzar una mejor entrada
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 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 más utilizadas. Como Google Tesseract se puede entrenar para reconocer fuentes nuevas, puede reconocer fuentes OCR-A, OCR-B y MICR.
"Campos de peine" son cuadros preimpresos que alientan a los humanos a escribir de manera más legible: un glifo por cuadro. A menudo se imprimen en un "color de omisión" que puede ser eliminado fácilmente por el sistema OCR.
Palm OS utilizó un conjunto especial de glifos, conocido como "Graffiti" que son similares a los caracteres impresos en inglés pero simplificados o modificados para un reconocimiento más fácil en el hardware computacionalmente limitado de la plataforma. Los usuarios tendrían que 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 denomina "Plantilla OCR".
Colaboración masiva
La colaboración humana 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 que se obtiene 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 OCRed en el formato ALTO estandarizado. 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 por orden de clasificación.
Precisión
Encargado por el Departamento de Energía (DOE) de los EE. UU., el Instituto de Investigación de 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áquina, y llevó a cabo la más autorizada de las Anuales Prueba de precisión OCR de 1992 a 1996.
El reconocimiento de texto mecanografiado en escritura latina 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 OCR comercial variaba del 81 % al 99 %; la precisión total se puede lograr mediante la revisión humana o la autenticación del 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 de idiomas de Asia oriental que tienen muchos trazos para un solo carácter), siguen siendo objeto de investigación activa. La base de datos MNIST se usa comúnmente para probar sistemas' Capacidad 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 el contexto de la palabra (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 se reconoció cada palabra completa 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 de OCR para diferenciar entre el "long s" y "f" caracteres.
Los sistemas OCR basados en web para reconocer texto escrito a mano sobre la marcha se han convertido en productos comerciales muy conocidos en los últimos años (consulte la historia de Tablet PC). Se pueden lograr índices de precisión del 80 % al 90 % en caracteres impresos a mano limpios y nítidos mediante el software de computación con lápiz, pero ese índice 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 aún más bajas que las del texto escrito a mano. Es probable que no sea posible obtener 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 script. Leer la línea Cantidad 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 cursivos individuales simplemente no contienen suficiente información para reconocer con precisión (más del 98%) todas las escrituras 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 logra el nivel deseado de precisión, se puede notificar a un 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").
Unicódigo
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 se asignan a partir de fuentes específicas de MICR, OCR-A u OCR-B.
Reconocimiento de caracteres ópticos Gráfico oficial de códigos Unicode Consortium (PDF) | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
U+244x | ⑀ | ⑁ | ⑂ | ⑃ | ⑄ | ⑅ | ⑆ | ⑇ | ⑈ | ⑉ | . | |||||
U+245x | ||||||||||||||||
Notas
|
Contenido relacionado
Árbol (estructura de datos)
Transporte en Haití
La seguridad informática