Docs aligment on latest metrics.
Some checks failed
build_docker / essential (pull_request) Successful in 1s
build_docker / build_gpu (pull_request) Has been cancelled
build_docker / build_easyocr (pull_request) Has been cancelled
build_docker / build_cpu (pull_request) Successful in 5m25s
build_docker / build_easyocr_gpu (pull_request) Has been cancelled
build_docker / build_doctr (pull_request) Has been cancelled
build_docker / build_doctr_gpu (pull_request) Has been cancelled

This commit is contained in:
2026-01-19 13:41:07 +01:00
parent 8bc3b38d46
commit 316ace4d51
11 changed files with 329 additions and 58 deletions

View File

@@ -113,6 +113,34 @@ MastersThesis/
--- ---
## Rendimiento GPU
Se realizó una validación adicional con aceleración GPU para evaluar la viabilidad práctica del enfoque en escenarios de producción.
**Tabla.** *Comparación de rendimiento CPU vs GPU.*
| Métrica | CPU | GPU (RTX 3060) | Aceleración |
|---------|-----|----------------|-------------|
| Tiempo/Página | 69.4s | 0.55s | **126x** |
| Dataset completo (45 páginas) | ~52 min | ~25 seg | **126x** |
*Fuente: Elaboración propia.*
### Recomendación de Modelos
**Tabla.** *Comparación de modelos PaddleOCR en RTX 3060.*
| Modelo | VRAM | Recomendación |
|--------|------|---------------|
| **PP-OCRv5 Mobile** | 0.06 GB | ✓ Recomendado |
| PP-OCRv5 Server | 5.3 GB | ✗ Causa OOM en RTX 3060 |
*Fuente: Elaboración propia.*
**Conclusión:** Para hardware con VRAM limitada (≤6 GB), los modelos Mobile ofrecen el mejor balance entre precisión y recursos. La aceleración GPU hace viable el procesamiento en tiempo real.
---
## Requisitos ## Requisitos
| Componente | Versión | | Componente | Versión |
@@ -252,12 +280,13 @@ python3 apply_content.py
## Trabajo Pendiente para Completar el TFM ## Trabajo Pendiente para Completar el TFM
### Contexto: Limitaciones de Hardware ### Contexto: Hardware
Este trabajo adoptó la estrategia de **optimización de hiperparámetros** en lugar de **fine-tuning** debido a: Este trabajo adoptó la estrategia de **optimización de hiperparámetros** en lugar de **fine-tuning** debido a que el fine-tuning de modelos OCR requiere datasets etiquetados extensos y tiempos de entrenamiento prohibitivos.
- **Sin GPU dedicada**: Ejecución exclusivamente en CPU
- **Tiempo de inferencia elevado**: ~69 segundos/página en CPU **Hardware utilizado:**
- **Fine-tuning inviable**: Entrenar modelos de deep learning sin GPU requeriría tiempos prohibitivos - **Optimización (CPU)**: Los 64 trials de Ray Tune se ejecutaron en CPU (~69s/página)
- **Validación (GPU)**: Se validó con RTX 3060 logrando 126x de aceleración (0.55s/página)
La optimización de hiperparámetros demostró ser una **alternativa efectiva** al fine-tuning, logrando una reducción del 80.9% en el CER sin reentrenar el modelo. La optimización de hiperparámetros demostró ser una **alternativa efectiva** al fine-tuning, logrando una reducción del 80.9% en el CER sin reentrenar el modelo.
@@ -278,7 +307,7 @@ La optimización de hiperparámetros demostró ser una **alternativa efectiva**
#### 2. Experimentación Adicional (Prioridad Media) #### 2. Experimentación Adicional (Prioridad Media)
- [ ] **Explorar `text_det_unclip_ratio`**: Este parámetro quedó fijado en 0.0. Incluirlo en el espacio de búsqueda podría mejorar resultados - [ ] **Explorar `text_det_unclip_ratio`**: Este parámetro quedó fijado en 0.0. Incluirlo en el espacio de búsqueda podría mejorar resultados
- [ ] **Comparativa con fine-tuning** (si se obtiene acceso a GPU): Cuantificar la brecha de rendimiento entre optimización de hiperparámetros y fine-tuning real - [ ] **Comparativa con fine-tuning** (si se obtiene acceso a GPU): Cuantificar la brecha de rendimiento entre optimización de hiperparámetros y fine-tuning real
- [ ] **Evaluación con GPU**: Medir tiempos de inferencia con aceleración GPU para escenarios de producción - [x] **Evaluación con GPU**: Validado con RTX 3060 - 126x más rápido que CPU (0.55s/página vs 69.4s/página)
#### 3. Documentación y Presentación (Prioridad Alta) #### 3. Documentación y Presentación (Prioridad Alta)
- [ ] **Crear presentación**: Preparar slides para la defensa del TFM - [ ] **Crear presentación**: Preparar slides para la defensa del TFM

View File

@@ -5,7 +5,7 @@ import re
import os import os
from bs4 import BeautifulSoup, NavigableString from bs4 import BeautifulSoup, NavigableString
BASE_DIR = '/Users/sergio/Desktop/MastersThesis' BASE_DIR = os.path.dirname(os.path.abspath(__file__))
TEMPLATE = os.path.join(BASE_DIR, 'thesis_output/plantilla_individual.htm') TEMPLATE = os.path.join(BASE_DIR, 'thesis_output/plantilla_individual.htm')
DOCS_DIR = os.path.join(BASE_DIR, 'docs') DOCS_DIR = os.path.join(BASE_DIR, 'docs')

View File

@@ -1068,3 +1068,67 @@ Este capítulo ha presentado el desarrollo completo de la contribución:
**Fuentes de datos:** **Fuentes de datos:**
- `src/raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de 64 trials - `src/raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de 64 trials
- `src/paddle_ocr_fine_tune_unir_raytune.ipynb`: Notebook principal del experimento - `src/paddle_ocr_fine_tune_unir_raytune.ipynb`: Notebook principal del experimento
### Validación con Aceleración GPU
Para evaluar la viabilidad práctica del enfoque optimizado en escenarios de producción, se realizó una validación adicional utilizando aceleración GPU. Esta fase complementa los experimentos en CPU presentados anteriormente y demuestra la aplicabilidad del método cuando se dispone de hardware con capacidad de procesamiento paralelo.
#### Configuración del Entorno GPU
**Tabla 36.** *Especificaciones del entorno de validación GPU.*
| Componente | Especificación |
|------------|----------------|
| GPU | NVIDIA GeForce RTX 3060 Laptop |
| VRAM | 5.66 GB |
| CUDA | 12.4 |
| Sistema Operativo | Ubuntu 24.04.3 LTS |
| Kernel | 6.14.0-37-generic |
*Fuente: Elaboración propia.*
El entorno de validación representa hardware de consumo típico para desarrollo de aplicaciones de machine learning, permitiendo evaluar el rendimiento en condiciones realistas de despliegue.
#### Comparación CPU vs GPU
Se evaluó el tiempo de procesamiento utilizando la configuración optimizada identificada en la fase anterior, comparando el rendimiento entre CPU y GPU.
**Tabla 37.** *Rendimiento comparativo CPU vs GPU.*
| Métrica | CPU | GPU (RTX 3060) | Factor de Aceleración |
|---------|-----|----------------|----------------------|
| Tiempo/Página | 69.4s | 0.55s | **126x** |
| Dataset completo (45 páginas) | ~52 min | ~25 seg | **126x** |
*Fuente: Elaboración propia a partir de experimentos.*
La aceleración de 126x obtenida con GPU transforma la aplicabilidad práctica del sistema. Mientras que el procesamiento en CPU limita el uso a escenarios de procesamiento por lotes sin restricciones de tiempo, la velocidad con GPU habilita casos de uso interactivos y de tiempo real.
#### Comparación de Modelos PaddleOCR
PaddleOCR ofrece dos variantes de modelos: Mobile (optimizados para dispositivos con recursos limitados) y Server (mayor precisión a costa de mayor consumo de memoria). Se evaluó la viabilidad de ambas variantes en el hardware disponible.
**Tabla 38.** *Comparación de modelos Mobile vs Server en RTX 3060.*
| Modelo | VRAM Requerida | Resultado | Recomendación |
|--------|----------------|-----------|---------------|
| PP-OCRv5 Mobile | 0.06 GB | Funciona correctamente | ✓ Recomendado |
| PP-OCRv5 Server | 5.3 GB | OOM en página 2 | ✗ Requiere >8 GB VRAM |
*Fuente: Elaboración propia.*
Los modelos Server, a pesar de ofrecer potencialmente mayor precisión, resultan inviables en hardware con VRAM limitada (≤6 GB) debido a errores de memoria (Out of Memory). Los modelos Mobile, con un consumo de memoria 88 veces menor, funcionan de manera estable y ofrecen rendimiento suficiente para el caso de uso evaluado.
#### Conclusiones de la Validación GPU
La validación con aceleración GPU permite extraer las siguientes conclusiones:
1. **Aceleración significativa**: La GPU proporciona una aceleración de 126x sobre CPU, haciendo viable el procesamiento en tiempo real para aplicaciones interactivas.
2. **Modelos Mobile recomendados**: Para hardware con VRAM limitada (≤6 GB), los modelos Mobile de PP-OCRv5 ofrecen el mejor balance entre precisión y recursos, funcionando de manera estable sin errores de memoria.
3. **Viabilidad práctica**: Con GPU, el procesamiento de un documento completo (45 páginas) toma menos de 30 segundos, validando la aplicabilidad en entornos de producción donde el tiempo de respuesta es crítico.
4. **Escalabilidad**: La arquitectura de microservicios dockerizados utilizada para la validación GPU facilita el despliegue horizontal, permitiendo escalar el procesamiento según demanda.
Esta validación demuestra que la configuración optimizada mediante Ray Tune no solo mejora la precisión (CER: 7.78% → 1.49%) sino que, combinada con aceleración GPU, resulta prácticamente aplicable en escenarios de producción real.

View File

@@ -69,7 +69,7 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document
3. **Ground truth automático**: La extracción automática del texto de referencia puede introducir errores en layouts complejos. 3. **Ground truth automático**: La extracción automática del texto de referencia puede introducir errores en layouts complejos.
4. **Ejecución en CPU**: Los tiempos de procesamiento (~69s/página) limitan la aplicabilidad en escenarios de alto volumen. 4. **Validación en entorno limitado**: Aunque se validó con GPU (126x más rápido que CPU, 0.55s/página), los experimentos se realizaron en hardware de consumo (RTX 3060). Hardware empresarial podría ofrecer mejor rendimiento.
5. **Parámetro no explorado**: `text_det_unclip_ratio` permaneció fijo en 0.0 durante todo el experimento. 5. **Parámetro no explorado**: `text_det_unclip_ratio` permaneció fijo en 0.0 durante todo el experimento.
@@ -83,8 +83,6 @@ El objetivo principal del trabajo era alcanzar un CER inferior al 2% en document
3. **Dataset ampliado**: Construir un corpus más amplio y diverso de documentos en español. 3. **Dataset ampliado**: Construir un corpus más amplio y diverso de documentos en español.
4. **Evaluación con GPU**: Medir tiempos de inferencia con aceleración GPU.
### 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. **Transfer learning de hiperparámetros**: Investigar si las configuraciones óptimas para un tipo de documento transfieren a otros dominios.

View File

@@ -55,6 +55,21 @@ Para un proyecto de investigación con múltiples iteraciones de ajuste de hiper
> **Ganador:** PaddleOCR (Mobile) - Mejor precisión (7.76% CER) con velocidad competitiva. > **Ganador:** PaddleOCR (Mobile) - Mejor precisión (7.76% CER) con velocidad competitiva.
## Fases Experimentales
Este documento presenta resultados de dos fases experimentales distintas realizadas durante el desarrollo del TFM. La primera fase corresponde a la optimización de hiperparámetros utilizando Ray Tune, ejecutada en CPU debido a las limitaciones de hardware iniciales. La segunda fase corresponde a la validación práctica con aceleración GPU para evaluar la viabilidad en escenarios de producción.
**Tabla.** *Fases experimentales y sus características.*
| Fase | Dataset | Hardware | Resultado Principal |
|------|---------|----------|---------------------|
| Optimización (CPU) | 24 páginas | CPU | CER: 7.78% → **1.49%** (80.9% mejora) |
| Validación (GPU) | 45 páginas | RTX 3060 | CER: 7.76% baseline, 0.55s/página |
*Fuente: Elaboración propia.*
La fase de optimización representa el **resultado principal del TFM** (CER 1.49%, precisión 98.51%). La fase de validación GPU confirma la viabilidad práctica del enfoque, demostrando una aceleración de 126x respecto a CPU.
## Comparación de Servicios OCR ## Comparación de Servicios OCR
### Comparación de Precisión (CER - menor es mejor) ### Comparación de Precisión (CER - menor es mejor)
@@ -96,6 +111,22 @@ flowchart LR
3. **EasyOCR**: El más lento (3.8x más lento que PaddleOCR) con precisión intermedia 3. **EasyOCR**: El más lento (3.8x más lento que PaddleOCR) con precisión intermedia
4. **Eficiencia VRAM**: PaddleOCR Mobile usa solo 0.06 GB 4. **Eficiencia VRAM**: PaddleOCR Mobile usa solo 0.06 GB
## Configuración de Modelos
| Servicio | Detección | Reconocimiento | ¿Correcto para Español? |
|----------|-----------|----------------|-------------------------|
| **PaddleOCR** | PP-OCRv5_mobile_det | PP-OCRv5_mobile_rec | Sí |
| **DocTR** | db_resnet50 | crnn_vgg16_bn | No (entrenado en inglés/francés) |
| **EasyOCR** | CRAFT | latin_g2.pth | Sí |
### Notas sobre Modelos
- **PaddleOCR**: Modelos server más precisos disponibles pero requieren >5.3 GB VRAM (OOM en RTX 3060)
- **DocTR**: Se probó modelo `parseq` como alternativa, resultó 2% peor CER y 2x más lento. El problema de diacríticos es de datos de entrenamiento, no de arquitectura
- **EasyOCR**: Modelo `latin_g2.pth` es correcto. Los problemas son del detector CRAFT, no del reconocimiento
> **Conclusión sobre Fine-tuning:** Para documentos en español, **usar PaddleOCR directamente**. El fine-tuning de DocTR/EasyOCR no se justifica dado que PaddleOCR ya ofrece 31-36% mejor precisión sin configuración adicional.
## Análisis de Errores (del debugset) ## Análisis de Errores (del debugset)
### PaddleOCR (Mejor - 7.76% CER) ### PaddleOCR (Mejor - 7.76% CER)

View File

@@ -102,3 +102,79 @@ curl -X POST http://localhost:8003/evaluate_full \
**Resultado:** CER 12.07%, WER 42.26%, 0.34s/página (sin mejora sobre la base) **Resultado:** CER 12.07%, WER 42.26%, 0.34s/página (sin mejora sobre la base)
**Conclusión:** Los problemas de precisión de DocTR son a nivel de modelo, no ajustables por hiperparámetros. **Conclusión:** Los problemas de precisión de DocTR son a nivel de modelo, no ajustables por hiperparámetros.
## Configuración del Modelo
### Modelo Actual
| Componente | Modelo | Estado |
|------------|--------|--------|
| Detección | `db_resnet50` | Correcto |
| Reconocimiento | `crnn_vgg16_bn` | Mejor opción disponible |
El modelo `crnn_vgg16_bn` fue entrenado principalmente con datasets en inglés y francés, lo que explica la pérdida sistemática de diacríticos españoles (á, é, í, ó, ú, ñ).
### Prueba con Modelo Alternativo (parseq)
Se probó el modelo `parseq` (transformer) como alternativa:
| Métrica | crnn_vgg16_bn | parseq | Resultado |
|---------|---------------|--------|-----------|
| **CER** | 12.07% | 12.32% | **+2% peor** |
| **WER** | 42.26% | 44.0% | **+4% peor** |
| Tiempo/Página | 0.34s | 0.70s | 2x más lento |
| Diacríticos | No | No | Sin mejora |
**Conclusión:** El modelo `parseq` no mejora los diacríticos españoles y es más lento. Todos los modelos pre-entrenados de DocTR fueron entrenados principalmente en inglés/francés. Para español se requeriría **fine-tuning con corpus español**.
### No Se Recomienda Cambio de Modelo
Mantener `crnn_vgg16_bn` (más rápido, ligeramente mejor precisión). Los problemas de diacríticos son de **datos de entrenamiento**, no de arquitectura del modelo
## Análisis de Errores del Debugset
### Errores Observados
| Ground Truth | DocTR | Tipo de Error |
|--------------|-------|---------------|
| `bibliográficas` | `bibliograficas` | Diacrítico omitido |
| `sección` | `seccion` | Diacrítico omitido |
| `Máster` | `Master` | Diacrítico omitido |
| `información` | `informacion` | Diacrítico omitido |
| `o amplían` | `O amplian` | Mayúscula incorrecta |
| Líneas separadas | Todo en una línea | **Estructura perdida** |
### Problemas Críticos
1. **Pérdida total de estructura**: Todo el texto de la página se colapsa en una sola línea
2. **Omisión sistemática de diacríticos**: TODOS los acentos españoles se pierden
3. **Errores de capitalización**: `o``O` en medio de oraciones
### ¿Fine-tuning Recomendado?
**Sí, para diacríticos.** El modelo CRNN de DocTR fue entrenado principalmente con textos en inglés y francés, lo que explica la omisión sistemática de acentos españoles.
| Problema | ¿Fine-tuning ayuda? | Explicación |
|----------|---------------------|-------------|
| Diacríticos | **Sí** | Entrenar con corpus español enseñaría al modelo los acentos |
| Estructura de líneas | **No** | Problema arquitectural del modelo, no de entrenamiento |
| Capitalización | **Parcial** | Podría mejorar con datos de entrenamiento adecuados |
### Cómo Fine-Tunear DocTR
```python
from doctr.models import recognition_predictor
from doctr.datasets import RecognitionDataset
# Cargar dataset español
train_set = RecognitionDataset(
img_folder="path/to/spanish/images",
labels_path="path/to/spanish/labels.json"
)
# Fine-tune el modelo de reconocimiento
model = recognition_predictor(pretrained=True)
# ... configurar entrenamiento
```
Documentación: https://mindee.github.io/doctr/using_doctr/custom_models_training.html

View File

@@ -111,3 +111,72 @@ curl -X POST http://localhost:8002/evaluate_full \
**Resultado:** CER 11.14%, WER 36.85%, 1.94s/página (mejora mínima) **Resultado:** CER 11.14%, WER 36.85%, 1.94s/página (mejora mínima)
**Conclusión:** El ajuste de EasyOCR proporcionó mejora insignificante en el dataset completo. **Conclusión:** El ajuste de EasyOCR proporcionó mejora insignificante en el dataset completo.
## Configuración del Modelo
### Modelo Actual (Correcto para Español)
| Componente | Modelo | Estado |
|------------|--------|--------|
| Detección | CRAFT | Correcto |
| Reconocimiento | `latin_g2.pth` | Correcto para español |
| Idiomas | `es,en` | Correcto |
El modelo `latin_g2.pth` está optimizado para idiomas con escritura latina incluyendo español. **El modelo de reconocimiento es correcto** - los problemas observados (caracteres espurios `0`, `;`, `g`) son del **detector CRAFT**, no del modelo de reconocimiento.
### No Se Requiere Cambio de Modelo
A diferencia de DocTR, EasyOCR usa el modelo correcto para español. Los problemas son de detección (umbrales del CRAFT), no de reconocimiento.
## Análisis de Errores del Debugset
### Errores Observados
| Ground Truth | EasyOCR | Tipo de Error |
|--------------|---------|---------------|
| `o figura` | `0 figura` | Letra `o` → número `0` |
| `tabla o figura` | `tabla 0 figura` | Letra `o` → número `0` |
| `grupal,` | `grupal;` | Coma → punto y coma |
| `páginas,` | `páginas;` | Puntuación incorrecta |
| (ninguno) | `g`, `1`, `2` | **Caracteres espurios insertados** |
| Líneas separadas | Todo en una línea | **Estructura perdida** |
### Problemas Críticos
1. **Caracteres espurios**: El detector CRAFT inserta caracteres falsos (`g`, `1`, `2`, `;`) que no existen en el documento
2. **Confusión letra/número**: Consistentemente confunde `o` con `0`
3. **Puntuación incorrecta**: Reemplaza comas por punto y coma
4. **Pérdida de estructura**: Todo el texto se colapsa en una línea
### ¿Fine-tuning Recomendado?
**Sí.** EasyOCR tiene problemas significativos que podrían mejorarse con fine-tuning:
| Problema | ¿Fine-tuning ayuda? | Explicación |
|----------|---------------------|-------------|
| Caracteres espurios | **Sí** | El detector CRAFT puede entrenarse para reducir falsos positivos |
| Confusión `o`/`0` | **Sí** | El modelo de reconocimiento aprendería del contexto español |
| Puntuación | **Sí** | Corpus español enseñaría patrones de puntuación correctos |
| Estructura | **Parcial** | Depende de parámetros de agrupación de texto |
### Cómo Fine-Tunear EasyOCR
EasyOCR permite fine-tuning del modelo de reconocimiento:
```bash
# 1. Preparar dataset en formato EasyOCR
# Estructura: images/ + labels.txt (imagen<tab>texto)
# 2. Entrenar modelo de reconocimiento
python train.py \
--train_data ./train_data \
--valid_data ./valid_data \
--lang_list es en \
--saved_model ./custom_model
```
Documentación: https://github.com/JaidedAI/EasyOCR/blob/master/custom_model.md
### Alternativa Recomendada
Dado el CER de 11.14% y los problemas fundamentales de EasyOCR, se recomienda **usar PaddleOCR** (7.72% CER) en lugar de invertir esfuerzo en fine-tuning de EasyOCR

View File

@@ -1,5 +1,7 @@
# Resultados de Ajuste de Hiperparámetros PaddleOCR # Resultados de Ajuste de Hiperparámetros PaddleOCR
> **Nota:** Los resultados de este documento corresponden a la fase de validación GPU con 45 páginas. El resultado oficial del TFM es **CER 1.49%** obtenido en la validación final de 24 páginas con la configuración optimizada (ver `docs/04_desarrollo_especifico.md`).
**Fecha de Ajuste:** 2026-01-19 **Fecha de Ajuste:** 2026-01-19
**Plataforma:** NVIDIA RTX 3060 Laptop GPU **Plataforma:** NVIDIA RTX 3060 Laptop GPU
**Muestras:** 64 **Muestras:** 64
@@ -89,3 +91,51 @@ curl -X POST http://localhost:8002/evaluate_full \
``` ```
**Resultado:** CER 7.72%, WER 11.40%, 0.55s/página **Resultado:** CER 7.72%, WER 11.40%, 0.55s/página
## Configuración del Modelo
### Modelo Actual (Correcto para Español)
| Componente | Modelo | Estado |
|------------|--------|--------|
| Detección | `PP-OCRv5_mobile_det` | Correcto |
| Reconocimiento | `PP-OCRv5_mobile_rec` | Correcto |
Los modelos PP-OCRv5 mobile soportan múltiples idiomas incluyendo español con buen manejo de diacríticos.
### Nota sobre Modelos Server
PaddleOCR ofrece modelos "server" más precisos:
- `PP-OCRv5_server_det` + `PP-OCRv5_server_rec`
- Requieren ~5.3 GB VRAM
**Limitación:** En la RTX 3060 (5.66 GB VRAM) los modelos server causan **OOM (Out of Memory)** en la página 2. Los modelos mobile usados (7.72% CER) son la mejor opción práctica para este hardware.
Para hardware con más VRAM (8+ GB), los modelos server podrían mejorar la precisión.
## Análisis de Errores del Debugset
### Errores Observados
| Ground Truth | PaddleOCR | Tipo de Error |
|--------------|-----------|---------------|
| `bibliografía` | `bibliografia` | Acento omitido |
| `amplían` | `amplian` | Acento omitido |
| `, debes` | ` debes` | Coma Unicode china |
| Líneas separadas | Footer fusionado | Estructura menor |
### Fortalezas
- **Preserva estructura de líneas**: Mantiene saltos de línea correctamente
- **Buen manejo de español**: La mayoría de acentos se reconocen bien
- **Bajo ruido**: No inserta caracteres espurios
### ¿Fine-tuning Recomendado?
**No.** Con 7.72% CER, PaddleOCR ya tiene excelente precisión para documentos españoles. Los errores observados son menores:
- Acentos omitidos: ~5% de casos
- Puntuación Unicode: Muy ocasional
- Impacto en legibilidad: Mínimo
El esfuerzo de fine-tuning no se justifica para ganancias marginales. Para casos de uso críticos donde se requiera <5% CER, considerar post-procesamiento con corrector ortográfico

View File

@@ -6,7 +6,7 @@ import re
import subprocess import subprocess
import json import json
BASE_DIR = '/Users/sergio/Desktop/MastersThesis' BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DOCS_DIR = os.path.join(BASE_DIR, 'docs') DOCS_DIR = os.path.join(BASE_DIR, 'docs')
OUTPUT_DIR = os.path.join(BASE_DIR, 'thesis_output/figures') OUTPUT_DIR = os.path.join(BASE_DIR, 'thesis_output/figures')
MMDC = os.path.join(BASE_DIR, 'node_modules/.bin/mmdc') MMDC = os.path.join(BASE_DIR, 'node_modules/.bin/mmdc')

View File

@@ -1,47 +1 @@
[ []
{
"file": "figura_1.png",
"title": "Pipeline de un sistema OCR moderno",
"index": 1
},
{
"file": "figura_2.png",
"title": "Ciclo de optimización con Ray Tune y Optuna",
"index": 2
},
{
"file": "figura_3.png",
"title": "Fases de la metodología experimental",
"index": 3
},
{
"file": "figura_4.png",
"title": "Estructura del dataset de evaluación",
"index": 4
},
{
"file": "figura_5.png",
"title": "Arquitectura de ejecución con subprocesos",
"index": 5
},
{
"file": "figura_6.png",
"title": "Arquitectura de ejecución con subprocesos",
"index": 6
},
{
"file": "figura_7.png",
"title": "Impacto de textline_orientation en CER",
"index": 7
},
{
"file": "figura_8.png",
"title": "Comparación Baseline vs Optimizado (24 páginas)",
"index": 8
},
{
"file": "figura_9.png",
"title": "Estructura del repositorio del proyecto",
"index": 9
}
]