Optimización de Hiperparámetros OCR con Ray Tune para Documentos Académicos en Español
Trabajo Fin de Máster (TFM) – Máster Universitario en Inteligencia Artificial Líneas: Percepción computacional · Aprendizaje automático Autor: Sergio Jiménez Jiménez · UNIR · Año: 2025
Optimización sistemática de hiperparámetros de PaddleOCR (PP-OCRv5) mediante Ray Tune con Optuna para mejorar el reconocimiento óptico de caracteres en documentos académicos en español.
Objetivo
Optimizar el rendimiento de PaddleOCR para documentos académicos en español mediante ajuste de hiperparámetros, alcanzando un CER inferior al 2% sin requerir fine-tuning del modelo ni recursos GPU dedicados.
Resultado alcanzado: CER = 1.49% (objetivo cumplido)
Resultados Principales
| Modelo | CER | Precisión Caracteres | WER | Precisión Palabras |
|---|---|---|---|---|
| PaddleOCR (Baseline) | 7.78% | 92.22% | 14.94% | 85.06% |
| PaddleOCR-HyperAdjust | 1.49% | 98.51% | 7.62% | 92.38% |
Mejora obtenida: Reducción del CER en un 80.9%
Configuración Óptima Encontrada
config_optimizada = {
"textline_orientation": True, # CRÍTICO - reduce CER ~70%
"use_doc_orientation_classify": False,
"use_doc_unwarping": False,
"text_det_thresh": 0.4690, # Correlación -0.52 con CER
"text_det_box_thresh": 0.5412,
"text_det_unclip_ratio": 0.0,
"text_rec_score_thresh": 0.6350,
}
Metodología
Pipeline de Trabajo
PDF (académico UNIR)
└─► Conversión a imagen (PyMuPDF, 300 DPI)
└─► Extracción de ground truth
└─► OCR con PaddleOCR (PP-OCRv5)
└─► Evaluación (CER, WER con jiwer)
└─► Optimización (Ray Tune + Optuna)
Experimento de Optimización
| Parámetro | Valor |
|---|---|
| Número de trials | 64 |
| Algoritmo de búsqueda | OptunaSearch (TPE) |
| Métrica objetivo | CER (minimizar) |
| Trials concurrentes | 2 |
| Tiempo total | ~6 horas (CPU) |
Estructura del Repositorio
MastersThesis/
├── docs/ # Documentación de capítulos del TFM
│ ├── 00_resumen.md
│ ├── 01_introduccion.md
│ ├── 02_contexto_estado_arte.md
│ ├── 03_objetivos_metodologia.md
│ ├── 04_comparativa_soluciones.md
│ ├── 05_optimizacion_hiperparametros.md
│ ├── 06_resultados_discusion.md
│ └── 07_conclusiones_trabajo_futuro.md
├── src/
│ ├── paddle_ocr_fine_tune_unir_raytune.ipynb # Experimento principal
│ ├── paddle_ocr_tuning.py # Script de evaluación
│ ├── dataset_manager.py # Clase ImageTextDataset
│ ├── prepare_dataset.ipynb # Preparación del dataset
│ └── raytune_paddle_subproc_results_*.csv # Resultados de 64 trials
├── results/ # Resultados de benchmarks
├── instructions/ # Documento PDF de UNIR utilizado
├── ocr_benchmark_notebook.ipynb # Benchmark comparativo inicial
└── README.md
Hallazgos Clave
-
textline_orientation=Truees crítico: Reduce el CER en un 69.7%. Para documentos con layouts mixtos (tablas, encabezados), la clasificación de orientación de línea es esencial. -
Umbral
text_det_threshimportante: Correlación -0.52 con CER. Valores óptimos entre 0.4-0.5. Valores < 0.1 causan fallos catastróficos (CER >40%). -
Componentes innecesarios para PDFs digitales:
use_doc_orientation_classifyyuse_doc_unwarpingno mejoran el rendimiento en documentos académicos digitales.
Requisitos
| Componente | Versión |
|---|---|
| Python | 3.11.9 |
| PaddlePaddle | 3.2.2 |
| PaddleOCR | 3.3.2 |
| Ray | 2.52.1 |
| Optuna | 4.6.0 |
| jiwer | (para métricas CER/WER) |
| PyMuPDF | (para conversión PDF) |
Uso
Preparar dataset
# Ejecutar prepare_dataset.ipynb para convertir PDF a imágenes y extraer ground truth
jupyter notebook src/prepare_dataset.ipynb
Ejecutar optimización
# Ejecutar el notebook principal de Ray Tune
jupyter notebook src/paddle_ocr_fine_tune_unir_raytune.ipynb
Evaluación individual
python src/paddle_ocr_tuning.py \
--pdf-folder ./dataset \
--textline-orientation True \
--text-det-thresh 0.469 \
--text-det-box-thresh 0.541 \
--text-rec-score-thresh 0.635
Fuentes de Datos
- Dataset: Instrucciones para la elaboración del TFE (UNIR), 24 páginas
- Resultados benchmark:
results/ai_ocr_benchmark_finetune_results_20251206_113206.csv - Resultados Ray Tune:
src/raytune_paddle_subproc_results_20251207_192320.csv
Trabajo Pendiente para Completar el TFM
Contexto: Limitaciones de Hardware
Este trabajo adoptó la estrategia de optimización de hiperparámetros en lugar de fine-tuning debido a:
- Sin GPU dedicada: Ejecución exclusivamente en CPU
- Tiempo de inferencia elevado: ~69 segundos/página en CPU
- Fine-tuning inviable: Entrenar modelos de deep learning sin GPU requeriría tiempos prohibitivos
La optimización de hiperparámetros demostró ser una alternativa efectiva al fine-tuning, logrando una reducción del 80.9% en el CER sin reentrenar el modelo.
Tareas Pendientes
1. Validación del Enfoque (Prioridad Alta)
- Validación cruzada en otros documentos: Evaluar la configuración óptima en otros tipos de documentos en español (facturas, formularios, contratos) para verificar generalización
- Ampliar el dataset: El dataset actual tiene solo 24 páginas. Construir un corpus más amplio y diverso (mínimo 100 páginas)
- Validación del ground truth: Revisar manualmente el texto de referencia extraído automáticamente para asegurar su exactitud
2. Experimentación Adicional (Prioridad Media)
- Explorar
text_det_unclip_ratio: Este parámetro quedó fijado en 0.0. Incluirlo en el espacio de búsqueda podría mejorar resultados - Comparativa con fine-tuning (si se obtiene acceso a GPU): Cuantificar la brecha de rendimiento entre optimización de hiperparámetros y fine-tuning real
- Evaluación con GPU: Medir tiempos de inferencia con aceleración GPU para escenarios de producción
3. Documentación y Presentación (Prioridad Alta)
- Completar memoria TFM: Unificar los capítulos del directorio
docs/en documento final siguiendo plantilla UNIR - Crear presentación: Preparar slides para la defensa del TFM
- Añadir diagramas y figuras: Incluir visualizaciones de los resultados de Ray Tune (distribución CER, correlaciones)
4. Extensiones Futuras (Opcional)
- Herramienta de configuración automática: Desarrollar una herramienta que determine automáticamente la configuración óptima para un nuevo tipo de documento
- Benchmark público para español: Publicar un benchmark de OCR para documentos en español que facilite comparación de soluciones
- Optimización multi-objetivo: Considerar CER, WER y tiempo de inferencia simultáneamente
Recomendación de Próximos Pasos
- Inmediato: Validar en 2-3 tipos de documentos adicionales para demostrar generalización
- Corto plazo: Ampliar dataset y revisar ground truth manualmente
- Para la defensa: Completar memoria unificada y crear presentación con visualizaciones
Licencia
Este proyecto es parte de un Trabajo Fin de Máster académico.