OCR – Was versteht man darunter?

OCR erklärt

OCR – kurz für Optical Character Recognition – ist eine Texterkennungs-Technologie. Mittels OCR ist es möglich, analogen Text in von Maschinen lesbare Zeichen umzuwandeln. Das kann beispielsweise sinnvoll sein, wenn man ein Dokument abfotografiert oder eingescannt hat und den Inhalt weiterverarbeiten möchte. 

Auch in der Industrie gibt es viele Fälle, bei denen OCR eingesetzt wird. Befindet sich beispielsweise eine Kennnummer auf einem Bauteil, kann diese mit Hilfe von OCR ausgelesen und zugeordnet werden. Für solche Fälle werden häufig Smart Cameras verwendet, die ein Foto des Bauteils mit der aufgedruckten Nummer schießen und direkt auswerten.

OCR Industrie

Aber wie funktioniert OCR?

Um an das Ziel – also die Zeichen auslesen – zu kommen, finden viele verschiedene Bildverarbeitungsprozesse statt. Nach Aufnahme des Bildes geschieht eine Binärisierung. Dazu wird in einem ersten Schritt mit Hilfe eines adaptiven Schwellwertverfahrens ein Schwellwert berechnet und jedem Grauwert ein eigener Schwellwert zugeteilt. Im Anschluss daran wird jedem Pixel, abhängig von einem errechneten Schwellwert, entweder der Maximalwert von 255 oder der Minimalwert von 0 zugewiesen. So entsteht ein binäres Schwarz-Weiß-Bild, welches noch nicht ausreichend für die OCR ist.

Denn um weiteres Rauschen zu eliminieren, wird nach der Binärisierung der Abbildung eine Analyse der Zusammenhangskomponenten mit anschließendem Entfernen von Komponenten unter einem manuell festgelegten Grenzwert durchgeführt. Ziel der Analyse ist, jedem Binärwert des Vordergrunds ein Label zuzuweisen. Dabei werden von jedem Pixel des Vordergrunds die vier direkt benachbarten, sowie die vier diagonal benachbarten Binärwerte, auch 8er-Nachbarschaft genannt, betrachtet. Gibt es ein Nachbarpixel, das bereits ein Label hat, wird dieses übernommen. Ansonsten wird ein neues Label erstellt und dem Binärwert zugeordnet.

Damit die Abbildung weiterhin für OCR optimiert werden kann, wird im letzten Schritt ein morphologisches Schließen durchgeführt. Dabei findet zuerst eine Dilatation des Binärbilds, gefolgt von einer Erosion statt. Beide Vorgänge basieren auf komplizierten mathematischen Formeln, welche zum Ziel haben, allen Pixeln des Bildes einen eindeutigen Wert zuzuweisen. Im Beispiel erkennen Sie die Auswirkung für die Texterkennung:

Analog zur Dilatation findet ebenfalls eine Translation über alle Punkte des Binärbilds statt. Konträr dazu werden bei einer Erosion der Ergebnispunktmenge ausschließlich Punkte in den Koordinaten der Verschiebung hinzugefügt, sobald die Schnittmenge des Vordergrunds das Strukturelement vollständig enthält. Das folgende Beispiel zeigt das Ergebnis der Erosion unter Verwendung verschiedener Radien 𝑟 des Strukturelements

Werden beide Verfahren sukzessive mit demselben Strukturelement angewandt, erhält man ein morphologisches Öffnen beziehungsweise Schließen. Zu beachten ist dabei, dass es stets zu einer Schließung der Hohlräume der Ziffern kommt, wobei ein zu hoch gewählter Radius zu unerwünschten Zusammenschlüssen mehrerer Ziffern führt.

Wie kommt es nun endlich zur Texterkennung?

Damit die einzelnen Ziffern schlussendlich identifiziert werden können, kommen, je nach Anwendungsfall, verschiedene Verfahren zum Einsatz. Zum einen kann die OCR-Software Tesseract verwendet werden. Diese wurde ursprünglich von Ray Smith bei HP Inc. entwickelt und ist mittlerweile Teil der Google LLC. Alternativ steht das von Yann LeCun entwickelte künstliche neuronale Netz, besser bekannt als Convolutional-Neural-Net (CNN), LeNet zur Verfügung.

Bei Anwendung von Tesseract findet im ersten Schritt eine Analyse der Zusammenhangskomponenten statt. Dabei wird die Kontur der einzelnen Komponenten gespeichert und in Gruppen zusammengefügt. Anschließend findet eine Polygon-Approximation statt, welche gerade Bereiche der Kontur eines Zeichens sucht und so eine Approximation des Zeichens in Form eines Polygons erstellt. Um den Trainingsaufwand zu minimieren, werden die Polygone daraufhin auf einheitliche Dimensionen normalisiert. Im nächsten Schritt werden Merkmalsvektoren auf Basis der Approximation erstellt, welche die Koordinaten eines Punkts auf dem Polygon und dessen Neigung enthalten. Hierbei bedeuten mehr Punkte eine höhere Genauigkeit. Die Klassifizierung findet anschließend über einen k-nächste-Nachbarn-Algorithmus statt. Das approximierte Polygon wird so mit den Merkmalsvektoren der Trainingsdaten, also dem System bekannten Zeichen, verglichen und entsprechend dem Zeichen mit maximaler Übereinstimmung klassifiziert.

Die Algorithmen arbeiten mittlerweile so gut, dass in den meisten Fällen eine 99%-ige Sicherheit gegeben werden kann, dass die Zeichen richtig ausgelesen werden.

Quellen:

Ohser, J. (2018). Angewandte Bildverarbeitung und Bildanalyse. München: Carl Hanser Verlag.

Smith, R. (2007). An Overview of the Tesseract OCR Engine. Ninth International Conference on Document Analysis and Recognition (ICDAR 2007), S. 629-633. doi:10.1109/ICDAR.2007.4376991

Werner, M. (2021). Digitale Bildverarbeitung. Fulda: Springer Vieweg.

Weitere Beiträge: