Einführung in die optische Zeichenerkennung [OCR] für Anfänger
Veröffentlicht: 2021-02-08OCR oder optische Zeichenerkennung (OCR) wird verwendet, um Informationen aus Bildern von Rechnungen und Quittungen oder allem, was geschriebenen Inhalt hat, zu extrahieren. Um diese Lösung zu entwickeln, kann OpenCV verwendet werden, um die Bilder zu verarbeiten, die weiter in eine Tesseract-OCR-Engine eingespeist werden können, die den Text aus diesen Bildern extrahieren kann.
Der Textentfernungsprozess kann jedoch nur dann effizient sein, wenn das Bild klar und die Texte gut sichtbar sind. In Einzelhandelsanwendungen zum Extrahieren von Texten aus Rechnungen kann die Rechnung mit Wasserzeichen überschwemmt sein, oder es kann einen Schatten auf der Rechnung geben, der die Erfassung der Informationen behindert.
Das Erfassen von Informationen aus längeren Textseiten kann ebenfalls eine mühsame Aufgabe sein. Um diese Probleme anzugehen, ist es ratsam, dass es in der Informationsextraktionspipeline eine Stelle aus dem Bildverarbeitungsmodul gibt, die sich mit den oben genannten Schwierigkeiten befasst.
Es umfasst mehrere Teilprozesse, dh die Lokalisierung von Texten, die Zeichensegmentierung und die Erkennung dieser Zeichen. Obwohl nur wenige Systeme ohne Segmentierung auskommen. Solche Verfahren werden unter Verwendung mehrerer Prozeduren erzeugt, wie z. B. das Anwenden der Methode der kleinsten Quadrate, um die Fehlerrate zu reduzieren, und unterstützen Vektormaschinen, um die Zeichen abzugleichen.
Dennoch werden häufig Convolutional Neural Networks (CNN) eingesetzt, um die Belegung einer Figur in einem Bild zu identifizieren. Texte können als eine konsistente Folge von Zeichen betrachtet werden. Das Erkennen und Identifizieren dieser Zeichen mit größerer Genauigkeit ist eine Schwierigkeit, die durch die Verwendung eines speziellen Typs von neuronalen Netzwerken, nämlich rekurrenten neuronalen Netzwerken (RNNs) und Long Short Term Memory (LSTM), gelöst werden kann.
Wörter werden gesammelt, indem Texte in Blobs angepasst werden. Diese Zeilen und Bereiche werden außerdem auf äquivalenten Text untersucht. Textzeilen werden nur nach der Art des Abstands zwischen ihnen in Wörter unterteilt. Das Identifizierungsverfahren ist in zwei Schritte unterteilt. Zuerst wird jedes Wort identifiziert. Jedes perfekte oder richtig erkannte Wort wird zusätzlich als Trainingsdaten an einen adaptiven Klassifikator übergeben.
Das als Eingabe empfangene Bild wird in Teilen untersucht und verarbeitet. Der Text wird zeilenweise in das LSTM-Modell eingespeist. Tesseract, eine optische Zeichenerkennungsmaschine, ist für verschiedene Betriebssysteme verfügbar. Es verwendet eine Kombination aus CNN- und LSTM-Architektur, um Texte aus Bilddaten präzise zu identifizieren und abzuleiten. Bilder mit Rauschen oder Schatten beeinträchtigen jedoch die Abrufgenauigkeit.
Um das Rauschen zu minimieren oder die Bildqualität zu verbessern, kann eine Vorverarbeitung des Bildes mit der OpenCV-Bibliothek durchgeführt werden. Solche Vorverarbeitungsschritte können das Auffinden des ROI oder des interessierenden Bereichs, das Zuschneiden des Bilds, das Entfernen von Rauschen (oder unerwünschten Bereichen), das Schwellwertverfahren, die Dilatation und Erosion, die Erkennung von Konturen oder Kanten umfassen. Nachdem diese Schritte abgeschlossen sind, können die OCR-Engines das Bild lesen und relevante Texte perfekt daraus extrahieren.
Inhaltsverzeichnis
Benutztes Werkzeug
1. OpenCV
OpenCV ist eine Bibliothek, die ursprünglich mit den Sprachen C/C++ und Python kompatibel ist. Es wird häufig zur Verarbeitung von Daten mit Bildproben verwendet. Eine Fülle von vordefinierten nützlichen Funktionen ist in der Bibliothek vorhanden, die notwendige Transformationen an den Bildmustern implementiert. Alle oben genannten Funktionen wie Dilatation, Erosion, Slicing, Kantenerkennung und viele mehr können mit dieser Bibliothek problemlos ausgeführt werden.
2. Tesseract OCR-Engine
Von Google veröffentlicht, ist es eine Open-Source-Bibliothek, die häufig für die Texterkennung verwendet wird. Es kann verwendet werden, um Texte in verschiedenen Sprachen zu erkennen und zu identifizieren. Die Verarbeitung ist ziemlich schnell und liefert fast sofort die Textausgabe eines Bildes. Viele Scananwendungen nutzen diese Bibliothek und verlassen sich auf ihre Extraktionstechniken.
Am Textextraktionsprozess beteiligte Schritte
(1) Zunächst werden mögliche Bildverarbeitungstechniken wie Konturerkennung, Rauschentfernung und Erosions- und Dilatationsfunktionen auf die eingehende verrauschte Bildprobe angewendet.
(2) Nach diesem Schritt werden Wasserzeichen und Schatten von der Rechnung entfernt.
(3) Weiterhin wird die Rechnung in Teile segmentiert.
(4) Die segmentierten Teile werden durch die Tesseract-OCR-Engine geleitet, um den vollständigen Text zu erhalten.
(5) Schließlich erhalten wir mit Regex alle wichtigen Informationen wie den Gesamtbetrag, das Kaufdatum und die Ausgaben pro Artikel.
Lassen Sie mich über ein bestimmtes Bild mit Texten sprechen – Rechnungen und Rechnungen. Sie haben normalerweise Wasserzeichen, die meisten von der Firma, die die Rechnungen ausstellt. Wie bereits erwähnt, sind diese Wasserzeichen Hindernisse für eine effiziente Textextraktion. Oft enthalten diese Wasserzeichen selbst den Text.
Diese können als Rauschen angesehen werden, da die Tesseract-Engine Texte jeder Größe in einer Zeile erkennt. Wie Wasserzeichen beeinträchtigen auch Schatten die Genauigkeit der Engine, um Texte effizient zu extrahieren. Schatten werden entfernt, indem der Kontrast und die Helligkeit des Bildes verbessert werden.
Bei Bildern mit Aufklebern oder Wasserzeichen wird ein mehrstufiger Prozess durchgeführt. Der Prozess umfasst das Umwandeln eines Bildes in Graustufen, das Anwenden morphologischer Transformationen, das Anwenden von Schwellenwerten (es kann eine binäre Inversion oder eine Otsu-Transformation sein), das Extrahieren dunklerer Pixel in der dunkleren Region und schließlich das Einfügen der dunkleren Pixel in die Wasserzeichenregion. Zurück zum Prozess der Schattenentfernung.
Zuerst wird eine Streckung auf das Graustufenbild angewendet. Darüber unterdrückt ein mittleres Blau mit entsprechendem Kern den Text. Das Ergebnis dieses Schritts ist ein Bild, das Teile von Schatten und alle anderen vorhandenen Verfärbungen enthält. Nun wird eine einfache Differenzoperation zwischen dem Originalbild und dem erhaltenen Bild berechnet. Schließlich erhalten wir nach dem Anwenden von Schwellenwerten ein Bild ohne Schatten.
Erkennung und Extraktion von Text
Ein Convolutional Neural Network-Modell kann auf dem in Bildern gefundenen eingeprägten Text erstellt und trainiert werden. Das Modell kann ferner zum Erkennen von Text aus anderen ähnlichen Bildern mit derselben Schriftart verwendet werden. Eine Tesseract-OCR-Engine wird verwendet, um Text aus den Bildern wiederherzustellen, die mit den Computer-Vision-Algorithmen verarbeitet wurden.
Für die optische Zeichenerkennung müssen wir eine Textlokalisierung durchführen, gefolgt von einer Zeichensegmentierung und dann einer Zeichenerkennung. Alle diese Schritte werden von Tesseract OCR ausgeführt. Die Tesseract OCR-Engine erweist sich als sehr genau, wenn sie auf gedrucktem Text und nicht auf handgeschriebenem Text verwendet wird.
Relevante Informationen erhalten
Wenn wir speziell über Rechnungen sprechen, können aus dem gesamten extrahierten Text wichtige Informationen wie das Kaufdatum, der Gesamtbetrag usw. mithilfe mehrerer regulärer Ausdrücke leicht abgerufen werden. Der Gesamtbetrag, der auf der Rechnung aufgedruckt ist, kann durch Anwendung regulärer Ausdrücke extrahiert werden, da er normalerweise am Ende der Rechnung erscheint. Viele dieser nützlichen Informationen können nach ihrem Datum gespeichert werden, sodass sie leicht zugänglich sind.
Genauigkeit
Die Genauigkeit für die Textsuche kann als das Verhältnis der korrekten Anzahl von Informationen, die von der Tesseract-OCR erhalten werden und die bereits in der Rechnung enthalten sind, zur kumulativen Anzahl von Wörtern definiert werden, die tatsächlich im Textbild vorhanden sind. Eine höhere Genauigkeit bedeutet eine höhere Effizienz der Vorverarbeitungstechniken und die Fähigkeit des Tesseract OCR, Informationen zu extrahieren.
Was als nächstes?
Wenn Sie mehr über maschinelles Lernen erfahren möchten, sehen Sie sich das PG-Diplom in maschinellem Lernen und KI von IIIT-B & upGrad an, das für Berufstätige konzipiert ist und mehr als 450 Stunden strenge Schulungen, mehr als 30 Fallstudien und Aufgaben bietet, IIIT- B-Alumni-Status, mehr als 5 praktische, praktische Abschlussprojekte und Jobunterstützung bei Top-Unternehmen.
Lernen Sie ML-Kurse von den besten Universitäten der Welt. Erwerben Sie Master-, Executive PGP- oder Advanced Certificate-Programme, um Ihre Karriere zu beschleunigen.