diff --git a/README.md b/README.md index 52e2e1a..805e5a6 100644 --- a/README.md +++ b/README.md @@ -2,48 +2,52 @@ **Trabajo Fin de Máster (TFM) – Tipo 2: Desarrollo de Software** **Líneas:** Percepción computacional · Aprendizaje automático -**Autor:** Sergio Jiménez Jiménez · **UNIR** · **Año:** 2025 +**Autor:** Sergio Jiménez Jiménez · **UNIR** · **Año:** 2025 -> Extracción **robusta** de texto desde **PDFs escaneados** en **español** usando **modelos neuronales** (EasyOCR · PaddleOCR/PP‑OCR · TrOCR · *opcionales*: DocTR/MMOCR). -> Enfoque **solo IA**: **no** se incluyen motores clásicos (p. ej., Tesseract) ni propietarios (p. ej., ABBYY). +> Extracción de texto desde **PDFs escaneados** en **español** mediante **motores OCR basados en IA** (EasyOCR · PaddleOCR · DocTR). +> Se excluyen soluciones clásicas como **Tesseract** o propietarias como **ABBYY**, centrando el proyecto en modelos neuronales modernos. --- ## 🧭 Objetivo -Desarrollar y evaluar un **sistema OCR multimotor** basado **exclusivamente** en IA que: -- Procese PDFs escaneados extremo a extremo (**PDF → Imagen → Preproc → OCR → Fusión → Post-proc**). -- **Mejore ≥15% el CER** frente a una **línea base neuronal** (p. ej., EasyOCR por defecto) en un conjunto de prueba en español. -- Mantenga **tiempos por página** prácticos y un **pipeline reproducible**. +Desarrollar y evaluar un **sistema OCR multimotor** capaz de: +- Procesar PDFs escaneados extremo a extremo (**PDF → Imagen → Preprocesado → OCR → Evaluación**). +- **Reducir el CER al menos un 15 %** respecto a una línea base neuronal (EasyOCR). +- Mantener **tiempos por página** adecuados y un pipeline **modular y reproducible**. **Métricas principales:** -- **CER** (Character Error Rate) -- **WER** (Word Error Rate) -- **Latencia** por página +- **CER** (*Character Error Rate*) +- **WER** (*Word Error Rate*) +- **Latencia por página* --- -## 🧩 Alcance y decisiones de diseño +## 🧩 Alcance y diseño -- **Idioma:** español (texto impreso; no manuscrito). -- **Documentos:** **PDFs escaneados** (calidad variable, skew, ruido, maquetación estándar). -- **Motores IA incluidos:** - - **EasyOCR** (baseline neuronal) - - **PaddleOCR (PP‑OCR)** - - **TrOCR** (Vision‑Encoder‑Decoder / Transformers) - - *Opcionales:* **DocTR** (python‑doctr), **MMOCR** (OpenMMLab) -- **Exclusiones:** Tesseract/ABBYY u otros motores clásicos/propietarios. -- **Evaluación:** CER/WER + tiempos. **Fusión** por votación/ confianza y **post‑procesado** lingüístico (opcional). +- **Idioma:** español (texto impreso, no manuscrito). +- **Entrada:** PDFs escaneados con calidad variable, ruido o inclinación. +- **Motores evaluados:** + - **EasyOCR** – baseline neuronal ligera. + - **PaddleOCR (PP-OCR)** – referencia industrial multilingüe. + - **DocTR (Mindee)** – arquitectura PyTorch modular con salida estructurada. +- **Evaluación:** CER, WER y latencia promedio por página. --- -## 🏗️ Arquitectura (visión general) +## 🏗️ Arquitectura del sistema ```text PDF (escaneado) - └─► Conversión a imagen (PyMuPDF / pdf2image) - └─► Preprocesado (OpenCV): binarización · normalización · deskew · denoise - └─► OCR (IA): EasyOCR | PaddleOCR | TrOCR [ (+ DocTR/MMOCR opc.) ] - └─► Fusión: votación / selección por confianza - └─► Post‑procesado: normalización · corrección ortográfica (opcional) - └─► Evaluación: CER · WER · latencia + └─► Conversión a imagen (PyMuPDF / pdf2image) + └─► Preprocesado (OpenCV) + └─► OCR (EasyOCR | PaddleOCR | DocTR) + └─► Evaluación (CER · WER · latencia) +``` + +## 🔜 Próximos pasos + +1. Ajustar parámetros y arquitecturas en DocTR (detector y reconocedor). +2. Añadir métricas de latencia. +3. Incorporar postprocesamiento lingüístico (corrección ortográfica). +4. Explorar TrOCR o MMOCR como comparación avanzada en la segunda fase. diff --git a/thesis_report.docx b/thesis_report.docx index 16a9ac5..295f69a 100644 Binary files a/thesis_report.docx and b/thesis_report.docx differ