Optical Character Recognition (OCR)
Optische Zeichenerkennung (OCR) wandelt Text in Scans und Fotos in maschinenlesbare Zeichen um. Hier erfährst du mehr über die Erkennungs- und Lesestufen und findest Code.
Die optische Zeichenerkennung (OCR) wandelt Text in Bildern – etwa gescannten Seiten, Fotos, Bildschirmfotos und Videobildern – in maschinenlesbare Zeichen um, die sich mit Software durchsuchen, bearbeiten und analysieren lassen. Frühe Systeme glichen jedes Zeichen mit gespeicherten Vorlagen ab, die bekannte Schriftarten abbildeten. Moderne OCR nutzt Deep Learning, um Text überall in einem Bild zu finden und ganze Wörter und Zeilen auf einmal zu lesen. Dadurch lassen sich unterschiedliche Schriftarten, niedrige Auflösung, Perspektive und unruhige Hintergründe bewältigen. OCR umfasst sowohl Dokumenttext, etwa auf Rechnungen und in Büchern, als auch Szenentext, beispielsweise auf Schildern, Produktetiketten und Nummernschildern.
Funktionsweise von OCR#
Die meisten OCR-Systeme führen zwei Modelle nacheinander aus:
- Texterkennung: Ein Detektor findet Bildbereiche mit Text und gibt für jedes Wort oder jede Zeile eine Box oder ein Polygon aus. Detektoren für Szenentext wie EAST, CRAFT und DBNet sagen Textbereiche Pixel für Pixel voraus und können so auch mit gekrümmtem und gedrehtem Text umgehen.
- Texterkennung: Jeder Bereich wird zugeschnitten, begradigt und auf eine feste Höhe skaliert. Anschließend liest ein Erkennungsmodell die Zeichen. Die CRNN-Architektur verarbeitet den Ausschnitt zunächst mit einem CNN, liest die entstehenden Merkmalsvektoren anschließend mit einem bidirektionalen LSTM von links nach rechts und dekodiert sie mithilfe von Connectionist Temporal Classification (CTC). Dieses Verfahren ordnet die Vorhersagen für einzelne Spalten einer Zeichenfolge zu, ohne die Startposition jedes Zeichens zu annotieren. Transformer-Modelle wie Microsofts TrOCR erzeugen die Zeichen stattdessen mit einem Textdecoder.
Vorverarbeitung wie Binarisierung und Schräglagenkorrektur hilft bei schlechten Scans weiterhin. Bei der Nachverarbeitung wird die Ausgabe mit Wörterbüchern, erwarteten Formaten oder einem Sprachmodell abgeglichen. EasyOCR umfasst beide Stufen – einen CRAFT-Detektor und ein CRNN-Erkennungsmodell – für mehr als 80 Sprachen:
import easyocr
# Load EasyOCR's CRAFT text detector and English CRNN text recognizer
reader = easyocr.Reader(["en"])
# Detect every text region in the photo, then read the characters inside it
results = reader.readtext("https://ultralytics.com/images/bus.jpg")
# Each result holds a 4-corner box, the recognized string, and a confidence score
for box, text, confidence in results:
if confidence > 0.5:
print(f"{text}: {confidence:.2f}")Ausgegeben werden cero: 0.95 und emisiones: 0.99, die Wörter, die auf die Seite des Busses gemalt sind. Der Detektor findet außerdem das Punktmatrix-Zielschild des Busses und den Kleingedruckten auf seinen Fenstern. Das Erkennungsmodell gibt dafür jedoch unleserliche Zeichenfolgen mit Konfidenzwerten unter 0,5 zurück, weshalb sie durch den Schwellenwert verworfen werden.
Bei Dokumenten kommt vor der Erkennung ein Schritt zur Layoutanalyse hinzu. Ein Layoutmodell unterteilt die Seite in Blöcke, jeder Blocktyp wird gesondert verarbeitet, und die Ergebnisse werden in Leserichtung wieder zusammengesetzt. Dadurch wird ein Artikel mit zwei Spalten nacheinander spaltenweise gelesen:
Die Genauigkeit wird anhand der Zeichenfehlerrate (CER) und der Wortfehlerrate (WER) gemessen. Die CER gibt die Zahl der Zeichen an, die eingefügt, gelöscht oder ersetzt werden müssen, um die Ausgabe in den korrekten Text umzuwandeln, geteilt durch die Länge des korrekten Texts. Die WER wird genauso berechnet, aber auf Wortebene.
OCR-Engines und -Modelle#
Die Open-Source-Engine Tesseract entstand in den 1980er-Jahren bei Hewlett-Packard, wurde 2005 als Open Source veröffentlicht und von 2006 bis 2018 mit Unterstützung von Google weiterentwickelt. Version 4 ergänzte ein Erkennungsmodell auf Basis eines LSTM-Netzes. Cloud-Dienste wie Google Cloud Vision und Amazon Textract bieten zusätzlich die Extraktion von Layouts, Tabellen und Formularen. Vision-Language-Modelle lesen Dokumente zunehmend vollständig aus: olmOCR vom Allen Institute for AI wandelt PDF-Seiten mithilfe eines feinabgestimmten Vision-Language-Modells in sauberen Text um. OCR-freie Dokumentmodelle beantworten Fragen zu einer Seite, ohne zuvor ein separates Transkript zu erstellen.
OCR im Vergleich zu verwandten Begriffen#
- Handschrifterkennung: Auch als Erkennung handgeschriebener Texte (HTR) oder intelligente Zeichenerkennung (ICR) bezeichnet. Sie liest Handschriften, bei denen die Buchstabenformen viel stärker variieren als im Druck und die Zeichen oft miteinander verbunden sind.
- Objekterkennung: Ein Detektor kann ein Stoppschild als Objekt erkennen, während OCR die darauf gedruckten Buchstaben S-T-O-P liest. Die eigene Erkennungsstufe von OCR lokalisiert Text, ohne ihn zu lesen.
- Bildklassifizierung: Weist einem ganzen Bild eine Bezeichnung wie „Rechnung“ zu, während OCR die darin enthaltene Zeichenfolge ausliest.
- Intelligente Dokumentverarbeitung: Erweitert OCR um Layoutanalyse und Erkennung benannter Entitäten (NER), um bestimmte Felder wie Datum, Anbieter und Gesamtbetrag einer Rechnung in Geschäftssysteme zu übernehmen.
Anwendungen in der Praxis#
- Kennzeichenerkennung: Maut-, Park- und Verkehrsüberwachungssysteme erkennen jedes Kennzeichen und lesen es anschließend aus. Ein auf Kennzeichen-Boxen trainiertes YOLO26-Modell übernimmt die Erkennung. Die Variante mit rotierter Bounding Box passt gedrehte Boxen an schräg stehende Kennzeichen an, sodass jeder Ausschnitt vor der Erkennung begradigt werden kann.
- Digitalisierung von Dokumenten: Banken, Versicherungen und Behörden wandeln Formulare, Belege und Archive in durchsuchbaren Text um; Bibliotheken digitalisieren gedruckte Bücher in großem Umfang.
- Barrierefreiheit und Übersetzung: Bildschirmleseprogramme und Kamera-Übersetzungs-Apps lesen Schilder, Speisekarten und Beschriftungen vor oder blenden eine Übersetzung über das Livebild ein.
- Fertigung und Logistik: Kameras lesen Chargencodes, Verfallsdaten und Seriennummern an Fertigungslinien. Codes von Schiffscontainern entsprechen ISO 6346. Ihre 11 Zeichen enden mit einer Prüfziffer, die aus den ersten 10 Zeichen berechnet wird. So kann ein Lesegerät die meisten falsch gelesenen Codes automatisch zurückweisen.










