Saltar al contenido
PDFLove

cómo funciona el ocr

Cómo convierte el OCR un escaneo en texto

El OCR no es una operación. Es una cadena de cinco, y casi todo resultado decepcionante se puede rastrear hasta la etapa que salió mal.

01

Etapa uno: limpiar la imagen

El reconocimiento trabaja sobre formas, así que todo lo que distorsione formas tiene que irse primero. La página se endereza — un escaneo casi nunca sale recto, y dos grados de giro bastan para emborronar la detección de líneas que viene después. Luego se binariza: cada píxel pasa a ser negro o blanco, con el umbral elegido de forma adaptativa para que una página más iluminada por un borde que por el otro no pierda la mitad de su texto.

Después el despeckling quita las motas de ruido aisladas, que si no acaban reconocidas como puntos y comas.

Esta etapa es la razón de que la calidad del escaneo mande sobre la precisión del OCR mucho más que el propio reconocedor. Una sombra atravesando la página derrota al umbral, y una página curvada de un libro encuadernado no se puede enderezar porque la distorsión no es un giro.

02

Etapa dos: averiguar la maquetación

El motor busca componentes conexos — tiradas contiguas de píxeles negros — y los agrupa. Los componentes cercanos sobre una línea base común forman una palabra; las palabras en fila forman una línea; las líneas apiladas con un espaciado constante forman un bloque de texto. Los medianiles blancos anchos parten la página en columnas.

Aquí es también donde se identifican y se apartan las imágenes, las filetes y las tablas, para no pedirle al reconocedor que lea una fotografía como si fuera tipografía.

El análisis de maquetación decide el orden de lectura, y el orden de lectura es lo que casi todo el mundo nota cuando falla. Un boletín con un destacado en mitad de una columna, o una factura con los totales dentro de una caja flotante, es donde un motor afinado para una página de prosa empieza a producir texto en un orden que nadie escribió.

03

Etapa tres: reconocer los caracteres

El OCR antiguo comparaba la forma de cada carácter con una biblioteca de plantillas, rasgo a rasgo: cuenta los huecos, encuentra las uniones de trazo, mide la proporción. Era rápido, frágil y necesitaba un juego de plantillas distinto para cada tipografía.

Los motores modernos ejecutan una red neuronal sobre la línea entera — normalmente una LSTM, que lee una secuencia de rebanadas verticales estrechas de izquierda a derecha y produce una secuencia de caracteres. Esto importa porque elimina la necesidad de segmentar los caracteres antes de reconocerlos. Decidir dónde acaba una letra y empieza la siguiente ya es difícil de por sí: `rn` y `m` son casi idénticos a baja resolución, y las letras que se tocan en una tipografía apretada no tienen hueco por donde cortar. Un modelo de secuencia esquiva el problema no haciendo nunca ese corte.

Cada carácter sale con una puntuación de confianza, que es lo que expone una buena herramienta de OCR y lo que usa la etapa siguiente.

04

Etapa cuatro: usar el idioma para arreglar lo que falló la vista

El reconocedor ve formas y nada más, así que devolverá con toda seguridad `l\/lanager`, `0ficina` o `rnoderno`. Un diccionario y un modelo de secuencias de caracteres los cazan: el motor sabe que en español `rn` al principio de una palabra es rarísimo mientras que `m` es común, y sabe que `moderno` es una palabra mientras que `rnoderno` no lo es.

Por eso importa tanto poner el idioma correcto, y por eso es el ajuste más eficaz que tienes a mano. Un motor puesto en inglés leyendo una página en español tiene un diccionario que pelea contra cada tilde y cada eñe. Y por eso también los nombres propios, los números de referencia, los códigos de serie y las direcciones son lo menos preciso de cualquier página: son justo las cadenas con las que el modelo de lenguaje no puede ayudar, y a veces las corrige activamente hacia algo equivocado.

05

Etapa cinco: escribirlo de vuelta de forma invisible

Aquí está la parte que hace funcionar un PDF buscable, y es un truco genuinamente elegante.

El PDF tiene un operador de modo de dibujado de texto, `Tr`. El modo 0 rellena los glifos con normalidad. El modo 3 no dibuja nada en absoluto: el texto se coloca en la página, ocupa su posición y es completamente invisible.

Así que el resultado del OCR se escribe dentro de la página como texto real en modo 3, colocado de forma que cada palabra reconocida quede exactamente encima de los píxeles de los que salió, con la imagen escaneada original todavía dibujada debajo. La página se ve exactamente igual que antes. Pero la búsqueda encuentra las palabras, la selección las resalta en el sitio correcto, copiar devuelve caracteres de verdad y un lector de pantalla puede leer el documento en voz alta.

Por eso un escaneo buscable apenas pesa más que el escaneo del que salió: la capa de texto añadida son unos kilobytes frente a megabytes de imagen. Y por eso al seleccionar texto sobre un escaneo con OCR a veces se resalta un rectángulo ligeramente desplazado: la palabra invisible se coloca a partir de la estimación que hizo el reconocedor de dónde estaban los píxeles.

La imagen se queda
Conservas el aspecto exacto del escaneo original. No se vuelve a dibujar nada.
El texto es real
La búsqueda, la copia, la selección y los lectores de pantalla funcionan sobre él.
Los errores quedan escondidos
Una palabra mal reconocida es invisible, así que la página nunca se ve mal: simplemente no la encuentra la búsqueda.
El tamaño apenas cambia
Kilobytes de texto frente a megabytes de imagen.

Preguntas

Preguntas relacionadas

¿Por qué el texto con OCR se ve correcto en la página pero la búsqueda falla?

Porque lo que estás mirando es la imagen escaneada original, y lo que consulta la búsqueda es la capa de texto invisible escrita debajo. Cuando el reconocedor lee mal una palabra, la página sigue mostrando los píxeles correctos mientras el texto buscable dice otra cosa.

¿Qué precisión debería esperar?

Un escaneo limpio a 300 PPP de texto impreso normal pasa del 98% por carácter. Una foto de móvil con luz uniforme se queda un poco por debajo. Un fax o una fotocopia de tercera generación caen en picado, y la letra manuscrita es otro problema distinto que el OCR estándar no resuelve.

¿El OCR cambia el aspecto de mi documento?

No. La imagen original se deja exactamente como estaba y el texto reconocido se añade de forma invisible detrás. Si una herramienta te devuelve una página con otro aspecto, es que ha vuelto a dibujar en vez de superponer.

¿Por qué el OCR es tanto más lento que las demás operaciones con PDF?

Porque es la única que hace análisis de imagen. Unir o dividir reordena objetos y no toca casi ningún píxel. El OCR ejecuta cinco etapas de procesamiento sobre cada píxel de cada página, y una red neuronal sobre cada línea.