Saltar al contenido principal

Tesseract OCR — Motor de Reconocimiento Óptico de Caracteres de Código Abierto

Tesseract OCR es un motor basado en aprendizaje profundo diseñado para extraer texto de imágenes y archivos PDF. Utiliza esta documentación para dominar su instalación en Windows, Linux y macOS, configurar modos de IA e integrar el OCR en tus proyectos de software.

Nota: El núcleo de Tesseract es un programa de línea de comandos y una biblioteca de API en C++.
Demo Instantánea en Navegador: ¿No quieres instalar binarios locales ahora mismo? Prueba el reconocimiento de imágenes de forma 100% privada con nuestra Herramienta de OCR Web Online.

¿Qué es Tesseract?

Tesseract es un motor que convierte los píxeles de una imagen en datos de texto estructurados e indexables. Creado en Hewlett-Packard en 1985, actualmente es mantenido por la comunidad internacional y admite más de 100 idiomas de forma nativa mediante redes neuronales LSTM (Long Short-Term Memory).


Instalación

Al ser una librería en C++ altamente optimizada, la forma más sencilla de instalar Tesseract es a través del gestor de paquetes de tu sistema operativo.

macOS

Homebrew es el método recomendado oficialmente para macOS (chips Apple Silicon e Intel).

Terminal
brew install tesseract
brew install tesseract-lang

Ubuntu / Debian

Los repositorios oficiales de apt contienen versiones estables de Tesseract.

Terminal
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-spa tesseract-ocr-all

Windows

Los instaladores precompilados son proporcionados por el proyecto UB Mannheim. Gestores de paquetes como scoop o winget también soportan Tesseract de forma nativa.

PowerShell
scoop install tesseract
scoop install tesseract-languages

Inicio Rápido y Comandos CLI Básicos

Tesseract es fundamentalmente una herramienta de línea de comandos. Extraer texto requiere una sola línea.

Terminal
tesseract nombre_imagen base_salida [-l idioma] [-psm modoseg] [archivo_config...]

Ejemplo: Extraer Texto en Español

Para extraer texto de factura.png y guardarlo en resultado.txt:

Terminal
tesseract factura.png resultado -l spa
Nota: Omite la extensión .txt en el nombre de salida. Tesseract la añade automáticamente al generar texto estándar.

Modos de Segmentación de Página (PSM)

Los Modos de Segmentación de Página (PSM) determinan cómo Tesseract analiza la disposición visual de una imagen para ubicar bloques de texto. Por defecto, Tesseract espera una página completa de texto (PSM 3). Si la entrada es una sola palabra, una columna o texto disperso, debes indicar el modo adecuado con la bandera --psm.

Regla Práctica: Usa **PSM 3 (Auto)** para documentos generales, **PSM 6 (Bloque único)** para párrafos uniformes y **PSM 7 (Línea única)** para etiquetas o códigos de barra.
  • 0: Solo detección de orientación y escritura (OSD).
  • 1: Segmentación automática con OSD.
  • 3: Segmentación automática completa, sin OSD. *(Por defecto)*
  • 4: Asume una columna de texto con tamaños variables.
  • 6: Asume un único bloque uniforme de texto.
  • 7: Trata la imagen como una única línea de texto.
  • 11: Texto disperso. Encuentra todo el texto posible sin orden específico.
  • 13: Línea pura. Procesa como una línea individual omitiendo heurísticas internas.

Para forzar la lectura como una sola línea de texto:

Terminal
tesseract codigo_barra.png stdout --psm 7

Modos del Motor de OCR (OEM)

Los Modos del Motor (OEM) permiten alternar entre el motor clásico de coincidencia de patrones y la red neuronal moderna LSTM. Puedes cambiar entre modos con la bandera --oem para equilibrar velocidad y precisión.

Recomendación: **OEM 1 (LSTM)** es el valor por defecto en Tesseract 5 y ofrece la máxima precisión. **OEM 0 (Clásico)** solo se recomienda para tipografías históricas anteriores a los modelos neuronales.
  • 0: Solo motor clásico heredado. (Procesamiento tradicional por visión artificial).
  • 1: Solo motor neuronal LSTM. (Rápido, alta precisión en texto continuo).
  • 2: Motores clásico y LSTM combinados.
  • 3: Por defecto, según lo disponible en los modelos .traineddata.

Formatos de Salida

Además de extraer texto plano a consola o archivo .txt, Tesseract es un analizador de documentos capaz de emitir geometrías de diseño y PDFs interactivos.

PDFs con Texto Seleccionable y Búsqueda

Para convertir una imagen escaneada en un PDF indexable con texto invisible superpuesto con perfecta alineación:

Terminal
tesseract documento.tif salida_pdf pdf

PDF Solo de Texto Invisible

Útil para superponer texto sobre PDFs existentes dentro de un flujo automatizado:

Terminal
tesseract escaneo.png salida textonly_pdf

hOCR / TSV / ALTO

Para obtener datos detallados de coordenadas en píxeles de cada palabra y sus niveles de confianza:

Terminal
tesseract imagen.png salida hocr
tesseract imagen.png salida tsv

Librerías y Wrappers de Programación

¿Deseas integrar Tesseract en una aplicación web o microservicio? La comunidad de código abierto ha desarrollado librerías para prácticamente cualquier lenguaje.

Python (pytesseract)

Requiere tener instalado el motor CLI de Tesseract en el sistema.

Python
import pytesseract
from PIL import Image

img = Image.open('recibo.png')
texto = pytesseract.image_to_string(img, lang='spa')
print(texto)
Consejo de Preprocesamiento: Para imágenes degradadas o con ruido, mejora el contraste y binariza la imagen usando la librería Python Pillow antes de pasarla a pytesseract.

Node.js y JavaScript (tesseract.js)

Puerto completo a WebAssembly del código en C++. Puede ejecutarse de forma masiva en el navegador del cliente sin requerir servidores backend.

JavaScript
const Tesseract = require('tesseract.js');

Tesseract.recognize(
  'https://tesseractocr.org/ejemplo.png',
  'spa',
  { logger: m => console.log(m) }
).then(({ data: { text } }) => {
  console.log(text);
});

Entrenamiento de Modelos OCR Personalizados

Tesseract 5 utiliza la infraestructura del proyecto tesstrain para entrenar y realizar ajuste fino (fine-tuning) sobre modelos neuronales LSTM.

El Repositorio tesstrain

A diferencia de la versión 3, el entrenamiento en Tesseract 5 está automatizado mediante Makefiles que orquestan la generación masiva de datos de entrenamiento.

Terminal
git clone https://github.com/tesseract-ocr/tesstrain
cd tesstrain
make tesseract-langdata

Para detalles sobre preparación de Ground Truth (GT) y épocas de entrenamiento, consulta directamente el repositorio oficial tesstrain en GitHub.


Herramientas y Motores Relacionados

Aunque Tesseract es el estándar abierto indiscutible, los flujos modernos de procesamiento documental suelen combinarse con librerías complementarias:

  • PaddleOCR: Motor de OCR con deep learning avanzado (PP-OCR) con excelente soporte para reconocimiento de tablas y texto curvado.
  • Docling: Analizador de documentos para IA generativa y RAG que convierte PDFs, imágenes y documentos Office en Markdown y JSON limpios.
  • Python Pillow: Librería fundamental para preprocesamiento de imagen (ajuste de contraste, umbralización y recorte) antes del OCR.

Fin de la Documentación Principal de Tesseract.

Aviso Legal: TesseractOCR.org es un proyecto de documentación independiente impulsado por la comunidad y no está afiliado, respaldado ni conectado formalmente con el proyecto oficial Tesseract OCR ni sus mantenedores.