# Capítulo 6: Resultados y Discusión ## 6.1 Introducción Este capítulo 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. ## 6.2 Resumen de Resultados ### 6.2.1 Resultados del Benchmark Comparativo 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%** | ### 6.2.2 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% | ### 6.2.3 Comparación Final (Dataset Completo - 24 páginas) Resultados del notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`: | 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% | ## 6.3 Análisis de Resultados ### 6.3.1 Mejora Obtenida | Forma de Medición | Valor | |-------------------|-------| | Mejora en precisión de caracteres (absoluta) | +6.29 puntos porcentuales | | Reducción del CER (relativa) | 80.9% | | Mejora en precisión de palabras (absoluta) | +7.32 puntos porcentuales | | Reducción del WER (relativa) | 49.0% | | Precisión final de caracteres | 98.51% | ### 6.3.2 Impacto de Hiperparámetros Individuales #### Parámetro `textline_orientation` Este parámetro booleano demostró ser el más influyente: | Valor | CER Medio | Impacto | |-------|-----------|---------| | True | ~3.76% | Rendimiento óptimo | | False | ~12.40% | 3.3x peor | **Reducción del CER**: 69.7% cuando se habilita la clasificación de orientación de línea. #### Parámetro `text_det_thresh` Correlación con CER: **-0.523** (la más fuerte de los parámetros continuos) | Rango | Comportamiento | |-------|----------------| | < 0.1 | Fallos catastróficos (CER 40-50%) | | 0.3 - 0.6 | Rendimiento óptimo | | Valor óptimo | 0.4690 | #### Parámetros con menor impacto | Parámetro | Correlación con CER | Valor óptimo | |-----------|---------------------|--------------| | text_det_box_thresh | +0.226 | 0.5412 | | text_rec_score_thresh | -0.161 | 0.6350 | | use_doc_orientation_classify | - | False | | use_doc_unwarping | - | False | ### 6.3.3 Configuración Óptima Final ```python config_optimizada = { "textline_orientation": True, # CRÍTICO "use_doc_orientation_classify": False, "use_doc_unwarping": False, "text_det_thresh": 0.4690, # Correlación -0.52 "text_det_box_thresh": 0.5412, "text_det_unclip_ratio": 0.0, "text_rec_score_thresh": 0.6350, } ``` ## 6.4 Discusión ### 6.4.1 Hallazgos Principales 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. ### 6.4.2 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 ### 6.4.3 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. ### 6.4.4 Comparación con Objetivos | Objetivo | Meta | Resultado | Cumplimiento | |----------|------|-----------|--------------| | OE1: Comparar soluciones OCR | Evaluar EasyOCR, PaddleOCR, DocTR | PaddleOCR seleccionado | ✓ | | OE2: Preparar dataset | Construir dataset estructurado | Dataset de 24 páginas | ✓ | | OE3: Identificar hiperparámetros críticos | Analizar correlaciones | `textline_orientation` y `text_det_thresh` identificados | ✓ | | OE4: Optimizar con Ray Tune | Mínimo 50 configuraciones | 64 trials ejecutados | ✓ | | OE5: Validar configuración | Documentar mejora | CER 7.78% → 1.49% | ✓ | | **Objetivo General** | CER < 2% | CER = 1.49% | ✓ | ## 6.5 Implicaciones Prácticas ### 6.5.1 Recomendaciones de Configuración Para documentos académicos en español similares a los evaluados: 1. **Obligatorio**: `use_textline_orientation=True` 2. **Recomendado**: `text_det_thresh` entre 0.4 y 0.5 3. **Opcional**: `text_det_box_thresh` ~0.5, `text_rec_score_thresh` >0.6 4. **No recomendado**: Habilitar `use_doc_orientation_classify` o `use_doc_unwarping` para documentos digitales ### 6.5.2 Impacto Cuantitativo En un documento típico de 10,000 caracteres: | Configuración | Errores estimados | |---------------|-------------------| | Baseline | ~778 caracteres | | Optimizada | ~149 caracteres | | **Reducción** | **629 caracteres menos con errores** | ### 6.5.3 Aplicabilidad Esta metodología de optimización es aplicable cuando: - No se dispone de recursos GPU para fine-tuning - El modelo preentrenado ya tiene soporte para el idioma objetivo - Se busca mejorar rendimiento sin reentrenar ## 6.6 Resumen del Capítulo Este capítulo ha presentado: 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%. **Fuentes de datos:** - `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv` - `src/raytune_paddle_subproc_results_20251207_192320.csv` - `src/paddle_ocr_fine_tune_unir_raytune.ipynb`