diff --git a/apply_content.py b/apply_content.py index 0e23226..5a58a5c 100644 --- a/apply_content.py +++ b/apply_content.py @@ -121,13 +121,13 @@ def parse_md_to_html_blocks(md_content): mermaid_lines.append(lines[i]) i += 1 - # Try to extract title from mermaid content (YAML format: title: "...") + # Try to extract title from mermaid content (YAML format) mermaid_content = '\n'.join(mermaid_lines) - # Match YAML format: title: "Title" or title: 'Title' + # Match title with quotes: title: "Something" or title: 'Something' title_match = re.search(r'title:\s*["\']([^"\']+)["\']', mermaid_content) if not title_match: - # Fallback to non-YAML format: title "Title" - title_match = re.search(r'title\s+["\']?([^"\'"\n]+)["\']?', mermaid_content) + # Match title without quotes: title: Something + title_match = re.search(r'title:\s*([^"\'\n]+)', mermaid_content) if title_match: fig_title = title_match.group(1).strip() else: @@ -145,7 +145,7 @@ def parse_md_to_html_blocks(md_content): if os.path.exists(fig_path): # Use Word-compatible width in cm (A4 text area is ~16cm wide, use ~12cm max) - html_blocks.append(f'''
[Insertar diagrama Mermaid aquí]
''') diff --git a/thesis_output/plantilla_individual.htm b/thesis_output/plantilla_individual.htm index 1355429..0aeb5c7 100644 --- a/thesis_output/plantilla_individual.htm +++ b/thesis_output/plantilla_individual.htm @@ -4636,8 +4636,8 @@ _Toc14106979">Connectionist Temporal Classification (CTC): La función de pérdida CTC (Graves et al., 2006) permite entrenar modelos de reconocimiento de secuencias sin necesidad de alineamiento carácter por carácter, simplificando enormemente el proceso de entrenamiento.Los sistemas OCR modernos siguen típicamente un pipeline de dos etapas principales, precedidas opcionalmente por una fase de preprocesamiento:
-Figura 1. Diagrama 1
-
Figura 1. Pipeline de un sistema OCR moderno
+
Fuente: Elaboración propia.
Figura 3. Diagrama 3
-
Figura 3. Fases de la metodología experimental
+
Fuente: Elaboración propia.
Descripción de las fases:
@@ -4977,8 +4977,8 @@ concretos y metodología de trabajo1. 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
Figura 4. Diagrama 4
-
Figura 4. Estructura del dataset de evaluación
+
Fuente: Elaboración propia.
· Aislamiento de Ray Tune: Ray Tune tiene sus propias dependencias que pueden entrar en conflicto con las librerías de inferencia OCR
Esta arquitectura containerizada permite ejecutar cada componente en su entorno aislado óptimo, comunicándose via API REST:
-Figura 5. Diagrama 5
-
Figura 5. Arquitectura de ejecución con Docker Compose
+
Fuente: Elaboración propia.
La arquitectura containerizada (src/docker-compose.tuning.*.yml) ofrece:
@@ -5262,14 +5262,14 @@ docker compose -f docker-compose.tuning.doctr.yml downFuente: Elaboración propia.
Figura 6. Diagrama 6
-
Figura 6. Arquitectura de microservicios para optimización OCR
+
Fuente: Elaboración propia.
Los Dockerfiles utilizan una estrategia de build multi-stage para optimizar tiempos de construcción y tamaño de imágenes:
Figura 7. Estrategia de build multi-stage
-

Fuente: Elaboración propia.
Ventajas de esta estrategia:
@@ -5303,7 +5303,7 @@ docker compose -f docker-compose.tuning.doctr.yml down· DocTR: 180 segundos (modelos ResNet más pesados)
Figura 8. Flujo de ejecución de optimización con Ray Tune
-

Fuente: Elaboración propia.
1. Menor varianza: La desviación estándar también se reduce significativamente (7.12% vs 14.93%), indicando resultados más consistentes.
1. Reducción del CER: 69.7% cuando se habilita la clasificación de orientación de línea.
Figura 9. Impacto de textline_orientation en CER
-

Fuente: Elaboración propia.
Explicación técnica:
@@ -5452,7 +5452,7 @@ Configuración óptima:Fuente: Elaboración propia.
Figura 10. Reducción de errores: Baseline vs Optimizado (45 páginas)
-

Fuente: Elaboración propia.
Leyenda: CER = Character Error Rate, WER = Word Error Rate. Baseline = configuración por defecto de PaddleOCR. Optimizado = configuración encontrada por Ray Tune. Los valores corresponden al dataset completo de 45 páginas.
@@ -5755,7 +5755,7 @@ major-latin;mso-bidi-font-family:"Calibri Light";mso-bidi-theme-font:major-latin· Resultados: Archivos CSV con los resultados de los 64 trials por servicio
Figura 11. Estructura del repositorio MastersThesis
-

Fuente: Elaboración propia.
Tabla 56. Descripción de directorios principales.