# Contexto y estado del arte
Este capítulo presenta el marco teórico y tecnológico en el que se desarrolla el presente trabajo. Se revisan los fundamentos del Reconocimiento Óptico de Caracteres (OCR), la evolución de las técnicas basadas en aprendizaje profundo, las principales soluciones de código abierto disponibles y los trabajos previos relacionados con la optimización de sistemas OCR.
## Contexto del problema
### Definición y Evolución Histórica del OCR
El Reconocimiento Óptico de Caracteres (OCR) es el proceso de conversión de imágenes de texto manuscrito, mecanografiado o impreso en texto codificado digitalmente. La tecnología OCR ha evolucionado significativamente desde sus orígenes en la década de 1950:
- **Primera generación (1950-1970)**: Sistemas basados en plantillas que requerían fuentes específicas.
- **Segunda generación (1970-1990)**: Introducción de técnicas de extracción de características y clasificadores estadísticos.
- **Tercera generación (1990-2010)**: Modelos basados en Redes Neuronales Artificiales y Modelos Ocultos de Markov (HMM).
- **Cuarta generación (2010-presente)**: Arquitecturas de aprendizaje profundo que dominan el estado del arte.
### Pipeline Moderno de OCR
Los sistemas OCR modernos siguen típicamente un pipeline de dos etapas:
```mermaid
flowchart LR
subgraph Input
A["Imagen de
documento"]
end
subgraph "Etapa 1: Detección"
B["Text Detection
(DB, EAST, CRAFT)"]
end
subgraph "Etapa 2: Reconocimiento"
C["Text Recognition
(CRNN, SVTR, Transformer)"]
end
subgraph Output
D["Texto
extraído"]
end
A --> B
B -->|"Regiones de texto
(bounding boxes)"| C
C --> D
style A fill:#e1f5fe
style D fill:#c8e6c9
```
*Figura 1. Pipeline típico de un sistema OCR moderno con etapas de detección y reconocimiento.*
1. **Detección de texto (Text Detection)**: Localización de regiones que contienen texto en la imagen. Las arquitecturas más utilizadas incluyen:
- EAST (Efficient and Accurate Scene Text Detector)
- CRAFT (Character Region Awareness for Text Detection)
- DB (Differentiable Binarization)
2. **Reconocimiento de texto (Text Recognition)**: Transcripción del contenido textual de las regiones detectadas. Las arquitecturas predominantes son:
- CRNN (Convolutional Recurrent Neural Network) con CTC loss
- Arquitecturas encoder-decoder con atención
- Transformers (ViTSTR, TrOCR)
### Métricas de Evaluación
Las métricas estándar para evaluar sistemas OCR son:
**Character Error Rate (CER)**: Se calcula como CER = (S + D + I) / N, donde S = sustituciones, D = eliminaciones, I = inserciones, N = caracteres de referencia.
**Word Error Rate (WER)**: Se calcula de forma análoga pero a nivel de palabras en lugar de caracteres.
Un CER del 1% significa que 1 de cada 100 caracteres es erróneo. Para aplicaciones críticas como extracción de datos financieros o médicos, se requieren CER inferiores al 1%.
### Particularidades del OCR para el Idioma Español
El español presenta características específicas que impactan el OCR:
- **Caracteres especiales**: ñ, á, é, í, ó, ú, ü, ¿, ¡
- **Diacríticos**: Los acentos pueden confundirse con ruido o artefactos
- **Longitud de palabras**: Palabras generalmente más largas que en inglés
- **Puntuación**: Signos de interrogación y exclamación invertidos
## Estado del arte
### Soluciones OCR de Código Abierto
#### EasyOCR
EasyOCR es una biblioteca de OCR desarrollada por Jaided AI (2020) que soporta más de 80 idiomas. Sus características principales incluyen:
- **Arquitectura**: Detector CRAFT + Reconocedor CRNN/Transformer
- **Fortalezas**: Facilidad de uso, soporte multilingüe amplio, bajo consumo de memoria
- **Limitaciones**: Menor precisión en documentos complejos, opciones de configuración limitadas
- **Caso de uso ideal**: Prototipado rápido y aplicaciones con restricciones de memoria
#### PaddleOCR
PaddleOCR es el sistema OCR desarrollado por Baidu como parte del ecosistema PaddlePaddle (2024). La versión PP-OCRv5, utilizada en este trabajo, representa el estado del arte en OCR industrial:
- **Arquitectura**:
- Detector: DB (Differentiable Binarization) con backbone ResNet (Liao et al., 2020)
- Reconocedor: SVTR (Scene-Text Visual Transformer Recognition)
- Clasificador de orientación opcional
- **Hiperparámetros configurables**:
**Tabla 1.** *Hiperparámetros configurables de PaddleOCR.*
| Parámetro | Descripción | Valor por defecto |
|-----------|-------------|-------------------|
| `text_det_thresh` | Umbral de detección de píxeles | 0.3 |
| `text_det_box_thresh` | Umbral de caja de detección | 0.6 |
| `text_det_unclip_ratio` | Coeficiente de expansión | 1.5 |
| `text_rec_score_thresh` | Umbral de confianza de reconocimiento | 0.5 |
| `use_textline_orientation` | Clasificación de orientación | False |
| `use_doc_orientation_classify` | Clasificación de orientación de documento | False |
| `use_doc_unwarping` | Corrección de deformación | False |
*Fuente: Documentación oficial de PaddleOCR (PaddlePaddle, 2024).*
- **Fortalezas**: Alta precisión, pipeline altamente configurable, modelos específicos para servidor
- **Limitaciones**: Mayor complejidad de configuración, dependencia del framework PaddlePaddle
#### DocTR
DocTR (Document Text Recognition) es una biblioteca desarrollada por Mindee (2021) orientada a la investigación:
- **Arquitectura**:
- Detectores: DB, LinkNet
- Reconocedores: CRNN, SAR, ViTSTR
- **Fortalezas**: API limpia, orientación académica, salida estructurada de alto nivel
- **Limitaciones**: Menor rendimiento en español comparado con PaddleOCR
#### Comparativa de Arquitecturas
**Tabla 2.** *Comparativa de soluciones OCR de código abierto.*
| Modelo | Tipo | Componentes | Fortalezas Clave |
|--------|------|-------------|------------------|
| **EasyOCR** | End-to-end (det + rec) | CRAFT + CRNN/Transformer | Ligero, fácil de usar, multilingüe |
| **PaddleOCR** | End-to-end (det + rec + cls) | DB + SVTR/CRNN | Soporte multilingüe robusto, configurable |
| **DocTR** | End-to-end (det + rec) | DB/LinkNet + CRNN/SAR/ViTSTR | Orientado a investigación, API limpia |
*Fuente: Documentación oficial de cada herramienta (JaidedAI, 2020; PaddlePaddle, 2024; Mindee, 2021).*
### Optimización de Hiperparámetros
#### Fundamentos
La optimización de hiperparámetros (HPO) busca encontrar la configuración de parámetros que maximiza (o minimiza) una métrica objetivo (Feurer & Hutter, 2019). A diferencia de los parámetros del modelo (pesos), los hiperparámetros no se aprenden durante el entrenamiento.
Los métodos de HPO incluyen:
- **Grid Search**: Búsqueda exhaustiva en una rejilla predefinida
- **Random Search**: Muestreo aleatorio del espacio de búsqueda (Bergstra & Bengio, 2012)
- **Bayesian Optimization**: Modelado probabilístico de la función objetivo (Bergstra et al., 2011)
- **Algoritmos evolutivos**: Optimización inspirada en evolución biológica
#### Ray Tune y Optuna
**Ray Tune** es un framework de optimización de hiperparámetros escalable (Liaw et al., 2018) que permite:
- Ejecución paralela de experimentos
- Early stopping de configuraciones poco prometedoras
- Integración con múltiples algoritmos de búsqueda
**Optuna** es una biblioteca de optimización bayesiana (Akiba et al., 2019) que implementa:
- Tree-structured Parzen Estimator (TPE)
- Pruning de trials no prometedores
- Visualización de resultados
La combinación Ray Tune + Optuna permite búsquedas eficientes en espacios de alta dimensionalidad.
```mermaid
flowchart LR
A["Espacio de
búsqueda"] --> B["Ray Tune
Scheduler"]
B --> C["Trials
paralelos"]
C --> D["Evaluación
OCR"]
D --> E["Métricas
CER/WER"]
E --> F["Optuna
TPE"]
F -->|"Nueva config"| B
```
*Figura 2. Ciclo de optimización de hiperparámetros con Ray Tune y Optuna.*
#### HPO en Sistemas OCR
La aplicación de HPO a sistemas OCR ha sido explorada principalmente en el contexto de:
1. **Preprocesamiento de imagen**: Optimización de parámetros de binarización, filtrado y escalado (Liang et al., 2005)
2. **Arquitecturas de detección**: Ajuste de umbrales de confianza y NMS (Non-Maximum Suppression)
3. **Post-procesamiento**: Optimización de corrección ortográfica y modelos de lenguaje
Sin embargo, existe un vacío en la literatura respecto a la optimización sistemática de los hiperparámetros de inferencia en pipelines OCR modernos como PaddleOCR, especialmente para idiomas diferentes del inglés y chino.
### Datasets y Benchmarks para Español
Los principales recursos para evaluación de OCR en español incluyen:
- **FUNSD-ES**: Versión en español del dataset de formularios
- **MLT (ICDAR)**: Multi-Language Text dataset con muestras en español
- **Documentos académicos**: Utilizados en este trabajo (instrucciones TFE de UNIR)
Los trabajos previos en OCR para español se han centrado principalmente en:
1. Digitalización de archivos históricos (manuscritos coloniales)
2. Procesamiento de documentos de identidad
3. Reconocimiento de texto en escenas naturales
La optimización de hiperparámetros para documentos académicos en español representa una contribución original de este trabajo.
## Conclusiones del capítulo
Este capítulo ha presentado:
1. Los fundamentos del OCR moderno y su pipeline de detección-reconocimiento
2. Las tres principales soluciones de código abierto: EasyOCR, PaddleOCR y DocTR
3. Los métodos de optimización de hiperparámetros, con énfasis en Ray Tune y Optuna
4. Las particularidades del OCR para el idioma español
El estado del arte revela que, si bien existen soluciones OCR de alta calidad, su optimización para dominios específicos mediante ajuste de hiperparámetros (sin fine-tuning) ha recibido poca atención. Este trabajo contribuye a llenar ese vacío proponiendo una metodología reproducible para la optimización de PaddleOCR en documentos académicos en español.