Files
MastersThesis/README.md
2025-12-10 16:06:47 +01:00

7.8 KiB
Raw Blame History

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

  1. textline_orientation=True es 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.

  2. Umbral text_det_thresh importante: Correlación -0.52 con CER. Valores óptimos entre 0.4-0.5. Valores < 0.1 causan fallos catastróficos (CER >40%).

  3. Componentes innecesarios para PDFs digitales: use_doc_orientation_classify y use_doc_unwarping no 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

  1. Inmediato: Validar en 2-3 tipos de documentos adicionales para demostrar generalización
  2. Corto plazo: Ampliar dataset y revisar ground truth manualmente
  3. 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.


Referencias