OCR-Fehler verderben nicht nur den Text – sie zerstören kaskadenartig jeden nachfolgenden Schritt der Pipeline: Chunking, Embeddings, Retrieval.
Selbst 2 % CER in einem 100-seitigen Dokument bedeuten ~ 1.000 verzerrte Zeichen, die in die Vektordatenbank gelangen.
Ein semantisch relevanter Chunk könnte aufgrund eines einzigen zusammengeklebten Wortes in einem Schlüssel-Satz nicht im Retrieval landen.
Die Textnachbearbeitung nach OCR ist günstiger und effektiver, als zu versuchen, das Retrieval in späteren Phasen zu korrigieren.
Wenn Ihr RAG-System irrelevante Ergebnisse liefert oder konsequent halluziniert – der erste Ort, an dem Sie nach dem Problem suchen sollten, ist nicht das Modell, nicht die Chunking-Parameter und nicht die Vektordatenbank. Suchen Sie im Text, den Sie dort hochgeladen haben.
Ein OCR-Fehler ist kein lokaler Defekt. Es ist eine Rauschinjektion am Eingang der Pipeline, die sich bei jedem nachfolgenden Schritt multipliziert. Verzerrtes Token → falsche Satzgrenze → fehlerhafter Chunk → verschobener Vektor → verpasstes Retrieval → halluzinierte Antwort. Jeder Schritt verstärkt den vorherigen.
Dieser Artikel ist eine technische Analyse, wo und wie dies geschieht, mit realen Beispielen von Artefakten und konkreten Korrekturmethoden. Wenn Sie einen allgemeinen Überblick darüber benötigen, was OCR ist und warum es in RAG-Systemen benötigt wird – lesen Sie den vorherigen Artikel der Serie: „OCR in modernen KI-Systemen: von gescannten Dokumenten zu RAG“.
Pipeline zur Verarbeitung gescannter Dokumente: von PDF zu Embeddings
Bevor wir analysieren, wo etwas kaputt geht – lassen Sie uns die vollständige Pipeline abbilden. Jeder Schritt unten ist ein potenzieller Punkt der Qualitätsdegradation.
Schritt
Was passiert
Was kann durch schlechtes OCR kaputt gehen
1. PDF-Typ-Erkennung
Prüfung auf Vorhandensein einer Textschicht (PyMuPDF, pdfminer)
Hybrid-PDF wird teilweise als textbasiert erkannt; gescannter Teil wird übersprungen
Übersehene Schräglage oder Rauschen → erhöhter CER im nächsten Schritt
3. OCR
Konvertierung von Raster in Text (Tesseract, PaddleOCR, GPT-4o-mini)
Artefakte: zusammengeklebte Wörter, ersetzte Zeichen, kaputte Tabellenstruktur, Müll von Rauschen
4. Textnachbearbeitung
Bereinigung von Artefakten, Satzzeichennormalisierung, Entfernung von doppelten Zeilen
Wenn der Schritt übersprungen wird – der ganze Dreck geht weiter
5. Chunking
Aufteilung des Textes in Fragmente nach Größe/Semantik
Falsche Satzgrenzen → fehlerhafte Chunks; zusammengeklebte Wörter brechen die Satzaufteilung
6. Embeddings
Umwandlung des Chunks in einen Vektor (text-embedding-3-small, BGE, E5)
Verzerrter Text → verschobener Vektor; OOV-Tokens reduzieren die Qualität der Darstellung
7. Indizierung in Vector DB
Speicherung von Vektoren (Qdrant, pgvector, Weaviate)
Fehler aus Schritt 6 wird für immer behoben – der Neuaufbau des Index ist teuer
8. Retrieval
ANN-Suche nach Kosinus-Ähnlichkeit basierend auf der Anfrage
Verschobener Vektor des Chunks → geringere Ähnlichkeit mit der korrekten Anfrage → Chunk landet nicht in den Top-k
9. Generierung (LLM)
LLM formuliert eine Antwort basierend auf den gefundenen Chunks
Müll im Kontext → Halluzinationen; fehlender Chunk → Antwort „nicht gefunden“ oder erfunden
Die wichtigste Erkenntnis aus dieser Karte: Ein OCR-Fehler (Schritt 3) lokalisiert sich nicht in Schritt 3. Er driftet durch die gesamte Pipeline und manifestiert sich in Schritt 9 als Problem mit der Antwortqualität – weit weg von der Ursache.
Deshalb suchen die meisten Teams an der falschen Stelle: Sie optimieren das Chunking, wechseln das Embedding-Modell, konfigurieren den Reranker – aber das Problem bleibt, weil es in den Eingabedaten liegt.
Typische OCR-Artefakte: Was genau kaputt geht und warum
Unten finden Sie eine reale Taxonomie von Artefakten, denen Sie in typischen Unternehmensarchiven begegnen werden. Für jedes Artefakt gibt es ein Beispiel, wie es aussieht und was es in der weiteren Pipeline beschädigt.
1. Zusammengeklebte Wörter (word merging)
Original im Dokument
OCR-Ergebnis
термін дії договору — 12 місяців
терміндіїдоговору— 12місяців
загальна сума складає 47 500 грн
загальнасумаскладає47500грн
відповідно до статті 651 ЦКУ
відповіднодостатті651ЦКУ
Ursache: ungleichmäßiger Kontrast zwischen Zeichen und Hintergrund, niedrige DPI, JPEG-Kompression.
Was es kaputt macht: Der Satzteiler findet keine Satzgrenzen; der Tokenizer des Embedding-Modells erhält ein OOV-Token anstelle von zwei bekannten Wörtern; die Suche nach „термін дії“ findet keinen Chunk mit „терміндіїдоговору“.
2. Zeichenersetzung (character substitution)
Original
OCR-Ergebnis
Art der Ersetzung
доза: 2,5 мг
доза: З,5мг
Ziffer „2“ → Kyrillisch „З“
п. 4.1 договору
п. Ч.1 договору
Ziffer „4“ → Buchstabe „Ч“
§ 14 Закону
S 14 Закону
Paragraphenzeichen → ASCII „S“
рахунок № 2024-08-15
рахунок Ne 2024-О8-15
„№“ → „Ne“, „0“ → „О“
Ursache: Ähnlichkeit der Zeichenformen bei niedriger Auflösung oder schlechtem Kontrast. Besonders häufig – bei gemischten kyrillischen und lateinischen Schriftarten.
Was es kaputt macht: Numerische Werte werden zu Text; die Suche nach dem genauen Wert („доза 2,5 мг“) passt nicht zum Artefakt; in medizinischen und juristischen Dokumenten ist dies ein kritischer Fehler.
3. Phantomzeichen und -zeilen (hallucinated content)
Quelle
OCR-Ergebnis
Umgedrehte Seite (180°)
аМЫМ "9a18 40 S¥3IAVT ONIHLY3HS N33ML3E
Stempel „КОПІЯ“ über dem Text
Textfragmente mit Einfügungen von „КОПIЯ“ innerhalb von Sätzen
Schatten vom Papierknick
Zusätzliche Zeichen oder Zeilen zwischen Absätzen
Leere Seite mit Scannerrauschen
Zeilen mit zufälligen Zeichen: .,;..|||. :
Ursache: OCR versucht, jedes Pixelmuster als Zeichen zu erkennen. Umgedrehter Text, Scannerrauschen, Kompressionsartefakte – all das wird in „Text“ umgewandelt.
Was es kaputt macht: Müll gelangt als gültiger Inhalt in den Vektor; beim Retrieval erhält die LLM einen unlesbaren Kontext und halluziniert oder sagt „Ich weiß es nicht“.
Артикул Назва Кількість Ціна A-001 Кабель 50 шт 120 грн A-002 Роз'єм 200 шт 15 грн
Ursache: Klassisches OCR versteht die räumlichen Beziehungen zwischen Zellen nicht. Es liest den Text linear: von oben nach unten, von links nach rechts, ignoriert die Spaltenstruktur.
Was es kaputt macht: Beim Chunking gerät die gesamte Tabelle als linearer Textblock ohne Kennzeichnung in einen Chunk; die Anfrage „wie viel kostet das Kabel“ passt nicht zu einer strukturlosen Zeile; der Chunk überträgt die semantische Verbindung zwischen Artikel, Name und Preis nicht.
5. Falsche Silbentrennungen und Zeilenumbrüche
Original
OCR-Ergebnis
відповідальність за порушення умов договору
відповідаль- ність за пору- шення умов до- говору
Загальна сума без ПДВ складає 38 400,00 гривень
Загальна сума без ПДВ складає 38 400,00 гривень
Ursache: OCR unterscheidet nicht immer zwischen Silbentrennung und Zeilenende in Texten mit Spalten oder engen Rändern.
Was es kaputt macht: „відповідаль-“ und „ність“ werden zu separaten Tokens; ein durch einen Bindestrich getrenntes Wort erzeugt ein OOV-Token; der Zahlenwert „38 400“ wird in zwei Zeilen aufgeteilt und als „38“ und „400,00“ geparst – getrennte Tokens ohne den Kontext der Summe.
Wie OCR-Fehler die Chunking-Strategie zerstören
Chunking ist die Aufteilung des Textes in Fragmente, die vektorisiert und im Index gespeichert werden. Die Qualität eines Chunks bestimmt die Qualität des Retrievals: Wenn ein Chunk semantisch inkorrekt ist, kann selbst ein perfektes Embedding die Situation nicht retten.
Betrachten wir drei Haupt-Chunking-Strategien und wie OCR-Artefakte jede von ihnen brechen.
Die einfachste Strategie: Text in Chunks von N Tokens mit Überlappung aufteilen. Problem: Sie hängt vollständig von der korrekten Tokenisierung ab.
Szenario
Reiner Text (erwarteter Chunk)
Mit OCR-Artefakt (realer Chunk)
Zusammengeklebte Wörter erhöhen das „Token“
„...відповідно до умов договору, сторона А зобов'язана...“
„...відповіднодоумовдоговору,сторонаАзобов'язана...“ – ein „Token“, die Grenze verschiebt sich
Müll bläht den Chunk auf
500 nützliche Tokens
500 Tokens, davon 80–120 Müll (Zeichen aus Rauschen, Artefakte von Trennungen). Nützlicher Inhalt wird komprimiert.
Getrennte Trennung bricht das Wort
„відповідальність“ – 1 Token
„відповідаль-“ + „ність“ – 2 verschiedene Tokens, der erste ist OOV
Strategie 2: Sentence-based chunking
Aufteilung nach Sätzen (spaCy, nltk sentence splitter). Erfordert korrekte Satzenden: Punkte, Fragezeichen, Ausrufezeichen mit einem Leerzeichen danach.
OCR-Artefakte brechen systematisch die Erkennung von Satzgrenzen:
Artefakt
Was es mit dem Satzteiler macht
Folge für den Chunk
Zusammengeklebte Wörter ohne Leerzeichen
Splitter findet keine Lücke zwischen Sätzen
Zwei Sätze verschmelzen zu einem – der Chunk enthält gemischten Kontext
Punkt ohne Leerzeichen danach
Splitter ignoriert Satzende
Mehrere Sätze landen in einem Chunk; semantische Grenze ist gebrochen
Artefakt-Punkt innerhalb einer Zahl
„38.400“ → Splitter schneidet den Satz mitten in der Zahl ab
Zahl wird zwischen Chunks geteilt; Kontext der Summe geht verloren
Zusätzliche Zeichen am Zeilenende
„договору.||| “ → Splitter erkennt das Ende nicht
Satz wird nicht geteilt; Chunk-Grenze verschiebt sich um mehrere Sätze nach vorne
Strategie 3: Semantic / recursive chunking
Fortgeschrittenere Ansätze (recursive character splitter, semantisches Chunking mit Embedding-Ähnlichkeit) sollten theoretisch widerstandsfähiger gegen oberflächliche Artefakte sein. In der Praxis – nein.
Semantisches Chunking definiert Grenzen durch die Änderung der Semantik zwischen benachbarten Sätzen. Wenn Sätze durch OCR-Artefakte verzerrt sind, wird das Embedding jedes Satzes verschoben – und der Algorithmus „sieht“ einen semantischen Bruch, wo keiner ist, oder sieht ihn nicht, wo er ist.
Ergebnis: Chunks werden an „semantisch korrekten“ Stellen für den verzerrten Text geschnitten – aber nicht für den ursprünglichen Inhalt.
Wie OCR-Fehler sich in der gesamten RAG-Pipeline ausbreiten
Ich sehe oft, dass viele Entwickler sich auf die Wahl der LLM oder des Embedding-Modells konzentrieren, aber die Qualität der Antwort wird viel früher bestimmt – in der OCR-Phase. Wenn das System den Text falsch erkannt hat, gelangt dieser Fehler in die Chunks, dann in die Embeddings, beeinflusst das Retrieval und spiegelt sich schließlich in der endgültigen Antwort wider.
Deshalb kann sich ein Fehler in der OCR-Phase in der gesamten Dokumentenverarbeitungskette ausbreiten. Selbst die fortschrittlichste LLM kann keine Informationen finden, die bereits während der Texterkennung verloren gegangen oder verzerrt wurden.
In der Praxis führt die Verbesserung der OCR-Qualität oft zu einem größeren Genauigkeitsgewinn für das RAG-System als der Wechsel zu einer teureren LLM oder die Verwendung eines größeren Embedding-Modells. Wenn das Retrieval falsche Daten erhält, kann kein generatives Modell dieses Problem vollständig kompensieren.
Praktische Schlussfolgerung zum Chunking
Ich bin überzeugt, dass keine Chunking-Strategie systematisch einen „verschmutzten“ Eingabetext kompensieren kann. Die Nachbearbeitung nach OCR ist ein obligatorischer Schritt vor jedem Chunking. Ohne dies verschwindet der Unterschied zwischen Fixed-Size und Semantic Chunking praktisch: Beide Ansätze beginnen, mit inkorrekten Chunks zu arbeiten, nur auf unterschiedliche Weise.
Einfluss von Rauschen auf die Qualität von Embedding-Vektoren
Ein Embedding-Modell wandelt einen Text-Chunk in einen numerischen Vektor in einem n-dimensionalen Raum um. Semantisch ähnliche Texte haben nahe Vektoren (hohe Kosinus-Ähnlichkeit). Die semantische Suche sucht genau nach dieser Nähe.
OCR-Rauschen beeinflusst den Vektor über zwei Mechanismen:
Mechanismus 1: OOV-Tokens (Out-of-Vocabulary)
Wenn ein Wort in den Trainingsdaten des Modells nicht vorkommt, kodiert es dieses „nach seiner Form“: es zerlegt es in Subword-Tokens, von denen jedes ein schwaches oder gar kein semantisches Signal hat. Der Vektor des Chunks verschiebt sich von seiner korrekten semantischen Position.
Token im Text
Typ
Einfluss auf den Chunk-Vektor
«відповідальність»
In-Vocabulary
Starkes semantisches Signal; Vektor in der richtigen Zone
«відповідаль-»
OOV (Artefakt eines Zeilenumbruchs)
Das Modell teilt es in Subwords; das Signal ist schwach; der Vektor verschiebt sich
«терміндіїдоговору»
OOV (zusammengewachsene Wörter)
Unbekanntes Token; der Vektor „zieht“ den Chunk von der Semantik von „Vertragsdauer“ weg
«аМЫМ9a18S¥3»
OOV (Müll von einer umgedrehten Seite)
Kein Subword trägt ein Signal; der Vektor verschiebt sich stark in die „Rauschzone“
Das Embedding-Modell mittelt das Signal über alle Tokens eines Chunks (vereinfacht). Wenn 15–20 % der Tokens in einem Chunk Müll ohne semantische Bedeutung sind, wird der Vektor „verdünnt“: er wird zu einer weniger genauen Darstellung des eigentlichen Inhalts.
Praktisches Beispiel: Ein Chunk mit 400 Tokens, von denen 80 Artefakte sind (zusammengewachsene Wörter, Rauschsymbole, falsche Zeilenumbrüche). Das effektive semantische Signal beträgt nicht 100 %, sondern ca. 80 %. Die Kosinus-Ähnlichkeit mit einer korrekten Anfrage sinkt proportional.
Sie sinkt nicht auf Null – kann aber unter den Schwellenwert für das Top-k-Retrieval fallen. Wenn Sie nach den Top-5-Chunks suchen, kann ein verschobener Chunk auf Position 6 oder 7 landen – und nie in den Kontext der LLM gelangen.
Anschauliche Illustration: Fall eines Anwalts mit AskYourDocs
Wir kehren zum Fall aus dem vorherigen Artikel der Serie zurück, analysieren ihn aber auf Vektorebene.
Der Mandant – ein Anwalt mit Spezialisierung auf Baurecht – schickte 21 Seiten aus einem gescannten Archiv. Die meisten Seiten waren um 90°, 180° oder 270° gedreht gescannt. Standard-OCR ohne Ausrichtungskorrektur las sie wie folgt:
Dieser Müll gelangte als gültiger Text in die Vektordatenbank. Was mit den Vektoren geschah:
Dokument / Chunk
Zustand des Textes
Vektor
Kosinus-Ähnlichkeit mit der Anfrage „Bedingungen für die Vertragsauflösung“
Chunk von Seite 3 (gedreht)
Müll: „аМЫМ 9a18 S¥3IAVT...“
In der „Rauschzone“ des Raumes
~0.08 (irrelevant)
Chunk von Seite 7 (normal)
Lesbarer Text über Vertragsbedingungen
In der richtigen semantischen Zone
~0.74 (relevant, landet in den Top-5)
Chunk von Seite 12 (gedreht)
Müll
In der „Rauschzone“
~0.06
Von den 21 Seiten wurden 5–6 normal indiziert. Der Rest existierte in der Vektordatenbank als statistisches Rauschen – er belegte Platz, lieferte aber kein nützliches Retrieval. Gleichzeitig meldete das System kein Problem: Es gab Ergebnisse zurück, nur von 5–6 Seiten statt von 21.
Genauigkeit der Antworten auf Testfragen: 17 %. Nach der Einführung von Vision OCR mit automatischer Ausrichtungskorrektur: 50 % – auf demselben problematischen Dokument.
Warum ein semantisch relevanter Chunk nicht im Retrieval landet
Selbst wenn ein Chunk semantisch korrekt ist – er kann aufgrund mehrerer mit OCR-Rauschen verbundener Mechanismen nicht in den Retrieval-Ergebnissen erscheinen.
Szenario 1: Schlüsselwort verfälscht – Suche stimmt nicht überein
Anfrage: „Welche Haftung für die Verletzung von Fristen?“
Chunk in der Datenbank: „...Haftung für die Verletzung von Fristen – eine Strafe von 0,1 % für jeden Tag...“
Selbst wenn das Embedding-Modell verfälschte Wörter über Subword-Tokens teilweise „versteht“ – die Kosinus-Ähnlichkeit zwischen dem Anfragevektor und dem Chunk-Vektor wird niedriger sein als ideal. Wenn Ihr Index 50 andere Chunks über „Haftung“ mit sauberem Text enthält – wird der verfälschte Chunk unter dem Schwellenwert landen und nicht in die Top-k gelangen.
Szenario 2: Chunk durch Müll zu Irrelevanz „verdünnt“
Chunk A (reiner Text)
Chunk B (mit OCR-Rauschen)
„Die Frist für die Erfüllung der Verpflichtungen beträgt 30 Kalendertage ab Unterzeichnung des Abnahmeprotokolls.“
„Frist der Erfüllung|||von Verpflichtungen – 30 Kalen-dertage ab Unterzeich-nung des Abnahmeprotokolls..;;..“
Chunk B enthält dieselbe Information, aber: „ЗО“ statt „30“ (Kyrillisch statt Ziffer), ein zusammengewachsener Zeilenumbruch „змо-менту“, Müll „..;;..“ am Ende. Sein Vektor unterscheidet sich vom Vektor von Chunk A. Die Anfrage „Frist der Erfüllung 30 Tage“ wird besser mit A als mit B übereinstimmen – obwohl beide denselben Inhalt tragen.
Szenario 3: Das richtige Dokument ist vorhanden, aber nicht in den Top-k
Das gefährlichste Szenario. Ein relevanter Chunk existiert im Index – aber aufgrund eines verschobenen Vektors befindet er sich auf Position 8 oder 12, nicht in den Top-5. Die LLM erhält 5 weniger relevante Chunks und antwortet entweder auf Basis unvollständiger Informationen oder halluziniert.
Dabei sehen die Logs korrekt aus: Das Retrieval hat k Ergebnisse zurückgegeben, die LLM hat eine Antwort generiert. Es gibt kein Signal für das Problem – nur eine falsche Antwort.
Szenario 4: False-Positive-Retrieval – Müll mit hoher Ähnlichkeit
Das Gegenteil: Ein Müll-Chunk von einer umgedrehten Seite gelangt aufgrund zufälliger Token-Übereinstimmungen in die Top-k. Die LLM erhält einen unlesbaren Kontext und ignoriert ihn entweder (gutes Szenario) oder versucht, eine Antwort auf Basis des Mülls zu erstellen (schlechtes Szenario).
Recall und Precision in RAG nach schlechtem OCR: Metriken und Beispiele
Zur Bewertung der Retrieval-Qualität werden zwei grundlegende Metriken verwendet:
Recall@k – der Anteil relevanter Dokumente, die in die Top-k-Ergebnisse gelangt sind. Wenn es 3 relevante Chunks gibt und alle 3 in den Top-5 sind, ist Recall@5 = 1.0.
Precision@k – der Anteil relevanter unter den zurückgegebenen. Wenn in den Top-5 2 relevante und 3 irrelevante sind, ist Precision@5 = 0.4.
Wie OCR-Rauschen diese Metriken beeinflusst
OCR-Zustand
Typischer Recall@5
Typische Precision@5
Hauptgrund für die Verschlechterung
Reiner Text (textbasierter PDF)
0.80–0.92
0.65–0.80
Grundniveau; Verschlechterung durch Anfragekomplexität
Hochwertiges OCR (300+ DPI, CER <1%)
0.72–0.85
0.60–0.75
Minimale OCR-Artefakte; geringer Vektor-Drift
Mittleres OCR (150–300 DPI, CER 2–5%)
0.50–0.70
0.40–0.60
Systematische zusammengewachsene Wörter und Zeichenersetzungen; häufige OOV
Schlechtes OCR (gedreht, niedrige DPI)
0.15–0.40
0.15–0.35
Massiver Müll in Vektoren; False Positives und False Negatives
Gemischtes Archiv (Anwaltsfall)
~0.17 (17 % der Antworten)
Unvorhersehbar
Die meisten Seiten – gedrehte Scans; 5–6 von 21 normal indiziert
Beispielmessung: Test mit realen Fragen
Eine praktische Methode zur Messung des Einflusses von OCR auf den Recall ist die Vorbereitung eines Satzes von Fragen, deren Antworten Sie genau kennen, und die Überprüfung, ob die benötigten Chunks im Retrieval erscheinen.
Frage
Erwarteter Chunk
Vor der Nachbearbeitung (in Top-5 enthalten?)
Nach der Nachbearbeitung (in Top-5 enthalten?)
Welche Haftung besteht für Zahlungsverzug?
Abs. 8.3 des Vertrags
Nein (Chunk auf Position 9)
Ja (Position 2)
Was ist der Gesamtpreis der Arbeiten?
Abs. 3.1 des Vertrags
Nein (Zahl „З8400“ stimmt nicht überein)
Ja (nach Korrektur von „З8400“ → „38400“)
Wer ist für die technische Überwachung verantwortlich?
Abs. 5.2 des Vertrags
Ja (Text ist sauber)
Ja
Wie lange ist die Garantie für die Arbeiten?
Abs. 9.1 des Vertrags
Nein (Seite gedreht, Müll)
Ja (nach Vision OCR)
20–30 solcher Fragen auf einer repräsentativen Stichprobe des Archivs liefern ein weitaus genaueres Bild als jeder synthetische Benchmark.
Praktische Verbesserungsmethoden: Vorverarbeitung, Nachbearbeitung, Auswahl der OCR-Engine
Im Folgenden sind konkrete Aktionen aufgeführt, die einen messbaren Effekt haben. Unterteilt nach Einflussstufen.
Stufe 1: Bildvorverarbeitung (vor OCR)
Operation
Wann anzuwenden
Auswirkung auf CER
Werkzeuge
Automatische Ausrichtungskorrektur
Immer für gescannte PDFs
Kritisch – ohne dies ergeben umgedrehte Seiten 0 % Genauigkeit
Tesseract OSD, PyMuPDF + Heuristiken, GPT-4o-mini
Schräglagenkorrektur (Deskewing)
Wenn Scans von einem manuellen Scanner stammen
Reduziert CER um 1–3 % bei Schräglage >2°
OpenCV, Pillow, deskew library
Rauschunterdrückung (Denoising)
Alte oder schlecht gescannte Dokumente
Reduziert die Anzahl von Phantomzeichen
OpenCV fastNlMeansDenoising, Pillow filter
Binarisierung (Schwarz-Weiß-Konvertierung)
Dokumente mit ungleichmäßigem Hintergrund
Verbessert den Textkontrast; reduziert CER bei schwachen Scans
Adaptive Schwelle (OpenCV), Sauvola-Methode
Erhöhung der DPI
Wenn das Original <200 DPI hat
Erhöhung auf 300 DPI durch Upscaling reduziert CER
Pillow resize + Lanczos, OpenCV
Randerkennung und Zuschneiden
Wenn Scans breite leere Ränder oder Rahmen haben
Reduziert die Anzahl von Phantomzeichen von den Blattkanten
OpenCV Kontur-Erkennung
Stufe 2: Textnachbearbeitung (nach OCR, vor Chunking)
Dies ist die effektivste und am meisten unterschätzte Stufe. Die Nachbearbeitung ist günstiger als ein erneuter OCR-Lauf und hat einen messbaren Effekt auf das Retrieval.
Operation
Was wird korrigiert
Implementierungskomplexität
Entfernen von Müllzeilen
Zeilen ohne Buchstaben oder mit >60 % Sonderzeichen (Artefakte von Rauschen und Drehungen)
Niedrig – Regex oder Verhältnisprüfung
Leerzeichen-Normalisierung
Doppelte Leerzeichen, Tabulatoren, nicht umbrechbare Leerzeichen von OCR
Tesseract/PaddleOCR mit paralleler Verarbeitung; Vision nur für problematische
Kleines Archiv (< 5.000 Seiten), Qualität wichtiger als Kosten
GPT-4o-mini oder Azure Document Intelligence für das gesamte Archiv
Wann OCR nicht ausreicht und ein Vision-Ansatz benötigt wird
Selbst eine perfekt konfigurierte OCR-Pipeline hat systemische Einschränkungen. Es gibt eine Klasse von Dokumenten, bei denen keine Vorverarbeitungsverbesserung ein zufriedenstellendes Ergebnis für RAG liefert.
Dokumenttyp
Problem mit OCR
Was der Vision-Ansatz leistet
Komplexe Tabellen mit verbundenen Zellen
OCR gibt linearen Text zurück, ohne die Verbindung zwischen den Zellen zu erhalten
VLM versteht räumliche Beziehungen; gibt eine strukturierte Tabelle zurück (Markdown/JSON)
Mehrspaltiges Layout
OCR liest Spalten als einen einzigen Textstrom; Sätze aus verschiedenen Spalten vermischen sich
VLM identifiziert Spalten korrekt und liest jede separat
Handschriftlicher Text und handausgefüllte Formulare
CER von 3–5 % selbst bei den besten OCR-Modellen; einzigartige Handschriften ergeben eine noch schlechtere Genauigkeit
Große VLMs können mit nicht standardmäßigen Handschriften besser umgehen; erfordert dennoch Verifizierung
Dokumente mit Diagrammen, Zeichnungen, Infografiken
OCR liest keine grafischen Inhalte – gibt leere Ergebnisse oder Randartefakte zurück
VLM kann ein Diagramm beschreiben, Zahlen aus einem Diagramm extrahieren, Elemente identifizieren
Sehr niedrige DPI oder stark beschädigtes Dokument
Vorverarbeitung hilft nicht – die ursprüngliche Pixelqualität ist zu gering
VLM kommt manchmal besser zurecht, dank breiterem kontextbezogenen Verständnis
Umgedrehte Scans (ohne automatische Korrektur)
OCR ohne OSD-Korrektur gibt Müll oder ein leeres Ergebnis zurück
VLM erkennt die Ausrichtung und liest korrekt ohne vorherige Korrektur
Hybride Pipeline: Praktische Architektur
Die optimale Strategie für die meisten realen Archive ist nicht „OCR oder Vision“, sondern Routing:
Dieser Ansatz ermöglicht die Verarbeitung von 80–90 % der Dokumente über eine kostengünstige, selbst gehostete OCR und leitet nur problematische Seiten an Vision OCR weiter. Die Kosten für Vision OCR sinken bei dieser Strategie um das 5- bis 10-fache im Vergleich zu einem vollständigen Übergang.
Was Vision OCR nicht löst
Der Vision-Ansatz ist keine universelle Lösung. Einschränkungen:
Kosten bei großen Volumina: 100.000 Seiten über GPT-4o-mini – ca. 1.500–3.000 $.
Latenz: API-Aufrufe dauern 2–10 Sekunden pro Seite. Für Echtzeitsysteme inakzeptabel.
Rate Limits: Ohne Enterprise-Zugang ist die parallele Verarbeitung eines großen Archivs eingeschränkt.
DSGVO: Dokumente werden an einen externen Anbieter gesendet. Erfordert DPA und kann durch Compliance-Richtlinien blockiert werden.
VLM-Halluzinationen: Bei stark beschädigten Dokumenten kann VLM nicht lesbaren Inhalt „erfinden“. Erfordert Validierung.
Meiner Meinung nach ist OCR einer der wichtigsten Schritte in einer RAG-Pipeline. Der Text, der nach der Dokumentenerkennung erhalten wird, wird zur Erstellung von Embeddings verwendet. Wenn OCR Fehler macht, gelangen diese in die Vektorrepräsentation der Daten und können die Qualität der semantischen Suche verschlechtern.
Kann RAG ohne OCR funktionieren?
Ja, aber es hängt vom Dokumententyp ab. Wenn ich mit digitalen PDFs arbeite, bei denen der Text bereits maschinenlesbar ist, ist OCR nicht erforderlich. Für gescannte Dokumente, Fotos oder Textbilder ist es praktisch unmöglich, ohne OCR oder Vision-Modelle ein qualitativ hochwertiges Ergebnis zu erzielen.
Was ist wichtiger: OCR oder LLM?
Ich glaube, dass für dokumentenorientierte RAG-Systeme eine qualitativ hochwertige OCR oft wichtiger ist als die Wahl einer bestimmten LLM. Selbst das modernste Sprachmodell kann keine korrekte Antwort auf eine Frage geben, wenn die benötigten Informationen bereits bei der Dokumentenerkennung verloren gegangen oder verzerrt wurden.
Welche OCR ist am besten für RAG geeignet?
Es hängt alles vom Dokumententyp und dem Budget ab. Für viele Projekte reichen Tesseract oder PaddleOCR aus. Wenn eine hohe Qualität bei der Arbeit mit Tabellen, komplexen Layouts und Unternehmensdokumenten erforderlich ist, empfehle ich die Betrachtung von Google Document AI, AWS Textract, Docling oder modernen Vision-Ansätzen.
Wird OCR für digitale PDFs benötigt?
In den meisten Fällen nein. Wenn das PDF bereits eine Textschicht enthält, versuche ich, den Text direkt ohne OCR zu extrahieren. Das ist schneller, günstiger und liefert in der Regel eine höhere Genauigkeit. OCR ist nur für gescannte PDFs oder Dokumente sinnvoll, bei denen die Textschicht fehlt oder beschädigt ist.
Schlussfolgerungen
Die Verschlechterung von RAG durch schlechte OCR ist kein Problem des Modells. Es ist ein technisches Problem der Eingabedaten, das konkrete Korrekturpunkte hat.
Wo genau bricht die Pipeline – und was ist dagegen zu tun
Wo es bricht
Symptom
Korrektur
Vorverarbeitung übersprungen
Umgedrehte Seiten ergeben 0 % OCR-Genauigkeit
Automatische Ausrichtungskorrektur (OSD oder Heuristik) vor OCR
OCR ohne Nachbearbeitung
Zusammengeklebte Wörter, Müllzeilen, falsche Zeilenumbrüche gehen ins Chunking
Leerzeichen-Normalisierung, Zusammenfügen von Zeilenumbrüchen, Entfernen von Müll – immer
Chunking auf schmutzigem Text
Inkorrekte Chunk-Grenzen, gemischter Kontext
Nachbearbeitung vor Chunking – nicht danach
OOV-Tokens in Embeddings
Vektoren sind verschoben; Cosinus-Ähnlichkeit liegt unter dem Schwellenwert
Korrektur von zusammengeklebten Wörtern und Zeichenersetzungen vor dem Embedding
Müll in der Vektordatenbank
False Positives beim Retrieval; LLM erhält nicht lesbaren Kontext
Garbage Detector vor der Indizierung; Weiterleitung an Vision OCR
Fehlende Qualitätsüberwachung
Das System gibt „still“ falsche Antworten ohne Signale zurück
Testdatensatz mit 20–30 Fragen; Messung von Recall@5 auf einer repräsentativen Stichprobe
Priorisierte Reihenfolge der Maßnahmen
Wenn Sie jetzt RAG auf gescannten Dokumenten starten oder optimieren – hier ist die Reihenfolge mit dem größten ROI:
Archiv-Audit – welcher Anteil sind Scans? Gibt es umgedrehte Seiten? Was ist die typische Qualität?
Ausrichtungskorrektur hinzufügen – auch wenn die meisten Seiten normal sind, kostet eine umgedrehte Seite in einem kritischen Dokument viel.
Basis-Nachbearbeitung hinzufügen – Leerzeichen-Normalisierung, Zusammenfügen von Zeilenumbrüchen, Entfernen von Müllzeilen. Lässt sich in wenigen Stunden implementieren, hat einen messbaren Effekt auf das Retrieval.
Testdatensatz mit Fragen erstellen – 20–30 Fragen mit bekannten Antworten. Messen Sie Recall@5 vor und nach jeder Änderung.
Garbage Detector hinzufügen und Weiterleitung an Vision OCR für problematische Seiten.
Erst danach – Chunking-Parameter, Embedding-Modelle, Reranker optimieren.
Schritte 1–3 bringen mehr Effekt als die Änderung eines Embedding-Modells von 1536 auf 3072 Dimensionen. Aber die meisten Teams beginnen mit Schritt 6 – und wundern sich, warum sich das Ergebnis nicht verbessert.