Make template readable
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Capítulo 4: Desarrollo Específico de la Contribución
|
||||
# Desarrollo específico de la contribución
|
||||
|
||||
Este capítulo presenta el desarrollo completo del estudio comparativo y la optimización de hiperparámetros de sistemas OCR. Se estructura según el tipo de trabajo "Comparativa de soluciones" establecido por las instrucciones de UNIR: planteamiento de la comparativa (4.1), desarrollo de la comparativa (4.2), y discusión y análisis de resultados (4.3).
|
||||
Este capítulo presenta el desarrollo completo del estudio comparativo y la optimización de hiperparámetros de sistemas OCR. Se estructura según el tipo de trabajo "Comparativa de soluciones" establecido por las instrucciones de UNIR: planteamiento de la comparativa, desarrollo de la comparativa, y discusión y análisis de resultados.
|
||||
|
||||
## 4.1 Planteamiento de la Comparativa: Soluciones OCR
|
||||
## Planteamiento de la comparativa
|
||||
|
||||
### 4.1.1 Introducción
|
||||
|
||||
@@ -14,6 +14,8 @@ Esta sección presenta los resultados del estudio comparativo realizado entre tr
|
||||
|
||||
Se utilizó el documento "Instrucciones para la redacción y elaboración del TFE" del Máster Universitario en Inteligencia Artificial de UNIR, ubicado en la carpeta `instructions/`.
|
||||
|
||||
**Tabla 3.** *Características del dataset de evaluación.*
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Número de páginas evaluadas | 5 (páginas 1-5 en benchmark inicial) |
|
||||
@@ -21,6 +23,8 @@ Se utilizó el documento "Instrucciones para la redacción y elaboración del TF
|
||||
| Idioma | Español |
|
||||
| Resolución de conversión | 300 DPI |
|
||||
|
||||
*Fuente: Elaboración propia.*
|
||||
|
||||
#### Configuración de los Modelos
|
||||
|
||||
Según el código en `ocr_benchmark_notebook.ipynb`:
|
||||
@@ -63,6 +67,8 @@ def evaluate_text(reference, prediction):
|
||||
|
||||
Del archivo `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`, se obtienen los siguientes resultados de PaddleOCR para las páginas 5-9 del documento:
|
||||
|
||||
**Tabla 4.** *Resultados de PaddleOCR por página (benchmark inicial).*
|
||||
|
||||
| Página | WER | CER |
|
||||
|--------|-----|-----|
|
||||
| 5 | 12.16% | 6.33% |
|
||||
@@ -71,6 +77,8 @@ Del archivo `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`, se
|
||||
| 8 | 8.13% | 1.54% |
|
||||
| 9 | 10.61% | 5.58% |
|
||||
|
||||
*Fuente: `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`.*
|
||||
|
||||
**Promedio PaddleOCR (páginas 5-9):**
|
||||
- CER medio: ~5.22%
|
||||
- WER medio: ~10.95%
|
||||
@@ -79,12 +87,16 @@ Del archivo `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`, se
|
||||
|
||||
Según la documentación del notebook `ocr_benchmark_notebook.ipynb`, los tres modelos evaluados representan diferentes paradigmas de OCR:
|
||||
|
||||
**Tabla 5.** *Comparativa de arquitecturas OCR evaluadas.*
|
||||
|
||||
| Modelo | Tipo | Componentes | Fortalezas Clave |
|
||||
|--------|------|-------------|------------------|
|
||||
| **EasyOCR** | End-to-end (det + rec) | DB + CRNN/Transformer | Ligero, fácil de usar, multilingüe |
|
||||
| **PaddleOCR (PP-OCR)** | End-to-end (det + rec + cls) | DB + SRN/CRNN | Soporte multilingüe robusto, pipeline configurable |
|
||||
| **DocTR** | End-to-end (det + rec) | DB/LinkNet + CRNN/SAR/VitSTR | Orientado a investigación, API limpia |
|
||||
|
||||
*Fuente: Documentación oficial de cada herramienta (JaidedAI, 2020; PaddlePaddle, 2024; Mindee, 2021).*
|
||||
|
||||
#### Ejemplo de Salida OCR
|
||||
|
||||
Del archivo CSV, un ejemplo de predicción de PaddleOCR para la página 8:
|
||||
@@ -135,7 +147,7 @@ Esta sección ha presentado:
|
||||
- `results/ai_ocr_benchmark_finetune_results_20251206_113206.csv`: Resultados numéricos
|
||||
- Documentación oficial de PaddleOCR
|
||||
|
||||
## 4.2 Desarrollo de la Comparativa: Optimización de Hiperparámetros
|
||||
## Desarrollo de la comparativa: Optimización de hiperparámetros
|
||||
|
||||
### 4.2.1 Introducción
|
||||
|
||||
@@ -147,6 +159,8 @@ Esta sección describe el proceso de optimización de hiperparámetros de Paddle
|
||||
|
||||
Según los outputs del notebook:
|
||||
|
||||
**Tabla 6.** *Entorno de ejecución del experimento.*
|
||||
|
||||
| Componente | Versión/Especificación |
|
||||
|------------|------------------------|
|
||||
| Python | 3.11.9 |
|
||||
@@ -155,6 +169,8 @@ Según los outputs del notebook:
|
||||
| Ray | 2.52.1 |
|
||||
| GPU | No disponible (CPU only) |
|
||||
|
||||
*Fuente: Outputs del notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`.*
|
||||
|
||||
#### Dataset
|
||||
|
||||
Se utilizó un dataset estructurado en `src/dataset/` creado mediante el notebook `src/prepare_dataset.ipynb`:
|
||||
@@ -219,6 +235,8 @@ tuner = tune.Tuner(
|
||||
|
||||
Del archivo CSV de resultados (`raytune_paddle_subproc_results_20251207_192320.csv`):
|
||||
|
||||
**Tabla 7.** *Estadísticas descriptivas de los 64 trials de Ray Tune.*
|
||||
|
||||
| Estadística | CER | WER | Tiempo (s) | Tiempo/Página (s) |
|
||||
|-------------|-----|-----|------------|-------------------|
|
||||
| **count** | 64 | 64 | 64 | 64 |
|
||||
@@ -230,6 +248,8 @@ Del archivo CSV de resultados (`raytune_paddle_subproc_results_20251207_192320.c
|
||||
| **75%** | 4.03% | 13.20% | 350.14 | 69.93 |
|
||||
| **max** | 51.61% | 59.45% | 368.57 | 73.63 |
|
||||
|
||||
*Fuente: `src/raytune_paddle_subproc_results_20251207_192320.csv`.*
|
||||
|
||||
#### Mejor Configuración Encontrada
|
||||
|
||||
Según el análisis del notebook:
|
||||
@@ -276,13 +296,17 @@ Correlación de Pearson entre parámetros y métricas de error (del notebook):
|
||||
|
||||
Según el análisis del notebook, este parámetro booleano tiene el mayor impacto:
|
||||
|
||||
**Tabla 8.** *Impacto del parámetro textline_orientation en las métricas de error.*
|
||||
|
||||
| textline_orientation | CER Medio | WER Medio |
|
||||
|---------------------|-----------|-----------|
|
||||
| True | ~3.76% | ~12.73% |
|
||||
| False | ~12.40% | ~21.71% |
|
||||
|
||||
**Interpretación del notebook**:
|
||||
> "7x better CER with textline_orientation=True. And the variance is much tighter — more reliable results. For Spanish business documents with mixed layouts (tables, headers, addresses), orientation classification helps PaddleOCR correctly order text lines."
|
||||
*Fuente: Análisis del notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`.*
|
||||
|
||||
**Interpretación**:
|
||||
El CER medio es ~3.3x menor con `textline_orientation=True` (3.76% vs 12.40%). Además, la varianza es mucho menor, lo que indica resultados más consistentes. Para documentos en español con layouts mixtos (tablas, encabezados, direcciones), la clasificación de orientación ayuda a PaddleOCR a ordenar correctamente las líneas de texto.
|
||||
|
||||
#### Análisis de Fallos
|
||||
|
||||
@@ -301,18 +325,26 @@ Ejemplo de trial con fallo catastrófico:
|
||||
|
||||
Del análisis final del notebook ejecutando sobre las 24 páginas:
|
||||
|
||||
**Tabla 9.** *Comparación baseline vs configuración optimizada (24 páginas).*
|
||||
|
||||
| Modelo | CER | WER |
|
||||
|--------|-----|-----|
|
||||
| PaddleOCR (Baseline) | 7.78% | 14.94% |
|
||||
| PaddleOCR-HyperAdjust | 1.49% | 7.62% |
|
||||
|
||||
*Fuente: Ejecución final en notebook `src/paddle_ocr_fine_tune_unir_raytune.ipynb`.*
|
||||
|
||||
#### Métricas de Mejora
|
||||
|
||||
**Tabla 10.** *Análisis de la mejora obtenida.*
|
||||
|
||||
| Métrica | Baseline | Optimizado | Mejora Absoluta | Reducción Error |
|
||||
|---------|----------|------------|-----------------|-----------------|
|
||||
| CER | 7.78% | 1.49% | -6.29 pp | 80.9% |
|
||||
| WER | 14.94% | 7.62% | -7.32 pp | 49.0% |
|
||||
|
||||
*Fuente: Elaboración propia a partir de los resultados experimentales.*
|
||||
|
||||
#### Interpretación (del notebook)
|
||||
|
||||
> "La optimización de hiperparámetros mejoró la precisión de caracteres de 92.2% a 98.5%, una ganancia de 6.3 puntos porcentuales. Aunque el baseline ya ofrecía resultados aceptables, la configuración optimizada reduce los errores residuales en un 80.9%."
|
||||
@@ -348,7 +380,7 @@ Esta sección ha presentado:
|
||||
- `src/raytune_paddle_subproc_results_20251207_192320.csv`: Resultados de 64 trials
|
||||
- `src/paddle_ocr_tuning.py`: Script de evaluación
|
||||
|
||||
## 4.3 Discusión y Análisis de Resultados
|
||||
## Discusión y análisis de resultados
|
||||
|
||||
### 4.3.1 Introducción
|
||||
|
||||
|
||||
Reference in New Issue
Block a user