pdf
Some checks failed
build_docker / essential (push) Successful in 1s
build_docker / build_paddle_ocr (push) Failing after 4m34s
build_docker / build_easyocr (push) Has been cancelled
build_docker / build_easyocr_gpu (push) Has been cancelled
build_docker / build_doctr (push) Has been cancelled
build_docker / build_doctr_gpu (push) Has been cancelled
build_docker / build_raytune (push) Has been cancelled
build_docker / build_paddle_ocr_gpu (push) Has been cancelled
Some checks failed
build_docker / essential (push) Successful in 1s
build_docker / build_paddle_ocr (push) Failing after 4m34s
build_docker / build_easyocr (push) Has been cancelled
build_docker / build_easyocr_gpu (push) Has been cancelled
build_docker / build_doctr (push) Has been cancelled
build_docker / build_doctr_gpu (push) Has been cancelled
build_docker / build_raytune (push) Has been cancelled
build_docker / build_paddle_ocr_gpu (push) Has been cancelled
This commit is contained in:
74
thesis_output/export_pdf.py
Executable file
74
thesis_output/export_pdf.py
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Export presentation.html as PDF using Chrome headless and Reveal.js print mode."""
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
CHROME_PATHS = [
|
||||||
|
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
|
||||||
|
"/Applications/Chromium.app/Contents/MacOS/Chromium",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def find_chrome():
|
||||||
|
for p in CHROME_PATHS:
|
||||||
|
if Path(p).exists():
|
||||||
|
return p
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
script_dir = Path(__file__).resolve().parent
|
||||||
|
html_path = script_dir / "presentation.html"
|
||||||
|
output_path = script_dir / "presentation.pdf"
|
||||||
|
|
||||||
|
if not html_path.exists():
|
||||||
|
print(f"Error: {html_path} not found")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
chrome = find_chrome()
|
||||||
|
if not chrome:
|
||||||
|
print("Error: Chrome not found. Searched:")
|
||||||
|
for p in CHROME_PATHS:
|
||||||
|
print(f" {p}")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Use ?print-pdf to trigger Reveal.js print layout
|
||||||
|
file_url = f"file://{html_path}?print-pdf"
|
||||||
|
|
||||||
|
print(f"Using: {chrome}")
|
||||||
|
print(f"Opening: {file_url}")
|
||||||
|
print("Generating PDF...")
|
||||||
|
|
||||||
|
result = subprocess.run(
|
||||||
|
[
|
||||||
|
chrome,
|
||||||
|
"--headless=new",
|
||||||
|
"--disable-gpu",
|
||||||
|
"--no-sandbox",
|
||||||
|
"--disable-extensions",
|
||||||
|
f"--print-to-pdf={output_path}",
|
||||||
|
"--print-to-pdf-no-header",
|
||||||
|
"--no-pdf-header-footer",
|
||||||
|
"--run-all-compositor-stages-before-draw",
|
||||||
|
"--virtual-time-budget=10000",
|
||||||
|
file_url,
|
||||||
|
],
|
||||||
|
capture_output=True,
|
||||||
|
text=True,
|
||||||
|
timeout=30,
|
||||||
|
)
|
||||||
|
|
||||||
|
if output_path.exists():
|
||||||
|
size_kb = output_path.stat().st_size / 1024
|
||||||
|
print(f"PDF saved to: {output_path} ({size_kb:.0f} KB)")
|
||||||
|
else:
|
||||||
|
print("Error: PDF was not generated")
|
||||||
|
if result.stderr:
|
||||||
|
print(result.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
File diff suppressed because it is too large
Load Diff
BIN
thesis_output/presentation.pdf
Normal file
BIN
thesis_output/presentation.pdf
Normal file
Binary file not shown.
12
thesis_output/presentation/slides/01_script.md
Normal file
12
thesis_output/presentation/slides/01_script.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Slide 1 — Title (~30 seconds)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Buenos días / Buenas tardes. Mi nombre es Sergio Jiménez Jiménez, y voy a presentar mi Trabajo Fin de Máster titulado: *Optimización de Hiperparámetros OCR con Ray Tune para Documentos Académicos en Español*.
|
||||||
|
|
||||||
|
Este trabajo ha sido dirigido por Javier Rodrigo Villazón Terrazas, dentro del Máster Universitario en Inteligencia Artificial de la UNIR."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Speak slowly and clearly, let the audience read the title
|
||||||
|
- Make eye contact, smile
|
||||||
|
- Don't rush — this sets the tone
|
||||||
10
thesis_output/presentation/slides/02_script.md
Normal file
10
thesis_output/presentation/slides/02_script.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Slide 2 — Agenda (~30 seconds)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"La presentación sigue esta estructura. Comenzaremos con la motivación y el planteamiento del problema. Después, revisaremos los objetivos y el estado del arte. A continuación, explicaré la metodología y la arquitectura del sistema. Pasaremos a los resultados experimentales, que son la parte central del trabajo. Y finalmente, las conclusiones y líneas de trabajo futuro."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Brief overview — don't explain each section in detail
|
||||||
|
- This is a roadmap, not a summary
|
||||||
|
- Point to each section as you mention it
|
||||||
16
thesis_output/presentation/slides/03_script.md
Normal file
16
thesis_output/presentation/slides/03_script.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Slide 3 — Motivation (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"La digitalización de documentos es una necesidad estratégica para cualquier organización. El OCR es el puente entre el mundo físico y el digital, pero los sistemas actuales presentan problemas significativos con documentos en español.
|
||||||
|
|
||||||
|
¿Por qué? Porque los modelos preentrenados se entrenan mayoritariamente con datasets internacionales donde los caracteres específicos del español — las tildes, la eñe, los signos de interrogación y exclamación invertidos — están infrarrepresentados.
|
||||||
|
|
||||||
|
Como pueden ver en la tabla, los errores típicos incluyen la pérdida de acentos, como 'información' que se convierte en 'informacion'; la eñe que se confunde con una ene; y artefactos de duplicación. Estos errores no son anecdóticos: afectan la precisión en entornos reales como archivos académicos, registros legales o facturación.
|
||||||
|
|
||||||
|
La solución habitual es el fine-tuning, pero esto requiere datasets etiquetados extensos y una infraestructura costosa. La pregunta que nos planteamos es: ¿se puede mejorar significativamente un modelo OCR sin necesidad de reentrenarlo?"
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Point to the error table when you mention specific examples
|
||||||
|
- Emphasize the practical relevance — this isn't just academic
|
||||||
|
- The rhetorical question at the end bridges naturally to the next slide
|
||||||
16
thesis_output/presentation/slides/04_script.md
Normal file
16
thesis_output/presentation/slides/04_script.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Slide 4 — Problem Statement (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Y esa es exactamente la pregunta central de este trabajo: ¿Se pueden mejorar modelos OCR preentrenados de forma significativa para documentos en español mediante optimización sistemática de hiperparámetros, sin necesidad de fine-tuning?
|
||||||
|
|
||||||
|
Para entender por qué esta pregunta es relevante, veamos la comparación. El fine-tuning requiere miles de imágenes etiquetadas, GPUs de alta memoria — más de 16 gigabytes —, puede tardar días o semanas, exige alta experiencia en machine learning, y conlleva riesgo de overfitting catastrófico.
|
||||||
|
|
||||||
|
En cambio, la optimización de hiperparámetros solo necesita un subconjunto de validación, funciona con CPUs o GPUs eficientes, se ejecuta en minutos u horas, requiere experiencia media, y el riesgo es limitado y reversible.
|
||||||
|
|
||||||
|
Es decir, estamos proponiendo una alternativa práctica y accesible, especialmente relevante para organizaciones con recursos limitados que necesitan mejorar su OCR sin invertir en infraestructura de entrenamiento."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Read the central question with emphasis — it's the thesis statement
|
||||||
|
- Use the comparison table as a visual anchor: point left (fine-tuning) vs right (HPO)
|
||||||
|
- Stress "accesible" and "recursos limitados" — this is the practical value proposition
|
||||||
24
thesis_output/presentation/slides/05_script.md
Normal file
24
thesis_output/presentation/slides/05_script.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Slide 5 — Objectives (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Nuestro objetivo general es optimizar PaddleOCR para documentos académicos en español, alcanzando un CER — Character Error Rate — inferior al 2%, sin modificar el modelo base.
|
||||||
|
|
||||||
|
Para conseguirlo, definimos cinco objetivos específicos, todos ellos SMART.
|
||||||
|
|
||||||
|
Primero, OE1: realizar una comparativa de tres motores OCR de código abierto — EasyOCR, PaddleOCR y DocTR — para seleccionar el más adecuado.
|
||||||
|
|
||||||
|
OE2: preparar un dataset estructurado de 45 páginas con ground truth extraído automáticamente.
|
||||||
|
|
||||||
|
OE3: identificar los hiperparámetros críticos mediante análisis de correlación de Pearson.
|
||||||
|
|
||||||
|
OE4: ejecutar 64 ensayos automatizados de optimización usando Ray Tune con el algoritmo Optuna TPE.
|
||||||
|
|
||||||
|
Y OE5: validar la configuración optimizada contra el baseline en el dataset completo.
|
||||||
|
|
||||||
|
Como verán más adelante, todos estos objetivos se cumplieron, y el objetivo de CER menor al 2% se superó ampliamente en el mejor ensayo."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Don't rush through the objectives — the tribunal wants to hear them clearly
|
||||||
|
- Emphasize "SMART" briefly — it shows methodological rigor
|
||||||
|
- The anticipation of results ("como verán más adelante") keeps interest
|
||||||
18
thesis_output/presentation/slides/06_script.md
Normal file
18
thesis_output/presentation/slides/06_script.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Slide 6 — State of the Art: OCR Engines (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Antes de optimizar, necesitábamos seleccionar el motor OCR más adecuado. Evaluamos tres soluciones de código abierto.
|
||||||
|
|
||||||
|
EasyOCR, de JaidedAI, utiliza una arquitectura CRAFT más CRNN, soporta más de 80 idiomas, y es muy fácil de usar. Sin embargo, tiene baja configurabilidad de hiperparámetros, lo cual limita las posibilidades de optimización.
|
||||||
|
|
||||||
|
DocTR, de Mindee, ofrece buena velocidad de inferencia con una arquitectura DB más CRNN o SAR. Soporta PyTorch y TensorFlow, pero tiene soporte limitado para español.
|
||||||
|
|
||||||
|
PaddleOCR, de Baidu, fue nuestra selección. Utiliza la arquitectura PP-OCRv5 con DB para detección y SVTR para reconocimiento. Lo que lo diferencia es su alta configurabilidad — expone numerosos hiperparámetros de inferencia — y su soporte dedicado para español con modelos específicos.
|
||||||
|
|
||||||
|
En la figura pueden ver el pipeline moderno de un sistema OCR: preprocesamiento, detección de texto, reconocimiento de caracteres y postprocesamiento. PaddleOCR nos permite intervenir en múltiples etapas de este pipeline a través de sus hiperparámetros."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Don't read all technical specs — focus on WHY PaddleOCR was chosen
|
||||||
|
- "Alta configurabilidad" is the key differentiator — emphasize it
|
||||||
|
- Point to the pipeline figure when explaining the OCR stages
|
||||||
22
thesis_output/presentation/slides/07_script.md
Normal file
22
thesis_output/presentation/slides/07_script.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Slide 7 — Methodology: 5 Phases (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"La metodología se estructura en cinco fases experimentales.
|
||||||
|
|
||||||
|
En la Fase 1, preparamos el dataset: convertimos el PDF de las instrucciones del TFE de la UNIR a imágenes PNG a 300 DPI, y extrajimos el ground truth con PyMuPDF. El corpus final tiene 45 páginas.
|
||||||
|
|
||||||
|
En la Fase 2, realizamos el benchmark comparativo de los tres motores OCR usando las métricas CER y WER sobre un subconjunto inicial de 5 páginas. Aquí es donde seleccionamos PaddleOCR.
|
||||||
|
|
||||||
|
La Fase 3 consistió en definir el espacio de búsqueda: identificamos 7 hiperparámetros de PaddleOCR relevantes para la inferencia.
|
||||||
|
|
||||||
|
En la Fase 4, ejecutamos la optimización: 64 ensayos automatizados usando Ray Tune con el algoritmo TPE de Optuna, ejecutados en GPU.
|
||||||
|
|
||||||
|
Y en la Fase 5, validamos la configuración óptima sobre las 45 páginas completas, comparando contra el baseline.
|
||||||
|
|
||||||
|
Esta estructura en fases garantiza la reproducibilidad del experimento y permite que otros investigadores repliquen el proceso con diferentes motores OCR o tipos de documento."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Point to each phase in the figure as you explain it
|
||||||
|
- Keep it concise — the details come in later slides
|
||||||
|
- Emphasize "reproducibilidad" — it's a key contribution
|
||||||
18
thesis_output/presentation/slides/08_script.md
Normal file
18
thesis_output/presentation/slides/08_script.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Slide 8 — Architecture: Docker Microservices (~1 minute)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Para la infraestructura, diseñamos una arquitectura de microservicios con Docker. Tenemos dos contenedores principales.
|
||||||
|
|
||||||
|
El contenedor de Ray Tune actúa como orquestador de ensayos, usando Optuna TPE para decidir qué configuración probar en cada iteración.
|
||||||
|
|
||||||
|
El contenedor de PaddleOCR recibe las configuraciones vía API REST — un POST a /evaluate — y devuelve las métricas CER, WER y tiempo en formato JSON.
|
||||||
|
|
||||||
|
Todo se despliega con Docker Compose, lo que permite reproducir el experimento con un solo comando. El hardware utilizado fue un portátil con GPU RTX 3060 Laptop de casi 6 gigabytes de VRAM, procesador AMD Ryzen 7, y 16 gigas de RAM, bajo Ubuntu 24.04.
|
||||||
|
|
||||||
|
Esta separación en microservicios permite escalar independientemente cada componente y facilita la portabilidad a otros entornos."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Point to the architecture diagram as you explain the flow
|
||||||
|
- Don't get bogged down in Docker details — focus on the WHY (reproducibility, scalability)
|
||||||
|
- Mention hardware briefly — it shows this is feasible with consumer-grade equipment
|
||||||
19
thesis_output/presentation/slides/09_script.md
Normal file
19
thesis_output/presentation/slides/09_script.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Slide 9 — Search Space: 7 Hyperparameters (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Ahora entramos en el corazón del trabajo: el espacio de búsqueda. Definimos 7 hiperparámetros de PaddleOCR.
|
||||||
|
|
||||||
|
Tres son booleanos — decisiones arquitectónicas que activan o desactivan módulos del pipeline. textline_orientation controla la detección de orientación de líneas de texto. use_doc_orientation_classify activa la clasificación de orientación del documento. Y use_doc_unwarping controla la corrección de deformaciones.
|
||||||
|
|
||||||
|
Tres son continuos — umbrales numéricos que ajustan la sensibilidad. text_det_thresh es el umbral de binarización, con rango entre 0.01 y 0.50. text_det_box_thresh controla la confianza de las cajas de texto. Y text_rec_score_thresh filtra los resultados del reconocedor.
|
||||||
|
|
||||||
|
El séptimo, text_det_unclip_ratio, se fijó en 0.0 basándonos en pruebas preliminares.
|
||||||
|
|
||||||
|
Lo interesante es que los 3 parámetros booleanos generan solo 8 combinaciones posibles, pero como veremos, son los que más impactan en el rendimiento. El algoritmo TPE de Optuna explora este espacio mixto discreto-continuo de forma inteligente con 64 ensayos y 2 workers concurrentes."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- This is technical — slow down and let the audience absorb
|
||||||
|
- Point to the table for each parameter
|
||||||
|
- Emphasize the boolean vs continuous distinction — it's a key finding
|
||||||
|
- Reference the optimization cycle diagram
|
||||||
@@ -5,16 +5,16 @@
|
|||||||
<canvas id="chartBenchmark"></canvas>
|
<canvas id="chartBenchmark"></canvas>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<table class="data-table" style="font-size:0.68em;">
|
<table class="data-table" style="font-size:0.62em;">
|
||||||
<thead><tr><th>Motor</th><th>CER</th><th>WER</th><th>s/pág</th><th>VRAM</th></tr></thead>
|
<thead><tr><th>Motor</th><th>CER Base</th><th>CER HPO</th><th>Mejora</th><th>Trials <2%</th></tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr><td>EasyOCR</td><td>11.23%</td><td>36.36%</td><td>1.88</td><td>~2 GB</td></tr>
|
<tr><td>EasyOCR</td><td>11.23%</td><td>5.84%</td><td>-48.0%</td><td>0/64</td></tr>
|
||||||
<tr class="highlight"><td><strong>PaddleOCR</strong></td><td><strong>7.76%</strong></td><td><strong>11.62%</strong></td><td>0.58</td><td>0.06 GB</td></tr>
|
<tr class="highlight"><td><strong>PaddleOCR</strong></td><td><strong>7.76%</strong></td><td><strong>0.79%</strong></td><td><strong>-89.8%</strong></td><td><strong>43/64</strong></td></tr>
|
||||||
<tr><td>DocTR</td><td>12.06%</td><td>42.01%</td><td>0.50</td><td>~1 GB</td></tr>
|
<tr><td>DocTR</td><td>12.06%</td><td>7.43%</td><td>-38.4%</td><td>0/64</td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="highlight-box" style="font-size:0.65em; margin-top:15px;">
|
<div class="highlight-box" style="font-size:0.6em; margin-top:12px;">
|
||||||
<strong>PaddleOCR seleccionado:</strong> Mejor CER (7.76%) con el menor consumo de VRAM (0.06 GB) y alta configurabilidad.
|
<strong>HPO beneficia a todos los motores</strong>, pero solo PaddleOCR alcanza CER < 2%. Su alta configurabilidad permite una mejora del 89.8% frente al 48% (EasyOCR) y 38.4% (DocTR).
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
19
thesis_output/presentation/slides/10_script.md
Normal file
19
thesis_output/presentation/slides/10_script.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Slide 10 — Benchmark Results + HPO Comparison (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Veamos los resultados del benchmark comparativo — objetivo específico OE1 — pero no solo el baseline, sino también el efecto de la optimización de hiperparámetros en los tres motores.
|
||||||
|
|
||||||
|
En la tabla vemos que los tres motores mejoran con la optimización, lo cual valida que el enfoque de HPO es universalmente aplicable. Sin embargo, las diferencias son dramáticas.
|
||||||
|
|
||||||
|
EasyOCR pasa de un CER del 11.23% al 5.84% — una mejora del 48%. DocTR pasa del 12.06% al 7.43% — una mejora del 38.4%. Ambas mejoras son significativas, pero ninguno de los dos motores consigue bajar del 2% de CER en ninguno de los 64 ensayos.
|
||||||
|
|
||||||
|
PaddleOCR, en cambio, pasa del 7.76% al 0.79% — una mejora del 89.8%. Y no es un resultado aislado: 43 de los 64 ensayos alcanzaron un CER inferior al 2%.
|
||||||
|
|
||||||
|
¿Por qué esta diferencia tan grande? Por la configurabilidad. PaddleOCR expone más hiperparámetros de inferencia, lo que permite al algoritmo TPE encontrar configuraciones mucho mejores. Esto confirma que nuestra selección de PaddleOCR fue acertada, no solo por su mejor baseline, sino por su potencial de optimización."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- This is now a more powerful slide — it tells a complete story
|
||||||
|
- Emphasize "los tres mejoran" first (validates the approach), then the gap
|
||||||
|
- "43 de 64" is a strong number — shows consistency, not just one lucky trial
|
||||||
|
- The configurability argument ties the benchmark to the thesis contribution
|
||||||
17
thesis_output/presentation/slides/11_script.md
Normal file
17
thesis_output/presentation/slides/11_script.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Slide 11 — 64 Trials Optimization Results (~1 minute)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Profundicemos ahora en los 64 ensayos de PaddleOCR, que como acabamos de ver, es el motor que más se beneficia de la optimización.
|
||||||
|
|
||||||
|
El mejor ensayo alcanzó un CER del 0.79%, superando ampliamente nuestro objetivo del 2%. La mediana fue del 0.87%, lo que indica que la mayoría de configuraciones encontradas son excelentes.
|
||||||
|
|
||||||
|
Como ya vimos, el 67.2% de los ensayos logró un CER inferior al 2%. Y no hubo ningún fallo catastrófico: el peor ensayo tuvo un CER del 7.30%, comparable al baseline.
|
||||||
|
|
||||||
|
Todo esto se ejecutó en aproximadamente 5 minutos gracias a la GPU. Como pueden ver en la distribución, hay una clara concentración de ensayos en valores de CER muy bajos, lo que demuestra que el algoritmo TPE converge eficientemente en el espacio de búsqueda."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- This slide now deepens what slide 10 introduced — the transition is natural
|
||||||
|
- "0.79%" is your headline — say it clearly
|
||||||
|
- Point to the distribution chart
|
||||||
|
- Keep it concise since slide 10 already covered the 3-engine comparison
|
||||||
21
thesis_output/presentation/slides/12_script.md
Normal file
21
thesis_output/presentation/slides/12_script.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Slide 12 — Key Finding: Hyperparameter Impact Hierarchy (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Este es probablemente el hallazgo más importante del trabajo: no todos los hiperparámetros contribuyen igual, y hay una jerarquía clara de impacto.
|
||||||
|
|
||||||
|
El parámetro más influyente es use_doc_unwarping, con una correlación de +0.88 con el CER. Esto significa que activarlo PERJUDICA el rendimiento. ¿Por qué? Porque aplica una corrección de deformaciones diseñada para documentos escaneados o fotografiados, que es innecesaria y contraproducente en PDFs digitales.
|
||||||
|
|
||||||
|
El segundo es use_doc_orientation_classify, con correlación -0.71. Activarlo mejora significativamente la detección de orientación en documentos con layouts complejos.
|
||||||
|
|
||||||
|
El tercero es textline_orientation, con correlación -0.54. Es crítico para documentos con mezcla de orientaciones de texto.
|
||||||
|
|
||||||
|
Los umbrales numéricos tienen un impacto menor, con correlaciones de hasta -0.43.
|
||||||
|
|
||||||
|
La conclusión clave es que las decisiones arquitectónicas — los booleanos — dominan sobre los ajustes finos numéricos. Y sin una búsqueda sistemática de 64 ensayos, estas interacciones entre parámetros habrían permanecido desconocidas."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- This is your MAIN intellectual contribution — take your time
|
||||||
|
- Emphasize the surprise: unwarping HURTS performance on digital PDFs
|
||||||
|
- The hierarchy (architectural > numerical) is a generalizable insight
|
||||||
|
- "Sin búsqueda sistemática..." drives home the value of the approach
|
||||||
16
thesis_output/presentation/slides/13_script.md
Normal file
16
thesis_output/presentation/slides/13_script.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Slide 13 — Hyperparameter Analysis (Correlations) (~1 minute)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Aquí vemos las correlaciones de Pearson y la importancia relativa de cada hiperparámetro de forma visual.
|
||||||
|
|
||||||
|
En el gráfico de correlación, los valores positivos — como use_doc_unwarping con +0.88 — indican que aumentar el parámetro incrementa el CER, es decir, empeora el rendimiento. Los valores negativos — como use_doc_orientation_classify con -0.71 — indican que activarlos reduce el error.
|
||||||
|
|
||||||
|
En el gráfico de importancia relativa, se confirma la jerarquía: los parámetros booleanos — las decisiones de arquitectura del pipeline — acumulan la mayor parte de la varianza explicada, mientras que los umbrales numéricos contribuyen de forma secundaria.
|
||||||
|
|
||||||
|
Esto tiene una implicación práctica directa: al optimizar un sistema OCR, primero hay que decidir correctamente qué módulos activar, y solo después ajustar los umbrales de sensibilidad."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Point to specific bars in the charts as you mention each parameter
|
||||||
|
- Keep it visual — let the charts speak
|
||||||
|
- The practical implication at the end is important for the tribunal
|
||||||
19
thesis_output/presentation/slides/14_script.md
Normal file
19
thesis_output/presentation/slides/14_script.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Slide 14 — Validation: Baseline vs Optimized (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Pasamos a la validación sobre el dataset completo de 45 páginas — objetivo específico OE5.
|
||||||
|
|
||||||
|
El CER baseline era del 8.85%. Con la configuración optimizada, se reduce a 7.72%, una mejora relativa del 12.8%. El WER pasa de 13.05% a 11.40%, una mejora similar del 12.6%.
|
||||||
|
|
||||||
|
Ahora, es importante ser transparente: el mejor ensayo individual sobre las 5 páginas de optimización alcanzó un CER del 0.79%, lo cual contrasta con el 7.72% sobre el dataset completo.
|
||||||
|
|
||||||
|
Esta diferencia nos indica que hay un grado de overfitting al subconjunto de optimización. Las 5 páginas utilizadas para la búsqueda no capturan toda la variabilidad del documento completo de 45 páginas.
|
||||||
|
|
||||||
|
Esto es una limitación que identificamos honestamente, y la recomendación directa es utilizar un subconjunto mayor — de 15 a 20 páginas — para mejorar la generalización. A pesar de esta limitación, la mejora del 12.8% sobre el dataset completo demuestra que la optimización tiene un efecto positivo real y generalizable."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Be honest about the overfitting gap — the tribunal will respect transparency
|
||||||
|
- "12.8% improvement" is still significant even with the caveat
|
||||||
|
- Frame the limitation as a clear future improvement, not a failure
|
||||||
|
- Point to the comparison chart
|
||||||
14
thesis_output/presentation/slides/15_script.md
Normal file
14
thesis_output/presentation/slides/15_script.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Slide 15 — GPU Acceleration (~30 seconds)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Un dato relevante sobre la viabilidad práctica: la GPU RTX 3060 proporciona una aceleración de 82 veces respecto a CPU.
|
||||||
|
|
||||||
|
En CPU, cada página tarda 69 segundos. En GPU, solo 0.84 segundos. Esto significa que los 64 ensayos sobre 5 páginas se completaron en unos 5 minutos con GPU, frente a más de 6 horas en CPU.
|
||||||
|
|
||||||
|
La aceleración por GPU no es un lujo, sino una necesidad para hacer viable la optimización de hiperparámetros a escala."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Quick slide — let the numbers speak for themselves
|
||||||
|
- "82x" is the headline number
|
||||||
|
- Emphasize feasibility: consumer GPU makes this practical
|
||||||
16
thesis_output/presentation/slides/16_script.md
Normal file
16
thesis_output/presentation/slides/16_script.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Slide 16 — Optimal Configuration (~1 minute)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Esta es la configuración óptima encontrada — el resultado tangible del trabajo.
|
||||||
|
|
||||||
|
Los dos hallazgos más importantes a nivel de configuración: textline_orientation y use_doc_orientation_classify deben estar activados — son críticos para documentos con layouts complejos. Y use_doc_unwarping debe estar desactivado — es un procesamiento innecesario para PDFs digitales que introduce ruido.
|
||||||
|
|
||||||
|
En cuanto a los umbrales numéricos: text_det_thresh con un valor bajo de 0.046 permite capturar más regiones de texto, reduciendo omisiones. text_det_box_thresh en 0.486 y text_rec_score_thresh en 0.566 proporcionan un equilibrio entre precisión y recall.
|
||||||
|
|
||||||
|
Esta configuración es directamente aplicable a otros documentos académicos en español con layouts similares, y puede servir como punto de partida para la optimización en otros dominios documentales."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Point to the code block
|
||||||
|
- Highlight the key decisions: True, True, False
|
||||||
|
- "Directamente aplicable" — emphasize practical value
|
||||||
20
thesis_output/presentation/slides/17_script.md
Normal file
20
thesis_output/presentation/slides/17_script.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Slide 17 — Conclusions (~1.5 minutes)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"En conclusión, este trabajo aporta cuatro contribuciones principales.
|
||||||
|
|
||||||
|
Primera: una metodología reproducible para optimización de hiperparámetros OCR, basada en herramientas de código abierto — Ray Tune, Optuna y PaddleOCR.
|
||||||
|
|
||||||
|
Segunda: un análisis sistemático de los hiperparámetros de PaddleOCR mediante correlaciones de Pearson, que revela la jerarquía de impacto donde los parámetros arquitectónicos dominan sobre los numéricos.
|
||||||
|
|
||||||
|
Tercera: una configuración validada para documentos académicos en español que logra un CER del 0.79% en el mejor ensayo — superando el objetivo del 2%.
|
||||||
|
|
||||||
|
Y cuarta: una infraestructura Dockerizada con imágenes públicas que permite reproducir el experimento completo.
|
||||||
|
|
||||||
|
En cuanto a las limitaciones, las reconocemos explícitamente: un solo tipo de documento, un corpus modesto de 45 páginas, overfitting al subconjunto de optimización de 5 páginas, y el parámetro text_det_unclip_ratio que no se exploró. Estas limitaciones son, a su vez, oportunidades claras de mejora."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Number the contributions clearly — the tribunal is evaluating these
|
||||||
|
- Balance confidence with honesty about limitations
|
||||||
|
- "Las limitaciones son oportunidades" — reframe positively
|
||||||
16
thesis_output/presentation/slides/18_script.md
Normal file
16
thesis_output/presentation/slides/18_script.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Slide 18 — Future Work (~1 minute)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Para trabajo futuro, identificamos tres líneas.
|
||||||
|
|
||||||
|
En extensiones inmediatas: validación cruzada con otros tipos de documento — facturas, formularios, manuscritos —, un subconjunto de optimización más grande de 15 a 20 páginas para reducir el overfitting, y exploración del parámetro text_det_unclip_ratio.
|
||||||
|
|
||||||
|
En líneas de investigación: transferencia de hiperparámetros entre dominios documentales, optimización multiobjetivo combinando CER, WER y velocidad de inferencia, y una comparación rigurosa entre optimización de hiperparámetros y fine-tuning.
|
||||||
|
|
||||||
|
Y en aplicaciones prácticas: una herramienta de configuración automática por tipo de documento, integración en pipelines de producción, y un benchmark público de OCR para español — algo que actualmente no existe y sería una contribución valiosa a la comunidad."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Group the three categories clearly
|
||||||
|
- "Benchmark público para español" is a strong closing point — highlights a gap in the field
|
||||||
|
- Keep it forward-looking and enthusiastic
|
||||||
13
thesis_output/presentation/slides/19_script.md
Normal file
13
thesis_output/presentation/slides/19_script.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Slide 19 — Thanks & Questions (~15 seconds)
|
||||||
|
|
||||||
|
**What to say:**
|
||||||
|
|
||||||
|
"Con esto concluye mi presentación. Muchas gracias por su atención.
|
||||||
|
|
||||||
|
Quedo a su disposición para cualquier pregunta."
|
||||||
|
|
||||||
|
**Tips:**
|
||||||
|
- Smile, make eye contact
|
||||||
|
- Wait a moment before the Q&A starts — don't rush
|
||||||
|
- Have your results slides (11, 12, 14) ready to jump back to during Q&A
|
||||||
|
- If asked a question you don't know, say "Es una excelente pregunta que no abordamos en este trabajo, pero sería interesante explorar como trabajo futuro"
|
||||||
Reference in New Issue
Block a user