From 9995c0848813d3a0811a9963ba75dc7fc842f1b6 Mon Sep 17 00:00:00 2001
From: sergio
Date: Tue, 20 Jan 2026 12:16:17 +0100
Subject: [PATCH] update doc
---
.claude/commands/documentation-review.md | 17 +++++++++++++++++
apply_content.py | 2 +-
thesis_output/plantilla_individual.htm | 22 +++++++++++-----------
3 files changed, 29 insertions(+), 12 deletions(-)
diff --git a/.claude/commands/documentation-review.md b/.claude/commands/documentation-review.md
index 8c66992..9561b27 100644
--- a/.claude/commands/documentation-review.md
+++ b/.claude/commands/documentation-review.md
@@ -17,6 +17,23 @@ Review and validate the documentation for this Master's Thesis project.
**IMPORTANT:** When styling elements (tables, figures, notes, quotes), ALWAYS check `plantilla_individual.htm` for existing Word/CSS classes (e.g., `MsoQuote`, `MsoCaption`, `Piedefoto-tabla`). Use these classes instead of custom inline styles.
+### UNIR Color Palette (from plantilla_individual.htm)
+
+| Color | Hex | Usage |
+|-------|-----|-------|
+| Primary Blue | `#0098CD` | Headings, titles, diagram borders |
+| Light Blue BG | `#E6F4F9` | Backgrounds, callout boxes, nodes |
+| Dark Gray | `#404040` | Primary text |
+| Accent Blue | `#5B9BD5` | Table headers, accent elements |
+| Light Accent | `#9CC2E5` | Table borders |
+| Very Light Blue | `#DEEAF6` | Secondary backgrounds, subgraphs |
+| White | `#FFFFFF` | Header text, contrast |
+
+### Table Styles (from template)
+- `MsoTableGrid` - Basic grid table
+- `MsoTable15Grid4Accent1` - Styled table with UNIR colors (header: `#5B9BD5`, borders: `#9CC2E5`)
+- `Piedefoto-tabla` - Table caption/source style
+
3. **Validate each documentation file** checking:
### Data Accuracy
diff --git a/apply_content.py b/apply_content.py
index 576caee..56a1ebf 100644
--- a/apply_content.py
+++ b/apply_content.py
@@ -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'''
''')
+ html_blocks.append(f'''
''')
else:
# Fallback to placeholder
html_blocks.append(f'''[Insertar diagrama Mermaid aquí]
''')
diff --git a/thesis_output/plantilla_individual.htm b/thesis_output/plantilla_individual.htm
index 14b65a4..eecfe56 100644
--- a/thesis_output/plantilla_individual.htm
+++ b/thesis_output/plantilla_individual.htm
@@ -4637,7 +4637,7 @@ _Toc14106979">Pipeline Moderno de OCR
Los sistemas OCR modernos siguen típicamente un pipeline de dos etapas principales, precedidas opcionalmente por una fase de preprocesamiento:
Figura 1. Pipeline de un sistema OCR moderno
-
+
Fuente: Elaboración propia.
Etapa de Preprocesamiento
@@ -4880,7 +4880,7 @@ Configuraciones con alta probabilidad bajo
4. Acceder a las visualizaciones de Optuna
Figura 2. Ciclo de optimización con Ray Tune y Optuna
-
+
Fuente: Elaboración propia.
HPO en Sistemas OCR
@@ -4958,7 +4958,7 @@ concretos y metodología de trabajoMetodología del trabajo
Visión General
Figura 3. Fases de la metodología experimental
-
+
Fuente: Elaboración propia.
Descripción de las fases:
@@ -4978,7 +4978,7 @@ concretos y metodología de trabajo - 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. Estructura del dataset de evaluación
-
+
Fuente: Elaboración propia.
Clase ImageTextDataset
@@ -5231,7 +5231,7 @@ color:#0098CD;mso-font-kerning:16.0pt;mso-bidi-font-weight:bold'>· 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. Arquitectura de ejecución con Docker Compose
-
+
Fuente: Elaboración propia.
La arquitectura containerizada (src/docker-compose.tuning.*.yml) ofrece:
@@ -5263,13 +5263,13 @@ docker compose -f docker-compose.tuning.doctr.yml down
Arquitectura de Microservicios
Figura 6. Arquitectura de microservicios para optimización OCR
-
+
Fuente: Elaboración propia.
Estrategia de Build Multi-Stage
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)
Flujo de Ejecución Completo
Figura 8. Flujo de ejecución de optimización con Ray Tune
-
+
Fuente: Elaboración propia.
Reproducibilidad
@@ -5422,7 +5422,7 @@ Configuración óptima:
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
A.2 Estructura del Repositorio
Figura 11. Estructura del repositorio MastersThesis
-
+
Fuente: Elaboración propia.
Tabla 56. Descripción de directorios principales.