Genauigkeits-Benchmarks

OCR-Engine-Upgrade: PP-OCRv5 → PP-OCRv6

Gemessen am 09.07.2026 auf einer lokalen RTX-3090-GPU mit dem Produktionsimage (paddleocr==3.7.0, CUDA 12.9). Testobjekte: ein echtes 24-MP-HEIC-Kameradokument (polnischer Text, von Menschen transkribierte Referenzdaten) sowie die Beispielrechnungs- und Beleg-PDFs des Repositorys (pdftotext-Referenzdaten). Die Bewertung verwendet reihenfolgeunabhängigen Multiset-Recall und -Präzision.

Die bereitgestellte Konfiguration verwendet PP-OCRv6 medium mit text_det_box_thresh=0.5. Der niedrigere Box-Schwellenwert gewinnt schwache Zeilen aus Bereichen mit Glanz und Perspektive in Kamerafotos zurück (+20 Prozentpunkte Wort-Recall), ohne Regression bei sauber gerenderten Seiten.

Metrik PP-OCRv5 (vorherig) PP-OCRv6 medium + box_thresh 0.5 (aktuell)
Kamerafoto-Worttreffer 0.670 0.865 (+29 %)
Kamerafoto-Polnisch-Diakritika-Treffer 0.562 0.775 (+38 %)
Kamerafoto-Wortpräzision 0.986 0.955
Kassenbon-Zahlentreffer 0.818 1.000 (+22 %)
Gedruckte Rechnung, dicht bedruckt (Treffer/Präzision) 1.000 / 1.000 1.000 / 1.000
GPU-Warm-Latenz (RTX 3090, dicht bedruckte Seite) ~0.55 s ~1.13 s

Der Wort-Recall auf gedruckten gerenderten Seiten (Rechnungs- und Beleg-PDFs) beträgt bei beiden Engine-Versionen 1.000 – die Verbesserung konzentriert sich auf Kamerafotos, bei denen Perspektive, Glanz und Komprimierung den Detektor belasten. Der numerische Recall (Beträge, Daten, Kennungen) ist der beste Näherungswert für die Feldextraktionsgenauigkeit, da Felder aus diesen Tokens zugeordnet werden.

Foto-Engine: Kameradokument-Vorverarbeitung

Gemessen am 09.07.2026 (gleiche Hardware und gleiches Bild wie beim OCR-Engine-Benchmark). Die Foto-Engine wendet vor der OCR auf Kamera-Uploads geometrische Entzerrung und Orientierungsklassifikation an. Sie wurde absichtlich nur für IMAGE-Uploads aktiviert – eine Entzerrung bereits ebener gerenderter Seiten führt durch verzerrte ausgerichtete Pixel zu einer Regression des Wort-Recalls von 1.000 auf 0.635.

Metrik Ohne Vorverarbeitung (Basislinie) Mit Entzerrung (Kamera-Uploads)
Kamerafoto-Worttreffer 0.865 0.921 (+6.6 %)
Kamerafoto-Polnisch-Diakritika-Treffer 0.775 0.854 (+10.2 %)
Kamerafoto-Wortpräzision 0.955 0.961
Gedruckte dichte Seite. Worttreffer 1.000 0.635 (Regression, absichtlich nur für Fotos)

Der Gewinn durch die Entzerrung ist real, setzt jedoch voraus, dass der OCR-Dienst das transformierte Seitenbild zurückgibt, damit Begrenzungsrahmen im korrekten transformierten Koordinatenraum gezeichnet werden. Die Beschränkung auf Fotos verhindert die Regression bei dicht gefüllten Seiten. Die Funktion wird über die Umgebungsvariable OCR_PHOTO_TRANSFORMS_ENABLED gesteuert.

Mehrrechnungs-PDF-Trennungserkennung

Gemessen am 21.07.2026 mit dem synthetischen beschrifteten Auswertungsdatensatz, der von scripts/gen_split_eval.py erzeugt und von scripts/eval_doc_split.py bewertet wurde. Der Detektor verwendet die eingebettete Textebene (pdftotext), um Signale für Seitengrenzen (Rechnungskopfzeilen, Muster für Datumsbeschriftungen, Schlüsselwörter für Dokumenttypen) vor jedem OCR- oder LLM-Aufruf zu finden; die Grenzerkennung ist daher kostenlos.

Bedingung Grenzpräzision Grenztreffer F1 Ausgewertete Dokumente
Sauberer Text (kein OCR-Rauschen) 1.000 1.000 1.000 660
OCR-Rauschen auf Zeichenebene: 2 % - - 0.969 660

The eval set mixes multi-invoice PDFs with single-invoice negatives. Precision and recall are computed on exact page-index boundary matches. The 2 %% OCR noise model applies per-character confusion, dropping, and swapping (including colon loss, which breaks label regexes). At that noise level the detector achieves F1 0.969, which motivated the suggest-and-confirm UX: boundaries are offered to the user for review rather than applied silently.

Methodologische Hinweise

Fragen zur Methodik oder zu den Ergebnissen: hello@synairo.com