feat: Sprint 2 — TrOCR ONNX, PP-DocLayout, Model Management

D2: TrOCR ONNX export script (printed + handwritten, int8 quantization)
D3: PP-DocLayout ONNX export script (download or Docker-based conversion)
B3: Model Management admin page (PyTorch vs ONNX status, benchmarks, config)
A4: TrOCR ONNX service with runtime routing (auto/pytorch/onnx via TROCR_BACKEND)
A5: PP-DocLayout ONNX detection with OpenCV fallback (via GRAPHIC_DETECT_BACKEND)
B4: Structure Detection UI toggle (OpenCV vs PP-DocLayout) with class color coding
C3: TrOCR-ONNX.md documentation
C4: OCR-Pipeline.md ONNX section added
C5: mkdocs.yml nav updated, optimum added to requirements.txt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-23 09:53:02 +01:00
parent c695b659fb
commit be7f5f1872
16 changed files with 3616 additions and 60 deletions

View File

@@ -1588,6 +1588,34 @@ cd klausur-service/backend && pytest tests/test_paddle_kombi.py -v # 36 Tests
---
## ONNX Backends und PP-DocLayout (Sprint 2)
### TrOCR ONNX Runtime
Ab Sprint 2 unterstuetzt die Pipeline **TrOCR mit ONNX Runtime** als Alternative zu PyTorch.
ONNX reduziert den RAM-Verbrauch von ~1.1 GB auf ~300 MB pro Modell und beschleunigt
die Inferenz um ~3x. Ideal fuer Hardware Tier 2 (8 GB RAM).
**Backend-Auswahl:** Umgebungsvariable `TROCR_BACKEND` (`auto` | `pytorch` | `onnx`).
Im `auto`-Modus wird ONNX bevorzugt, wenn exportierte Modelle vorhanden sind.
Vollstaendige Dokumentation: [TrOCR ONNX Runtime](TrOCR-ONNX.md)
### PP-DocLayout (Document Layout Analysis)
PP-DocLayout ersetzt die bisherige manuelle Zonen-Erkennung durch ein vortrainiertes
Layout-Analyse-Modell. Es erkennt automatisch:
- **Tabellen** (vocab_table, generic_table)
- **Ueberschriften** (title, section_header)
- **Bilder/Grafiken** (figure, illustration)
- **Textbloecke** (paragraph, list)
PP-DocLayout laeuft als ONNX-Modell (~15 MB) und benoetigt kein PyTorch.
Die Ergebnisse fliessen in Schritt 5 (Spaltenerkennung) und den Grid Editor ein.
---
## Aenderungshistorie
| Datum | Version | Aenderung |