Files
MastersThesis/docs/metrics/metrics_easyocr.md
Sergio Jimenez Jimenez 8bc3b38d46
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
metrics and raytune reuslts
2026-01-19 13:00:08 +01:00

3.8 KiB
Raw Blame History

Resultados de Ajuste de Hiperparámetros EasyOCR

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 ~10-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: 48% mejora (5.83% CER)
  • Dataset completo: 0.8% mejora (11.14% CER)

La mejora mínima en el dataset completo indica que los hiperparámetros se sobreajustaron a las páginas 5-10. Los problemas de EasyOCR (detecciones espurias, pérdida de estructura) también pueden ser parcialmente a nivel de modelo.

Evaluación del Dataset Completo (45 páginas)

Métrica Base Ajustado Mejora
CER 11.23% 11.14% 0.8%
WER 36.36% 36.85% -1.3%
Tiempo/Página 1.84s 1.94s -

Nota: El ajuste mostró mejora mínima en el dataset completo. Los problemas de EasyOCR pueden ser a nivel de modelo.

Resultados del Subconjunto de Ajuste (páginas 5-10)

Métrica Base Ajustado Mejora
CER 11.23% 5.83% 48%
WER 36.36% 26.33% 28%

Nota: Las grandes mejoras en el subconjunto de ajuste no se transfirieron al dataset completo.

Mejor Configuración Encontrada

{
  "text_threshold": 0.6647,
  "low_text": 0.4247,
  "link_threshold": 0.2184,
  "slope_ths": 0.1629,
  "ycenter_ths": 0.7994,
  "height_ths": 0.6437,
  "width_ths": 0.6065,
  "add_margin": 0.1462,
  "contrast_ths": 0.1671,
  "adjust_contrast": 0.6416,
  "decoder": "greedy",
  "beamWidth": 7,
  "min_size": 10
}

Hallazgos Clave

  1. decoder: greedy - Consistentemente mejor que beamsearch para este dataset
  2. Mayor text_threshold (0.66) - Reduce detecciones espurias
  3. min_size: 10 - Filtra artefactos de ruido pequeños
  4. Umbrales moderados - Sensibilidad de detección balanceada

Impacto de Parámetros

Parámetros que mejoraron la precisión:

  • decoder="greedy" consistentemente superó a beamsearch
  • Mayor text_threshold (0.6-0.8) redujo el ruido
  • min_size >= 5 ayudó a filtrar artefactos

Parámetros que perjudicaron la precisión:

  • decoder="beamsearch" causó ~35-40% CER en muchas pruebas
  • text_threshold muy bajo (<0.4) detectó demasiado ruido
  • min_size alto (>15) omitió algo de texto

Comparación con Problemas de Base

Problemas originales identificados en el debugset:

  • Inserciones espurias de caracteres - Mejorado con umbrales más altos
  • Pérdida de estructura - Todavía presente pero menos severa

Evaluación del Dataset Completo

Estado: Completado

curl -X POST http://localhost:8002/evaluate_full \
  -H "Content-Type: application/json" \
  -d '{
    "pdf_folder": "/app/dataset",
    "text_threshold": 0.6647,
    "low_text": 0.4247,
    "link_threshold": 0.2184,
    "slope_ths": 0.1629,
    "ycenter_ths": 0.7994,
    "height_ths": 0.6437,
    "width_ths": 0.6065,
    "add_margin": 0.1462,
    "contrast_ths": 0.1671,
    "adjust_contrast": 0.6416,
    "decoder": "greedy",
    "beamWidth": 7,
    "min_size": 10,
    "save_output": true
  }'

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.