diff --git a/apply_content.py b/apply_content.py index 285d29f..40b1060 100644 --- a/apply_content.py +++ b/apply_content.py @@ -104,8 +104,9 @@ def parse_md_to_html_blocks(md_content): fig_file = f'figures/figura_{figure_counter}.png' fig_path = os.path.join(BASE_DIR, 'thesis_output', fig_file) - # Create figure with proper template format (Piedefoto-tabla class) - html_blocks.append(f'''
Figura {figure_counter}. {fig_title}
''') + # Create figure with MsoCaption class and bookmark for Word cross-reference + bookmark_id = f"_TocFigura{figure_counter}" + html_blocks.append(f'''Figura {figure_counter}. {fig_title}
''') if os.path.exists(fig_path): # Use actual image with proper Word-compatible format @@ -185,12 +186,13 @@ def parse_md_to_html_blocks(md_content): table_source = lines[i].replace('*', '').replace('Fuente:', '').strip() i += 1 - # Add table title with proper template format (Piedefoto-tabla class) + # Add table title with MsoCaption class and bookmark for Word cross-reference + bookmark_id = f"_TocTabla{table_counter}" if table_title: clean_title = table_title.replace(f"Tabla {table_counter}.", "").strip() - html_blocks.append(f'Tabla {table_counter}. {clean_title}
') + html_blocks.append(f'Tabla {table_counter}. {clean_title}
') else: - html_blocks.append(f'Tabla {table_counter}. Tabla de datos.
') + html_blocks.append(f'Tabla {table_counter}. Tabla de datos.
') # Build table HTML table_html = 'Criterio | Cumplimiento |
Específico (S) | Se define claramente qué se quiere lograr: optimizar PaddleOCR mediante ajuste de hiperparámetros para documentos en español |
Medible (M) | Se establece una métrica cuantificable: CER < 2% |
Alcanzable (A) | Es viable dado que: (1) PaddleOCR permite configuración de hiperparámetros, (2) Ray Tune posibilita búsqueda automatizada, (3) No se requiere GPU |
Relevante (R) | El impacto es demostrable: mejora la extracción de texto en documentos académicos sin costes adicionales de infraestructura |
Temporal (T) | El plazo es un cuatrimestre, correspondiente al TFM |
Fuente: Elaboración propia.
Evaluar el rendimiento base de EasyOCR, PaddleOCR y DocTR en documentos académicos en español, utilizando CER y WER como métricas, para seleccionar el modelo más prometedor.
Comparar el rendimiento de la configuración baseline versus la configuración optimizada sobre el dataset completo, documentando la mejora obtenida.
-Figura 3. Diagrama 3
+Figura 3. Diagrama 3

Fuente: Elaboración propia.
Se utilizaron documentos PDF académicos de UNIR (Universidad Internacional de La Rioja), específicamente las instrucciones para la elaboración del TFE del Máster en Inteligencia Artificial.
- Método: page.get_text("dict") de PyMuPDF - Preservación de estructura de líneas - Tratamiento de texto vertical/marginal - Normalización de espacios y saltos de línea
Figura 4. Diagrama 4
+Figura 4. Diagrama 4

Fuente: Elaboración propia.
Tabla 4. Tabla de datos.
+Tabla 4. Tabla de datos.
Modelo | Versión | Configuración |
EasyOCR | - | Idiomas: ['es', 'en'] |
PaddleOCR | PP-OCRv5 | Modelos server_det + server_rec |
DocTR | - | db_resnet50 + sar_resnet31 |
Fuente: Elaboración propia.
Tabla 5. Tabla de datos.
+Tabla 5. Tabla de datos.
Parámetro | Tipo | Rango/Valores | Descripción |
use_doc_orientation_classify | Booleano | [True, False] | Clasificación de orientación del documento |
use_doc_unwarping | Booleano | [True, False] | Corrección de deformación del documento |
textline_orientation | Booleano | [True, False] | Clasificación de orientación de línea de texto |
text_det_thresh | Continuo | [0.0, 0.7] | Umbral de detección de píxeles de texto |
text_det_box_thresh | Continuo | [0.0, 0.7] | Umbral de caja de detección |
text_det_unclip_ratio | Fijo | 0.0 | Coeficiente de expansión (fijado) |
text_rec_score_thresh | Continuo | [0.0, 0.7] | Umbral de confianza de reconocimiento |
Fuente: Elaboración propia.
Debido a incompatibilidades entre Ray y PaddleOCR en el mismo proceso, se implementó una arquitectura basada en subprocesos:
-Figura 5. Diagrama 5
+Figura 5. Diagrama 5

Fuente: Elaboración propia.
1. Baseline: Ejecución con configuración por defecto de PaddleOCR
2. Optimizado: Ejecución con mejor configuración encontrada
3. Comparación: Evaluación sobre las 24 páginas del dataset completo
4. Métricas reportadas: CER, WER, tiempo de procesamiento
-Tabla 6. Tabla de datos.
+Tabla 6. Tabla de datos.
Componente | Especificación |
CPU | Intel Core (especificar modelo) |
RAM | 16 GB |
GPU | No disponible (ejecución en CPU) |
Almacenamiento | SSD |
Fuente: Elaboración propia.
Tabla 7. Tabla de datos.
+Tabla 7. Tabla de datos.
Componente | Versión |
Sistema Operativo | Windows 10/11 |
Python | 3.11.9 |
PaddleOCR | 3.3.2 |
PaddlePaddle | 3.2.2 |
Ray | 2.52.1 |
Optuna | 4.6.0 |
Fuente: Elaboración propia.
1. Tamaño del dataset: El dataset contiene 24 páginas de un único tipo de documento. Resultados pueden no generalizar a otros formatos.
1. Ejecución en CPU: Los tiempos de procesamiento (~70s/página) serían significativamente menores con GPU.
1. Ground truth imperfecto: El texto de referencia extraído de PDF puede contener errores en documentos con layouts complejos.
1. Parámetro fijo: text_det_unclip_ratio quedó fijado en 0.0 durante todo el experimento por decisión de diseño inicial.
-Este capítulo ha establecido:
1. Un objetivo general SMART: alcanzar CER < 2% mediante optimización de hiperparámetros
2. Cinco objetivos específicos medibles y alcanzables
@@ -4840,13 +4840,13 @@ específico de la contribuciónEste 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/.
-Tabla 8. Tabla 3. Características del dataset de evaluación.
+Tabla 8. Tabla 3. Características del dataset de evaluación.
Característica | Valor |
Número de páginas evaluadas | 5 (páginas 1-5 en benchmark inicial) |
Formato | PDF digital (no escaneado) |
Idioma | Español |
Resolución de conversión | 300 DPI |
Fuente: Elaboración propia.
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:
-Tabla 9. Tabla 4. Resultados de PaddleOCR por página (benchmark inicial).
+Tabla 9. Tabla 4. Resultados de PaddleOCR por página (benchmark inicial).
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% |
Fuente: Elaboración propia.
· WER medio: ~10.95%
Según la documentación del notebook ocr_benchmark_notebook.ipynb, los tres modelos evaluados representan diferentes paradigmas de OCR:
-Tabla 10. Tabla 5. Comparativa de arquitecturas OCR evaluadas.
+Tabla 10. Tabla 5. Comparativa de arquitecturas OCR evaluadas.
Modelo | Tipo | Componentes | Fortalezas Clave |
EasyOCR | End-to-end (det + rec) | DB + CRNN/Transformer | Ligero, fácil de usar, multilingüe |
PaddleOCR (PP-OCR) | End-to-end (det + rec + cls) | DB + SRN/CRNN | Soporte multilingüe robusto, pipeline configurable |
DocTR | End-to-end (det + rec) | DB/LinkNet + CRNN/SAR/VitSTR | Orientado a investigación, API limpia |
Fuente: Elaboración propia.
Errores observados en este ejemplo:
· titulacióon en lugar de titulación (carácter duplicado)
· Apa en lugar de APA (capitalización)
-Basándose en los resultados obtenidos y la documentación del benchmark:
1. Rendimiento: PaddleOCR obtuvo CER entre 1.54% y 6.40% en las páginas evaluadas
@@ -4905,11 +4905,11 @@ def evaluate_text(reference, prediction):· Resultados iniciales prometedores (CER ~5%)
· Alta configurabilidad de hiperparámetros de inferencia
· Pipeline modular que permite experimentación
-1. Tamaño reducido: Solo 5 páginas evaluadas en el benchmark comparativo inicial
2. Único tipo de documento: Documentos académicos de UNIR únicamente
3. Ground truth: El texto de referencia se extrajo automáticamente del PDF, lo cual puede introducir errores en layouts complejos
-Esta sección ha presentado:
1. La configuración del benchmark según ocr_benchmark_notebook.ipynb
2. Los resultados cuantitativos de PaddleOCR del archivo CSV de resultados
@@ -4918,13 +4918,13 @@ def evaluate_text(reference, prediction):· ocr_benchmark_notebook.ipynb: Código del benchmark
· results/ai_ocr_benchmark_finetune_results_20251206_113206.csv: Resultados numéricos
· Documentación oficial de PaddleOCR
-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.
-Según los outputs del notebook:
-Tabla 11. Tabla 6. Entorno de ejecución del experimento.
+Tabla 11. Tabla 6. Entorno de ejecución del experimento.
Componente | Versión/Especificación |
Python | 3.11.9 |
PaddlePaddle | 3.2.2 |
PaddleOCR | 3.3.2 |
Ray | 2.52.1 |
GPU | No disponible (CPU only) |
Fuente: Elaboración propia.
Descripción de parámetros (según documentación de PaddleOCR):
-Tabla 12. Tabla de datos.
+Tabla 12. Tabla de datos.
Parámetro | Descripción |
use_doc_orientation_classify | Clasificación de orientación del documento |
use_doc_unwarping | Corrección de deformación del documento |
textline_orientation | Clasificación de orientación de línea de texto |
text_det_thresh | Umbral de detección de píxeles de texto |
text_det_box_thresh | Umbral de caja de detección |
text_det_unclip_ratio | Coeficiente de expansión (fijado en 0.0) |
text_rec_score_thresh | Umbral de confianza de reconocimiento |
Fuente: Elaboración propia.
· Algoritmo de búsqueda: Optuna (TPE - Tree-structured Parzen Estimator)
· Número de trials: 64
· Trials concurrentes: 2
-Del archivo CSV de resultados (raytune_paddle_subproc_results_20251207_192320.csv):
-Tabla 13. Tabla 7. Estadísticas descriptivas de los 64 trials de Ray Tune.
+Tabla 13. Tabla 7. Estadísticas descriptivas de los 64 trials de Ray Tune.
Estadística | CER | WER | Tiempo (s) | Tiempo/Página (s) |
count | 64 | 64 | 64 | 64 |
mean | 5.25% | 14.28% | 347.61 | 69.42 |
std | 11.03% | 10.75% | 7.88 | 1.57 |
min | 1.15% | 9.89% | 320.97 | 64.10 |
25% | 1.20% | 10.04% | 344.24 | 68.76 |
50% | 1.23% | 10.20% | 346.42 | 69.19 |
75% | 4.03% | 13.20% | 350.14 | 69.93 |
max | 51.61% | 59.45% | 368.57 | 73.63 |
Fuente: Elaboración propia.
Correlación de Pearson entre parámetros y métricas de error (del notebook):
Correlación con CER:
-Tabla 14. Tabla de datos.
+Tabla 14. Tabla de datos.
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 |
Fuente: Elaboración propia.
Correlación con WER:
-Tabla 15. Tabla de datos.
+Tabla 15. Tabla de datos.
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 |
Fuente: Elaboración propia.
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.
Según el análisis del notebook, este parámetro booleano tiene el mayor impacto:
-Tabla 16. Tabla 8. Impacto del parámetro textline_orientation en las métricas de error.
+Tabla 16. Tabla 8. Impacto del parámetro textline_orientation en las métricas de error.
textline_orientation | CER Medio | WER Medio |
True | ~3.76% | ~12.73% |
False | ~12.40% | ~21.71% |
Fuente: Elaboración propia.
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.
-Figura 6. Impacto de textline_orientation en CER
+Figura 6. Impacto de textline_orientation en CER

Fuente: Elaboración propia.
· CER: 51.61%
· WER: 59.45%
· Configuración: text_det_thresh=0.017, textline_orientation=True
-Del análisis final del notebook ejecutando sobre las 24 páginas:
-Tabla 17. Tabla 9. Comparación baseline vs configuración optimizada (24 páginas).
+Tabla 17. Tabla 9. Comparación baseline vs configuración optimizada (24 páginas).
Modelo | CER | WER |
PaddleOCR (Baseline) | 7.78% | 14.94% |
PaddleOCR-HyperAdjust | 1.49% | 7.62% |
Fuente: Elaboración propia.
Tabla 18. Tabla 10. Análisis de la mejora obtenida.
+Tabla 18. Tabla 10. Análisis de la mejora obtenida.
Métrica | Baseline | Optimizado | Mejora Absoluta | Reducción Error |
CER | 7.78% | 1.49% | -6.29 pp | 80.9% |
WER | 14.94% | 7.62% | -7.32 pp | 49.0% |
Fuente: Elaboración propia.
"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%."
-Figura 7. Comparación Baseline vs Optimizado (24 páginas)
+Figura 7. Comparación Baseline vs Optimizado (24 páginas)

Fuente: Elaboración propia.
· Baseline: ~778 caracteres con error
· Optimizado: ~149 caracteres con error
· Diferencia: ~629 caracteres menos con errores
-Tabla 19. Tabla de datos.
+Tabla 19. Tabla de datos.
Métrica | Valor |
Tiempo total del experimento | ~6 horas (64 trials × ~6 min/trial) |
Tiempo medio por trial | 367.72 segundos |
Tiempo medio por página | 69.42 segundos |
Total páginas procesadas | 64 trials × 5 páginas = 320 evaluaciones |
Fuente: Elaboración propia.
Esta sección ha presentado:
1. Configuración del experimento: 64 trials con Ray Tune + Optuna sobre 7 hiperparámetros
2. Resultados estadísticos: CER medio 5.25%, CER mínimo 1.15%
@@ -5056,50 +5056,50 @@ Configuración óptima:· src/paddle_ocr_fine_tune_unir_raytune.ipynb: Código del experimento
· src/raytune_paddle_subproc_results_20251207_192320.csv: Resultados de 64 trials
· src/paddle_ocr_tuning.py: Script de evaluación
-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:
-Tabla 20. Tabla de datos.
+Tabla 20. Tabla de datos.
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% |
Fuente: Elaboración propia.
Del archivo src/raytune_paddle_subproc_results_20251207_192320.csv (64 trials):
-Tabla 21. Tabla de datos.
+Tabla 21. Tabla de datos.
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% |
Fuente: Elaboración propia.
Resultados del notebook src/paddle_ocr_fine_tune_unir_raytune.ipynb:
-Tabla 22. Tabla de datos.
+Tabla 22. Tabla de datos.
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% |
Fuente: Elaboración propia.
Tabla 23. Tabla de datos.
+Tabla 23. Tabla de datos.
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% |
Fuente: Elaboración propia.
Parámetro textline_orientation
Este parámetro booleano demostró ser el más influyente:
-Tabla 24. Tabla de datos.
+Tabla 24. Tabla de datos.
Valor | CER Medio | Impacto |
True | ~3.76% | Rendimiento óptimo |
False | ~12.40% | 3.3x peor |
Fuente: Elaboración propia.
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)
-Tabla 25. Tabla de datos.
+Tabla 25. Tabla de datos.
Rango | Comportamiento |
< 0.1 | Fallos catastróficos (CER 40-50%) |
0.3 - 0.6 | Rendimiento óptimo |
Valor óptimo | 0.4690 |
Fuente: Elaboración propia.
Parámetros con menor impacto
-Tabla 26. Tabla de datos.
+Tabla 26. Tabla de datos.
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 |
Fuente: Elaboración propia.
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.
1. 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.
@@ -5129,11 +5129,11 @@ Configuración óptima:1. Ejecución en CPU: Los tiempos reportados (~69s/página) corresponden a ejecución en CPU. Con GPU, los tiempos serían significativamente menores.
1. Parámetro fijo: text_det_unclip_ratio permaneció fijo en 0.0 durante todo el experimento por decisión de diseño.
Tabla 27. Tabla de datos.
+Tabla 27. Tabla de datos.
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% | ✓ |
Fuente: Elaboración propia.
Para documentos académicos en español similares a los evaluados:
1. Obligatorio: use_textline_orientation=True
@@ -5142,7 +5142,7 @@ Configuración óptima:4. No recomendado: Habilitar use_doc_orientation_classify o use_doc_unwarping para documentos digitales
En un documento típico de 10,000 caracteres:
-Tabla 28. Tabla de datos.
+Tabla 28. Tabla de datos.
Configuración | Errores estimados |
Baseline | ~778 caracteres |
Optimizada | ~149 caracteres |
Reducción | 629 caracteres menos con errores |
Fuente: Elaboración propia.
· 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
-Esta sección ha presentado:
1. Los resultados consolidados del benchmark y la optimización
2. El análisis del impacto de cada hiperparámetro
@@ -5166,15 +5166,15 @@ Configuración óptima: major-latin;mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin'>5. Conclusiones y trabajo futuroEste capítulo resume las principales conclusiones del trabajo, evalúa el grado de cumplimiento de los objetivos planteados y propone líneas de trabajo futuro que permitirían ampliar y profundizar los resultados obtenidos.
-Este Trabajo Fin de Máster ha demostrado que es posible mejorar significativamente el rendimiento de sistemas OCR preentrenados mediante optimización sistemática de hiperparámetros, sin requerir fine-tuning ni recursos GPU dedicados.
El objetivo principal del trabajo era alcanzar un CER inferior al 2% en documentos académicos en español. Los resultados obtenidos confirman el cumplimiento de este objetivo:
-Tabla 29. Tabla de datos.
+Tabla 29. Tabla de datos.
Métrica | Objetivo | Resultado |
CER | < 2% | 1.49% |
Fuente: Elaboración propia.
Respecto a OE1 (Comparativa de soluciones OCR):
· Se evaluaron tres soluciones OCR de código abierto: EasyOCR, PaddleOCR (PP-OCRv5) y DocTR
· PaddleOCR demostró el mejor rendimiento base para documentos en español
@@ -5195,38 +5195,38 @@ y trabajo futuroEste capít
· Se validó la configuración óptima sobre el dataset completo de 24 páginas · La mejora obtenida fue del 80.9% en reducción del CER (7.78% → 1.49%) · La precisión de caracteres alcanzó el 98.51% 1. Arquitectura sobre umbrales: Un único parámetro booleano (textline_orientation) tiene más impacto que todos los umbrales continuos combinados. 1. Umbrales mínimos efectivos: Valores de text_det_thresh < 0.1 causan fallos catastróficos (CER >40%). 1. Simplicidad para documentos digitales: Para documentos PDF digitales (no escaneados), los módulos de corrección de orientación y deformación son innecesarios. 1. Optimización sin fine-tuning: Se puede mejorar significativamente el rendimiento de modelos preentrenados mediante ajuste de hiperparámetros de inferencia. 1. Metodología reproducible: Se documenta un proceso completo de optimización de hiperparámetros OCR con Ray Tune + Optuna. 1. Análisis de hiperparámetros de PaddleOCR: Se cuantifica el impacto de cada parámetro configurable mediante correlaciones y análisis comparativo. 1. Configuración óptima para español: Se proporciona una configuración validada para documentos académicos en español. 1. Código fuente: Todo el código está disponible en el repositorio GitHub para reproducción y extensión. 1. Tipo de documento único: Los experimentos se realizaron únicamente sobre documentos académicos de UNIR. La generalización a otros tipos de documentos requiere validación adicional. 1. Tamaño del dataset: 24 páginas es un corpus limitado para conclusiones estadísticamente robustas. 1. Ground truth automático: La extracción automática del texto de referencia puede introducir errores en layouts complejos. 1. Ejecución en CPU: Los tiempos de procesamiento (~69s/página) limitan la aplicabilidad en escenarios de alto volumen. 1. Parámetro no explorado: text_det_unclip_ratio permaneció fijo en 0.0 durante todo el experimento. 1. Validación cruzada: Evaluar la configuración óptima en otros tipos de documentos en español (facturas, formularios, textos manuscritos). 1. Exploración de text_det_unclip_ratio: Incluir este parámetro en el espacio de búsqueda. 1. Dataset ampliado: Construir un corpus más amplio y diverso de documentos en español. 1. Evaluación con GPU: Medir tiempos de inferencia con aceleración GPU. 1. Transfer learning de hiperparámetros: Investigar si las configuraciones óptimas para un tipo de documento transfieren a otros dominios. 1. Optimización multi-objetivo: Considerar simultáneamente CER, WER y tiempo de inferencia como objetivos. 1. AutoML para OCR: Aplicar técnicas de AutoML más avanzadas (Neural Architecture Search, meta-learning). 1. Comparación con fine-tuning: Cuantificar la brecha de rendimiento entre optimización de hiperparámetros y fine-tuning real. 1. Herramienta de configuración automática: Desarrollar una herramienta que determine automáticamente la configuración óptima para un nuevo tipo de documento. 1. Integración en pipelines de producción: Implementar la configuración optimizada en sistemas reales de procesamiento documental. 1. Benchmark público: Publicar un benchmark de OCR para documentos en español que facilite la comparación de soluciones. Este trabajo demuestra que, en un contexto de recursos limitados donde el fine-tuning de modelos de deep learning no es viable, la optimización de hiperparámetros representa una alternativa práctica y efectiva para mejorar sistemas OCR. La metodología propuesta es reproducible, los resultados son cuantificables, y las conclusiones son aplicables a escenarios reales de procesamiento documental. La reducción del CER del 7.78% al 1.49% representa una mejora sustancial que puede tener impacto directo en aplicaciones downstream como extracción de información, análisis semántico y búsqueda de documentos. El código fuente y los datos experimentales están disponibles públicamente para facilitar la reproducción y extensión de este trabajo. Para reproducir los experimentos se requieren las siguientes dependencias: Tabla 30. Tabla de datos. Tabla 30. Tabla de datos. Componente Versión Python 3.11.9 PaddlePaddle 3.2.2 PaddleOCR 3.3.2 Ray 2.52.1 Optuna 4.6.0 jiwer (última versión) PyMuPDF (última versión) Fuente: Elaboración propia.5.1.3. Hallazgos Clave
+Hallazgos Clave
5.1.4. Contribuciones del Trabajo
+Contribuciones del Trabajo
5.1.5. Limitaciones del Trabajo
+Limitaciones del Trabajo
5.2. Líneas de trabajo futuro
-5.2.1. Extensiones Inmediatas
+Líneas de trabajo futuro
+Extensiones Inmediatas
5.2.2. Líneas de Investigación
+Líneas de Investigación
5.2.3. Aplicaciones Prácticas
+Aplicaciones Prácticas
5.2.4. Reflexión Final
+Reflexión Final
A.3 Requisitos de Software