Este capítulo presenta el desarrollo completo del estudio comparativo y la optimización de hiperparámetros de sistemas OCR. Se estructura según el tipo de trabajo "Comparativa de soluciones" establecido por las instrucciones de UNIR: planteamiento de la comparativa, desarrollo de la comparativa, y discusión y análisis de resultados.
Esta sección presenta los resultados del estudio comparativo realizado entre tres soluciones OCR de código abierto: EasyOCR, PaddleOCR y DocTR. Los experimentos fueron documentados en el notebook `ocr_benchmark_notebook.ipynb` del repositorio. El objetivo es identificar el modelo base más prometedor para la posterior fase de optimización de hiperparámetros.
Se utilizó el documento "Instrucciones para la redacción y elaboración del TFE" del Máster Universitario en Inteligencia Artificial de UNIR, ubicado en la carpeta `instructions/`.
Del archivo `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`, se obtienen los siguientes resultados de PaddleOCR para las páginas 5-9 del documento:
Del archivo CSV, un ejemplo de predicción de PaddleOCR para la página 8:
> "Escribe siempre al menos un párrafo de introducción en cada capítulo o apartado, explicando de qué vas a tratar en esa sección. Evita que aparezcan dos encabezados de nivel consecutivos sin ningún texto entre medias. [...] En esta titulacióon se cita de acuerdo con la normativa Apa."
**Errores observados en este ejemplo:**
-`titulacióon` en lugar de `titulación` (carácter duplicado)
Esta sección describe el proceso de optimización de hiperparámetros de PaddleOCR utilizando Ray Tune con el algoritmo de búsqueda Optuna. Los experimentos fueron implementados en el notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb` y los resultados se almacenaron en `src/raytune_paddle_subproc_results_20251207_192320.csv`.
Correlación de Pearson entre parámetros y métricas de error (del notebook):
**Correlación con CER:**
| Parámetro | Correlación |
|-----------|-------------|
| CER | 1.000 |
| config/text_det_box_thresh | 0.226 |
| config/text_rec_score_thresh | -0.161 |
| **config/text_det_thresh** | **-0.523** |
| config/text_det_unclip_ratio | NaN |
**Correlación con WER:**
| Parámetro | Correlación |
|-----------|-------------|
| WER | 1.000 |
| config/text_det_box_thresh | 0.227 |
| config/text_rec_score_thresh | -0.173 |
| **config/text_det_thresh** | **-0.521** |
| config/text_det_unclip_ratio | NaN |
**Hallazgo clave**: El parámetro `text_det_thresh` muestra la correlación más fuerte (-0.52), indicando que valores más altos de este umbral tienden a reducir el error.
#### Impacto del Parámetro textline_orientation
Según el análisis del notebook, este parámetro booleano tiene el mayor impacto:
*Fuente: Análisis del notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`.*
**Interpretación**:
El CER medio es ~3.3x menor con `textline_orientation=True` (3.76% vs 12.40%). Además, la varianza es mucho menor, lo que indica resultados más consistentes. Para documentos en español con layouts mixtos (tablas, encabezados, direcciones), la clasificación de orientación ayuda a PaddleOCR a ordenar correctamente las líneas de texto.
> "La optimización de hiperparámetros mejoró la precisión de caracteres de 92.2% a 98.5%, una ganancia de 6.3 puntos porcentuales. Aunque el baseline ya ofrecía resultados aceptables, la configuración optimizada reduce los errores residuales en un 80.9%."
Esta sección presenta un análisis consolidado de los resultados obtenidos en las fases de benchmark comparativo y optimización de hiperparámetros. Se discuten las implicaciones prácticas y se evalúa el cumplimiento de los objetivos planteados.
Del archivo `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`, PaddleOCR con configuración inicial (`use_textline_orientation=True`) obtuvo los siguientes resultados en las páginas 5-9:
| Página | WER | CER |
|--------|-----|-----|
| 5 | 12.16% | 6.33% |
| 6 | 12.81% | 6.40% |
| 7 | 11.06% | 6.24% |
| 8 | 8.13% | 1.54% |
| 9 | 10.61% | 5.58% |
| **Promedio** | **10.95%** | **5.22%** |
#### Resultados de la Optimización con Ray Tune
Del archivo `src/raytune_paddle_subproc_results_20251207_192320.csv` (64 trials):
| Métrica | Valor |
|---------|-------|
| CER mínimo | 1.15% |
| CER medio | 5.25% |
| CER máximo | 51.61% |
| WER mínimo | 9.89% |
| WER medio | 14.28% |
| WER máximo | 59.45% |
#### Comparación Final (Dataset Completo - 24 páginas)
Resultados del notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`:
1.**Importancia de la clasificación de orientación de línea**: El parámetro `textline_orientation=True` es el factor más determinante. Esto tiene sentido para documentos con layouts mixtos (tablas, encabezados, direcciones) donde el orden correcto de las líneas de texto es crucial.
2.**Umbral de detección crítico**: El parámetro `text_det_thresh` presenta un umbral mínimo efectivo (~0.1). Valores inferiores generan demasiados falsos positivos en la detección, corrompiendo el reconocimiento posterior.
3.**Componentes opcionales innecesarios**: Para documentos académicos digitales (no escaneados), los módulos de corrección de orientación de documento (`use_doc_orientation_classify`) y corrección de deformación (`use_doc_unwarping`) no aportan mejora e incluso pueden introducir overhead.
#### Interpretación de la Correlación Negativa
La correlación negativa de `text_det_thresh` (-0.52) con el CER indica que:
- Umbrales más altos filtran detecciones de baja confianza
- Esto reduce falsos positivos que generan texto erróneo
- El reconocimiento es más preciso con menos regiones pero más confiables
#### Limitaciones de los Resultados
1.**Generalización**: Los resultados se obtuvieron sobre documentos de un único tipo (instrucciones académicas UNIR). La configuración óptima puede variar para otros tipos de documentos.
2.**Ground truth automático**: El texto de referencia se extrajo programáticamente del PDF. En layouts complejos, esto puede introducir errores en la evaluación.
3.**Ejecución en CPU**: Los tiempos reportados (~69s/página) corresponden a ejecución en CPU. Con GPU, los tiempos serían significativamente menores.
4.**Parámetro fijo**: `text_det_unclip_ratio` permaneció fijo en 0.0 durante todo el experimento por decisión de diseño.
1. Los resultados consolidados del benchmark y la optimización
2. El análisis del impacto de cada hiperparámetro
3. La configuración óptima identificada
4. La discusión de limitaciones y aplicabilidad
5. El cumplimiento de los objetivos planteados
**Resultado principal**: Se logró reducir el CER del 7.78% al 1.49% (mejora del 80.9%) mediante optimización de hiperparámetros, cumpliendo el objetivo de alcanzar CER < 2%.