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

@@ -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)
**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