assit commands for claude
All checks were successful
build_docker / essential (pull_request) Successful in 1s
build_docker / build_cpu (pull_request) Successful in 5m0s
build_docker / build_gpu (pull_request) Successful in 22m37s
build_docker / build_easyocr (pull_request) Successful in 18m5s
build_docker / build_easyocr_gpu (pull_request) Successful in 15m43s
build_docker / build_doctr (pull_request) Successful in 17m17s
build_docker / build_raytune (pull_request) Successful in 3m24s
build_docker / build_doctr_gpu (pull_request) Successful in 16m54s

This commit is contained in:
2026-01-20 11:35:56 +01:00
parent c7ed7b2b9c
commit 6b98aeacac
26 changed files with 1135 additions and 609 deletions

View File

@@ -16,33 +16,79 @@ El repositorio incluye:
## A.2 Estructura del Repositorio
```mermaid
---
title: "Estructura del repositorio MastersThesis"
config:
theme: base
themeVariables:
primaryColor: "#E6F4F9"
primaryTextColor: "#404040"
primaryBorderColor: "#0098CD"
lineColor: "#0098CD"
---
flowchart TB
subgraph root["MastersThesis/"]
direction TB
subgraph docs["docs/ - Capítulos TFM"]
d0["00-07 chapters (.md)"]
subgraph metrics["metrics/"]
m1["metrics_paddle.md"]
m2["metrics_doctr.md"]
m3["metrics_easyocr.md"]
end
end
subgraph src["src/ - Código fuente"]
subgraph paddle["paddle_ocr/"]
p1["paddle_ocr_tuning_rest.py"]
p2["Dockerfile.gpu/cpu"]
end
subgraph doctr["doctr_service/"]
dt1["doctr_tuning_rest.py"]
end
subgraph easy["easyocr_service/"]
e1["easyocr_tuning_rest.py"]
end
subgraph ray["raytune/"]
r1["raytune_ocr.py"]
r2["run_tuning.py"]
end
results["results/*.csv"]
dataset["dataset/"]
end
subgraph thesis["thesis_output/"]
htm["plantilla_individual.htm"]
figs["figures/figura_1-11.png"]
end
subgraph inst["instructions/"]
i1["instrucciones.pdf"]
i2["plantilla_individual.htm"]
end
scripts["apply_content.py<br/>generate_mermaid_figures.py"]
config["claude.md<br/>README.md"]
end
```
MastersThesis/
├── docs/ # Documentación de la tesis
│ └── metrics/ # Métricas de rendimiento OCR
│ ├── metrics.md # Resumen comparativo
│ ├── metrics_paddle.md # Resultados PaddleOCR
│ ├── metrics_doctr.md # Resultados DocTR
│ └── metrics_easyocr.md # Resultados EasyOCR
├── src/
│ ├── paddle_ocr/ # Servicio PaddleOCR
│ │ ├── Dockerfile.gpu # Imagen Docker GPU
│ │ ├── Dockerfile.cpu # Imagen Docker CPU
│ │ ├── docker-compose.yml # Configuración Docker
│ │ └── main.py # API FastAPI
│ ├── doctr_service/ # Servicio DocTR
│ │ ├── Dockerfile.gpu
│ │ ├── docker-compose.yml
│ │ └── main.py
│ ├── easyocr_service/ # Servicio EasyOCR
│ │ ├── Dockerfile.gpu
│ │ ├── docker-compose.yml
│ │ └── main.py
│ ├── dataset/ # Dataset de evaluación
│ ├── raytune_ocr.py # Utilidades compartidas Ray Tune
│ └── results/ # Resultados de ajuste CSV
└── .gitea/workflows/ci.yaml # Pipeline CI/CD
```
**Tabla A5.** *Descripción de directorios principales.*
| Directorio | Contenido |
|------------|-----------|
| `docs/` | Capítulos del TFM en Markdown (estructura UNIR) |
| `docs/metrics/` | Métricas de rendimiento por servicio OCR |
| `src/paddle_ocr/` | Servicio PaddleOCR dockerizado |
| `src/doctr_service/` | Servicio DocTR dockerizado |
| `src/easyocr_service/` | Servicio EasyOCR dockerizado |
| `src/raytune/` | Scripts de optimización Ray Tune |
| `src/results/` | CSVs con resultados de 64 trials por servicio |
| `thesis_output/` | Documento TFM generado + figuras PNG |
| `instructions/` | Plantilla e instrucciones UNIR oficiales |
*Fuente: Elaboración propia.*
## A.3 Requisitos de Software
@@ -79,8 +125,8 @@ MastersThesis/
### PaddleOCR (Puerto 8002)
**Imágenes Docker:**
- GPU: `seryus.ddns.net/unir/paddle-ocr-gpu`
- CPU: `seryus.ddns.net/unir/paddle-ocr-cpu`
- GPU: [`seryus.ddns.net/unir/paddle-ocr-gpu`](https://seryus.ddns.net/unir/-/packages/container/paddle-ocr-gpu/latest)
- CPU: [`seryus.ddns.net/unir/paddle-ocr-cpu`](https://seryus.ddns.net/unir/-/packages/container/paddle-ocr-cpu/latest)
```bash
cd src/paddle_ocr
@@ -88,13 +134,13 @@ cd src/paddle_ocr
# GPU (recomendado)
docker compose up -d
# CPU (más lento, 126x)
# CPU (más lento, 82x)
docker compose -f docker-compose.cpu-registry.yml up -d
```
### DocTR (Puerto 8003)
**Imagen Docker:** `seryus.ddns.net/unir/doctr-gpu`
**Imagen Docker:** [`seryus.ddns.net/unir/doctr-gpu`](https://seryus.ddns.net/unir/-/packages/container/doctr-gpu/latest)
```bash
cd src/doctr_service
@@ -105,12 +151,14 @@ docker compose up -d
### EasyOCR (Puerto 8002)
**Imagen Docker:** `seryus.ddns.net/unir/easyocr-gpu`
> **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`](https://seryus.ddns.net/unir/-/packages/container/easyocr-gpu/latest)
```bash
cd src/easyocr_service
# GPU
# GPU (usar archivo separado para evitar conflicto de puerto)
docker compose up -d
```
@@ -183,20 +231,22 @@ analyze_results(results, prefix='raytune_paddle', config_keys=PADDLE_OCR_CONFIG_
**Tabla A3.** *Servicios Docker y puertos.*
| Servicio | Puerto | Script de Ajuste |
|----------|--------|------------------|
| PaddleOCR | 8002 | `paddle_ocr_payload` |
| DocTR | 8003 | `doctr_payload` |
| EasyOCR | 8002 | `easyocr_payload` |
| 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`.
## A.7 Métricas de Rendimiento
Los resultados detallados de las evaluaciones y ajustes de hiperparámetros se encuentran en:
- [Métricas Generales](metrics/metrics.md) - Comparativa de los tres servicios
- [PaddleOCR](metrics/metrics_paddle.md) - Mejor precisión (7.76% CER baseline, **1.49% optimizado**)
- [PaddleOCR](metrics/metrics_paddle.md) - Mejor precisión (8.85% CER baseline, **7.72% optimizado**, **0.79% mejor trial**)
- [DocTR](metrics/metrics_doctr.md) - Más rápido (0.50s/página)
- [EasyOCR](metrics/metrics_easyocr.md) - Balance intermedio