Cómo preprocesar imágenes para OCR
Un pipeline de 6 pasos para un mejor reconocimiento OCR
La diferencia entre una salida de OCR que puedes usar y una que tienes que reescribir a menudo no tiene nada que ver con el motor en sí. Depende de lo que ocurra con la imagen antes de que el motor de OCR la vea. Una foto de factura tomada con el móvil, un contrato escaneado por fax a 150 DPI, un recibo arrugado: estas son las entradas reales que el preprocesamiento existe para corregir. Un pipeline bien diseñado de seis pasos puede tomar una imagen ruidosa, torcida y de bajo contraste y hacerla tan legible para el motor como una página impresa limpia.
Por qué el preprocesado importa más que el motor OCR
Los motores OCR tradicionales — Tesseract, ABBYY FineReader, Google Cloud Vision — fueron diseñados para escaneos limpios y de alto contraste de escáneres de documentos planos a 300 DPI. Las imágenes del mundo real no se parecen en nada a eso. Una foto de teléfono de una factura tiene sombras de la mano del fotógrafo, perspectiva sesgada y distorsión de lente. Una orden de compra enviada por fax llega a 200 DPI con patrones de muaré. Un recibo arrugado tiene líneas de pliegue que crean bordes artificiales, y partes del texto están en sombra mientras otras están sobreexpuestas.
El preprocesado salva esta brecha. Los puntos de referencia del Concurso de Binarización de Imágenes de Documentos (DIBCO) muestran consistentemente que la elección de la técnica de preprocesado puede desplazar la precisión a nivel de caracteres en 15–40 puntos porcentuales en el mismo motor OCR usando el mismo documento. En documentos degradados — papel amarillento, copias carbón débiles, recibos térmicos — la brecha se amplía aún más.
Los seis pasos siguientes forman un pipeline completo de preprocesado. Están ordenados por dependencia: cada paso asume que el anterior se ha aplicado. Puedes saltarte pasos cuando tus imágenes de origen ya estén limpias, pero el orden no debe alterarse.
Paso 1: Conversión a escala de grises — Eliminar el color sin perder señal
Una imagen a color almacena tres canales — rojo, verde y azul — cada uno con sus propias características de iluminación. Bajo iluminación mixta, un canal puede estar sobreexpuesto mientras otro conserva el detalle. Procesar los tres de forma independiente multiplica la carga computacional e introduce ruido específico del canal que el OCR no necesita. La conversión a escala de grises los colapsa en un solo canal de luminancia usando ponderación de luminosidad (Y = 0.299R + 0.587G + 0.114B), preservando la información de contraste que el OCR necesita mientras elimina el ruido basado en color. El resultado es una imagen de un solo canal donde solo importa el brillo, lista para la eliminación de ruido.
Paso 2: Eliminación de ruido — ¿Filtro gaussiano o mediana?
El ruido proviene de múltiples fuentes: ruido del sensor en cámaras de teléfonos, artefactos de compresión JPEG, tramado de medios tonos en materiales impresos y polvo sobre el cristal del escáner. Dos enfoques de filtrado dominan, cada uno adecuado para diferentes tipos de ruido.
El desenfoque gaussiano promedia cada píxel con sus vecinos y es eficaz contra las variaciones de brillo de distribución normal típicas de los sensores de cámara. La desventaja es el suavizado de bordes: los trazos finos en una fuente de 9pt se vuelven más difíciles de separar para el OCR. Un kernel de 3×3 o 5×5 suele ser suficiente.
El filtro de mediana reemplaza cada píxel con la mediana de su vecindario, siendo drásticamente más eficaz contra el ruido sal y pimienta: los píxeles blancos y negros dispersos comunes en documentos escaneados o por fax. Elimina píxeles ruidosos aislados mientras preserva los bordes casi intactos. El tamaño de ventana estándar es 3×3; 5×5 para escaneos muy corruptos.
La regla práctica: motas dispersas requieren filtro de mediana. Granulosidad general requiere desenfoque gaussiano. Ambos deben aplicarse con moderación: cada filtro elimina contenido real junto con el ruido.
Paso 3: Binarización — El paso de mayor impacto
La binarización convierte una imagen en escala de grises en una imagen puramente blanca y negra: cada píxel es tinta (negro) o papel (blanco). Este es el paso donde ocurren las mayores ganancias — y las mayores pérdidas — de precisión. Los resultados de las competiciones DIBCO de la última década muestran que la brecha entre el mejor método de binarización y un umbral global simple promedia 30–40 puntos porcentuales en documentos degradados. Elegir el método de binarización incorrecto es el error de preprocesamiento más común.
El método de Otsu es la binarización predeterminada en la mayoría de las bibliotecas de OCR. Calcula un único umbral global maximizando la varianza entre las clases de píxeles blancos y negros. En un escaneo limpio y uniformemente iluminado — una página blanca con texto negro bajo iluminación uniforme — Otsu produce una binarización casi perfecta en una sola pasada. El problema es que la mayoría de los documentos reales no están iluminados uniformemente. Una página fotografiada en un escritorio tiene un gradiente desde el lado brillante de la ventana hasta el lado sombreado. Otsu elige un umbral para toda la imagen, lo que significa que el texto en la sombra desaparece en el fondo mientras que el texto en el lado brillante queda sobreexpuesto.
El umbral adaptativo resuelve esto calculando un umbral local para cada píxel basado en su vecindario circundante — típicamente ventanas de 15×15 a 51×51 píxeles. Cada región obtiene su propio umbral, por lo que un documento mitad en sombra y mitad bajo luz solar produce texto legible en toda la página. El método de Sauvola, un refinamiento del umbral adaptativo, añade un término de sesgo que mejora el rendimiento en anchos de trazo variables — común en copias carbón y documentos históricos.
La desventaja es la velocidad y la sensibilidad a los parámetros. El umbral adaptativo es de 5 a 10 veces más lento que Otsu, y el tamaño de la ventana afecta drásticamente la salida: demasiado pequeño (menos de 11×11) y los caracteres grandes se tratan como fondo; demasiado grande (más de 75×75) y se acerca al comportamiento de Otsu. Un buen punto de partida es un tamaño de ventana de aproximadamente 1/20 del ancho de la imagen.
Paso 4: Enderezar — Corregir la rotación antes de que las líneas de texto se lean mal
La inclinación — la rotación de la imagen de un documento respecto a la horizontal — es casi universal en documentos capturados con cámara y común en los escaneados. Incluso una pequeña inclinación degrada la precisión del OCR de forma desproporcionada porque los algoritmos de segmentación del motor asumen líneas de base horizontales. Investigaciones publicadas en la revista Pattern Recognition midieron el efecto con precisión: a 5°, la precisión a nivel de carácter cae un 15–20%. A 10°, la tasa de error supera el 40% ya que las líneas se desalinean con sus límites de fila. A 15° — fácilmente producido al fotografiar un documento en ángulo — la mayoría de los motores de OCR generan texto como un flujo único de caracteres fusionados sin límites de salto de línea.
El método estándar para enderezar usa la transformada de Hough, que detecta líneas rectas (líneas de base del texto) y calcula su ángulo dominante, luego rota la imagen con el negativo de ese ángulo. Una alternativa más simple calcula el perfil de proyección — la suma de píxeles negros por fila, que alcanza su punto máximo cuando el texto está horizontal. Ambos métodos convergen dentro de 0.1° en documentos limpios. En imágenes ruidosas, la transformada de Hough es más robusta porque puede descartar líneas atípicas y centrarse en la dirección dominante del texto.
Paso 5: Eliminación de bordes — Evitar que los artefactos de borde confundan el análisis de diseño
Los documentos escaneados y las imágenes capturadas con teléfono casi siempre incluyen contenido visual fuera del documento mismo — bordes oscuros de la tapa del escáner, una página fotografiada sobre un escritorio, marcas de tiempo de encabezados de fax. Estos elementos corrompen el paso de análisis de diseño porque los algoritmos de OCR detectan regiones de página identificando componentes conectados. Un borde negro grueso crea un componente conectado que abarca todo el ancho de la imagen, lo que el algoritmo interpreta como un límite de página — provocando que recorte el contenido real del documento o asigne texto de encabezado cercano al orden de lectura incorrecto. Las fechas del documento, números de página y nombres de proveedores en los bordes suelen ser los primeros en desaparecer.
La eliminación automatizada de bordes usa detección de contornos para encontrar el límite rectangular más externo del contenido del documento y recorta hasta él. El algoritmo escanea hacia adentro desde cada borde buscando la transición de borde oscuro a página clara. El recorte debe ser conservador: recortar demasiado agresivamente elimina texto marginal, mientras que dejar un margen fino (2–5 píxeles) no afecta el procesamiento posterior.
Paso 6: Mejora de resolución — Cuando más píxeles realmente ayudan
La precisión del OCR tiene una relación bien documentada con la resolución de la imagen. Por debajo de 200 DPI, los bordes de los caracteres se pixelan hasta el punto en que glifos similares se vuelven indistinguibles: "O" vs cero, "l" minúscula vs "I" mayúscula. El punto óptimo estándar de 300 DPI proporciona suficiente detalle para fuentes de 8–12 puntos, manteniendo los tamaños de archivo manejables. A 600 DPI, la precisión mejora solo un 2–5% mientras que los tamaños de archivo se cuadruplican.
El desafío es que las imágenes de entrada no siempre están bajo tu control. Una foto móvil de un recibo puede tener una resolución efectiva de 150 DPI; un fax está fijado en 200 DPI. Para estos casos, las técnicas de superresolución — que usan redes neuronales para inferir detalles de alta resolución — pueden recuperar parte de la información perdida, logrando una ganancia modesta pero medible de 5–8 puntos porcentuales por debajo de 200 DPI. El remuestreo bicúbico tradicional no produce el mismo beneficio; crea bordes suaves pero no añade detalle real. Solo la superresolución — entrenada en millones de imágenes de documentos — puede reconstruir bordes de caracteres nítidos a partir de parches borrosos.
Cuándo puedes omitir el preprocesamiento
El pipeline de preprocesamiento anterior fue desarrollado para motores OCR tradicionales — Tesseract, ABBYY, Google Cloud Vision — que operan carácter por carácter. Estos motores necesitan una entrada limpia y de alto contraste porque su arquitectura carece de conciencia contextual. Un segmento de carácter faltante debido al ruido simplemente se pierde.
El OCR basado en modelos de lenguaje de visión (VLM) moderno — la arquitectura utilizada por ImageToTable.ai — funciona de manera diferente. En lugar de reconocer caracteres uno por uno, un VLM lee la imagen completa del documento como una escena visual y extrae datos comprendiendo qué significa cada región. Entrenado en millones de imágenes de documentos del mundo real — fotos de teléfono, recibos arrugados, escaneos sesgados — los tipos de degradación que el preprocesamiento corrige ya están representados en sus datos de entrenamiento. Un documento fotografiado con una inclinación de 15° bajo iluminación mixta no es un caso atípico para el modelo; es estadísticamente indistinguible de miles de ejemplos de entrenamiento.
Esto no significa que el preprocesamiento esté obsoleto. En imágenes extremadamente degradadas — un recibo térmico que se ha vuelto completamente marrón, una fotocopia de quinta generación — incluso un VLM se beneficia del umbral adaptativo o la mejora de contraste. Pero para el rango medio de calidad de documentos del mundo real que representa el 90% del uso cotidiano, una herramienta moderna basada en VLM puede omitir todo el pipeline de preprocesamiento y realizar una extracción precisa directamente.
Para una comparación más profunda de los dos enfoques, consulta OCR vs. Extracción por IA: Cuándo es necesario el preprocesamiento y nuestra guía sobre cómo mejorar la precisión del OCR con herramientas modernas de extracción.
Solución de problemas comunes de preprocesamiento
El umbral es demasiado agresivo. Cambia de Otsu a umbral adaptativo con un tamaño de ventana de 1/20 del ancho de la imagen. Si persisten sombras profundas, aplica primero una ecualización de histograma adaptativa con limitación de contraste (CLAHE).
El tamaño del kernel es demasiado grande. Reduce a un kernel de 3×3 o cambia de filtro Gaussiano a filtro de mediana, que conserva mejor los bordes finos. Para documentos con letra pequeña, omite la eliminación de ruido si la imagen ya está limpia.
La transformada de Hough probablemente detectó una línea dominante falsa (un borde o una regla de tabla). Aplica eliminación de bordes antes de la corrección de inclinación, o enmascara el 5% superior e inferior de la imagen. Aumenta el umbral de Hough para que solo las líneas de ancho casi completo se registren como líneas base.
El umbral adaptativo y la superresolución son costosos computacionalmente. Para lotes grandes, considera usar una herramienta de extracción basada en VLM que maneje estas transformaciones internamente en una sola pasada de inferencia por página.
Preguntas Frecuentes
¿Es necesario preprocesar cada documento?
No. Un escaneo limpio a 300 DPI de texto negro sobre papel blanco no necesita preprocesamiento. El pipeline aporta valor en proporción a cuánto se desvía la entrada de ese ideal: fotos de teléfono, faxes, recibos térmicos y originales descoloridos se benefician más. Si usas una herramienta basada en VLM, el umbral es mucho más bajo: el modelo maneja internamente la inclinación moderada, la iluminación desigual y el ruido.
¿El preprocesamiento afecta el reconocimiento de escritura a mano de manera diferente al texto impreso?
Sí. El texto impreso tiene grosores y espaciados regulares, por lo que el pipeline estándar funciona bien. La escritura a mano tiene trazos variables, caracteres superpuestos y espaciado no uniforme. La binarización agresiva (especialmente Otsu) fusiona trazos cursivos en manchas. Para documentos manuscritos, usa una ventana de umbral adaptativo más grande (51×51 o superior) y una eliminación de ruido más suave. Algunas herramientas basadas en VLM omiten la binarización por completo para la escritura a mano y procesan la imagen en escala de grises directamente. Consulta nuestra guía sobre por qué el OCR tiene dificultades con la escritura a mano para un análisis más detallado.
¿Qué DPI debo usar para escanear documentos?
300 DPI es el estándar para la mayoría de los documentos comerciales: suficiente detalle para fuentes de 8 a 12 puntos, aproximadamente 25 MB por página a color. 200 DPI funciona para documentos con letra grande (14pt+). 600 DPI rara vez es necesario para OCR; la ganancia de precisión sobre 300 DPI promedia solo 2–5% mientras cuadruplica el tamaño de los archivos. La excepción son documentos con fuentes extremadamente pequeñas (notas al pie de 6–8 puntos, letra pequeña).
¿El preprocesamiento puede arreglar una foto borrosa de un documento tomada con un teléfono?
Parcialmente. El desenfoque de movimiento leve (menos de 3 píxeles) se puede corregir con un filtro de deconvolución Wiener o Richardson-Lucy (disponible en OpenCV y scikit-image). El desenfoque moderado (3–10 píxeles) requiere un modelo neuronal de eliminación de desenfoque. El desenfoque de enfoque intenso generalmente es irrecuperable: la información de alta frecuencia (bordes de trazos de caracteres) nunca fue capturada por el sensor. Volver a tomar la foto con la cámara firme y el documento plano es la única solución confiable.
¿Debo convertir las páginas PDF a imágenes antes del preprocesamiento?
Depende del tipo de PDF. Los PDFs nativos digitales contienen texto seleccionable y no necesitan OCR. Los PDFs escaneados son colecciones de imágenes en un envoltorio PDF: renderiza cada página a PNG a 300 DPI usando pdftoppm de Poppler o pdf2image de Python, luego aplica el pipeline. Consulta nuestra guía para extraer datos de PDFs escaneados para un flujo de trabajo completo.
¿Cómo sé qué paso del preprocesamiento está causando problemas?
Guarda la salida de cada paso como un archivo de imagen separado. Si la salida del OCR es basura, comienza con la imagen binarizada: ese paso tiene la mayor variación de precisión. Si la binarización se ve limpia pero la salida sigue siendo incorrecta, compara la imagen corregida de inclinación con la entrada original: una inclinación residual de 3° invisible al ojo puede reducir la precisión en un 10%. Cada intermedio guardado te dice exactamente dónde se introdujo el error.
Cuando el pipeline no es la respuesta
El pipeline de seis pasos es el enfoque correcto cuando controlas la entrada (tú eliges el escáner y los DPI). Pero en muchos escenarios reales no es así. Las facturas llegan de cientos de proveedores en formatos que van desde PDFs nativos digitales hasta fotos de teléfono. La carga del preprocesamiento recae en la herramienta.
Una herramienta de extracción basada en VLM como ImageToTable.ai — que usa Extracción de Columnas Personalizadas para localizar campos de datos por significado semántico en lugar de coordenadas de píxeles — tiene el pipeline de preprocesamiento integrado en su proceso de inferencia. Subes el documento tal cual: inclinado, sombreado, de baja resolución. El modelo lee el documento completo y extrae datos estructurados en las columnas que definiste.
Esto no hace que el conocimiento de preprocesamiento sea obsoleto. Entender cada paso te ayuda a diagnosticar por qué cualquier herramienta de extracción podría fallar en una imagen concreta — y te dice exactamente qué corregir. Para un recorrido sobre el diagnóstico de fallos de extracción según el tipo de documento, consulta por qué la precisión del OCR varía según el tipo de documento.
Prueba tu herramienta de extracción con el mismo documento antes y después de aplicar el pipeline de seis pasos. La diferencia te dirá exactamente cuánto preprocesamiento necesita tu flujo de trabajo.