All checks were successful
build_docker / essential (pull_request) Successful in 1s
build_docker / build_cpu (pull_request) Successful in 3m53s
build_docker / build_easyocr (pull_request) Successful in 15m2s
build_docker / build_gpu (pull_request) Successful in 19m57s
build_docker / build_easyocr_gpu (pull_request) Successful in 15m43s
build_docker / build_doctr (pull_request) Successful in 16m40s
build_docker / build_doctr_gpu (pull_request) Successful in 13m25s
105 lines
3.7 KiB
Markdown
105 lines
3.7 KiB
Markdown
# Resultados de Ajuste de Hiperparámetros DocTR
|
||
|
||
**Fecha de Ajuste:** 2026-01-19
|
||
**Plataforma:** NVIDIA RTX 3060 Laptop GPU
|
||
**Muestras:** 64
|
||
**Páginas de Prueba:** 5-10 (primer documento)
|
||
|
||
### ¿Por Qué Solo 5 Páginas?
|
||
|
||
Usamos solo 5 páginas (páginas 5-10) para el ajuste de hiperparámetros porque:
|
||
|
||
1. **Velocidad**: 64 pruebas × 5 páginas = 320 evaluaciones de página. Con 45 páginas, serían 2,880 evaluaciones (~9x más tiempo)
|
||
2. **Eficiencia de recursos**: Cada prueba toma ~2-20 segundos en GPU
|
||
|
||
**Riesgo de Sobreajuste**: El ajuste de hiperparámetros en un subconjunto pequeño PUEDE causar sobreajuste. Nuestros resultados confirman esto:
|
||
- Subconjunto de ajuste: **38% mejora** (7.43% CER)
|
||
- Dataset completo: **0% mejora** (12.07% CER)
|
||
|
||
La falta total de mejora en el dataset completo indica sobreajuste severo a las páginas 5-10, combinado con limitaciones a nivel de modelo (manejo de diacríticos, estructura de líneas) que los hiperparámetros no pueden corregir.
|
||
|
||
## Evaluación del Dataset Completo (45 páginas)
|
||
|
||
| Métrica | Base | Ajustado | Mejora |
|
||
|---------|------|----------|--------|
|
||
| **CER** | 12.06% | 12.07% | **0%** |
|
||
| **WER** | 42.01% | 42.26% | **0%** |
|
||
| Tiempo/Página | 0.33s | 0.34s | - |
|
||
|
||
> **Nota:** El ajuste no generalizó al dataset completo. Los problemas de DocTR parecen ser a nivel de modelo (diacríticos, estructura de líneas).
|
||
|
||
## Resultados del Subconjunto de Ajuste (páginas 5-10)
|
||
|
||
| Métrica | Base | Ajustado | Mejora |
|
||
|---------|------|----------|--------|
|
||
| **CER** | 12.06% | **7.43%** | **38%** |
|
||
| **WER** | 42.01% | **35.23%** | **16%** |
|
||
|
||
> Nota: Las mejoras en el subconjunto de ajuste no se transfirieron al dataset completo.
|
||
|
||
## Mejor Configuración Encontrada
|
||
|
||
```json
|
||
{
|
||
"assume_straight_pages": true,
|
||
"straighten_pages": false,
|
||
"preserve_aspect_ratio": false,
|
||
"symmetric_pad": false,
|
||
"disable_page_orientation": true,
|
||
"disable_crop_orientation": false,
|
||
"resolve_lines": true,
|
||
"resolve_blocks": false,
|
||
"paragraph_break": 0.0977
|
||
}
|
||
```
|
||
|
||
## Hallazgos Clave
|
||
|
||
1. **straighten_pages: false** - ¡Crítico! Configurarlo en true causa ~79% CER (catastrófico)
|
||
2. **assume_straight_pages: true** - Funciona bien con escaneos de documentos rectos
|
||
3. **resolve_lines: true** - Ayuda a mantener la estructura de líneas
|
||
4. **disable_page_orientation: true** - Evita rotación innecesaria
|
||
|
||
## Impacto de Parámetros
|
||
|
||
Parámetros que mejoraron la precisión:
|
||
- `straighten_pages=False` absolutamente crítico
|
||
- `assume_straight_pages=True` en los mejores resultados
|
||
- `resolve_lines=True` mantiene la estructura del texto
|
||
|
||
Parámetros que perjudicaron la precisión:
|
||
- `straighten_pages=True` catastróficamente malo (~79% CER)
|
||
- `resolve_blocks=True` ligeramente peor que False
|
||
|
||
## Limitaciones Conocidas
|
||
|
||
Incluso con ajuste, DocTR todavía tiene problemas:
|
||
- Omite diacríticos (tildes) - probablemente problema a nivel de modelo
|
||
- Todavía tiene mayor WER que PaddleOCR debido a problemas de estructura
|
||
|
||
## Evaluación del Dataset Completo
|
||
|
||
**Estado:** Completado
|
||
|
||
```bash
|
||
curl -X POST http://localhost:8003/evaluate_full \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"pdf_folder": "/app/dataset",
|
||
"assume_straight_pages": true,
|
||
"straighten_pages": false,
|
||
"preserve_aspect_ratio": false,
|
||
"symmetric_pad": false,
|
||
"disable_page_orientation": true,
|
||
"disable_crop_orientation": false,
|
||
"resolve_lines": true,
|
||
"resolve_blocks": false,
|
||
"paragraph_break": 0.0977,
|
||
"save_output": true
|
||
}'
|
||
```
|
||
|
||
**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.
|