Cómo extraer texto de una imagen o un archivo PDF escaneado mediante OCR, directamente en tu navegador.
Por el equipo de FileTinker7 min de lectura
Tienes una foto de un documento, una captura de pantalla o un archivo PDF escaneado, y necesitas que el texto que contiene se convierta en texto editable, para que puedas modificarlo, buscarlo o pegarlo en otro lugar. Esta tarea se conoce como OCR, o reconocimiento óptico de caracteres, y ya no necesitas un programa informático o un sitio web para subir archivos para realizarla: los navegadores modernos pueden ejecutar un motor de OCR completo de forma local. Sin embargo, el OCR no es magia. En un escaneo de buena calidad, reconoce casi todos los caracteres correctamente; en una foto borrosa tomada con un teléfono, produce resultados inútiles, y la diferencia se debe casi por completo a la calidad de la imagen de entrada. Esta guía explica qué hace exactamente el OCR, cómo saber cuándo no es necesario utilizarlo, qué factores pueden afectar su funcionamiento, por qué la configuración del idioma es más importante de lo que se cree y qué hace exactamente una herramienta integrada en el navegador y qué no transmite a través de la red.
OCR en un párrafo: píxeles de entrada, resultados estimados de salida.
Una página escaneada no contiene texto. Para una computadora, es simplemente una cuadrícula de píxeles de colores, igual que una fotografía de una playa. El OCR es un software que escanea esa cuadrícula, identifica formas que se asemejan a letras y genera su mejor estimación de los caracteres reales. La palabra 'guess' es importante: el programa compara los patrones de píxeles con lo que ha aprendido sobre cómo se ve el texto impreso, por lo que el resultado es una reconstrucción estadística, no una copia.
Por eso, la misma herramienta puede funcionar casi a la perfección con un archivo y ser completamente inútil con otro. Si le proporciona una imagen nítida, de alta resolución y con buen contraste de texto impreso, un buen motor de OCR lo procesará con solo algunos errores ocasionales. Pero si le proporciona una foto borrosa y distorsionada de texto pequeño tomada con un teléfono, cada etapa del proceso se verá afectada: detectará líneas donde no las hay, dividirá los caracteres en lugares incorrectos y mostrará con confianza las letras equivocadas. Considere la salida del OCR como un borrador rápido que necesita ser revisado, no como la versión definitiva, especialmente en el caso de los números.
En primer lugar, comprueba si realmente necesitas utilizar el OCR.
Existen dos tipos de archivos PDF, y ambos se ven idénticos en la pantalla. Un archivo PDF creado digitalmente, es decir, uno que se exporta desde Word, Google Docs o un sitio web, almacena su texto como caracteres. Ábrelo en cualquier visor de PDF y podrás seleccionar el texto con el cursor, buscarlo y copiarlo. Esa copia es instantánea y 100 % precisa, algo que ningún software de OCR podrá igualar. Un archivo PDF escaneado es diferente: cada página es una fotografía de un documento en papel y no contiene caracteres que se puedan seleccionar.
Por lo tanto, antes de aplicar el OCR a un archivo PDF, intente seleccionar una palabra en él o buscarla. Si esto funciona, simplemente copie el texto directamente y omita el proceso de OCR por completo. Aplicar el OCR a un PDF que ya es un documento digital implica convertir un texto perfectamente legible en una imagen y, luego, intentar reconstruirlo, lo cual es más lento y menos preciso que el texto original. El OCR se utiliza en los casos en que la selección no funciona: documentos escaneados, faxes, fotografías de documentos en papel y capturas de pantalla.
¿Qué hace que el OCR sea preciso y qué lo rompe silenciosamente?
Los motores de OCR se entrenan con texto impreso de alta calidad, por lo que la precisión disminuye a medida que se aleja de ese ideal: una página plana, con un enfoque nítido, texto oscuro sobre un fondo claro y una fuente normal. El factor más importante es la resolución. La regla general, que se ha mantenido durante mucho tiempo, es escanear a 300 DPI, lo que, en el caso de una foto o captura de pantalla, equivale a letras de aproximadamente 20 píxeles de alto o más. Por debajo de eso, los trazos que distinguen una 8 de una B o una e de una c tienen solo uno o dos píxeles de ancho, y la información que el motor necesita simplemente no está presente en la imagen. Ampliar una imagen de baja resolución posteriormente no soluciona el problema.
Es importante conocer los nombres de los principales factores que provocan errores, ya que cada uno de ellos puede evitarse en el momento en que se produce:
- El desenfoque y el movimiento de la cámara: los bordes difusos hacen que las formas de las letras sean poco claras.
- Inclinación: si se fotografía o escanea un texto en ángulo, se interrumpe la detección de líneas.
- Texto muy pequeño: las capturas de pantalla de texto pequeño en la interfaz de usuario o de texto de letra fina entran dentro del límite de aproximadamente 20 píxeles.
- Bajo contraste: texto gris sobre fondo gris, o texto sobre fotos y fondos de colores.
- Reflejos y sombras: una foto tomada con el teléfono, en la que la sombra del usuario se proyecta sobre la página, puede hacer que se pierdan por completo algunas zonas de la imagen.
- Caligrafía: los motores de OCR estándar están diseñados para procesar texto impreso; la escritura cursiva se interpreta como ruido.
- Tipografías decorativas: los diseños excesivamente estilizados o condensados se alejan demasiado de los datos de entrenamiento.
- Diseños complejos: las páginas y tablas con varias columnas pueden mostrarse con el orden de lectura alterado.
¿Cómo obtener una imagen de buena calidad que el software de OCR pueda leer correctamente?
Dedicar cinco minutos a preparar el documento antes de escanearlo ahorra treinta minutos de trabajo corrigiendo errores posteriores. Si tienes un escáner, escanea los documentos de texto a 300 DPI; puede usar escala de grises, ya que esto reduce el tamaño de los archivos en comparación con el color. Si estás utilizando tu teléfono, coloca la página sobre una superficie plana, en un lugar con buena iluminación, sostén la cámara directamente encima de la página y no en ángulo, asegúrate de que la página ocupe todo el encuadre y comprueba que tu propia sombra no se proyecte sobre el texto. Toca la pantalla para enfocar el texto antes de tomar la foto.
Luego, recorta la imagen. Si el texto que deseas extraer comparte el encuadre con el borde de una tabla, una mano o un fondo con mucho desorden, recorta la imagen para que solo se vea la zona que contiene el texto antes de ejecutar el OCR. Cualquier otro elemento en el encuadre podría ser interpretado erróneamente por el motor como texto. Cada uno de estos pasos se corresponde directamente con uno de los posibles errores mencionados anteriormente: resolución, inclinación, contraste y desorden.
Idiomas: el aspecto que la gente suele ignorar.
Los motores de OCR utilizan un modelo específico y entrenado para cada idioma, ya que el modelo codifica tanto las formas de las letras como las estadísticas del idioma, es decir, qué secuencias de caracteres corresponden a palabras plausibles. Si se selecciona el idioma incorrecto, no solo se obtendrán resultados ligeramente peores, sino que se obtendrá un galimatías: un modelo en inglés que analice texto en chino producirá diligentemente las letras latinas que más se asemejen a esos caracteres. Si el resultado del OCR parece una secuencia aleatoria de caracteres, lo primero que debe comprobarse es la configuración del idioma, antes de culpar a la calidad de la imagen.
La función de reconocimiento óptico de caracteres (OCR) de FileTinker ofrece soporte para 17 idiomas: inglés, chino tradicional y chino simplificado, francés, alemán, español, italiano, portugués, neerlandés, ruso, japonés, coreano, árabe, hindi, polaco, turco y vietnamita, además de un modo combinado inglés + chino para documentos que realmente mezclan ambos idiomas, lo cual es común en recibos y formularios de Taiwán y Hong Kong. Los datos de cada idioma se descargan solo la primera vez que se utiliza. Utilice el modo combinado solo para páginas que contengan una mezcla real de idiomas: proporcionar al motor dos alfabetos para que los considere en una página de un solo idioma solo aumenta las posibilidades de que se produzcan errores.
¿Qué hace exactamente una herramienta de OCR integrada en el navegador con tu archivo?
La herramienta «Imagen a texto» de FileTinker utiliza el motor de código abierto Tesseract, compilado para WebAssembly, dentro de un worker en tu pestaña de navegador. Tú seleccionas un idioma, arrastras un archivo y ves una barra de progreso mientras lo lee. Acepta formatos de imagen comunes, como JPG, PNG, WebP y otros, además de PDFs. Las imágenes van directamente al motor.
Los archivos PDF escaneados requieren un paso adicional: la herramienta primero convierte cada página en una imagen con el doble de la resolución original utilizando pdf.js, y luego envía las páginas al motor una por una, mostrando un indicador de progreso del tipo «página 2 de 5» a medida que avanza. Las páginas reconocidas se unen con una línea en blanco entre ellas para formar un único resultado. Tenga en cuenta que esto ocurre con todos los archivos PDF, incluidos los que se crearon originalmente en formato digital, y por eso es importante realizar primero la comprobación de selección y copia que se mencionó anteriormente.
El resultado se muestra en un cuadro de texto editable, lo que le permite corregir los errores de reconocimiento al instante, y luego copiarlo o descargarlo como un archivo .txt. Si el programa no encuentra nada, lo indica en lugar de inventar texto. Y si necesita el texto corregido nuevamente como un documento, la herramienta de FileTinker que convierte texto en PDF transformará el archivo .txt en un PDF con texto real y seleccionable, que suele ser el objetivo final de la digitalización.
Las condiciones de privacidad, explicadas de forma clara y concisa.
«Se ejecuta en tu navegador» es cierto en este caso, pero no significa que no haya ninguna actividad en la red, y es importante ser preciso sobre la diferencia. Tu imagen o archivo PDF nunca se sube: se decodifica, se renderiza y se reconoce por completo en tu propio dispositivo, y ningún servidor lo recibe. Lo que se transmite a través de la red es el software. La primera vez que se utiliza, la herramienta descarga el motor de OCR (el componente principal y su núcleo WebAssembly, que se sirve desde el CDN jsDelivr) y los datos entrenados para el idioma que hayas elegido (que se sirven desde el servidor de datos estándar de Tesseract). Esto se descarga una sola vez: unos pocos megabytes para el motor, más el modelo de idioma, que varía desde unos pocos megabytes para el inglés hasta decenas de megabytes para idiomas como el chino o el japonés, y tu navegador lo guarda en la memoria caché, por lo que las ejecuciones posteriores se inician mucho más rápido.
En resumen: el código se descarga, pero el archivo nunca se sube. Esta diferencia es lo que hace que el OCR en el navegador sea una opción viable para material confidencial, como contratos, documentos de identidad y informes médicos, ya que lo que se busca evitar es enviar el documento directamente al servidor de un tercero. Un observador de la red podría detectar que descargaste un software de OCR, pero no podría ver en qué lo utilizaste.
Limpieza de lo que te da el OCR
Incluso un buen resultado necesita ser aprobado. El OCR presenta errores clásicos: la letra minúscula «l», el número «1» y la letra mayúscula «I»; la letra «O» y el número «0»; la combinación «rn» que se lee como «m». Revise los números con especial cuidado, ya que es probable que un número incorrecto en un número de teléfono o en el total de una factura pase desapercibido para el corrector ortográfico. También son normales las peculiaridades estructurales: a menudo, se producirá un salto de línea al final de cada línea impresa en lugar de al final de cada párrafo, y las palabras divididas por un guion al final de una línea permanecerán divididas.
Dado que el cuadro de salida es editable, realice esta limpieza antes de copiar o descargar el contenido. Para un documento de una sola página, le tomará un minuto. Ese minuto, junto con una buena captura, es la diferencia entre que el OCR sea una simple curiosidad y la forma más rápida de convertir un documento en papel en un archivo que pueda utilizar.