new structure
This commit is contained in:
6
.claudeignore
Normal file
6
.claudeignore
Normal file
@@ -0,0 +1,6 @@
|
||||
~$*.docx
|
||||
results/
|
||||
__pycache__/
|
||||
dataset
|
||||
results
|
||||
.DS_Store
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,3 +4,4 @@ __pycache__/
|
||||
dataset
|
||||
results
|
||||
.DS_Store
|
||||
.claude
|
||||
BIN
TFM_Sergio_Jimenez_OCR.docx
Normal file
BIN
TFM_Sergio_Jimenez_OCR.docx
Normal file
Binary file not shown.
@@ -2051,7 +2051,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 32,
|
||||
"id": "3e3a34e4",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@@ -2429,13 +2429,7 @@
|
||||
"cell_type": "markdown",
|
||||
"id": "bc78df46",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Interpretation:\n",
|
||||
"\n",
|
||||
"7x better CER with textline_orientation=True. And the variance is much tighter — more reliable results.\n",
|
||||
"For Spanish business documents with mixed layouts (tables, headers, addresses), orientation classification helps PaddleOCR correctly order text lines. Makes sense.\n",
|
||||
"This is thesis-worthy: a single boolean flag accounts for more improvement than all the continuous hyperparameters combined. You could argue that for document OCR pipelines, architectural choices (orientation classification) matter more than threshold tuning."
|
||||
]
|
||||
"source": "## Interpretación:\n\nEl CER medio es ~3.3x menor con `textline_orientation=True` (3.76% vs 12.40%). Además, la varianza es mucho menor, lo que indica resultados más consistentes.\n\nPara documentos en español con layouts mixtos (tablas, encabezados, direcciones), la clasificación de orientación ayuda a PaddleOCR a ordenar correctamente las líneas de texto.\n\n**Hallazgo clave para la tesis:** Un solo parámetro booleano (`textline_orientation`) representa más mejora que todos los parámetros continuos combinados. Para pipelines de OCR de documentos, las decisiones arquitectónicas (clasificación de orientación) importan más que el ajuste fino de umbrales."
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
@@ -2541,111 +2535,13 @@
|
||||
"cell_type": "markdown",
|
||||
"id": "cfacaf35",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"| Metric | Baseline | Tuned | Improvement |\n",
|
||||
"|--------|----------|-------|-------------|\n",
|
||||
"| CER | 0.01258 | 0.01154 | **-8.3%** |\n",
|
||||
"| WER | 0.10407 | 0.09890 | **-5.0%** |"
|
||||
]
|
||||
"source": "### Mejor Configuración Encontrada en Ray Tune (64 trials)\n\n| Metric | Mejor Valor |\n|--------|-------------|\n| CER | **1.15%** |\n| WER | **9.89%** |\n\n**Nota:** Estos resultados corresponden a la evaluación sobre 5 páginas del dataset durante la búsqueda de hiperparámetros. La comparación final con el baseline se realiza en la siguiente sección sobre las 24 páginas completas."
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "7070a6e6",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Análisis de Optimización de Hiperparámetros de PaddleOCR\n",
|
||||
"\n",
|
||||
"### Resumen del Experimento\n",
|
||||
"\n",
|
||||
"Se realizaron 64 pruebas de optimización de hiperparámetros utilizando Ray Tune con el algoritmo de búsqueda Optuna durante aproximadamente 3 horas y 20 minutos.\n",
|
||||
"\n",
|
||||
"**Configuración base evaluada:**\n",
|
||||
"- Dataset: 5 documentos PDF de prueba (documentos académicos UNIR)\n",
|
||||
"- Métricas objetivo: CER (Character Error Rate) y WER (Word Error Rate)\n",
|
||||
"\n",
|
||||
"### Resultados Principales\n",
|
||||
"\n",
|
||||
"| Métrica | Baseline | Optimizado | Mejora Relativa |\n",
|
||||
"|---------|----------|------------|-----------------|\n",
|
||||
"| CER | 1.26% | 1.15% | **8.3%** |\n",
|
||||
"| WER | 10.41% | 9.89% | **5.0%** |\n",
|
||||
"\n",
|
||||
"### Configuración Óptima Encontrada\n",
|
||||
"\n",
|
||||
"| Parámetro | Valor |\n",
|
||||
"|--------------------------------|---------|\n",
|
||||
"| `textline_orientation` | True |\n",
|
||||
"| `use_doc_orientation_classify` | False |\n",
|
||||
"| `use_doc_unwarping` | False |\n",
|
||||
"| `text_det_thresh` | 0.4690 |\n",
|
||||
"| `text_det_box_thresh` | 0.5412 |\n",
|
||||
"| `text_det_unclip_ratio` | 0.0 |\n",
|
||||
"| `text_rec_score_thresh` | 0.6350 |\n",
|
||||
"\n",
|
||||
"### Análisis de Correlación\n",
|
||||
"\n",
|
||||
"| Parámetro | Correlación con CER | Correlación con WER | Interpretación |\n",
|
||||
"|----------------------------|---------------------|---------------------|------------------------------------|\n",
|
||||
"| `text_det_thresh` | **-0.523** | **-0.521** | Correlación negativa fuerte |\n",
|
||||
"| `text_det_box_thresh` | +0.226 | +0.227 | Correlación positiva débil |\n",
|
||||
"| `text_rec_score_thresh` | -0.161 | -0.173 | Correlación negativa débil |\n",
|
||||
"| `text_det_unclip_ratio` | NaN | NaN | Sin varianza (fijado en 0.0) |\n",
|
||||
"\n",
|
||||
"### Hallazgos Clave\n",
|
||||
"\n",
|
||||
"#### 1. Umbral de Detección de Píxeles (`text_det_thresh`)\n",
|
||||
"\n",
|
||||
"Este parámetro mostró la correlación más significativa con el rendimiento del OCR:\n",
|
||||
"\n",
|
||||
"- **Valores muy bajos (<0.1)**: Provocan fallos catastróficos con CER del 40-50%\n",
|
||||
"- **Valores medios-altos (0.3-0.6)**: Producen los mejores resultados\n",
|
||||
"- **Valor óptimo**: 0.4690\n",
|
||||
"\n",
|
||||
"La explicación técnica es que umbrales bajos generan falsos positivos en la detección de texto, lo que corrompe el proceso de reconocimiento posterior.\n",
|
||||
"\n",
|
||||
"#### 2. Orientación de Línea de Texto (`textline_orientation`)\n",
|
||||
"\n",
|
||||
"| Configuración | CER Medio | WER Medio | Muestras |\n",
|
||||
"|---------------|-----------|-----------|----------|\n",
|
||||
"| True | 3.76% | 12.73% | 53 |\n",
|
||||
"| False | 12.40% | 21.71% | 11 |\n",
|
||||
"\n",
|
||||
"Habilitar la corrección de orientación de línea de texto reduce el CER en un **69.7%** comparado con deshabilitarlo.\n",
|
||||
"\n",
|
||||
"#### 3. Umbral de Caja de Detección (`text_det_box_thresh`)\n",
|
||||
"\n",
|
||||
"- Correlación positiva débil indica que valores extremos (muy altos o muy bajos) perjudican el rendimiento\n",
|
||||
"- El valor óptimo (0.5412) se encuentra en el rango medio\n",
|
||||
"\n",
|
||||
"#### 4. Umbral de Reconocimiento (`text_rec_score_thresh`)\n",
|
||||
"\n",
|
||||
"- Ligero beneficio al usar umbrales más altos\n",
|
||||
"- Filtra predicciones de baja confianza, mejorando la precisión final\n",
|
||||
"- Valor óptimo: 0.6350\n",
|
||||
"\n",
|
||||
"### Estadísticas Descriptivas del Experimento\n",
|
||||
"\n",
|
||||
"| Estadística | CER | WER | Tiempo (s) |\n",
|
||||
"|-------------|----------|----------|------------|\n",
|
||||
"| Media | 5.25% | 14.28% | 347.6 |\n",
|
||||
"| Desv. Est. | 11.03% | 10.75% | 7.9 |\n",
|
||||
"| Mínimo | 1.15% | 9.89% | 321.0 |\n",
|
||||
"| Máximo | 51.61% | 59.45% | 368.6 |\n",
|
||||
"| Mediana | 1.23% | 10.20% | 346.4 |\n",
|
||||
"\n",
|
||||
"### Limitaciones del Experimento\n",
|
||||
"\n",
|
||||
"1. **Tamaño del dataset**: Solo 5 documentos PDF de prueba\n",
|
||||
"2. **Parámetro sin varianza**: `text_det_unclip_ratio` quedó fijado en 0.0 durante todo el experimento\n",
|
||||
"3. **Ejecución en CPU**: Sin aceleración GPU disponible (tiempo por página ~69s)\n",
|
||||
"\n",
|
||||
"### Conclusiones\n",
|
||||
"\n",
|
||||
"1. El parámetro más crítico para optimizar es `text_det_thresh`, con una correlación de -0.52 con el CER\n",
|
||||
"2. La habilitación de `textline_orientation` es esencial para documentos en español\n",
|
||||
"3. La optimización de hiperparámetros logró una mejora del 8.3% en CER sobre la configuración por defecto\n",
|
||||
"4. Los valores extremos en los umbrales de detección provocan degradación significativa del rendimiento"
|
||||
]
|
||||
"source": "## Análisis de Optimización de Hiperparámetros de PaddleOCR\n\n### Resumen del Experimento\n\nSe realizaron 64 pruebas de optimización de hiperparámetros utilizando Ray Tune con el algoritmo de búsqueda Optuna durante aproximadamente 6 horas y 40 minutos.\n\n**Configuración del experimento:**\n- Dataset: 5 páginas de documentos académicos UNIR (subconjunto para acelerar búsqueda)\n- Métricas objetivo: CER (Character Error Rate) y WER (Word Error Rate)\n- Tiempo promedio por trial: ~6 minutos\n\n### Configuración Óptima Encontrada\n\n| Parámetro | Valor |\n|--------------------------------|---------|\n| `textline_orientation` | True |\n| `use_doc_orientation_classify` | False |\n| `use_doc_unwarping` | False |\n| `text_det_thresh` | 0.4690 |\n| `text_det_box_thresh` | 0.5412 |\n| `text_det_unclip_ratio` | 0.0 |\n| `text_rec_score_thresh` | 0.6350 |\n\n### Análisis de Correlación\n\n| Parámetro | Correlación con CER | Correlación con WER | Interpretación |\n|----------------------------|---------------------|---------------------|------------------------------------|\n| `text_det_thresh` | **-0.523** | **-0.521** | Correlación negativa fuerte |\n| `text_det_box_thresh` | +0.226 | +0.227 | Correlación positiva débil |\n| `text_rec_score_thresh` | -0.161 | -0.173 | Correlación negativa débil |\n| `text_det_unclip_ratio` | NaN | NaN | Sin varianza (fijado en 0.0) |\n\n### Hallazgos Clave\n\n#### 1. Umbral de Detección de Píxeles (`text_det_thresh`)\n\nEste parámetro mostró la correlación más significativa con el rendimiento del OCR:\n\n- **Valores muy bajos (<0.1)**: Provocan fallos catastróficos con CER del 40-50%\n- **Valores medios-altos (0.3-0.6)**: Producen los mejores resultados\n- **Valor óptimo**: 0.4690\n\nLa explicación técnica es que umbrales bajos generan falsos positivos en la detección de texto, lo que corrompe el proceso de reconocimiento posterior.\n\n#### 2. Orientación de Línea de Texto (`textline_orientation`)\n\n| Configuración | CER Medio | WER Medio | Muestras |\n|---------------|-----------|-----------|----------|\n| True | 3.76% | 12.73% | 53 |\n| False | 12.40% | 21.71% | 11 |\n\nHabilitar la corrección de orientación de línea de texto reduce el CER en un **69.7%** comparado con deshabilitarlo. Este es el hallazgo más significativo del experimento.\n\n#### 3. Umbral de Caja de Detección (`text_det_box_thresh`)\n\n- Correlación positiva débil indica que valores extremos (muy altos o muy bajos) perjudican el rendimiento\n- El valor óptimo (0.5412) se encuentra en el rango medio-alto\n\n#### 4. Umbral de Reconocimiento (`text_rec_score_thresh`)\n\n- Ligero beneficio al usar umbrales más altos\n- Filtra predicciones de baja confianza, mejorando la precisión final\n- Valor óptimo: 0.6350\n\n### Estadísticas Descriptivas del Experimento (64 trials)\n\n| Estadística | CER | WER | Tiempo (s) |\n|-------------|----------|----------|------------|\n| Media | 5.25% | 14.28% | 347.6 |\n| Desv. Est. | 11.03% | 10.75% | 7.9 |\n| Mínimo | 1.15% | 9.89% | 321.0 |\n| Máximo | 51.61% | 59.45% | 368.6 |\n| Mediana | 1.23% | 10.20% | 346.4 |\n\n### Limitaciones del Experimento\n\n1. **Tamaño del dataset de búsqueda**: Solo 5 páginas para acelerar la optimización\n2. **Parámetro sin varianza**: `text_det_unclip_ratio` quedó fijado en 0.0 durante todo el experimento\n3. **Ejecución en CPU**: Sin aceleración GPU disponible (tiempo por página ~69s)\n\n### Conclusiones de la Búsqueda\n\n1. El parámetro más crítico es `textline_orientation=True`, con una reducción del 69.7% en CER\n2. El parámetro `text_det_thresh` tiene una correlación de -0.52 con el CER\n3. Los valores extremos en los umbrales de detección provocan degradación significativa del rendimiento\n4. La configuración óptima se valida en la siguiente sección sobre el dataset completo (24 páginas)"
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user