Imagen a texto (OCR): cómo funciona y cómo sacar un texto limpio

Actualizado:

El OCR, reconocimiento óptico de caracteres, convierte la imagen de un texto en texto que se puede copiar, buscar y editar. Es lo que lee la captura de un mensaje de error, la foto de una carta o un contrato escaneado. La mayoría de sus errores vienen de la imagen, no del motor, así que unos minutos dedicados a la foto suelen ahorrar más tiempo que corregir el resultado.

Cómo lee el OCR una imagen

Tesseract, el motor de código abierto que hay detrás de la mayoría de las herramientas de OCR gratuitas, trabaja en tres pasos. Primero pasa la imagen a blanco y negro y decide, píxel a píxel, qué es tinta y qué es papel. Después encuentra los bloques, las columnas y las líneas de texto. Por último, desde la versión 4.00, una red neuronal lee cada línea entera de una vez, no letra a letra, y los datos del idioma la ayudan a elegir entre formas parecidas.

Cada paso puede fallar a su manera: una sombra sobre la página estropea el blanco y negro, una foto torcida estropea las líneas y un idioma equivocado estropea las letras.

Imagen a texto (OCR)

Lo que más influye

Problemas habituales y qué hacer

Lo que vesQué hacer
Letras que faltan o rotasHaz la foto con luz uniforme, sin sombras; sube el contraste o escanea a 300 ppp
Líneas mezcladas o desordenadasEndereza la imagen; para tiques y tablas, lee línea a línea
Signos sin sentido en los bordesRecorta los bordes oscuros del escáner y deja un margen blanco estrecho
Acentos perdidosElige el idioma del texto antes de leer
Texto claro sobre fondo oscuro mal leídoInvierte antes los colores: el motor espera texto oscuro sobre fondo claro
0 y O, 1 y l, 5 y S confundidosRevisa a ojo códigos, importes y nombres: no hay palabras que ayuden al motor a adivinar

Los errores en los números son los que más importan, porque nada en el texto los delata. Compara siempre importes, fechas y números de referencia con la imagen.

Capturas, fotos y escaneos

Una captura de pantalla es el caso fácil: nítida, recta y con luz uniforme. Su único problema es el texto pequeño de las interfaces, que la herramienta de nTools amplía antes de leer. Una foto de una página trae los casos difíciles: perspectiva, sombras, desenfoque y un fondo recargado. Un escaneo en escáner plano a 300 ppp es la mejor fuente para documentos largos.

PDF escaneados

Un PDF hecho a partir de un escaneo es un conjunto de imágenes: no se puede seleccionar su texto, una búsqueda no encuentra nada y un lector de pantalla no tiene nada que leer. Las pautas de accesibilidad del W3C (WCAG) tratan ese PDF como imágenes de texto y recomiendan aplicarle OCR y revisar después el texto reconocido y su orden de lectura. Si puedes seleccionar el texto de un PDF, ya es texto, y copiarlo es más exacto que cualquier OCR.

PDF a Word lee las páginas escaneadas con OCR y da un documento editable; también puedes convertir las páginas en imágenes y leerlas en Imagen a texto.

PDF a Word

Adónde va la imagen

Muchos servicios de OCR suben la imagen a un servidor. Tesseract también puede funcionar dentro del navegador, compilado a WebAssembly: así funciona la herramienta de nTools, de modo que la imagen y el texto se quedan en tu dispositivo. El navegador solo descarga el motor y los datos del idioma que eliges.

Preguntas frecuentes

¿Puede el OCR leer letra manuscrita?

No bien. Tesseract está entrenado con texto impreso; unas mayúsculas de imprenta cuidadas a veces funcionan, la letra normal no. La letra manuscrita necesita motores entrenados específicamente para ella.

¿Qué precisión tiene el OCR?

En una página impresa limpia escaneada a 300 ppp, casi todos los caracteres salen bien. Las fotos, el texto pequeño y las fuentes raras traen más errores. La confianza que muestra la herramienta es una estimación del propio motor, una señal de aviso más que una garantía.

¿Por qué se confunden 0 y O, o 1 y l?

Sus formas son casi iguales en muchas fuentes. En las palabras normales los datos del idioma ayudan a elegir; en códigos, números de serie y contraseñas no pueden, así que revísalos carácter a carácter.

¿Qué idiomas puede leer?

Tesseract tiene datos para más de 100 idiomas. La herramienta de nTools ofrece inglés, español, francés, alemán, italiano y portugués; elige el idioma antes de leer, porque cambia las letras que espera el motor.

¿El OCR conserva las tablas y el formato?

No. El resultado es texto plano con saltos de línea. Las tablas son un punto débil conocido de Tesseract: léelas línea a línea, para que cada fila quede junta, y rehaz las columnas después.

Referencias

  1. Tesseract documentation — Improving the quality of the output
  2. Tesseract documentation — Neural nets in Tesseract 4.00
  3. Tesseract.js — Pure JavaScript OCR for more than 100 languages
  4. W3C — WCAG 2.2 technique PDF7: performing OCR on a scanned PDF document
  5. W3C — Understanding WCAG 2.2: Images of Text (1.4.5)

Guías relacionadas