OCR sin subir archivos: extraer texto de escaneos, capturas y fotos

El reconocimiento óptico de caracteres puede ejecutarse por completo dentro de una pestaña del navegador. En este sitio, Imagen a texto carga el motor de reconocimiento Tesseract.js como WebAssembly, lee la imagen desde la memoria local y devuelve texto editable, así que la imagen nunca se transmite. PDF a texto va más allá y normalmente evita el motor de reconocimiento por completo.

La ruta de PDF es el diseño más interesante. La herramienta recorre el documento página a página y lee primero cualquier capa de texto existente. Un PDF digital, exportado desde un procesador de textos o una herramienta de diseño, produce texto exacto en aproximadamente un segundo y nunca descarga el motor de reconocimiento. Solo las páginas que prácticamente no tienen texto, es decir, escaneos y fotografías, se rasterizan al doble de tamaño y se pasan al OCR. Ese enfoque en dos etapas hace que la gran descarga solo se pague cuando de verdad se necesita, y las páginas escaneadas se procesan de una en una a unos segundos cada una.

La razón por la que esto importa no es abstracta. Los documentos escaneados son la categoría que la gente menos cómoda se siente entregando: formularios firmados, cartas médicas, facturas, documentación de identidad, cualquier cosa fotografiada sobre un escritorio. Un motor de reconocimiento que se ejecuta en local elimina la decisión por completo, porque no hay ninguna copia sobre la que razonar.

Imagen a texto

Extrae el texto de una foto, una captura de pantalla o un escaneo. Varias imágenes se procesan en orden, y el resultado aparece en un cuadro editable que puedes copiar o descargar.

Abrir Imagen a texto

Qué cambia cuando el reconocimiento se ejecuta en el navegador

Un servicio de OCR basado en servidor recibe tu archivo, ejecuta el reconocimiento en su propio hardware y devuelve el texto. Una herramienta basada en el navegador descarga el motor en lugar del documento, y el tráfico fluye en la dirección opuesta.

Reconocimiento en la pestañaReconocimiento en un servidor
Qué cruza la redArchivos de motor e idioma, enTu documento, fuera
Copias en el disco de otra personaNingunoAl menos la subida, normalmente también un archivo de resultado
CuentaNo es necesarioA menudo necesario para lotes o archivos más grandes
Funciona sin conexión tras la primera cargaSíNo
VelocidadUnos segundos por página escaneadaMás rápido en lotes grandes
Verificable por tiSí, en el panel de redNo

Un detalle técnico merece conocerse porque explica por qué esto es posible sin una configuración especial del servidor. El motor es de un solo hilo y no usa SharedArrayBuffer, así que la página no necesita las cabeceras de aislamiento entre orígenes que normalmente requiere WebAssembly multihilo. Por eso puede servirlo un alojamiento estático corriente.

El diseño en dos etapas de PDF a texto

La mayoría de los PDF que la gente llama escaneos no son escaneos en absoluto. Un documento exportado desde un procesador de textos, una hoja de cálculo o un generador de informes contiene caracteres reales, situados en la página pero almacenados como texto. Reconocer esos caracteres con OCR sería algo extraño, porque introduce errores en datos que ya eran exactos.

Primera etapa: leer la capa de texto

La herramienta abre el PDF con PDF.js y pide a cada página su contenido de texto, y luego reconstruye el orden de lectura a partir de los datos de posición para que las líneas y los párrafos salgan en una secuencia sensata. Esta etapa es rápida y sin pérdida: los caracteres son los que ya contiene el archivo, así que no hay nada que pueda salir mal. Una página se considera que tiene capa de texto cuando contiene al menos 20 caracteres que no son espacios, un umbral deliberadamente bajo para que una página con un pie de foto realmente corto también se lea directamente.

Segunda etapa: reconocer solo las páginas que lo necesitan

Las páginas que no superan esa prueba son las que realmente son imágenes, y siguen otra ruta. Cada una se rasteriza a un lienzo al doble del tamaño normal, se convierte a PNG y se entrega al motor de reconocimiento. Duplicar la escala de rasterizado importa más de lo que parece, porque los modelos de OCR trabajan sobre trazos y bordes, y una página rasterizada a resolución de pantalla pierde el detalle fino de la letra pequeña.

DocumentoQué hace la herramientaDescarga del motor
PDF digital, todas las páginas tienen textoLee la capa de texto de cada páginaNinguno
PDF escaneado, sin capa de textoRasteriza cada página a 2x y la reconoceUna descarga y luego en caché
Documento mixto, anexo escaneadoLee las páginas de texto directamente y reconoce el restoUna descarga, usada para parte del archivo

El resultado te indica qué camino siguió cada página. El resumen informa del número de páginas, cuántas vinieron de la capa de texto y cuántas se reconocieron, y el cuerpo se divide en bloques de página. Esa distinción es útil en la práctica: si un documento que esperabas que fuera digital informa de un montón de páginas reconocidas, probablemente se imprimió a imagen en algún punto del camino.

PDF a texto

Las páginas digitales se leen de la capa de texto en aproximadamente un segundo. El motor de reconocimiento solo se carga para las páginas que son realmente imágenes.

Abrir PDF a texto

Qué descarga realmente el motor

Aquí no se descarga nada cuando se carga la página. El motor llega a petición, la primera vez que pulsas el botón, y merece la pena dar las cifras porque explican tanto la demora como el funcionamiento sin conexión posterior.

  • El núcleo ocupa unos 3.7 MB. Esa es la compilación WebAssembly del modelo de reconocimiento, y es un único archivo autoalojado en lugar de varias variantes.
  • Los datos del idioma inglés ocupan unos 2.8 MB y se sirve desde este sitio, así que el caso habitual no necesita ningún tercero. En conjunto, la primera ejecución en inglés descarga unos 6.5 MB y el navegador los guarda en caché.
  • Los demás idiomas provienen de un CDN público de datos de Tesseract. El selector incluye doce idiomas en total; el inglés es local, y los otros once, desde el chino y el japonés hasta el ruso y el árabe, se descargan en el primer uso y el motor los guarda en caché en IndexedDB.
  • Se mantiene un worker a la vez. Un worker mantiene el núcleo más los datos de idioma en memoria, así que cambiar de idioma termina el anterior en lugar de apilarlos.
  • La compatibilidad con SIMD se comprueba antes de cargar nada. El cargador valida primero una pequeña muestra de WebAssembly, porque la compilación del motor requiere instrucciones vectoriales. Sin esa comprobación, un navegador antiguo fallaría con un error de compilación de bajo nivel en lugar de un mensaje legible.

Cómo obtener un resultado limpio

  1. Elige el idioma antes de empezar. Es el único ajuste que decide la precisión, y solo se aplica a las páginas que pasan por el reconocimiento. Un PDF digital lo ignora por completo.
  2. Envía el origen más nítido que tengas. La foto original supera a una captura de la vista previa, y un escaneo plano supera a una foto hecha con el móvil en ángulo. Si solo tienes una foto, un ligero recorte hasta el bloque de texto ayuda más que cualquier ajuste.
  3. Endereza e ilumina. Una página girada unos grados, o iluminada desde un lado con una sombra en el centro, cuesta más precisión que una resolución más baja.
  4. Ejecútalo y lee la salida. El cuadro de resultado es editable, así que corrige ahí los nombres y los números en lugar de exportar y arreglarlo después.
  5. Comprueba el porcentaje de confianza. Se informa como una media de todo el archivo. Un número bajo es una señal para volver a mirar el origen, no un veredicto sobre el texto.

Si una foto necesita retoques antes del reconocimiento, Recortador de imágenes y Compresor de imágenes ambos se ejecutan en local, así que toda la cadena desde la foto original hasta el texto puede quedarse en el dispositivo.

Dónde sigue fallando el OCR

Ser claro sobre esto es más útil que una afirmación de confianza, porque los modos de fallo son predecibles y se agrupan en torno a cómo se produjo el origen, no en torno al motor.

  • Gráficos de diseño y fondos de color. El modelo de reconocimiento se entrenó con documentos, no con carteles. Probado contra el propio gráfico de portada azul oscuro de este sitio, que tiene letras grandes y estilizadas, el motor devolvió un solo guion. Cualquier imagen en la que el texto sea decorativo en lugar de tipográfico es una mala candidata.
  • Escritura a mano. El texto impreso es el objetivo. Las notas manuscritas, las firmas y las entradas de formularios producen resultados poco fiables, y ninguna cantidad de resolución lo soluciona.
  • Escaneos deficientes. Recibos térmicos desvanecidos, faxes, fotocopias de fotocopias, páginas torcidas en el escáner. La precisión baja con cada uno de esos casos, y la herramienta no tiene forma de avisarte de qué palabras son dudosas.
  • Velocidad en páginas escaneadas. El reconocimiento tarda unos segundos por página, y el trabajo ocurre en tu propia CPU, así que la pestaña está ocupada mientras se ejecuta. Un documento escaneado largo es un trabajo lento, no instantáneo.
  • Cobertura de idiomas. Solo los doce idiomas del selector. Cualquier otro no es compatible, y una página que mezcla dos alfabetos se lee con el único modelo que elegiste, lo que reduce la precisión en el segundo.
  • El diseño no se conserva. La salida es texto plano con marcadores de página. Las columnas, las tablas y las barras laterales salen como un flujo lineal, así que un diseño complejo necesita volver a formatearse después.
  • Los PDF protegidos con contraseña hay que desbloquearlos primero. El lector no puede abrir un archivo cifrado, y la herramienta lo dice en lugar de fallar en silencio.

Cuándo es mejor un servicio basado en servidor

El reconocimiento local es la opción predeterminada correcta para un puñado de documentos, y es la herramienta equivocada para algunos trabajos concretos. Trescientas facturas escaneadas, un archivo con mucha escritura a mano, un alfabeto fuera de la lista compatible o la necesidad de una salida estructurada que conserve la geometría de las tablas apuntan todos en la misma dirección, porque requieren un rendimiento o unos modelos que una versión para navegador no incorpora.

El hábito útil es separar los dos casos antes de empezar. Si el documento es sensible y el volumen es pequeño, la ruta del navegador lo cubre y el archivo nunca se mueve. Si el volumen es grande, lo correcto es un servicio aprobado en lugar de cien ejecuciones manuales, y la decisión sobre qué servicio usar es organizativa, no técnica. Esa división, y cómo se aplica a los equipos que gestionan documentación de personal, legal o clínica, es el tema de documentos sensibles y la nube.


Preguntas frecuentes

Usa una herramienta que ejecute el motor de reconocimiento dentro de la página, elige el idioma y deja que lea el archivo desde la memoria local. Imagen a texto carga Tesseract.js como WebAssembly en la pestaña, toma la imagen del campo de archivo y escribe las palabras reconocidas en un cuadro editable que puedes copiar o descargar como archivo de texto. No se envía nada por la red, así que no hay ninguna ventana de retención en la que confiar ni ninguna cuenta que crear. Puedes confirmarlo en las herramientas de desarrollador del navegador: observa el panel de red mientras se procesa el archivo y verás que se descargan archivos de motor y de idioma, no tu imagen. El único coste es la primera ejecución, que descarga unos 6.5 MB de motor y datos de idioma que el navegador luego guarda en caché. Después de eso, las imágenes siguientes empiezan casi de inmediato y la herramienta sigue funcionando con la red desconectada.
No, y esa es la clave del diseño en dos etapas. PDF a texto abre el documento con PDF.js y lee primero la capa de texto de cada página. Un PDF exportado desde un procesador de textos o una herramienta de diseño tiene caracteres reales almacenados, así que la herramienta los devuelve tal y como se escribieron, en aproximadamente un segundo por documento, y nunca descarga el motor de reconocimiento. Solo las páginas que vuelven prácticamente sin texto, que es lo que produce un escaneo o una fotografía, se rasterizan a una imagen y se pasan al OCR. La salida te indica qué camino se tomó: el resumen cuenta las páginas leídas de la capa de texto y las páginas que necesitaron reconocimiento, y el cuerpo se divide por marcadores de página. Por tanto, un informe digital de 40 páginas casi no cuesta nada, mientras que un escaneo de 40 páginas paga la descarga del motor una vez y unos segundos por página.
Depende casi por completo del origen, no del motor. Con texto impreso limpio de un escaneo correcto o una captura nítida, el reconocimiento es fiable, y la propia prueba de la herramienta con la imagen de muestra de Tesseract devolvió todo el pasaje palabra por palabra con una confianza media del 92 por ciento. El mismo motor ejecutado sobre el gráfico de portada azul oscuro del propio sitio devolvió un solo guion, porque las tipografías grandes y estilizadas sobre un fondo de color no son aquello con lo que se entrenó el modelo. Espera problemas con la escritura a mano, los recibos térmicos desvanecidos, las fotografías en ángulo, las tablas densas y las fuentes decorativas. La regla práctica es enviar el original más nítido que tengas, mantener la página lo más recta posible y tratar la salida como un borrador que hay que revisar. El porcentaje de confianza que aparece junto al resultado es una señal útil, no una garantía.
Solo los idiomas que aparecen en el selector de la herramienta. Los datos de inglés vienen con la página, y las otras once opciones, que cubren chino simplificado y tradicional, japonés, coreano, alemán, francés, español, portugués, italiano, ruso y árabe, se descargan en el primer uso desde el CDN público de datos de Tesseract y el navegador las guarda en caché después. En un PDF digital la elección de idioma importa menos de lo que la gente espera, porque una capa de texto real se lee directamente sea cual sea el idioma en que esté escrita, y el selector solo se usa para las páginas que pasan por el reconocimiento. Conviene conocer dos límites: una página que mezcla dos alfabetos en el mismo bloque se lee con el único modelo elegido, lo que reduce la precisión del segundo idioma, y cualquier idioma fuera de esa lista no es compatible en absoluto. No se puede añadir nada fuera de la lista desde la página.
Sí, después de la primera ejecución. El motor de reconocimiento y los datos de idioma se descargan una vez y luego se guardan en caché, así que una segunda pasada sobre otra imagen no necesita red en absoluto. Eso hace que la herramienta sea utilizable en un portátil en modo avión, en una red corporativa restringida sin acceso saliente o en una máquina donde el archivo no debe salir del edificio. Conviene conocer su forma antes de confiar en ella: el primer reconocimiento necesita conexión para descargar unos 6.5 MB en inglés, y un idioma distinto del inglés necesita su propia primera descarga. Una vez que están en la caché del navegador, el flujo de trabajo es totalmente local. Los PDF digitales también funcionan sin conexión de inmediato, porque la capa de texto se lee del propio archivo y no interviene ningún motor. La caché pertenece a un perfil de navegador concreto, así que otro navegador u otro perfil vuelve a descargar.

Leer el texto sin enviar el archivo

Gratis, privado e ilimitado. No necesitas cuenta.

Abrir Imagen a texto