Breve reseña sobre el reconocimiento óptico de caracteres

Resumen
El reconocimiento óptico de caracteres (OCR) es una de las áreas más antiguas dentro del reconocimiento de patrones y el procesamiento de imágenes. Es un proceso encaminado a la digitalización de textos, aplicable en distintos ámbitos y lectores. El OCR es referido a menudo como la alternativa
más rápida, económica y segura para la entrada automática del contenido de los documentos impresos en papel a soportes electrónicos. En el presente artículo se describen los procesos que lo componen así como su utilización.
Abstract
Optical character recognition (OCR) is one of the oldest areas of pattern recognition and image processing. It is a process aimed at the digitization of texts, applicable in different areas and sectors. OCR is often referred to as the fastest, most economical and safest alternative for automatic entry of the content of paper documents into electronic media. The present article describes the processes that compose it as well as its use.

Introducción

La inteligencia es una capacidad mental muy general que, entre otros aspectos, implica la habilidad de razonar, planear, resolver problemas, pensar de manera abstracta, comprender ideas complejas, aprender rápidamente y aprender de la experiencia [1]. Todo lo anterior son habilidades mentales que nos permiten alcanzar con éxito las metas. Si nos faltara cualquiera de estas capacidades, seríamos claramente menos capaces de afrontar con éxito una amplia gama de entornos [2].

A pesar de que el funcionamiento de la mente humana no ha llegado a conocerse en su totalidad, por todos los procesos complejos que este implica, desde la antigüedad el hombre ha estado interesado en la posibilidad de crear máquinas que, mediante la simulación del pensamiento humano, realicen trabajos y acciones propias. Apoyado en este anhelo es que aparece en 1956 el término Inteligencia Artificial (IA) para describir las distintas técnicas que podrían conseguir que un ordenador actuase inteligentemente. Hoy, con los adelantos de la computación y los más de 50 años de investigación en las técnicas de la Inteligencia Artificial, el sueño de la creación de máquinas inteligentes se está convirtiendo en una realidad [3].

La IA es una rama de las ciencias computacionales encargada de estudiar modelos de cómputo capaces de realizar actividades propias de los seres humanos en base a dos de sus características primordiales: el razonamiento y la conducta [4].

Se han propuesto muchas definiciones del término Inteligencia Artificial de acuerdo a distintas perspectivas, entre ellas se encuentran las siguientes, que definen a la IA como: “La interesante tarea de lograr que las computadoras piensen... máquinas con mente, en su amplio sentido literal.”, “El estudio de cómo lograr que las computadoras realicen tareas que, por el momento, los humanos hacen mejor” [5], “El estudio de los cálculos que permiten, razonar y actuar.” En estas definiciones se hace especial enfoque hacia las facultades mentales y su relación con las actividades realizadas por los seres humanos por medio de sistemas de cómputo.

Cuando es necesario incorporar en un sistema informático, conocimiento o características propias del ser humano se acude a las técnicas de Inteligencia Artificial, especialmente cuando se trata de problemas algorítmicamente intratables que necesitan un tiempo exponencial para su solución y aquellos que carecen de algoritmo para resolverlos (no algorítmicos).

Las primeras aplicaciones en esta área estuvieron enfocadas a desarrollar algoritmos para juegos. Actualmente, la IA es una rama de la teoría de la computación que incluye áreas tales como el razonamiento automático, la demostración de teoremas, los sistemas expertos, el procesamiento de lenguaje natural, robótica, lenguajes y ambientes de IA, aprendizaje, redes neuronales, algoritmos genéticos, por mencionar solo algunas [4].

Las aplicaciones de reconocimiento de patrones representan la mitad de la industria de la inteligencia artificial. Entre las aplicaciones se encuentran: identificación de rostros, identificación de huellas dactilares, reconocimiento de escritura, análisis de datos científicos, pronósticos meteorológicos, análisis de muestras biológicas, análisis de datos provenientes de satélites de reconocimiento, visión de robots, reconocimiento óptico de caracteres, reconocimiento automático de voz y sistemas expertos [6].

El reconocimiento de patrones es la ciencia que se encarga de la descripción y clasificación de objetos, personas, señales, representaciones, etc., partiendo de un conjunto previamente establecido de todos los posibles objetos (patrones) individuales a reconocer. Sus áreas de aplicaciones son diversas, sin embargo, las más importantes están relacionadas con la visión y audición por parte de una máquina, de forma análoga a los seres humanos.

El reconocimiento óptico de caracteres es uno de los tópicos más antiguos dentro del reconocimiento de patrones. Consiste en un proceso computarizado dirigido a la digitalización de textos. Esta tecnología permite convertir una imagen digital, ya provenga de un escaneo de una hoja de texto como de una fotografía, en datos manejables para una computadora.

En el presente artículo nos referiremos al reconocimiento óptico de caracteres como un área más dentro de la Inteligencia Artificial, destacando su definición, los procesos que este implica, así como su utilización dentro de nuestra empresa.

El reconocimiento de patrones

El reconocimiento de patrones representa un desafío en sí mismo dentro de las ramas de la Inteligencia Artificial. Se define como el estudio de cómo las máquinas pueden observar el ambiente o entorno, aprender a distinguir patrones de interés a partir de la experiencia, y tomar decisiones razonables con respecto a las categorías a las que pertenecen dichos patrones [7]. Podríamos decir que un patrón es una entidad a la que se le puede dar un nombre [8], como por ejemplo, una imagen de huella digital, una palabra manuscrita, un rostro, una señal representando voz hablada, entre otros muchísimos ejemplos posibles. Dado un patrón, la tarea de su reconocimiento o clasificación puede ser resuelta, en principio, de dos maneras: de forma supervisada, en la cual el patrón será identificado como miembro de una clase predefinida, o de forma no supervisada, en la cual el patrón será asignado a una clase desconocida previamente y aprendida en base a la similitud entre patrones [7].

El reconocimiento óptico de caracteres

El reconocimiento óptico de caracteres [OCR] es una de las áreas más antiguas dentro del reconocimiento de patro­nes y el procesamiento de imágenes, con una contribución muy amplia en el reconocimiento de documentos impresos [9]. Se define como la traducción mecánica o electrónica de imágenes o de textos, ya sean escritos a mano, a máqui­na o impresos y en textos digitales editables [10].

 

Los sistemas OCR se definen como aquellos que proveen un reconocimiento alfanumérico completo de caracteres impresos o manuscritos [11]. Escanean los documentos impresos en papel duro como una imagen digital. Luego, mediante algún proceso de comparación de caracteres, cuyo propósito es identificar letras o números impresos, reconocen los caracteres presentes en la imagen escaneada para formar un documento digital independiente, el cual puede ser editado o procesado, sin la necesidad de rees­cribirlos [9] [12].

La forma para lograr el mencionado reconocimiento de caracteres se basa en algoritmos que convierten las letras representadas en una imagen digital de estos con formato de texto, por ejemplo ASCII o Unicode [11] [12].

Mientras que en una imagen los caracteres se describen indicando cada uno de los píxeles que la conforman, al convertirlos a un formato de texto, pasan a estar descritos por un solo número, por lo que se produce una reducción significativa del espacio en memoria que ocupan los do­cumentos. Por tanto, para lograr el objetivo de almacenar millones de datos en formato electrónico se usan los OCR como herramientas clave [13]. Además, al convertirlos en formato texto se posibilita la búsqueda y recuperación de información por un determinado tema o palabra clave; así como la traducción a otro lenguaje o el resumen automáti­co para distintos propósitos [14].

OCR su historia

La historia de los sistemas OCR data de 1914 cuando Emanuel Goldberg desarrolló una máquina que leía carac­teres y los convertía en código telegráfico [13]. Pero no es hasta 1929, cuando Gustav Tauschek obtuvo una patente sobre OCR en Alemania [15] [14] [11]. La máquina de Tauschek era un dispositivo mecánico que utilizaba plan­tillas. Un fotodetector era colocado de modo que cuando la plantilla y el carácter que se reconocería estuvieran ali­neados, una luz era dirigida hacia ellos [11].

 

En 1949, los ingenieros de RCA trabajaron en la primera computadora tipo OCR primitiva para ayudar a los ciegos. Su dispositivo convertía un texto impreso en lenguaje di­gital y luego los leía. Esto resultó muy costoso y no fue continuado [13] [11].

 

En 1950, David Shepard, criptoanalista en la Agencia de Seguridad de las Fuerzas Armadas de los Estados Uni­dos, fue consultado para convertir mensajes impresos en lenguajes para almacenarlos en un computador, constru­yendo una máquina llamada “Gismo”, la cual podía leer 23 letras del alfabeto inglés, comprender código Morse, leer notas musicales, páginas impresas y duplicar páginas mecanografiadas [13]. En 1935, Shepard fundó Intelligent Machines Research Corporation (IMR), comenzando a fa­bricar el primero de varios sistemas de OCR usados para operaciones comerciales [10].

 

El primer sistema comercial fue instalado en Readers Di­gest en 1955, que, muchos años más tarde, fue donado al museo Smithsonian, donde fue puesto en exhibición [14] [13]. El segundo sistema fue vendido a los Standard Oil Company de California para leer impresiones en tarjetas de crédito para propósitos de facturación, además se ven­dieron muchos más sistemas a compañías petroleras.

 

En 1974, Ray Kurzweil lideró el desarrollo del primer programa de computación capaz de reconocer texto im­preso en cualquier tipo de letra normal. Él decidió que la mejor aplicación de esta tecnología sería crear una máqui­na lectora para los ciegos, que ayudaría a las personas cie­gas entender un texto escrito teniendo a una computadora leyéndole en voz alta [14] [11].

 

Dado que las investigaciones académicas en los cam­pos de reconocimiento de patrones e inteligencia arti­ficial continúan, el foco en OCR se ha desplazado a la implementación de técnicas probadas. El reconoci­miento óptico de caracteres (usando técnicas ópticas como espejos y lentes) y el reconocimiento digital de caracteres (usando escáners y algoritmos computacio­nales) eran considerados originalmente campos sepa­rados. Debido a que muy pocas aplicaciones que usan técnicas ópticas han sobrevivido, el término OCR se ha ampliado para incluir también procesamiento digi­tal de imágenes [10].

 

Los primeros sistemas requerían entrenamiento (suminis­trarle ejemplos conocidos de cada carácter) para leer un tipo de letra específico. Los sistemas “inteligentes” con un alto grado de precisión de reconocimiento para más fuentes son ahora comunes. Algunos sistemas son incluso capaces de reproducir salidas formateadas que se aproxi­man mucho a las páginas originales incluyendo imágenes, columnas y otros componentes no textuales [10].

 

Procesamiento de OCR

 

En el procesamiento de OCR (figura 1) están presentes tres procesos básicos para lograr el reconocimiento de ca­racteres [11]:

 

• Proceso de escaneo

• Proceso de reconocimiento

• Proceso de verificación

 

Figura 1. Procesos básicos para lograr el reconocimiento de caracteres. Fuente: Elaboración propia.

La complejidad de cada proceso varía según la meto­dología empleada para llevarlo a cabo. Pero, en sentido general, se escanea el documento, luego se realiza el pro­ceso de reconocimiento del texto que contiene a través de varios algoritmos complejos, plantillas y diccionarios adicionados previamente los cuales son contrastados con los caracteres en el documento y los correspondientes ca­racteres editables [11], y finalmente se realiza la verifica­ción con intervención humana, la cual puede ser aleatoria o cronológica.

 

El buen resultado de un proceso de escaneo del documen­to depende de la calidad del escáner [11], la correcta con­figuración del mismo y la resolución de la imagen que se obtenga. Además, se puede mejorar con técnicas de pro­cesamiento de imágenes con el objetivo de limpiarla, sua­vizarla y eliminar ruidos [11] [15] [16] como puede ser el proceso de binarización [12] [9] que consiste en convertir la imagen digital en bitonal, procurando que se conserven las propiedades esenciales de ésta.

 

El proceso de reconocimiento contiene una fase de seg­mentación y luego una fase de comparación para obtener el documento digitalizado. La segmentación, también lla­mada aislamiento o fragmentación, es una de las fases más importantes del proceso de OCR [16] [17], ya que con­vierte la imagen del documento en unidades reconocibles. Puede ser dividida en 3 partes fundamentales:

 

• Segmentación de líneas [9] [11] [14] [16] [17]: un blo­que de texto es tomado como entrada y escaneado hori­zontalmente. La frecuencia de los píxeles negros es detec­tada con el objetivo de construir una línea y definir así la cabecera y la base de cada línea. En documentos manus­critos esto puede ser muy variable y por tanto complejo.

 

• Segmentación de palabras [9] [16] [17]: cuando una lí­nea es detectada, es escaneada entonces verticalmente. El número de píxeles negros en cada columna es calculado, cuando no hay ninguno en la columna se considera que probablemente exista un espacio entre 2 palabras. Se ha estimado que este espacio está dado por 3 columnas de píxeles consecutivos vacíos.

 

• Segmentación de caracteres [9] [11] [16]: la palabra es separada en caracteres individuales.

 

Algunos investigadores mencionan también la segmenta­ción de zonas [17] que permiten identificar otros factores en el texto como: inclinación, ángulo y distancia [11][12]. Pero este pudiera ser visto como parte de las segmentacio­nes de líneas, palabras y caracteres [16].

 

Algunos algoritmos para la segmentación de caracteres incluyen procesos de fragmentación, adelgazamiento y segmentación para mejorar la extracción de las letras y finalmente la comparación de patrones. La fragmentación localiza las zonas de interés (en este caso las letras) y las separara, basándose en la intensidad con la que están di­bujadas o los espacios blancos entre ellas [12]. Uno de los métodos para este proceso es segmentar la imagen digital en pequeños clústers o áreas que no contengan elementos unidos en algún punto. Aunque estos métodos se com­plican más en textos manuscritos donde las mayúsculas algunas veces se sobreponen con letras de otras líneas o existen distintos ángulos de inclinación y distancias entre las palabras [10].

El adelgazamiento de los componentes consiste en bo­rrar de manera sucesiva los puntos del borde de cada letra, eliminando los ruidos y preservando su tipología. [11][12]. En la segmentación la imagen con el carácter encontrado es recortada para que ajuste al tamaño de la plantilla [11]. Finalmente, el proceso de comparación identifica los caracteres resultantes del paso anterior y los coteja con una serie de plantillas almacenadas en una base de datos, permitiendo su identificación como letras o números [12]. Esta etapa es definitiva para la recupe­ración del texto, ya que de su buen funcionamiento de­penderá la obtención de la mayor cantidad de caracteres reconocidos correctamente.

Una vez terminado el proceso de segmentación se realiza la fase de comparación para poder completar el reconoci­miento. En esta fase, la imagen ya segmentada es corre­lacionada con todas las plantillas que se hayan cargado previamente al sistema OCR [11]. Una vez completada la comparación, la plantilla con mayor valor de correla­ción es declarada como el carácter presente en la imagen, usando como correlación el porcentaje de cercanía de la imagen segmentada con las plantillas. Muchos sistemas OCR hacen uso de esta técnica de reconocimiento de pa­trones y otros la combinan con el uso de redes neuronales artificiales [7] [9] [11] para que además aprendan con el objetivo de incrementar la eficiencia del proceso de reco­nocimiento.

Problemas con OCR

A pesar de que el OCR es uno de los tópicos más antiguos dentro del Reconocimiento de Patrones y ha sido estudia­do durante varios años obteniéndose una alta precisión en las respuestas, está lejos de considerarse resuelto.

 

El funcionamiento exitoso del proceso OCR radica esen­cialmente en la clase de imagen a la que se le apliquen estos procesos: que el texto en el documento original sea legible, exento de roturas, manchas, ataques de insectos o deformaciones por la humedad y el tiempo, con letras uniformes y bien impresas y por otra parte que la repre­sentación digital que se obtenga de la imagen sea nítida, encuadrada, sin perspectiva o deformaciones por curvatu­ra y a una resolución suficiente que permita la captura fiel del texto impreso [12].

 

En documentos manuscritos pueden surgir varios proble­mas adicionales pues la separación de caracteres ya no es tan elemental, específicamente en escrituras con letras conectadas [13] y/o con errores tales como la superposi­ción, caracteres incompletos, variación del tamaño de las letras, entre otros [10] [16] [17]. Por tanto, la precisión en el reconocimiento asociada tanto a caracteres impresos en una imagen degradada o a caracteres manuscritos, es aún insuficiente [7].

Dónde se puede utilizar

El OCR es una tecnología transversal, aplicable en distin­tos ámbitos y sectores para la digitalización de formula­rios, documentos administrativos, informes, facturas, etc., ya que las ventajas que ofrece son comunes para todos ellos. En el sector de la cultura, por ejemplo en el ámbito de la preservación del patrimonio, el OCR se aplica prin­cipalmente en los procesos de digitalización de documen­tos históricos que se encuentran en soporte papel [18].

Aunque el OCR no es una herramienta para hacer los do­cumentos accesibles para personas con discapacidades vi­suales, su aplicación combinada con otras tecnologías per­mite que el texto resultante se sintetice en líneas de braille o archivos de audio [19]. Al permitir extraer el texto de documentos digitalizados pueden realizarse búsquedas en todo el documento y en el proceso de creación de los me­tadatos. El OCR asimismo se puede utilizar para generar índices de palabras clave del texto reconocido de forma automática.

La mayoría de los programas de OCR pueden escanear una página y efectuar inmediatamente el reconocimiento óptico, con la condición de que el escáner esté conectado directamente a la computadora que ejecuta el programa. Aunque escanear y efectuar el OCR página a página es un método razonable cuando se trabaja con pocos docu­mentos, resulta muy largo para trabajos más voluminosos y continuos. Para tratar volúmenes superiores, en cambio, es más rápido y eficaz escanear en primer lugar el docu­mento y aplicar después el proceso de OCR a todas las páginas de una sola vez [20].

Herramientas utilizadas

Existe un grupo de herramientas de software OCR, las más populares son ABBYY Fine Reader OCR, ReadIRIS Pro y Nuance OmniPage que son de las más precisas y productivas para el reconocimiento de textos y conversión de documentos, pues permite eliminar la necesidad de volver a escribir a máquina, reducir los esfuerzos y costos de transformación de documentos a una información edi­table y con posibilidad de búsqueda.

Aunque algunas herramientas OCR son mejores que otras, el software solo no puede garantizar 100% de precisión. Esto es porque hay otros factores en juego, incluyendo la calidad de escaneo, ya que el proceso de reconocimiento no será capaz de hacer su trabajo si el escáner no está di­gitalizando correctamente la página.

 

Se recomienda para escanear una resolución de 300 ppp para obtener mejores resultados. Blanco y Negro (bitonal) se prefieren sobre los modos de escala de grises o en co­lor, y aunque la mayoría de los escáneres modernos están bastante bien configurados fuera de la caja, es posible que desee ajustar la configuración de brillo y contraste para sus documentos particulares.

 

Determinar qué aplicación es más precisa, a menudo, de­pende de los documentos específicos de que se trate. Una aplicación puede manejar un tipo particular de diseño de página mejor que otra. Con la casi infinita variedad de di­seños de documentos, fuentes, estructuras de tablas y otras variables, es imposible decir que una aplicación siempre será mejor que la otra. Sin embargo, en nuestra opinión, la empresa ABBYY es muy superior por el apoyo que pro­porciona, ofreciendo un mejor soporte y su dedicación al desarrollo de soluciones de OCR. Hemos encontrado que ABBYY tiene la capacidad de reconocer textos para 48 idiomas, tiene diccionario y la interfaz se puede activar en cualquiera de las 24 lenguas, ofreciendo un formato más consistente para las fuentes, negrita y cursiva. Textos extraídos con OmniPage son más propensos a tener va­riaciones cuando son con oscuridad y se reconocen como negrita o cursiva. Esto no habla directamente de la exacti­tud del texto subyacente, pero tener que corregir gran can­tidad de formato del texto es una tarea significativa para aquellos que buscan recrear el documento en un editor de textos como, por ejemplo, Microsoft Word. En el caso de ReadIRIS ofrece buenas características y precisión por un precio mucho más bajo.

 

Conclusiones

La aplicación del software de reconocimiento óptico de caracteres en los procesos de digitalización de informa­ción es de gran importancia, pues estos procesos nos permiten un ahorro considerable del tiempo de trabajo empleado en llevar a cabo determinadas tareas de reutili­zación, indexado y modificación de todo lo almacenado. El conocimiento de la existencia de estas herramientas, la importancia que representan las mismas para mejorar nuestro trabajo hace de este material algo positivo y ne­cesario de conocer por todos. Las empresas que utilizan las tecnologías de la información y realizan intercambio digital de datos, no pueden estar ajenas a estas ventajas, que les permitirá lograr mayor eficiencia y productividad.

 

Referencias bibliográficas

[1] Gottfredson, Linda S. "Mainstream science on intelligence: An editorial with 52 signatories, history, and bibliography." Intelligence, vol. 24, no.1 (1997): 13-23.

[2] Legg, Shane, and Hutter, Marcus. "Universal intelligence: A definition of machine intelligence." Minds and Machines, vol. 17, no. 4 (2007): 391-444.

[3] Van de Gevel, Ad JW, and Noussair, Charles N. The Nexus Between Artificial Intelligence and Economics. Berlin: Springer Berlin Heidelberg, 2013, p. 9.

[4] López Takeyas, Bruno. "Introducción a la inteligencia artificial." vol. 23, no. 12, (2007): 1.

[5] Rich, Elaian, and Knight, Kevin. Introduction to artificial intelligence. New York: McGraw-Hill, 1991, p. 12.

[6] Beekman, George. Introducción a la computación. México: Addison-Wesley, 1999, p. 221.

[7] Seijas, Leticia María. “Reconocimiento de patrones utilizando técnicas estadísticas y conexionistas aplicadas a la clasificación de dígitos manuscritos”. Tesis de Doctorado, Universidad de Buenos Aires, Argentina, 2011.

[8] Jain, A., Duin, R. and Mao, J. “Statistical pattern recognition: A review,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 1 (2000): 4–37.

[9] Sanjeev Kunte, R., and Sudhaker Samuel, R.D. “A simple and efficient optical character recognition system for basic symbols in printed Kannada text”. Sadhana, vol. 32, no. 5 (octubre/2007): 521-33.

[10] Mondal, Kajal. “Extraction of Text Lines from Handwritten Bangla Document Pages”. Tesis de Maestría , Jadavpur University, Calcuta, 2010.

[11] Charles, Pranob K., Harish, V. , Swathi, M. and Deepthi, C. H. “A review on the various techniques used for optical character recognition”. International Journal of Engineering Research and Applications, vol. 2, no. 1 (enero – febrero/2012): 659-62.

[12] Ballesteros, Silvia, Morales, Guillermo y Cedillo, Pavel. “Los problemas de identificación de caracteres OCR para la recuperación de texto en el libro antiguo: un análisis de caso en el Fondo Antiguo de la Biblioteca Central, UNAM”. Biblioteca Universitaria, vol. 15, no. 1 (enero – junio/2012): 25-34.

[13] Banerjee, Saikat. “A Study on Tesseract Open Source Optical Character Recognition Engine”. Tesis de Maestría, Jadavpur University, Calcuta, 2012.

[14] Gupta, Shaina and Sihag, Daulat. “Recognition Of Handwritten Devnagari Numerals With Svm Classifier”. International Journal of Computer Science and Mobile Computing, vol. 3, no. 9 (septiembre/2014): 592-598.

[15] Perwej, Yusuf and Chaturvedi, Ashish. “Neural networks for handwritten english alphabet recognition”. International Journal of Computer Applications, vol. 20, no. 7 (abril/2011): 1-5.

[16] Chanana, Ankita and Jain, Chandana. “A Review On Various Techniques For Character Segmentation Of Handwritten Text Documents”. International Journal Of Engineering Sciences & Research Technology, vol. 4, no. 7 (julio/2015): 244-48.

[17] Palakollu, Saiprakash, Dhir, Renu and Rani, Rajneesh. “Handwritten Hindi text segmentation techniques for lines and characters”. World Congress on Engineering and Computer Science, San Francisco, USA, 2012.

[18] Baird, H. “Digital Document Processing” Springer-Verlag New York, 2014: 261 -279.

[19] Ringger, E. K. "Improving Optical Character Recognition through Efficient System". In Proceedings of the 9th ACM/IEEE-CS joint conference on Digital libraries, Austin, TX, USA, 2010: 231-240.

[20] Maruyama, M. and Miyao, J . “A Document Analysis System Based on Text Line Matching of OCR Outputs”. Springer-Verlag New York, 2012: 463-471.

 

(Artículo recibido en marzo de 2017 y aprobado en agosto de 2017)

Palabras clave
Inteligencia artificial, reconocimiento de patrones, reconocimiento óptico de caracteres