From 9f9fda4cc337cd82be51bbe08addaf6562e1b902 Mon Sep 17 00:00:00 2001
From: sergio {md_to_html_para(quote_text)} {md_to_html_para(quote_text)} El problema central que aborda este trabajo puede formularse de la siguiente manera: ¿Es posible mejorar significativamente el rendimiento de modelos OCR preentrenados para documentos en español mediante la optimización sistemática de hiperparámetros, sin requerir fine-tuning ni recursos GPU? ¿Es posible mejorar significativamente el rendimiento de modelos OCR preentrenados para documentos en español mediante la optimización sistemática de hiperparámetros, sin requerir fine-tuning ni recursos GPU? Este planteamiento parte de una observación fundamental: los sistemas OCR modernos exponen múltiples parámetros configurables que afectan su comportamiento durante la inferencia. Estos parámetros incluyen umbrales de detección, opciones de preprocesamiento, y filtros de calidad. En la práctica habitual, estos parámetros se dejan en sus valores por defecto, asumiendo que fueron optimizados por los desarrolladores del modelo. Sin embargo, los valores por defecto representan compromisos generales que pueden no ser óptimos para dominios específicos. Este planteamiento se descompone en las siguientes cuestiones específicas:Formulación del problema
Preguntas de investigación
Criterio | Cumplimiento |
Específico (S) | Se define claramente qué se quiere lograr: optimizar PaddleOCR mediante ajuste de hiperparámetros para documentos en español |
Medible (M) | Se establece una métrica cuantificable: CER < 2% |
Alcanzable (A) | Es viable dado que: (1) PaddleOCR permite configuración de hiperparámetros, (2) Ray Tune posibilita búsqueda automatizada, (3) Aceleración GPU disponible para experimentación eficiente |
Relevante (R) | El impacto es demostrable: mejora la extracción de texto en documentos académicos sin costes adicionales de infraestructura |
Temporal (T) | El plazo es un cuatrimestre, correspondiente al TFM |
Evaluar el rendimiento base de EasyOCR, PaddleOCR y DocTR en documentos académicos en español, utilizando CER y WER como métricas, para seleccionar el modelo más prometedor.
+Evaluar el rendimiento base de EasyOCR, PaddleOCR y DocTR en documentos académicos en español, utilizando CER y WER como métricas, para seleccionar el modelo más prometedor.
Construir un dataset estructurado de imágenes de documentos académicos en español con su texto de referencia (ground truth) extraído del PDF original.
+Construir un dataset estructurado de imágenes de documentos académicos en español con su texto de referencia (ground truth) extraído del PDF original.
Analizar la correlación entre los hiperparámetros de PaddleOCR y las métricas de error para identificar los parámetros con mayor impacto en el rendimiento.
+Analizar la correlación entre los hiperparámetros de PaddleOCR y las métricas de error para identificar los parámetros con mayor impacto en el rendimiento.
Ejecutar una búsqueda automatizada de hiperparámetros utilizando Ray Tune con Optuna, evaluando al menos 50 configuraciones diferentes.
+Ejecutar una búsqueda automatizada de hiperparámetros utilizando Ray Tune con Optuna, evaluando al menos 50 configuraciones diferentes.
Comparar el rendimiento de la configuración baseline versus la configuración optimizada sobre el dataset completo, documentando la mejora obtenida.
+Comparar el rendimiento de la configuración baseline versus la configuración optimizada sobre el dataset completo, documentando la mejora obtenida.
Figura 3. Fases de la metodología experimental
@@ -5164,7 +5164,7 @@ color:#0098CD;mso-font-kerning:16.0pt;mso-bidi-font-weight:bold'>· documento → doccumento (consonante duplicada)
Ejemplo de predicción de PaddleOCR para una página:
-"Escribe siempre al menos un párrafo de introducción en cada capítulo o apartado, explicando de qué vas a tratar en esa sección. Evita que aparezcan dos encabezados de nivel consecutivos sin ningún texto entre medias. [...] En esta titulacióon se cita de acuerdo con la normativa Apa."
+"Escribe siempre al menos un párrafo de introducción en cada capítulo o apartado, explicando de qué vas a tratar en esa sección. Evita que aparezcan dos encabezados de nivel consecutivos sin ningún texto entre medias. [...] En esta titulacióon se cita de acuerdo con la normativa Apa."
Errores identificados en este ejemplo:
· titulacióon en lugar de titulación (carácter duplicado)
· Apa en lugar de APA (capitalización)
@@ -5282,7 +5282,7 @@ docker compose -f docker-compose.tuning.doctr.yml downArchivo | Propósito | Servicios |
Optimización principal | RayTune + PaddleOCR + DocTR | |
Optimización EasyOCR | RayTune + EasyOCR | |
Optimización PaddleOCR | RayTune + PaddleOCR | |
Optimización DocTR | RayTune + DocTR |
Fuente: Elaboración propia.
*\ Nota:** EasyOCR y PaddleOCR utilizan el mismo puerto (8002). Debido a limitaciones de recursos GPU (VRAM insuficiente para ejecutar múltiples modelos OCR simultáneamente), solo se ejecuta un servicio a la vez durante los experimentos. Por esta razón, EasyOCR tiene su propio archivo Docker Compose separado.
+Nota: EasyOCR y PaddleOCR utilizan el mismo puerto (8002). Debido a limitaciones de recursos GPU (VRAM insuficiente para ejecutar múltiples modelos OCR simultáneamente), solo se ejecuta un servicio a la vez durante los experimentos. Por esta razón, EasyOCR tiene su propio archivo Docker Compose separado.
Se utilizan volúmenes Docker nombrados para persistir los modelos descargados entre ejecuciones:
Tabla 28. Volúmenes Docker para caché de modelos.
@@ -5445,7 +5445,7 @@ Configuración óptima:Modelo | CER | Precisión Caracteres | WER | Precisión Palabras |
PaddleOCR (Baseline) | 8.85% | 91.15% | 13.05% | 86.95% |
PaddleOCR-HyperAdjust | 7.72% | 92.28% | 11.40% | 88.60% |
Fuente: Elaboración propia.
Nota sobre generalización: El mejor trial individual (5 páginas) alcanzó un CER de 0.79%, cumpliendo el objetivo de CER < 2%. Sin embargo, al aplicar la configuración al dataset completo de 45 páginas, el CER aumentó a 7.72%, evidenciando sobreajuste al subconjunto de entrenamiento. Esta diferencia es un hallazgo importante que se discute en la sección de análisis.
+Nota sobre generalización: El mejor trial individual (5 páginas) alcanzó un CER de 0.79%, cumpliendo el objetivo de CER < 2%. Sin embargo, al aplicar la configuración al dataset completo de 45 páginas, el CER aumentó a 7.72%, evidenciando sobreajuste al subconjunto de entrenamiento. Esta diferencia es un hallazgo importante que se discute en la sección de análisis.
Tabla 41. Análisis cuantitativo de la mejora.
Forma de Medición | CER | WER |
Valor baseline | 8.85% | 13.05% |
Valor optimizado | 7.72% | 11.40% |
Mejora absoluta | -1.13 pp | -1.65 pp |
Reducción relativa del error | 12.8% | 12.6% |
Factor de mejora | 1.15× | 1.14× |
Mejor trial (5 páginas) | 0.79% | 7.78% |
*Asumiendo longitud media de palabra = 6.6 caracteres en español.
Interpretación:
-"La optimización de hiperparámetros logró una mejora del 12.8% en el CER sobre el dataset completo de 45 páginas. Aunque esta mejora es más modesta que la observada en los trials individuales (donde se alcanzó 0.79% CER), demuestra el valor de la optimización sistemática. La diferencia entre el mejor trial (0.79%) y el resultado en dataset completo (7.72%) revela un fenómeno de sobreajuste al subconjunto de 5 páginas usado para evaluación."
+"La optimización de hiperparámetros logró una mejora del 12.8% en el CER sobre el dataset completo de 45 páginas. Aunque esta mejora es más modesta que la observada en los trials individuales (donde se alcanzó 0.79% CER), demuestra el valor de la optimización sistemática. La diferencia entre el mejor trial (0.79%) y el resultado en dataset completo (7.72%) revela un fenómeno de sobreajuste al subconjunto de 5 páginas usado para evaluación."
Tabla 43. Métricas de tiempo del experimento (GPU).
Métrica | Valor |
Tiempo total del experimento | ~1.5 horas |
Tiempo medio por trial | ~4.2 segundos |
Tiempo medio por página | 0.84 segundos |
Variabilidad (std) | 0.53 segundos/página |
Páginas procesadas totales | 320 |
Aspecto | Objetivo | Resultado (trial) | Resultado (full) | Cumplimiento |
Métrica | CER | CER | CER | ✓ |
Umbral | < 2% | 0.79% | 7.72% | Parcial |
Método | Sin fine-tuning | Solo hiperparámetros | Solo hiperparámetros | ✓ |
Hardware | GPU | RTX 3060 | RTX 3060 | ✓ |
Fuente: Elaboración propia.
Análisis del cumplimiento: El objetivo de CER < 2% se cumple en el mejor trial individual (0.79%), demostrando que la optimización de hiperparámetros puede alcanzar la precisión objetivo. Sin embargo, la validación sobre el dataset completo (7.72%) muestra que la generalización requiere trabajo adicional, como un subconjunto de optimización más representativo o técnicas de regularización.
+Análisis del cumplimiento: El objetivo de CER < 2% se cumple en el mejor trial individual (0.79%), demostrando que la optimización de hiperparámetros puede alcanzar la precisión objetivo. Sin embargo, la validación sobre el dataset completo (7.72%) muestra que la generalización requiere trabajo adicional, como un subconjunto de optimización más representativo o técnicas de regularización.
Basándose en el análisis de los resultados de optimización:
@@ -5554,7 +5554,7 @@ Configuración óptima:Objetivo | Descripción | Resultado | Estado |
OE1 | Comparar soluciones OCR | EasyOCR, PaddleOCR, DocTR evaluados; PaddleOCR seleccionado | ✓ Cumplido |
OE2 | Preparar dataset de evaluación | 45 páginas con ground truth | ✓ Cumplido |
OE3 | Identificar hiperparámetros críticos | textline_orientation, use_doc_orientation_classify, text_det_thresh identificados | ✓ Cumplido |
OE4 | Optimizar con Ray Tune (≥50 trials) | 64 trials ejecutados con GPU | ✓ Cumplido |
OE5 | Validar configuración optimizada | CER: 8.85% → 7.72% (dataset), 0.79% (mejor trial) | ✓ Parcial |
Fuente: Elaboración propia.
Nota sobre OE5: El objetivo de CER < 2% se cumple en el mejor trial individual (0.79%). La validación sobre el dataset completo (7.72%) muestra que la generalización requiere mayor trabajo, identificándose como línea de trabajo futuro.
+Nota sobre OE5: El objetivo de CER < 2% se cumple en el mejor trial individual (0.79%). La validación sobre el dataset completo (7.72%) muestra que la generalización requiere mayor trabajo, identificándose como línea de trabajo futuro.
1. Tipo de documento único: Solo se evaluaron documentos académicos de UNIR. La configuración óptima puede no ser transferible a otros tipos de documentos (facturas, formularios, contratos).
@@ -5657,7 +5657,7 @@ y trabajo futuroEste capít
Métrica Objetivo Mejor Trial Dataset Completo Cumplimiento CER < 2% 0.79% 7.72% ✓ Parcial Fuente: Elaboración propia. Nota: El objetivo de CER < 2% se cumple en el mejor trial individual (0.79%, 5 páginas). La validación sobre el conjunto de datos completo (45 páginas) muestra un CER de 7.72%, evidenciando sobreajuste al subconjunto de optimización. Esta diferencia se analiza en detalle en el Capítulo 4. Nota: El objetivo de CER < 2% se cumple en el mejor trial individual (0.79%, 5 páginas). La validación sobre el conjunto de datos completo (45 páginas) muestra un CER de 7.72%, evidenciando sobreajuste al subconjunto de optimización. Esta diferencia se analiza en detalle en el Capítulo 4. Respecto a OE1 (Comparativa de soluciones OCR): · Se evaluaron tres soluciones OCR de código abierto: EasyOCR, PaddleOCR (PP-OCRv5) y DocTRConclusiones Específicas
Nota: EasyOCR utiliza el mismo puerto (8002) que PaddleOCR. No se pueden ejecutar simultáneamente. Por esta razón, existe un archivo docker-compose separado para EasyOCR.
+Nota: EasyOCR utiliza el mismo puerto (8002) que PaddleOCR. No se pueden ejecutar simultáneamente. Por esta razón, existe un archivo docker-compose separado para EasyOCR.
Imagen Docker: seryus.ddns.net/unir/easyocr-gpu
Servicio Puerto Script de Ajuste Nota PaddleOCR 8002 paddle_ocr_payload - DocTR 8003 doctr_payload - EasyOCR 8002 easyocr_payload Conflicto con PaddleOCR Fuente: Elaboración propia. Nota: Debido a limitaciones de recursos GPU (VRAM insuficiente para ejecutar múltiples modelos OCR simultáneamente), solo se ejecuta un servicio a la vez. PaddleOCR y EasyOCR comparten el puerto 8002. Para cambiar de servicio, detener el actual con docker compose down. Nota: Debido a limitaciones de recursos GPU (VRAM insuficiente para ejecutar múltiples modelos OCR simultáneamente), solo se ejecuta un servicio a la vez. PaddleOCR y EasyOCR comparten el puerto 8002. Para cambiar de servicio, detener el actual con docker compose down. Los resultados detallados de las evaluaciones y ajustes de hiperparámetros se encuentran en: · Métricas Generales - Comparativa de los tres servicioscd src/easyocr_service
@@ -5850,7 +5850,7 @@ analyze_results(results, prefix='raytune_paddle', config_keys=PADDLE_OCR_CONFIG_
A.7 Métricas de Rendimiento