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.
¿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).
brew install tesseract
brew install tesseract-lang
Ubuntu / Debian
Los repositorios oficiales de apt contienen versiones estables de Tesseract.
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.
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.
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:
tesseract factura.png resultado -l spa
.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.
- 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:
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.
- 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:
tesseract documento.tif salida_pdf pdf
PDF Solo de Texto Invisible
Útil para superponer texto sobre PDFs existentes dentro de un flujo automatizado:
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:
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.
import pytesseract
from PIL import Image
img = Image.open('recibo.png')
texto = pytesseract.image_to_string(img, lang='spa')
print(texto)
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.
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.
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.