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 = '' diff --git a/docs/01_introduccion.md b/docs/01_introduccion.md index 3162430..3eaf9f5 100644 --- a/docs/01_introduccion.md +++ b/docs/01_introduccion.md @@ -1,8 +1,8 @@ -# 1. Introducción +# Introducción Este capítulo presenta la motivación del trabajo, identificando el problema a resolver y justificando su relevancia. Se plantea la pregunta de investigación central y se describe la estructura del documento. -## 1.1. Motivación +## Motivación El Reconocimiento Óptico de Caracteres (OCR) es una tecnología fundamental en la era de la digitalización documental. Su capacidad para convertir imágenes de texto en datos editables y procesables ha transformado sectores como la administración pública, el ámbito legal, la banca y la educación. Sin embargo, a pesar de los avances significativos impulsados por el aprendizaje profundo, la implementación práctica de sistemas OCR de alta precisión sigue presentando desafíos considerables. @@ -12,7 +12,7 @@ Los modelos OCR basados en redes neuronales profundas, como los empleados en Pad La presente investigación surge de una necesidad práctica: optimizar un sistema OCR para documentos académicos en español sin disponer de recursos GPU para realizar fine-tuning. Esta restricción, lejos de ser una limitación excepcional, representa la realidad de muchos entornos académicos y empresariales donde el acceso a infraestructura de cómputo avanzada es limitado. -## 1.2. Planteamiento del trabajo +## Planteamiento del trabajo El problema central que aborda este trabajo puede formularse de la siguiente manera: @@ -35,7 +35,7 @@ La relevancia de este problema radica en su aplicabilidad inmediata. Una metodol - Pequeñas y medianas empresas que automatizan flujos documentales - Desarrolladores que integran OCR en aplicaciones con restricciones de recursos -## 1.3. Estructura del trabajo +## Estructura del trabajo El presente documento se organiza en los siguientes capítulos: diff --git a/docs/02_contexto_estado_arte.md b/docs/02_contexto_estado_arte.md index f968ee3..6908a9b 100644 --- a/docs/02_contexto_estado_arte.md +++ b/docs/02_contexto_estado_arte.md @@ -1,8 +1,8 @@ -# 2. Contexto y estado del arte +# Contexto y estado del arte Este capítulo presenta el marco teórico y tecnológico en el que se desarrolla el presente trabajo. Se revisan los fundamentos del Reconocimiento Óptico de Caracteres (OCR), la evolución de las técnicas basadas en aprendizaje profundo, las principales soluciones de código abierto disponibles y los trabajos previos relacionados con la optimización de sistemas OCR. -## 2.1. Contexto del problema +## Contexto del problema ### Definición y Evolución Histórica del OCR @@ -74,7 +74,7 @@ El español presenta características específicas que impactan el OCR: - **Longitud de palabras**: Palabras generalmente más largas que en inglés - **Puntuación**: Signos de interrogación y exclamación invertidos -## 2.2. Estado del arte +## Estado del arte ### Soluciones OCR de Código Abierto @@ -226,7 +226,7 @@ Los trabajos previos en OCR para español se han centrado principalmente en: La optimización de hiperparámetros para documentos académicos en español representa una contribución original de este trabajo. -## 2.3. Conclusiones +## Conclusiones del capítulo Este capítulo ha presentado: diff --git a/docs/03_objetivos_metodologia.md b/docs/03_objetivos_metodologia.md index 1816fa9..d4ab8a5 100644 --- a/docs/03_objetivos_metodologia.md +++ b/docs/03_objetivos_metodologia.md @@ -1,8 +1,8 @@ -# 3. Objetivos concretos y metodología de trabajo +# Objetivos concretos y metodología de trabajo Este capítulo establece los objetivos del trabajo siguiendo la metodología SMART (Doran, 1981) y describe la metodología experimental empleada para alcanzarlos. Se define un objetivo general y cinco objetivos específicos, todos ellos medibles y verificables. -## 3.1. Objetivo general +## Objetivo general > **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.** @@ -16,7 +16,7 @@ Este capítulo establece los objetivos del trabajo siguiendo la metodología SMA | **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 | -## 3.2. Objetivos específicos +## Objetivos específicos ### OE1: Comparar soluciones OCR de código abierto > **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.** @@ -33,9 +33,9 @@ Este capítulo establece los objetivos del trabajo siguiendo la metodología SMA ### OE5: Validar la configuración optimizada > **Comparar el rendimiento de la configuración baseline versus la configuración optimizada sobre el dataset completo, documentando la mejora obtenida.** -## 3.3. Metodología del trabajo +## Metodología del trabajo -### 3.3.1. Visión General +### Visión General @@ -71,7 +71,7 @@ flowchart TD ``` -### 3.3.2. Fase 1: Preparación del Dataset +### Fase 1: Preparación del Dataset #### Fuente de Datos 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. @@ -124,7 +124,7 @@ class ImageTextDataset: # Retorna (PIL.Image, str) ``` -### 3.3.3. Fase 2: Benchmark Comparativo +### Fase 2: Benchmark Comparativo #### Modelos Evaluados @@ -148,7 +148,7 @@ def evaluate_text(reference, prediction): } ``` -### 3.3.4. Fase 3: Espacio de Búsqueda +### Fase 3: Espacio de Búsqueda #### Hiperparámetros Seleccionados @@ -190,7 +190,7 @@ tuner = tune.Tuner( ) ``` -### 3.3.5. Fase 4: Ejecución de Optimización +### Fase 4: Ejecución de Optimización #### Arquitectura de Ejecución @@ -232,7 +232,7 @@ Y retorna métricas en formato JSON: } ``` -### 3.3.6. Fase 5: Validación +### Fase 5: Validación #### Protocolo de Validación @@ -241,7 +241,7 @@ Y retorna métricas en formato JSON: 3. **Comparación**: Evaluación sobre las 24 páginas del dataset completo 4. **Métricas reportadas**: CER, WER, tiempo de procesamiento -### 3.3.7. Entorno de Ejecución +### Entorno de Ejecución #### Hardware @@ -263,7 +263,7 @@ Y retorna métricas en formato JSON: | Ray | 2.52.1 | | Optuna | 4.6.0 | -### 3.3.8. Limitaciones Metodológicas +### Limitaciones Metodológicas 1. **Tamaño del dataset**: El dataset contiene 24 páginas de un único tipo de documento. Resultados pueden no generalizar a otros formatos. @@ -273,7 +273,7 @@ Y retorna métricas en formato JSON: 4. **Parámetro fijo**: `text_det_unclip_ratio` quedó fijado en 0.0 durante todo el experimento por decisión de diseño inicial. -## 3.4. Resumen del capítulo +## Resumen del capítulo Este capítulo ha establecido: diff --git a/docs/04_desarrollo_especifico.md b/docs/04_desarrollo_especifico.md index 12039b8..bdc08ff 100644 --- a/docs/04_desarrollo_especifico.md +++ b/docs/04_desarrollo_especifico.md @@ -1,14 +1,14 @@ -# 4. Desarrollo específico de la contribución +# Desarrollo específico de la contribución 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. -## 4.1. Planteamiento de la comparativa +## Planteamiento de la comparativa -### 4.1.1. Introducción +### Introducción 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. -### 4.1.2. Configuración del Experimento +### Configuración del Experimento #### Dataset de Evaluación @@ -61,7 +61,7 @@ def evaluate_text(reference, prediction): return {'WER': wer(reference, prediction), 'CER': cer(reference, prediction)} ``` -### 4.1.3. Resultados del Benchmark +### Resultados del Benchmark #### Resultados de PaddleOCR (Datos del CSV) @@ -107,7 +107,7 @@ Del archivo CSV, un ejemplo de predicción de PaddleOCR para la página 8: - `titulacióon` en lugar de `titulación` (carácter duplicado) - `Apa` en lugar de `APA` (capitalización) -### 4.1.4. Justificación de la Selección de PaddleOCR +### Justificación de la Selección de PaddleOCR #### Criterios de Selección @@ -128,13 +128,13 @@ Basándose en los resultados obtenidos y la documentación del benchmark: - Alta configurabilidad de hiperparámetros de inferencia - Pipeline modular que permite experimentación -### 4.1.5. Limitaciones del Benchmark +### Limitaciones del Benchmark 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 -### 4.1.6. Resumen de la Sección +### Resumen de la Sección Esta sección ha presentado: @@ -147,13 +147,13 @@ Esta sección ha presentado: - `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`: Resultados numéricos - Documentación oficial de PaddleOCR -## 4.2. Desarrollo de la comparativa: Optimización de hiperparámetros +## Desarrollo de la comparativa: Optimización de hiperparámetros -### 4.2.1. Introducción +### Introducción 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`. -### 4.2.2. Configuración del Experimento +### Configuración del Experimento #### Entorno de Ejecución @@ -229,7 +229,7 @@ tuner = tune.Tuner( - **Número de trials**: 64 - **Trials concurrentes**: 2 -### 4.2.3. Resultados de la Optimización +### Resultados de la Optimización #### Estadísticas Descriptivas @@ -330,7 +330,7 @@ Ejemplo de trial con fallo catastrófico: - WER: 59.45% - Configuración: `text_det_thresh=0.017`, `textline_orientation=True` -### 4.2.4. Comparación Baseline vs Optimizado +### Comparación Baseline vs Optimizado #### Resultados sobre Dataset Completo (24 páginas) @@ -377,7 +377,7 @@ xychart-beta - Optimizado: ~149 caracteres con error - Diferencia: ~629 caracteres menos con errores -### 4.2.5. Tiempo de Ejecución +### Tiempo de Ejecución | Métrica | Valor | |---------|-------| @@ -386,7 +386,7 @@ xychart-beta | Tiempo medio por página | 69.42 segundos | | Total páginas procesadas | 64 trials × 5 páginas = 320 evaluaciones | -### 4.2.6. Resumen de la Sección +### Resumen de la Sección Esta sección ha presentado: @@ -403,13 +403,13 @@ Esta sección ha presentado: - `src/raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de 64 trials - `src/paddle_ocr_tuning.py`: Script de evaluación -## 4.3. Discusión y análisis de resultados +## Discusión y análisis de resultados -### 4.3.1. Introducción +### Introducció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. -### 4.3.2. Resumen de Resultados +### Resumen de Resultados #### Resultados del Benchmark Comparativo @@ -446,7 +446,7 @@ Resultados del notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`: | PaddleOCR (Baseline) | 7.78% | 92.22% | 14.94% | 85.06% | | PaddleOCR-HyperAdjust | 1.49% | 98.51% | 7.62% | 92.38% | -### 4.3.3. Análisis de Resultados +### Análisis de Resultados #### Mejora Obtenida @@ -504,7 +504,7 @@ config_optimizada = { } ``` -### 4.3.4. Discusión +### Discusión #### Hallazgos Principales @@ -542,7 +542,7 @@ La correlación negativa de `text_det_thresh` (-0.52) con el CER indica que: | OE5: Validar configuración | Documentar mejora | CER 7.78% → 1.49% | ✓ | | **Objetivo General** | CER < 2% | CER = 1.49% | ✓ | -### 4.3.5. Implicaciones Prácticas +### Implicaciones Prácticas #### Recomendaciones de Configuración @@ -570,7 +570,7 @@ Esta metodología de optimización es aplicable cuando: - El modelo preentrenado ya tiene soporte para el idioma objetivo - Se busca mejorar rendimiento sin reentrenar -### 4.3.6. Resumen de la Sección +### Resumen de la Sección Esta sección ha presentado: diff --git a/docs/05_conclusiones_trabajo_futuro.md b/docs/05_conclusiones_trabajo_futuro.md index 3b3b80d..2aa5e3a 100644 --- a/docs/05_conclusiones_trabajo_futuro.md +++ b/docs/05_conclusiones_trabajo_futuro.md @@ -1,10 +1,10 @@ -# 5. Conclusiones y trabajo futuro +# Conclusiones y trabajo futuro Este 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. -## 5.1. Conclusiones +## Conclusiones -### 5.1.1. Conclusiones Generales +### Conclusiones Generales 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. @@ -14,7 +14,7 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document |---------|----------|-----------| | CER | < 2% | **1.49%** | -### 5.1.2. Conclusiones Específicas +### Conclusiones Específicas **Respecto a OE1 (Comparativa de soluciones OCR)**: - Se evaluaron tres soluciones OCR de código abierto: EasyOCR, PaddleOCR (PP-OCRv5) y DocTR @@ -41,7 +41,7 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document - 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% -### 5.1.3. Hallazgos Clave +### Hallazgos Clave 1. **Arquitectura sobre umbrales**: Un único parámetro booleano (`textline_orientation`) tiene más impacto que todos los umbrales continuos combinados. @@ -51,7 +51,7 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document 4. **Optimización sin fine-tuning**: Se puede mejorar significativamente el rendimiento de modelos preentrenados mediante ajuste de hiperparámetros de inferencia. -### 5.1.4. Contribuciones del Trabajo +### Contribuciones del Trabajo 1. **Metodología reproducible**: Se documenta un proceso completo de optimización de hiperparámetros OCR con Ray Tune + Optuna. @@ -61,7 +61,7 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document 4. **Código fuente**: Todo el código está disponible en el repositorio GitHub para reproducción y extensión. -### 5.1.5. Limitaciones del Trabajo +### Limitaciones del Trabajo 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. @@ -73,9 +73,9 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document 5. **Parámetro no explorado**: `text_det_unclip_ratio` permaneció fijo en 0.0 durante todo el experimento. -## 5.2. Líneas de trabajo futuro +## Líneas de trabajo futuro -### 5.2.1. Extensiones Inmediatas +### Extensiones Inmediatas 1. **Validación cruzada**: Evaluar la configuración óptima en otros tipos de documentos en español (facturas, formularios, textos manuscritos). @@ -85,7 +85,7 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document 4. **Evaluación con GPU**: Medir tiempos de inferencia con aceleración GPU. -### 5.2.2. Líneas de Investigación +### Líneas de Investigación 1. **Transfer learning de hiperparámetros**: Investigar si las configuraciones óptimas para un tipo de documento transfieren a otros dominios. @@ -95,7 +95,7 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document 4. **Comparación con fine-tuning**: Cuantificar la brecha de rendimiento entre optimización de hiperparámetros y fine-tuning real. -### 5.2.3. Aplicaciones Prácticas +### Aplicaciones Prácticas 1. **Herramienta de configuración automática**: Desarrollar una herramienta que determine automáticamente la configuración óptima para un nuevo tipo de documento. @@ -103,7 +103,7 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document 3. **Benchmark público**: Publicar un benchmark de OCR para documentos en español que facilite la comparación de soluciones. -### 5.2.4. Reflexión Final +### Reflexión Final 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. diff --git a/thesis_output/plantilla_individual.htm b/thesis_output/plantilla_individual.htm index 2085cf0..3ccb067 100644 --- a/thesis_output/plantilla_individual.htm +++ b/thesis_output/plantilla_individual.htm @@ -4538,12 +4538,12 @@ mso-ansi-language:ES;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'>
1.   Introducción

Este capítulo presenta la motivación del trabajo, identificando el problema a resolver y justificando su relevancia. Se plantea la pregunta de investigación central y se describe la estructura del documento.

-

1.1. Motivación

+

Motivación

El Reconocimiento Óptico de Caracteres (OCR) es una tecnología fundamental en la era de la digitalización documental. Su capacidad para convertir imágenes de texto en datos editables y procesables ha transformado sectores como la administración pública, el ámbito legal, la banca y la educación. Sin embargo, a pesar de los avances significativos impulsados por el aprendizaje profundo, la implementación práctica de sistemas OCR de alta precisión sigue presentando desafíos considerables.

El procesamiento de documentos en español presenta particularidades que complican el reconocimiento automático de texto. Los caracteres especiales (ñ, acentos), las variaciones tipográficas en documentos académicos y administrativos, y la presencia de elementos gráficos como tablas, encabezados y marcas de agua generan errores que pueden propagarse en aplicaciones downstream como la extracción de entidades nombradas o el análisis semántico.

Los modelos OCR basados en redes neuronales profundas, como los empleados en PaddleOCR, EasyOCR o DocTR, ofrecen un rendimiento impresionante en benchmarks estándar. No obstante, su adaptación a dominios específicos típicamente requiere fine-tuning con datos etiquetados del dominio objetivo y recursos computacionales significativos (GPUs de alta capacidad). Esta barrera técnica y económica excluye a muchos investigadores y organizaciones de beneficiarse plenamente de estas tecnologías.

La presente investigación surge de una necesidad práctica: optimizar un sistema OCR para documentos académicos en español sin disponer de recursos GPU para realizar fine-tuning. Esta restricción, lejos de ser una limitación excepcional, representa la realidad de muchos entornos académicos y empresariales donde el acceso a infraestructura de cómputo avanzada es limitado.

-

1.2. Planteamiento del trabajo

+

Planteamiento del trabajo

El problema central que aborda este trabajo puede formularse de la siguiente manera:

¿Es posible mejorar significativamente el rendimiento de modelos OCR preentrenados para documentos en español mediante la optimización sistemática de hiperparámetros, sin requerir fine-tuning ni recursos GPU?

Este planteamiento se descompone en las siguientes cuestiones específicas:

@@ -4556,7 +4556,7 @@ mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin'>·     Instituciones educativas que digitalizan archivos históricos

·     Pequeñas y medianas empresas que automatizan flujos documentales

·     Desarrolladores que integran OCR en aplicaciones con restricciones de recursos

-

1.3. Estructura del trabajo

+

Estructura del trabajo

El presente documento se organiza en los siguientes capítulos:

Capítulo 2 - Contexto y Estado del Arte: Se presenta una revisión de las tecnologías OCR basadas en aprendizaje profundo, incluyendo las arquitecturas de detección y reconocimiento de texto, así como los trabajos previos en optimización de estos sistemas.

Capítulo 3 - Objetivos y Metodología: Se definen los objetivos SMART del trabajo y se describe la metodología experimental seguida, incluyendo la preparación del dataset, las métricas de evaluación y el proceso de optimización con Ray Tune.

@@ -4568,7 +4568,7 @@ text-transform:none'>2.3.   Objetivos concretos y metodología de trabajo

Este capítulo establece los objetivos del trabajo siguiendo la metodología SMART (Doran, 1981) y describe la metodología experimental empleada para alcanzarlos. Se define un objetivo general y cinco objetivos específicos, todos ellos medibles y verificables.

-

3.1. Objetivo general

+

Objetivo general

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.

Justificación SMART del Objetivo General

-

Tabla 3. Tabla de datos.

+

Tabla 3. Tabla de datos.

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.

 

-

3.2. Objetivos específicos

+

Objetivos específicos

OE1: Comparar soluciones OCR de código abierto

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.

OE2: Preparar un dataset de evaluación

@@ -4693,13 +4693,13 @@ concretos y metodología de trabajoEjecutar una búsqueda automatizada de hiperparámetros utilizando Ray Tune con Optuna, evaluando al menos 50 configuraciones diferentes.

OE5: Validar la configuración optimizada

Comparar el rendimiento de la configuración baseline versus la configuración optimizada sobre el dataset completo, documentando la mejora obtenida.

-

3.3. Metodología del trabajo

-

3.3.1. Visión General

-

Figura 3. Diagrama 3

+

Metodología del trabajo

+

Visión General

+

Figura 3. Diagrama 3

Diagrama 3

Fuente: Elaboración propia.

 

-

3.3.2. Fase 1: Preparación del Dataset

+

Fase 1: Preparación del Dataset

Fuente de Datos

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.

Proceso de Conversión

@@ -4709,7 +4709,7 @@ concretos y metodología de trabajo
1.   Extracción de texto de referencia:

- 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

Estructura del Dataset

-

Figura 4. Diagrama 4

+

Figura 4. Diagrama 4

Diagrama 4

Fuente: Elaboración propia.

 

@@ -4721,9 +4721,9 @@ concretos y metodología de trabajo
3.3.3. Fase 2: Benchmark Comparativo +

Fase 2: Benchmark Comparativo

Modelos Evaluados

-

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.

 

@@ -4736,9 +4736,9 @@ def evaluate_text(reference, prediction): 'WER': wer(reference, prediction), 'CER': cer(reference, prediction) }

-

3.3.4. Fase 3: Espacio de Búsqueda

+

Fase 3: Espacio de Búsqueda

Hiperparámetros Seleccionados

-

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.

 

@@ -4766,10 +4766,10 @@ tuner = tune.Tuner( max_concurrent_trials=2 ) )

-

3.3.5. Fase 4: Ejecución de Optimización

+

Fase 4: Ejecución de Optimización

Arquitectura de Ejecución

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

Diagrama 5

Fuente: Elaboración propia.

 

@@ -4789,29 +4789,29 @@ tuner = tune.Tuner( "PAGES": 5, "TIME_PER_PAGE": 66.12 }

-

3.3.6. Fase 5: Validación

+

Fase 5: Validación

Protocolo de Validación

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

-

3.3.7. Entorno de Ejecución

+

Entorno de Ejecución

Hardware

-

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.

 

Software

-

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.

 

-

3.3.8. Limitaciones Metodológicas

+

Limitaciones Metodológicas

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.

-

3.4. Resumen del capítulo

+

Resumen del capítulo

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ón

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.

-

4.1. Planteamiento de la comparativa

-

4.1.1. Introducción

+

Planteamiento de la comparativa

+

Introducción

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.

-

4.1.2. Configuración del Experimento

+

Configuración del Experimento

Dataset de Evaluación

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.

 

@@ -4871,10 +4871,10 @@ color:#0098CD;mso-font-kerning:16.0pt;mso-bidi-font-weight:bold'>

-

4.1.3. Resultados del Benchmark

+

Resultados del Benchmark

Resultados de PaddleOCR (Datos del CSV)

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.

 

@@ -4883,7 +4883,7 @@ def evaluate_text(reference, prediction):

·     WER medio: ~10.95%

Comparativa de Modelos

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.

 

@@ -4893,7 +4893,7 @@ def evaluate_text(reference, prediction):

Errores observados en este ejemplo:

·     titulacióon en lugar de titulación (carácter duplicado)

·     Apa en lugar de APA (capitalización)

-

4.1.4. Justificación de la Selección de PaddleOCR

+

Justificación de la Selección de PaddleOCR

Criterios de Selecció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

-

4.1.5. Limitaciones del Benchmark

+

Limitaciones del Benchmark

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

-

4.1.6. Resumen de la Sección

+

Resumen de la Sección

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

-

4.2. Desarrollo de la comparativa: Optimización de hiperparámetros

-

4.2.1. Introducción

+

Desarrollo de la comparativa: Optimización de hiperparámetros

+

Introducción

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.

-

4.2.2. Configuración del Experimento

+

Configuración del Experimento

Entorno de Ejecución

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.

 

@@ -4945,7 +4945,7 @@ def evaluate_text(reference, prediction): "text_rec_score_thresh": tune.uniform(0.0, 0.7), }

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.

 

@@ -4966,10 +4966,10 @@ def evaluate_text(reference, prediction):

·     Algoritmo de búsqueda: Optuna (TPE - Tree-structured Parzen Estimator)

·     Número de trials: 64

·     Trials concurrentes: 2

-

4.2.3. Resultados de la Optimización

+

Resultados de la Optimización

Estadísticas Descriptivas

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.

 

@@ -4989,24 +4989,24 @@ Configuración óptima:

Análisis de Correlación

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.

Impacto del Parámetro textline_orientation

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

Impacto de textline_orientation en CER

Fuente: Elaboración propia.

 

@@ -5018,21 +5018,21 @@ Configuración óptima:

·     CER: 51.61%

·     WER: 59.45%

·     Configuración: text_det_thresh=0.017, textline_orientation=True

-

4.2.4. Comparación Baseline vs Optimizado

+

Comparación Baseline vs Optimizado

Resultados sobre Dataset Completo (24 páginas)

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.

 

Métricas de Mejora

-

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.

 

Interpretación (del notebook)

"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)

Comparación Baseline vs Optimizado (24 páginas)

Fuente: Elaboración propia.

 

@@ -5040,12 +5040,12 @@ Configuración óptima:

·     Baseline: ~778 caracteres con error

·     Optimizado: ~149 caracteres con error

·     Diferencia: ~629 caracteres menos con errores

-

4.2.5. Tiempo de Ejecución

-

Tabla 19. Tabla de datos.

+

Tiempo de Ejecución

+

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.

 

-

4.2.6. Resumen de la Sección

+

Resumen de la Sección

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

-

4.3. Discusión y análisis de resultados

-

4.3.1. Introducción

+

Discusión y análisis de resultados

+

Introducció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.

-

4.3.2. Resumen de Resultados

+

Resumen de Resultados

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:

-

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.

 

Resultados de la Optimización con Ray Tune

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.

 

Comparación Final (Dataset Completo - 24 páginas)

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.

 

-

4.3.3. Análisis de Resultados

+

Análisis de Resultados

Mejora Obtenida

-

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.

 

Impacto de Hiperparámetros Individuales

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.

 

@@ -5113,7 +5113,7 @@ Configuración óptima: "text_det_unclip_ratio": 0.0, "text_rec_score_thresh": 0.6350, }

-

4.3.4. Discusión

+

Discusión

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.

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.

Comparación con Objetivos

-

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.

 

-

4.3.5. Implicaciones Prácticas

+

Implicaciones Prácticas

Recomendaciones de Configuración

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

Impacto Cuantitativo

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.

 

@@ -5151,7 +5151,7 @@ Configuración óptima:

·     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

-

4.3.6. Resumen de la Sección

+

Resumen de la Sección

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 futuro

Este 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.

-

5.1. Conclusiones

-

5.1.1. Conclusiones Generales

+

Conclusiones

+

Conclusiones Generales

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.

 

-

5.1.2. Conclusiones Específicas

+

Conclusiones Específicas

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 futuro

Este 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%

-

5.1.3. Hallazgos Clave

+

Hallazgos Clave

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.

-

5.1.4. Contribuciones del Trabajo

+

Contribuciones del Trabajo

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.

-

5.1.5. Limitaciones del Trabajo

+

Limitaciones del Trabajo

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.

-

5.2. Líneas de trabajo futuro

-

5.2.1. Extensiones Inmediatas

+

Líneas de trabajo futuro

+

Extensiones Inmediatas

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.

-

5.2.2. Líneas de Investigación

+

Líneas de Investigación

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.

-

5.2.3. Aplicaciones Prácticas

+

Aplicaciones Prácticas

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.

-

5.2.4. Reflexión Final

+

Reflexión Final

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.

Referencias @@ -5278,7 +5278,7 @@ major-latin;mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin └── README.md

A.3 Requisitos de Software

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.