Tecnologías multimedia e interacción/Digitalización de texto

De Wikiversidad
Ortografía

Esta página o sección necesita una revisión de ortografía y gramática.
Puedes ayudar editándolo


Este recurso de aprendizaje es una lección creada originalmente como material didáctico del proyecto de aprendizaje Tecnologías multimedia e interacción.

En esta lección veremos el proceso de digitalizar un texto. Partiremos de un documento en papel, e indicaremos todos los pasos a seguir para conseguir un documento electrónico.


¿Qué es la digitalización de texto?[editar]

Digitalización de un manuscrito.

Cuando hablamos de digitalización, nos referimos a pasar elementos del mundo físico al mundo digital. Por ello aquí, al hablar de digitalización de un documento, nos referimos a un documento en papel (un libro, una revista, un periódico, etc).

Para digitalizarlo, necesitamos obtener una imagen del mismo. Esto puede hacerse mediante diferentes tecnologías, como pueda ser un escáner o una cámara de fotos. Lo que obtenemos al digitalizar es una imagen que contiene texto, además de potencialmente otros elementos, como puedan ser imágenes, tablas, diagramas, etc. Al realizar el proceso de digitalización, convertimos toda esta información a una única imagen. Esto es particularmente perjuicioso para el texto, pues pierde una de sus mejores características en el mundo digital: la posibilidad de realizar búsquedas sobre el mismo.

A lo largo de esta página, vamos a ver cómo pasar desde un libro en papel a un libro digitalizado sobre el cual podamos hacer dichas búsquedas. Por el camino mejoraremos la calidad de la imagen tomada, aplicaremos OCR para reconocer el texto plano, y terminaremos estudiando algunos de los posibles formatos que podemos dar a este tipo de multimedia, y cuál se adapta mejor a nuestras necesidades.


Del papel al ordenador[editar]

Escáner, elemento mediante el cual es posible la digitalización del papel.

Una de las primeras maneras de obtener una imagen de algo impreso en papel fue el Fax. Un Fax tomaba un folio, lo escaneaba, y lo mandaba por la línea telefónica hasta el receptor, donde se imprimía el documento copiando el original. Los faxes originales sólo eran capaces de reconocer blanco y negro, por tanto perdían habitualmente muchos detalles importantes de los documentos. Con el tiempo mejoraron a escala de grises, y finalmente a color. Con esta transformación dejaron de utilizarse exclusivamente con el propósito original de enviar documentos por teléfono, y se pasó al más conocido término "escáner", que, teniendo las mismas funciones, nos permitía guardar los archivos escaneados en el ordenador, para luego enviarlos por email, o incluso fax, si lo deseábamos.

Cualquier escáner a día de hoy tiene la resolución suficiente para capturar con todo detalle los elementos de las páginas de un libro: texto, tablas, diagramas... en blanco y negro, gris o a color. Rivalizando con ellos han surgido en los últimos años aplicaciones [1] que permiten mediante la cámara de dispositivos móviles simular el efecto de un escáner, aplicando filtros a las imágenes para limpiarlas y mejorarlas. Así, cualquiera que cuente con un teléfono o cámara en su bolsillo, cuenta con un potencial escáner de libros.

Decidido el aparato digitalizador, queda la ardua tarea de digitalizar. Si el libro no es nuestro, no nos queda más remedio que pasar página por pagina e ir escaneándolas una a una. Pero si no nos importa hacerle una ligera modificación, es posible cortar el lomo para separar todas las páginas del libro. Así, mediante el uso de escáneres automáticos, que pueden escanear tacos de folios, la tarea se facilita enormemente.

De un modo u otro, acabaremos con cierto formato de imagen en nuestro ordenador: png, jpg, gif o incluso pdf con las imágenes incrustadas. A menos que hayamos configurado el escáner a la perfección, lo más seguro es que las imágenes no estén totalmente a nuestro gusto. En general (y lo que trataremos aquí), vamos a querer tener nuestro libro en blanco y negro, con letras claras y sin manchas de fondo.


Mejorando la calidad del escaneo[editar]

Los libros pueden contar con cientos de páginas, y hacer una mejora una por una con un programa de edición de imágenes es inviable. Por tanto lo ideal es utilizar alguna herramienta que permita la modificación por lotes de imágenes, como imagemagick [2]. La idea será tomar una página de ejemplo, ver mediante prueba y error qué modificaciones pueden ser útiles, y tras estar conformes aplicarlas por lotes a todas las páginas del libro. Por ejemplo, algunos de los comandos que podemos utilizar son:

Texto escaneado con artefactos debidos a una mala compresión y/o escaneo.
Texto escaneado y mejorado, ampliando la resolución, quitando artefactos y pasando a blanco y negro para mejor legibilidad.
  • Para convertir a blanco y negro
convert <input> -threshold 70% -type bilevel <output>
  • Para aumentar la resolución de la imagen y después pasar a blanco y negro (sirve para conseguir bordes más suaves que la primera opción).
convert <input> -resize 200% -threshold 70% -type bilevel <output>
  • Para eliminar bordes negros resultantes del escaneado: Añadimos un borde negro sólido a lo largo de la página, y lo rellenamos inundando de blanco. Cualquier artefacto negro que toque nuestro borde también se volverá blanco.
convert <input> -shave 10x10 -bordercolor black -border 10 -fill white -floodfill +5+5 black <output>

Estas y muchas más opciones pueden verse en la documentación [3]. Utilizando el comando mogrify es posible procesar de golpe un conjunto de imágenes por lotes.

Tenemos pues nuestro libro escaneado y mejorado a nuestro gusto, y nos interesaría poder hacer búsquedas por el texto que contiene. Pero ahora mismo es tan solo un conjunto de imágenes. Esto puede cambiar gracias al OCR:



El OCR[editar]

El OCR (del inglés Optical Character Recognition) es un proceso mediante el cual una imagen que contiene texto es analizada para extraer el texto plano que contiene.

¿En qué consiste el OCR?[editar]

La fuente OCR-A. Se aprecia el monoespaciado, y que los caracteres son bastante cuadriculados. Esto facilita el reconocimiento a las máquinas.

Tradicionalmente, se diseñaban fuentes con una tipografía especialmente diseñada para facilitar este reconocimiento a los ordenadores. En un principio estas fuentes se restringían a la representación de caracteres numéricos, añadiendo algunos caracteres especiales de control. La introducción de artefactos en forma de barras en las fuentes, permitía que un escáner, similar a los de códigos de barras, realizara el reconocimiento. Las máquinas eran capaces de reconocer con un grado de precisión muy alto todos los caracteres representados en estas primeras fuentes, pero tenían grandes limitaciones: No tenían caracteres alfabéticos, y tampoco eran cómodas de leer para humanos, debido a sus formas poco naturales.

Poco a poco evolucionaron para incorporar caracteres alfanuméricos (OCR-A (en inglés), OCR-B (en inglés)), manteniendo unas formas que facilitaran el reconocimiento a las máquinas, pero además haciendo cómoda la lectura a los humanos. Todas estas fuentes diseñadas para OCR tenían una gran fortaleza, y es que le reconocimiento podía hacerse sencillamente comparando con los caracteres de la fuente, lo cual lo hacía muy sencillo.

No obstante, estas fuentes específicas quedaron obsoletas ante la creciente disponibilidad de fuentes de diversas tipografías, por adaptarse estas últimas mucho mejor a los gustos de los usuarios. Así, el OCR ya no podía ser una técnica de encaje de patrones, por tanto se planteaba el problema de cómo reconocer caracteres sin saber a qué fuente pertenecen (es decir, sin tener previamente unos patrones concretos de cómo va a ser cada caracter).

El proceso del OCR[editar]

La solución dada, aún utilizada hoy día, pasa por aplicar una serie de pasos al reconocimiento de texto:

  • En primer lugar, la imagen del texto puede no ser de una gran calidad: Diferentes artefactos pueden interferir en el reconocimiento, el contraste de la imagen puede no ser el adecuado para el análisis, etc. Por ello se realiza una etapa de preprocesado, en la cual se intenta mejorar la calidad del texto mediante una serie de técnicas:
    • Se eliminan manchas de la imagen, bordes, o sombras indeseadas.
    • Se aplican filtros de refinamiento de bordes, para poder ver con más nitidez los diferentes caracteres.
    • Por último se pasa la imagen a blanco y negro, para facilitar el reconocimiento reduciendo la cantidad de información contenida en la misma.
  • Una vez limpiada la imagen, necesitamos separar el texto en caracteres para poder reconocerlos uno a uno. Lo más sencillo en este punto es asignar cada cúmulo de píxeles negros conectados como un caracter individual. Esta técnica funciona bien con fuentes en las cuales los caracteres no se encuentran enlazados. Para este último caso, se pueden aplicar otras técnicas posteriormente, como separar las regiones conexas en las zonas de menor densidad de píxeles negros.
  • Conseguidos los caracteres individuales, nos disponemos a realizar el reconocimiento propiamente dicho. En este punto, si se supiese la fuente analizada (premisa en la que se basaban OCR-A y OCR-B), podría realizarse un reconocimiento de patrones de imágenes. En la actualidad, se basa en extraer las características de cada caracter para posteriormente comparar con patrones. Esta idea se basa en que, por ejemplo, la letra 'A' mayúscula está siempre formada por dos líneas en ángulo, con una tercera que las cruza horizontalmente. Podrá tener una inclinación u otra dependiendo de la fuente, pero la clave está en que la estructura intrínseca se mantiene.
  • Partiendo de las características extraídas para cada caracter en la etapa enterior, éstas se cruzan con una base de datos para encontrar el caracter de características más parecidas. Es aquí cuando a cada símbolo se le asigna el caracter de texto plano que le corresponde. Dependiendo del nivel de parecido que se encuentre, los algoritmos tendrán una mayor o menor confianza en el resultado, pudiendo asegurar con un intervalo de confianza variable sus decisiones.
  • Los sistemas de OCR, como numerosos algoritmos de reconocimiento hoy en día, no son algo estático, y se moldean para mejorar con el tiempo. En este caso distinguimos dos maneras de hacerlo:
    • Con ayuda de humanos: Si un usuario del sistema detecta un fallo de reconocimiento, puede indicar al sistema OCR el error para que se corrija e incorpore la mejora en sucesivos reconocimientos.
    • Automáticamente: En la etapa de separación de símbolos, también se distinguen las palabras con ayuda de los espacios en blanco que las separan. Así, una vez reconocidos los caracteres, se componen en forma de palabras para fabricar el texto plano. Si el reconocimiento de un caracter había fallado, lo más probable es que la palabra resultante no exista en el idioma del texto, por tanto cruzando los resultados con un diccionario, es posible detectar erratas que se corrijan de forma automática tomando la palabra más parecida de entre las existentes. Además esto permite saber qué carcteres en concreto habían sido mal reconocidos, y retroalimentar el sistema automáticamente.

¿Para qué sirve el OCR?[editar]

El OCR tiene numerosas aplicaciones que dan servicio a una gran cantidad de usuarios, si bien habitualmente no se es consciente de esto. Entre ellas están:

  • Reconocimiento de escritura en dispositivos táctiles: Desde la invención de las PDAs, hasta los smartphone de hoy en día, podemos escribir con un lápiz digital o con nuestro dedo en la pantalla como si de un cuaderno se tratase. La máquina es capaz en tiempo real de reconocer qué escribimos, y transformarlo a texto plano para poder enviar e-mails o tomar notas.
  • Preservación de documentos históricos: Tradicionalmente sólo se han guardado las imágenes digitalizadas de los documentos históricos. Con los avances del OCR, es ahora posible guardar además texto incrustado, que nos permite realizar búsquedas en los mismos como si de un PDF se tratara. El proyecto Google Books ha utilizado OCR para reconocer todos aquellos libros de los cuales no disponían de versión digital. Como curiosidad, decir que muchas personas han colaborado sin saberlo en este proyecto: cuando el OCR de Google no reconoce una palabra, muestra su imagen en los captchas que hay en la web para que hagamos nosotros el reconocimiento. De las dos palabras que aparecen, una está generada aleatoriamente y es la que se utiliza para verificar, y la otra proviene de un libro. Ésta es mostrada a varias personas y, si hay consenso en las respuestas, se da por reconocida.
    Ejemplo de captcha. Habitualmente, de las dos palabras, una es generada aleatoriamente, y la otra es sacada de un libro donde el OCR no fue capaz de reconocerla.
  • Envío automático de correo: Cuando enviamos una carta o un paquete, escribimos cierta información para asegurar que llega a su destino. En general, este trabajo está totalmente automatizado, y son máquinas las que se encargan de escanear y reconocer a quién va dirigido el envío. Sólo en casos excepcionales cuando no se ha reconocido el destinatario, la máquina desvía el paquete hacia un humano para realizar el reconocimiento, porque al final los humanos son, a día de hoy, el OCR más preciso.
  • Ayuda para ciegos: Las personas ciegas pueden ayudarse de asistentes que escanean los documentos y, tras aplicar OCR, son capaces de leérselos para informarles del contenido.


¿Cómo aplicamos OCR a nuestro documento?[editar]

Existen numerosas herramientas gratuitas a nuestra disposición para hacer ocr [4].

Una de las mejores actualmente, siendo además desarrollada por google es Tesseract [5]. Permite directamente el reconocimiento OCR en imágenes, y una salida PDF con el texto incrustado en la imagen. Como lo hace solo a nivel de página, uno se puede ayudar de otros programas como PDFToolKit [6] para unir posteriormente las páginas resultantes.

Si nos vamos a las opciones de pago, habitualmente más vistosas y sencillas de usar, ABBYY Finereader [7] es un motor muy potente de OCR, que además permite exportación a múltiples formatos, y la posibilidad de convertir libros enteros de una sentada a múltiples formatos.

Decidida la herramienta a utilizar, por lo general bastará con ejecutarla sobre el documento que queremos reconocer, y nos devolverá el resultado. Hay que tener en cuenta que el proceso, dependiendo de la longitud, resolución y tamaño del documento, puede llegar a tardar en ocasiones algunas horas.


Formatos para guardar texto digitalizado[editar]

Ejemplo de imagen sin comprimir, comprimida con formato .djvu, y la diferencia entre ambas. La resolución es la misma, y la calidad aparente también. La compresión radica en utilizar un diccionario de símbolos (podemos observar que las dos 'a' son iguales en la comprimida).

Y, ¿qué formato elegimos para guardar nuestro documento?.

Si queremos que sea posible la edición de manera sencilla, podemos decantarnos por documentos tipo .docx o .odf. Editores como LibreOffice o Microsoft Word son capaces de modificarlos a nuestro gusto una vez generados.

Si por el contrario preferimos portabilidad, el formato .pdf es el ideal, al ser posible visualizarlo en prácticamente todos los dispositivos electrónicos de hoy en día (móviles, tabletas, ordenadores...). Además, si tratamos con libros de texto, .pdf ofrece un montón de herramientas como subrayado, anotaciones y enlaces entre páginas, que pueden hacer muy útil y productivo su uso para estudiantes.

Existe otro formato similar al .pdf, pero menos conocido, especialmente diseñado para tratar con documentos digitalizados de texto: .djvu. Presenta una serie de ventajas y desventajas sobre el primero:

  • Ventaja: El tamaño para documentos de texto en blanco y negro es unas 3-10 veces menor que la de un .pdf.
  • Ventaja: Permite texto incrustado y marcadores en las páginas, facilitando la navegación y búsqueda en los documentos.
  • Ventaja: Gracias a su reducido tamaño, y a la renderización progresiva, la carga de documentos es mucho más rápida que en pdf, permitiendo una navegación y cambio de páginas sin esperas.
  • Desventaja: Menos conocido y extendido. Existen muy buenas aplicaciones para ordenador, como DJVULibre [8], si bien para dispositivos móviles no está tan extendido.
  • Desventaja: Algunas funciones de los .pdf, como anotaciones o subrayado no están disponibles.

Si nos interesa realizar este último paso hacia el formato más ligero en cuanto a libros digitalizados se refiere, con el propio DJVULibre se incluye un conversor de imágenes a formato DJVU. Si queremos además incluir texto, será necesario el uso de otras utilidades, como son Any2DjVu [9] o Djvu-Spec Converter [10]. También es posible utilizar ABBYY Finereader, si bien esta opción es de pago.


Conclusiones[editar]

Hemos visto las diferentes etapas que hay que llevar a cabo para digitalizar un libro, pasando desde el papel hasta el formato electrónico. Así nos ahorraremos el peso del papel, y podremos llevar no solo uno sino cientos de libros sobre nosotros. Todo ello además con la comodidad de poder hacer búsquedas y anotaciones en nuestro libro.

Las diferentes técnicas aquí expuestas no son perfectas, y cada libro digitalizado requiere ser estudiado manualmente si queremos un resultado óptimo. Podemos tener gran variabilidad en la calidad del escaneo, el OCR no siempre puede ser lo suficientemente preciso, y muchas veces decidir el formato será un factor limitante a la hora de conseguir sacar el mayor provecho de nuestro libro.

Esta lección busca el explorar las opciones de múltiples herramientas, y mejorar nuestros conocimientos sobre este interesante mundo del tratamiento de libros, imágenes y texto. Es algo que lleva bastante tiempo y mucha prueba y error hasta hacer funcionar todo correctamente. Aquí pasamos muy por encima de muchas ideas, y queda al lector el indagar y hacer lo mejor de todas ellas. Intenta digitalizar un libro sólo si te apasiona el proceso y te gusta.

Lo más importante de todo esto es tener la posibilidad de leer y disfrutar los libros. Este un proceso largo y tedioso, así que si tienes una necesidad imperiosa, lo más rápido es comprar directamente la versión digitalizada de tu libro favorito. Y en cualquier caso, ¡A disfrutar!.

Cuestionarios de auto-evaluación[editar]

1 ¿En qué consiste la digitalización de texto?

En obtener una versión electrónica de un medio físico como es el papel.
En pasar a blanco y negro imágenes de texto para reducir su tamaño.
En pasar a blanco y negro imágenes de texto para mejorar su legibilidad.

2 ¿Por qué es interesante mejorar la calidad de una imagen de texto antes de aplicar OCR?

Para conseguir un mejor resultado en el OCR.
Para mejorar la legibilidad del texto.
Para poder realizar una mayor compresión de los datos.
Para eliminar artefactos molestos en la imagen.
Todas las anteriores son correctas.

3 ¿Cómo se llevaban a cabo los primeros OCR?

Posicionando cámaras manualmente sobre cada caracter de un texto para reconocerlos individualmente.
Diseñando fuentes donde los caracteres fueran fácilmente reconocibles por una máquina.
Utilizando una tinta especial donde cada caracter reflejaba la luz de una manera diferente.

4 ¿En cuál de las siguientes situaciones no se utiliza OCR?

Para reconocimiento de texto escrito a mano en pantallas táctiles.
Para enviar paquetería automáticamente, analizando las direcciones de envío.
Para asistir a personas ciegas leyéndoles diversos documentos.
Para mandar un documento de texto por Fax en blanco y negro.

5 ¿Cuál de los siguientes no es un formato adecuado para guardar texto digitalizado?

.djvu, pues no permite realizar anotaciones.
.pdf, pues ocupa bastante espacio y su carga es bastante lenta.
.txt, pues solo permite guardar texto plano.


Lecciones relacionadas[editar]

Otras lecciones relacionadas de este mismo proyecto de aprendizaje son:

Referencias[editar]

Algunas referencias útiles en cuanto a lo comentado en esta lección:


Participantes activos[editar]

Curso 2016-2017