char colors
Some checks failed
build_docker / essential (pull_request) Successful in 0s
build_docker / build_easyocr (pull_request) Has been cancelled
build_docker / build_doctr_gpu (pull_request) Has been cancelled
build_docker / build_raytune (pull_request) Has been cancelled
build_docker / build_easyocr_gpu (pull_request) Has been cancelled
build_docker / build_doctr (pull_request) Has been cancelled
build_docker / build_cpu (pull_request) Has been cancelled
build_docker / build_gpu (pull_request) Has been cancelled
Some checks failed
build_docker / essential (pull_request) Successful in 0s
build_docker / build_easyocr (pull_request) Has been cancelled
build_docker / build_doctr_gpu (pull_request) Has been cancelled
build_docker / build_raytune (pull_request) Has been cancelled
build_docker / build_easyocr_gpu (pull_request) Has been cancelled
build_docker / build_doctr (pull_request) Has been cancelled
build_docker / build_cpu (pull_request) Has been cancelled
build_docker / build_gpu (pull_request) Has been cancelled
This commit is contained in:
@@ -76,7 +76,7 @@ flowchart TB
|
||||
end
|
||||
```
|
||||
|
||||
**Tabla A5.** *Descripción de directorios principales.*
|
||||
**Tabla A1.** *Descripción de directorios principales.*
|
||||
|
||||
| Directorio | Contenido |
|
||||
|------------|-----------|
|
||||
@@ -96,7 +96,7 @@ flowchart TB
|
||||
|
||||
### Sistema de Desarrollo
|
||||
|
||||
**Tabla A1.** *Especificaciones del sistema de desarrollo.*
|
||||
**Tabla A2.** *Especificaciones del sistema de desarrollo.*
|
||||
|
||||
| Componente | Especificación |
|
||||
|------------|----------------|
|
||||
@@ -110,7 +110,7 @@ flowchart TB
|
||||
|
||||
### Dependencias
|
||||
|
||||
**Tabla A2.** *Dependencias del proyecto.*
|
||||
**Tabla A3.** *Dependencias del proyecto.*
|
||||
|
||||
| Componente | Versión |
|
||||
|------------|---------|
|
||||
@@ -231,7 +231,7 @@ analyze_results(results, prefix='raytune_paddle', config_keys=PADDLE_OCR_CONFIG_
|
||||
|
||||
### Servicios y Puertos
|
||||
|
||||
**Tabla A3.** *Servicios Docker y puertos.*
|
||||
**Tabla A4.** *Servicios Docker y puertos.*
|
||||
|
||||
| Servicio | Puerto | Script de Ajuste | Nota |
|
||||
|----------|--------|------------------|------|
|
||||
@@ -245,22 +245,95 @@ analyze_results(results, prefix='raytune_paddle', config_keys=PADDLE_OCR_CONFIG_
|
||||
|
||||
## A.7 Métricas de Rendimiento
|
||||
|
||||
Los resultados detallados de las evaluaciones y ajustes de hiperparámetros se encuentran en:
|
||||
Esta sección presenta los resultados completos de las evaluaciones comparativas y del ajuste de hiperparámetros realizado con Ray Tune sobre los tres servicios OCR evaluados.
|
||||
|
||||
- [Métricas Generales](metrics/metrics.md) - Comparativa de los tres servicios
|
||||
- [PaddleOCR](metrics/metrics_paddle.md) - Mejor precisión (8.85% CER baseline, **7.72% optimizado**, **0.79% mejor trial**)
|
||||
- [DocTR](metrics/metrics_doctr.md) - Más rápido (0.50s/página)
|
||||
- [EasyOCR](metrics/metrics_easyocr.md) - Balance intermedio
|
||||
### Comparativa General de Servicios
|
||||
|
||||
### Resumen de Resultados
|
||||
**Tabla A5.** *Comparativa de servicios OCR en dataset de 45 páginas (GPU RTX 3060).*
|
||||
|
||||
**Tabla A4.** *Resumen de resultados del benchmark por servicio.*
|
||||
| Servicio | CER | WER | Tiempo/Página | Tiempo Total | VRAM |
|
||||
|----------|-----|-----|---------------|--------------|------|
|
||||
| **PaddleOCR (Mobile)** | **7.76%** | **11.62%** | 0.58s | 32.0s | 0.06 GB |
|
||||
| EasyOCR | 11.23% | 36.36% | 1.88s | 88.5s | ~2 GB |
|
||||
| DocTR | 12.06% | 42.01% | 0.50s | 28.4s | ~1 GB |
|
||||
|
||||
| Servicio | CER Base | CER Ajustado | Mejora |
|
||||
|----------|----------|--------------|--------|
|
||||
| **PaddleOCR** | 8.85% | **7.72%** | 12.8% |
|
||||
| DocTR | 12.06% | 12.07% | 0% |
|
||||
| EasyOCR | 11.23% | 11.14% | 0.8% |
|
||||
*Fuente: Benchmark realizado el 2026-01-19. Elaboración propia.*
|
||||
|
||||
**Ganador:** PaddleOCR (Mobile) - Mejor precisión (7.76% CER) con velocidad competitiva y mínimo consumo de VRAM.
|
||||
|
||||
### Resultados de Ajuste de Hiperparámetros
|
||||
|
||||
Se ejecutaron 64 trials por servicio utilizando Ray Tune con Optuna sobre las páginas 5-10 del primer documento.
|
||||
|
||||
**Tabla A6.** *Resultados del ajuste de hiperparámetros por servicio.*
|
||||
|
||||
| Servicio | CER Base | CER Ajustado | Mejora | Mejor Trial (5 páginas) |
|
||||
|----------|----------|--------------|--------|-------------------------|
|
||||
| **PaddleOCR** | 8.85% | **7.72%** | **12.8%** | **0.79%** ✓ |
|
||||
| DocTR | 12.06% | 12.07% | 0% | 7.43% |
|
||||
| EasyOCR | 11.23% | 11.14% | 0.8% | 5.83% |
|
||||
|
||||
*Fuente: Resultados de 64 trials Ray Tune por servicio. Elaboración propia.*
|
||||
|
||||
> **Nota sobre sobreajuste:** La diferencia entre los resultados del mejor trial (subconjunto de 5 páginas) y el dataset completo (45 páginas) indica sobreajuste parcial a las páginas de ajuste. Un subconjunto más grande (15-20 páginas) mejoraría la generalización.
|
||||
|
||||
### Configuración Óptima PaddleOCR
|
||||
|
||||
La siguiente configuración logró el mejor rendimiento en el ajuste de hiperparámetros:
|
||||
|
||||
```json
|
||||
{
|
||||
"use_doc_orientation_classify": true,
|
||||
"use_doc_unwarping": false,
|
||||
"textline_orientation": true,
|
||||
"text_det_thresh": 0.0462,
|
||||
"text_det_box_thresh": 0.4862,
|
||||
"text_det_unclip_ratio": 0.0,
|
||||
"text_rec_score_thresh": 0.5658
|
||||
}
|
||||
```
|
||||
|
||||
**Hallazgos clave:**
|
||||
- `textline_orientation=true`: Crítico para documentos con layouts mixtos
|
||||
- `use_doc_orientation_classify=true`: Mejora detección de orientación
|
||||
- `use_doc_unwarping=false`: Innecesario para PDFs digitales
|
||||
- `text_det_thresh` bajo (0.0462): Detección más sensible mejora resultados
|
||||
|
||||
### Rendimiento CPU vs GPU
|
||||
|
||||
**Tabla A7.** *Comparación de rendimiento CPU vs GPU (PaddleOCR).*
|
||||
|
||||
| Métrica | CPU | GPU (RTX 3060) | Aceleración |
|
||||
|---------|-----|----------------|-------------|
|
||||
| Tiempo/Página | 69.4s | 0.55s | **126x más rápido** |
|
||||
| Mejor CER | 1.15% | 0.79% | GPU mejor |
|
||||
| 45 páginas | ~52 min | ~25 seg | **126x más rápido** |
|
||||
|
||||
*Fuente: Datos CPU de `raytune_paddle_subproc_results_20251207_192320.csv`. Elaboración propia.*
|
||||
|
||||
### Análisis de Errores por Servicio
|
||||
|
||||
**Tabla A8.** *Tipos de errores identificados por servicio OCR.*
|
||||
|
||||
| Servicio | Fortalezas | Debilidades | ¿Fine-tuning recomendado? |
|
||||
|----------|------------|-------------|---------------------------|
|
||||
| **PaddleOCR** | Preserva estructura, buen manejo de español | Errores menores de acentos (~5%) | No (ya excelente) |
|
||||
| DocTR | Más rápido | Pierde estructura, omite TODOS los diacríticos | Sí (para diacríticos) |
|
||||
| EasyOCR | Modelo correcto para español | Caracteres espurios, confunde `o`/`0` | Sí (problemas del detector) |
|
||||
|
||||
*Fuente: Análisis manual del debugset. Elaboración propia.*
|
||||
|
||||
### Archivos de Resultados
|
||||
|
||||
Los resultados crudos de los 64 trials por servicio están disponibles en el repositorio:
|
||||
|
||||
**Tabla A9.** *Ubicación de archivos de resultados.*
|
||||
|
||||
| Servicio | Archivo CSV |
|
||||
|----------|-------------|
|
||||
| PaddleOCR | [`src/results/raytune_paddle_results_20260119_122609.csv`](https://seryus.ddns.net/unir/MastersThesis/-/blob/main/src/results/raytune_paddle_results_20260119_122609.csv) |
|
||||
| DocTR | [`src/results/raytune_doctr_results_20260119_121445.csv`](https://seryus.ddns.net/unir/MastersThesis/-/blob/main/src/results/raytune_doctr_results_20260119_121445.csv) |
|
||||
| EasyOCR | [`src/results/raytune_easyocr_results_20260119_120204.csv`](https://seryus.ddns.net/unir/MastersThesis/-/blob/main/src/results/raytune_easyocr_results_20260119_120204.csv) |
|
||||
|
||||
*Fuente: Elaboración propia.*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user