Make template readable
This commit is contained in:
@@ -1,10 +1,8 @@
|
||||
# Capítulo 3: Objetivos y Metodología de Trabajo
|
||||
# Objetivos concretos y metodología de trabajo
|
||||
|
||||
## 3.1 Introducción
|
||||
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.
|
||||
|
||||
Este capítulo establece los objetivos del trabajo siguiendo la metodología SMART (Específico, Medible, Alcanzable, Relevante, Temporal) y describe la metodología experimental empleada para alcanzarlos.
|
||||
|
||||
## 3.2 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.**
|
||||
|
||||
@@ -18,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.3 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.**
|
||||
@@ -35,50 +33,45 @@ 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.4 Metodología de Trabajo
|
||||
## Metodología del trabajo
|
||||
|
||||
### 3.4.1 Visión General
|
||||
### 3.3.1 Visión General
|
||||
|
||||
La metodología sigue un enfoque experimental estructurado en cinco fases:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ Fase 1: Preparación del Dataset │
|
||||
│ - Conversión PDF → Imágenes (300 DPI) │
|
||||
│ - Extracción de texto de referencia (PyMuPDF) │
|
||||
│ - Estructura: carpetas img/ y txt/ pareadas │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ Fase 2: Benchmark Comparativo │
|
||||
│ - Evaluación de EasyOCR, PaddleOCR, DocTR │
|
||||
│ - Métricas: CER, WER │
|
||||
│ - Selección del modelo base │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ Fase 3: Definición del Espacio de Búsqueda │
|
||||
│ - Identificación de hiperparámetros configurables │
|
||||
│ - Definición de rangos y distribuciones │
|
||||
│ - Configuración de Ray Tune + Optuna │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ Fase 4: Optimización de Hiperparámetros │
|
||||
│ - Ejecución de 64 trials con Ray Tune │
|
||||
│ - Paralelización (2 trials concurrentes) │
|
||||
│ - Registro de métricas y configuraciones │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ Fase 5: Validación y Análisis │
|
||||
│ - Comparación baseline vs optimizado │
|
||||
│ - Análisis de correlaciones │
|
||||
│ - Documentación de resultados │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
|
||||
```mermaid
|
||||
|
||||
flowchart TD
|
||||
A["Fase 1: Preparación del Dataset<br/>
|
||||
• Conversión PDF → Imágenes (300 DPI)<br/>
|
||||
• Extracción de texto de referencia (PyMuPDF)<br/>
|
||||
• Estructura: carpetas img/ y txt/ pareadas"]
|
||||
|
||||
B["Fase 2: Benchmark Comparativo<br/>
|
||||
• Evaluación de EasyOCR, PaddleOCR, DocTR<br/>
|
||||
• Métricas: CER, WER<br/>
|
||||
• Selección del modelo base"]
|
||||
|
||||
C["Fase 3: Definición del Espacio de Búsqueda<br/>
|
||||
• Identificación de hiperparámetros configurables<br/>
|
||||
• Definición de rangos y distribuciones<br/>
|
||||
• Configuración de Ray Tune + Optuna"]
|
||||
|
||||
D["Fase 4: Optimización de Hiperparámetros<br/>
|
||||
• Ejecución de 64 trials con Ray Tune<br/>
|
||||
• Paralelización (2 trials concurrentes)<br/>
|
||||
• Registro de métricas y configuraciones"]
|
||||
|
||||
E["Fase 5: Validación y Análisis<br/>
|
||||
• Comparación baseline vs optimizado<br/>
|
||||
• Análisis de correlaciones<br/>
|
||||
• Documentación de resultados"]
|
||||
|
||||
A --> B --> C --> D --> E
|
||||
|
||||
```
|
||||
|
||||
### 3.4.2 Fase 1: Preparación del Dataset
|
||||
### 3.3.2 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.
|
||||
@@ -99,19 +92,23 @@ El script `prepare_dataset.ipynb` implementa:
|
||||
|
||||
#### Estructura del Dataset
|
||||
|
||||
```
|
||||
dataset/
|
||||
├── 0/
|
||||
│ ├── instrucciones.pdf
|
||||
│ ├── img/
|
||||
│ │ ├── page_0001.png
|
||||
│ │ ├── page_0002.png
|
||||
│ │ └── ...
|
||||
│ └── txt/
|
||||
│ ├── page_0001.txt
|
||||
│ ├── page_0002.txt
|
||||
│ └── ...
|
||||
└── ...
|
||||
```mermaid
|
||||
flowchart LR
|
||||
dataset["dataset/"] --> d0["0/"]
|
||||
|
||||
d0 --> pdf["instrucciones.pdf"]
|
||||
|
||||
d0 --> img["img/"]
|
||||
img --> img1["page_0001.png"]
|
||||
img --> img2["page_0002.png"]
|
||||
img --> imgN["..."]
|
||||
|
||||
d0 --> txt["txt/"]
|
||||
txt --> txt1["page_0001.txt"]
|
||||
txt --> txt2["page_0002.txt"]
|
||||
txt --> txtN["..."]
|
||||
|
||||
dataset --> dots["..."]
|
||||
```
|
||||
|
||||
#### Clase ImageTextDataset
|
||||
@@ -127,7 +124,7 @@ class ImageTextDataset:
|
||||
# Retorna (PIL.Image, str)
|
||||
```
|
||||
|
||||
### 3.4.3 Fase 2: Benchmark Comparativo
|
||||
### 3.3.3 Fase 2: Benchmark Comparativo
|
||||
|
||||
#### Modelos Evaluados
|
||||
|
||||
@@ -151,7 +148,7 @@ def evaluate_text(reference, prediction):
|
||||
}
|
||||
```
|
||||
|
||||
### 3.4.4 Fase 3: Espacio de Búsqueda
|
||||
### 3.3.4 Fase 3: Espacio de Búsqueda
|
||||
|
||||
#### Hiperparámetros Seleccionados
|
||||
|
||||
@@ -193,20 +190,21 @@ tuner = tune.Tuner(
|
||||
)
|
||||
```
|
||||
|
||||
### 3.4.5 Fase 4: Ejecución de Optimización
|
||||
### 3.3.5 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:
|
||||
|
||||
```
|
||||
Ray Tune (proceso principal)
|
||||
│
|
||||
├──► Subprocess 1: paddle_ocr_tuning.py --config {...}
|
||||
│ └──► Retorna JSON con métricas
|
||||
│
|
||||
└──► Subprocess 2: paddle_ocr_tuning.py --config {...}
|
||||
└──► Retorna JSON con métricas
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A["Ray Tune (proceso principal)"]
|
||||
|
||||
A --> B["Subprocess 1: paddle_ocr_tuning.py --config"]
|
||||
B --> B_out["Retorna JSON con métricas"]
|
||||
|
||||
A --> C["Subprocess 2: paddle_ocr_tuning.py --config"]
|
||||
C --> C_out["Retorna JSON con métricas"]
|
||||
```
|
||||
|
||||
#### Script de Evaluación (paddle_ocr_tuning.py)
|
||||
@@ -234,7 +232,7 @@ Y retorna métricas en formato JSON:
|
||||
}
|
||||
```
|
||||
|
||||
### 3.4.6 Fase 5: Validación
|
||||
### 3.3.6 Fase 5: Validación
|
||||
|
||||
#### Protocolo de Validación
|
||||
|
||||
@@ -243,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.5 Entorno de Ejecución
|
||||
### 3.3.7 Entorno de Ejecución
|
||||
|
||||
#### Hardware
|
||||
|
||||
@@ -265,7 +263,7 @@ Y retorna métricas en formato JSON:
|
||||
| Ray | 2.52.1 |
|
||||
| Optuna | 4.6.0 |
|
||||
|
||||
### 3.6 Limitaciones Metodológicas
|
||||
### 3.3.8 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.
|
||||
|
||||
@@ -275,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.7 Resumen del Capítulo
|
||||
## Resumen del capítulo
|
||||
|
||||
Este capítulo ha establecido:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user