Einfache Handschrifterkennung mit Machine Learning PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Einfache Handschrifterkennung mit maschinellem Lernen

Einfache Handschrifterkennung mit maschinellem Lernen

Möchten Sie handschriftliche OCR durchführen? Dieser Blog gibt einen umfassenden Überblick über die neuesten Methoden der Handschrifterkennung mit Deep Learning. Wir haben die neuesten Forschungsergebnisse und Papiere überprüft und auch einen Handschriftenleser von Grund auf neu entwickelt.


Nanonetze OCR-API hat viele interessante Anwendungsfälle. Sprechen Sie mit einem Nanonets-KI-Experten, um mehr zu erfahren.


Einleitung

Die Marktgröße für optische Zeichenerkennung (OCR) wird bis 13.38 voraussichtlich 2025 Mrd. USD betragen, mit einem jährlichen Wachstum von 13.7 %. Dieses Wachstum wird durch die schnelle Digitalisierung von Geschäftsprozessen angetrieben, die OCR verwenden, um ihre Arbeitskosten zu senken und wertvolle Arbeitsstunden einzusparen. Obwohl OCR als gelöstes Problem angesehen wurde, gibt es eine Schlüsselkomponente davon, Handschrifterkennung (Handwriting OCR) oder Handschriftliche Texterkennung (HTR), die immer noch als herausfordernde Problemstellung angesehen wird. Die große Varianz der Handschriftstile zwischen den Menschen und die schlechte Qualität des handgeschriebenen Textes im Vergleich zu gedrucktem Text stellen erhebliche Hürden bei der Umwandlung in maschinenlesbaren Text dar. Dennoch ist es ein entscheidendes Problem, das es für mehrere Branchen wie Gesundheitswesen, Versicherungen und Banken zu lösen gilt.

Einfache Handschrifterkennung mit maschinellem Lernen
Quelle :- https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

Jüngste Fortschritte im Bereich Deep Learning, wie das Aufkommen von Transformatorarchitekturen, haben unsere Fortschritte bei der Erkennung handgeschriebener Texte beschleunigt. Das Erkennen von handgeschriebenem Text wird als Intelligent Character Recognition (ICR) bezeichnet, da die zur Lösung von ICR erforderlichen Algorithmen viel mehr Intelligenz benötigen als die Lösung von generischen OCR.

In diesem Artikel erfahren wir mehr über die Aufgabe der handschriftlichen Texterkennung, ihre Feinheiten und wie wir sie mit Deep-Learning-Techniken lösen können.


Möchten Sie Daten aus handschriftlichen Formularen extrahieren? Geh 'rüber zu Nanonetze und beginnen Sie kostenlos mit dem Erstellen von Handschrift-OCR-Modellen!


Herausforderungen bei der Handschrifterkennung

  1. Riesige Variabilität und Mehrdeutigkeit von Schlaganfällen von Person zu Person
  2. Der Handschriftstil einer einzelnen Person variiert ebenfalls von Zeit zu Zeit und ist inkonsistent
  3. Schlechte Qualität des Quelldokuments / -bilds aufgrund einer Verschlechterung im Laufe der Zeit
  4. Text in gedruckten Dokumenten wird in einer geraden Linie angezeigt, während Menschen keine Textzeile in einer geraden Linie auf weißes Papier schreiben müssen
  5. Kursive Handschrift macht die Trennung und Erkennung von Zeichen schwierig
  6. Text in Handschrift kann eine variable Drehung nach rechts haben, im Gegensatz zu gedrucktem Text, bei dem der gesamte Text gerade steht
  7. Das Sammeln eines gut beschrifteten Datensatzes zum Lernen ist im Vergleich zu synthetischen Daten nicht billig

Anwendungsszenarien

Gesundheitswesen und Pharmazeutika

Die Digitalisierung von Patientenrezepten ist ein Hauptschmerzpunkt in der Gesundheits- und Pharmaindustrie. Zum Beispiel verarbeitet Roche täglich Millionen von Petabyte an medizinischen PDFs. Ein weiterer Bereich, in dem die Erkennung von handschriftlichem Text einen entscheidenden Einfluss hat, ist die Patientenregistrierung und die Digitalisierung von Formularen. Durch Hinzufügen der Handschrifterkennung zu ihrem Toolkit können Krankenhäuser / Arzneimittel die Benutzererfahrung erheblich verbessern

Versicherungen

Eine große Versicherungsbranche erhält täglich mehr als 20 Millionen Dokumente, und eine Verzögerung bei der Bearbeitung des Schadens kann sich schrecklich auf das Unternehmen auswirken. Das Anspruchsdokument kann verschiedene Handschriftstile enthalten, und die reine manuelle Automatisierung der Bearbeitung von Ansprüchen wird die Pipeline vollständig verlangsamen

Einfache Handschrifterkennung mit maschinellem Lernen
Quelle: - https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

Bankinggg

Die Leute schreiben regelmäßig Schecks und Schecks spielen bei den meisten bargeldlosen Transaktionen immer noch eine wichtige Rolle. In vielen Entwicklungsländern erfordert das derzeitige Scheckverarbeitungsverfahren, dass ein Bankangestellter die auf einem Scheck enthaltenen Informationen liest und manuell eingibt sowie die Einträge wie Unterschrift und Datum überprüft. Da in einer Bank täglich eine große Anzahl von Schecks bearbeitet werden muss, kann ein Handschrifterkennungssystem Kosten und Stunden menschlicher Arbeit einsparen

Online-Bibliotheken

Durch das Hochladen der Bildscans für den Zugriff auf die ganze Welt wird eine enorme Menge an historischem Wissen digitalisiert. Dieser Aufwand ist jedoch erst dann sehr nützlich, wenn der Text in den Bildern identifiziert werden kann, der indiziert, abgefragt und durchsucht werden kann. Die Handschrifterkennung spielt eine Schlüsselrolle bei der Belebung der Dokumente, Postkarten, Forschungsstudien usw. des Mittelalters und des 20. Jahrhunderts.

Methoden

Handschrifterkennungsmethoden können grob in die folgenden zwei Typen eingeteilt werden

Einfache Handschrifterkennung mit maschinellem Lernen
  1. Online-Methoden : - Online-Methoden umfassen einen digitalen Stift / Stift und haben Zugriff auf die Strichinformationen und die Position des Stifts, während der Text wie in der rechten Abbildung oben dargestellt geschrieben wird. Da sie dazu neigen, viele Informationen über den Textfluss zu haben, können sie mit einer ziemlich hohen Genauigkeit klassifiziert werden, und die Abgrenzung zwischen verschiedenen Zeichen im Text wird viel klarer
  2. Offline-Methoden :- Offline-Methoden beinhalten das Erkennen von Text, sobald er niedergeschrieben ist, und haben daher keine Informationen zu den Strichen/Richtungen, die während des Schreibens mit einer möglichen Hinzufügung von Hintergrundgeräuschen von der Quelle, dh Papier, involviert sind.

In der realen Welt ist es nicht immer möglich/skalierbar, einen digitalen Stift mit Sensoren zu tragen, um Strichinformationen zu erfassen, und daher ist die Aufgabe, Text offline zu erkennen, ein viel relevanteres Problem. Daher werden wir nun verschiedene Techniken diskutieren, um das Problem des Erkennens von Offline-Text zu lösen.

Techniken

Die ersten Ansätze zur Lösung der Handschrifterkennung umfassten Methoden des maschinellen Lernens wie Hidden Markov Models (HMM), SVM usw. Sobald der ursprüngliche Text vorverarbeitet ist, wird eine Merkmalsextraktion durchgeführt, um Schlüsselinformationen wie Schleifen, Wendepunkte, Seitenverhältnis usw. zu identifizieren. von individuellem Charakter. Diese generierten Merkmale werden nun einem Klassifikator, beispielsweise HMM, zugeführt, um die Ergebnisse zu erhalten. Die Leistung von Modellen für maschinelles Lernen ist aufgrund der manuellen Merkmalsextraktionsphase und ihrer begrenzten Lernkapazität ziemlich begrenzt. Der Merkmalsextraktionsschritt variiert für jede einzelne Sprache und ist daher nicht skalierbar. Mit dem Aufkommen von Deep Learning kam es zu enormen Verbesserungen in der Genauigkeit der Handschrifterkennung. Lassen Sie uns einige der herausragenden Forschungen im Bereich Deep Learning für die Handschrifterkennung diskutieren

Mehrdimensionale wiederkehrende neuronale Netze

Wie wir wissen, kann RNN/LSTM mit sequentiellen Daten umgehen, um zeitliche Muster zu identifizieren und Ergebnisse zu generieren. Sie sind jedoch auf den Umgang mit 1D-Daten beschränkt und daher nicht direkt auf Bilddaten anwendbar. Um dieses Problem zu lösen, schlugen die Autoren in diesem Artikel eine mehrdimensionale RNN/LSTM-Struktur vor, wie in der folgenden Abbildung zu sehen ist

Einfache Handschrifterkennung mit maschinellem Lernen

Das Folgende ist der Unterschied zwischen einem allgemeinen RNN und einem mehrdimensionalen RNN. In einer allgemeinen RNN sagt die verborgene Schicht, dass ich in der Zeit i-1 einen Zustand von einer vorherigen verborgenen Schicht empfange. In einer mehrdimensionalen RNN, beispielsweise einer zweidimensionalen RNN, empfängt die verborgene Schicht (i, j) Zustände von mehreren vorhergehenden verborgenen Schichten, dh (i-2, j) und (i, j-1), und erfasst somit den Kontext von beiden Höhe und Breite in einem Bild, die für ein klares Verständnis der lokalen Region durch ein Netzwerk von entscheidender Bedeutung sind. Dies wird weiter erweitert, um Informationen nicht nur von vorherigen Schichten, sondern auch von zukünftigen Schichten zu erhalten, ähnlich wie ein BI-LSTM Informationen von t-1 und t + 1 empfängt. In ähnlicher Weise kann eine verborgene 1D-MDRNN-Schicht i jetzt Informationen (i-2, j), (i, j-1), (i + 1, j), (i, j + 1) empfangen, wodurch der Kontext in alle Richtungen erfasst wird

Einfache Handschrifterkennung mit maschinellem Lernen

Die gesamte Netzwerkstruktur ist oben dargestellt. Es wird MDLSTM verwendet, das nichts anderes ist, als den RNN-Block durch einen LSTM-Block aus der obigen Diskussion von MDRNN zu ersetzen. Die Eingabe ist in Blöcke der Größe 3 × 4 unterteilt, die nun in MDSTM-Schichten eingespeist werden. Das Netzwerk hat eine hierarchische Struktur von MDLSTM-Schichten, gefolgt von ANN-Schichten (Feed-Forward) im Tandem. Dann wird die endgültige Ausgabe in einen 1D-Vektor umgewandelt und der CTC-Funktion übergeben, um eine Ausgabe zu erzeugen

Connectionist Temporal Classification (CTC) ist ein Algorithmus, der verwendet wird, um Aufgaben wie Spracherkennung, Handschrifterkennung usw. zu bewältigen, bei denen nur die Eingabedaten und die Ausgabetranskription verfügbar sind, aber keine Ausrichtungsdetails bereitgestellt werden, z. B. wie ein bestimmter Bereich in Audio für Sprache oder ein bestimmter Bereich in Bildern für Handschrift ist auf einen bestimmten Charakter ausgerichtet. Einfache Heuristiken, wie z. B. jedem Zeichen den gleichen Bereich zuzuweisen, funktionieren nicht, da der Platz, den jedes Zeichen in der Handschrift einnimmt, von Person zu Person und von Zeit zu Zeit unterschiedlich ist.

Betrachten Sie für unseren Anwendungsfall der Handschrifterkennung die Eingabebildbereiche für einen bestimmten Satz als Eingabe X=[x1,x2,…,x ** T.] während erwartete Ausgabe als Y=[y1,y2,…,y ** U.] . Bei gegebenem X sollen wir genaues Y finden. Der CTC-Algorithmus funktioniert, indem er die Eingabe X nimmt und eine Verteilung über alle möglichen Y's angibt, mit deren Hilfe wir eine Vorhersage für die endgültige Ausgabe treffen können.

CTC verwendet beispielsweise ein Basiszeichen, um zwischen doppelten Zeichen und wiederholten Zeichen in einem Eingabebereich zu unterscheiden. Beispielsweise kann ein bestimmtes Zeichen mehrere Eingabebereiche umfassen, und somit würde CTC dasselbe Zeichen nacheinander ausgeben. Beispiel:- Input james und Output von CTC ist jjaammmees. Die endgültige Ausgabe wird durch Zusammenfassen der wiederholten Ausgaben abgeleitet, und daher erhalten wir james. Aber jetzt, um doppelte Zeichen zu präsentieren, sagen Sie 'l' in hallo, müssen wir eine Trennung an Ort und Stelle haben und daher werden alle Ausgaben durch Bindestrich (-) getrennt. Jetzt könnte die Ausgabe für hallo h-ee-ll-lll-oo sein, was, wenn es reduziert wird, zu hello und nicht zu helo wird. Weitere Informationen zur Funktionsweise von CTC finden Sie hier CTC.

Beim Dekodieren der Ausgabe von CTC basierend auf der einfachen Heuristik der höchsten Wahrscheinlichkeit für jede Position erhalten wir möglicherweise Ergebnisse, die in der realen Welt möglicherweise keinen Sinn ergeben. Um dies zu lösen, könnten wir einen anderen Decoder verwenden, um die Ergebnisse zu verbessern. Lassen Sie uns verschiedene Arten von Decodierungen diskutieren

  1. Best-Path-Decodierung : - Dies ist die generische Dekodierung, die wir bisher besprochen haben. An jeder Position nehmen wir die Ausgabe des Modells und finden das Ergebnis mit der höchsten Wahrscheinlichkeit.
  2. Strahlensuchdecodierung : - Anstatt jedes Mal eine einzelne Ausgabe aus dem Netzwerk zu entnehmen, schlägt die Strahlensuche vor, mehrere Ausgabepfade mit den höchsten Wahrscheinlichkeiten beizubehalten und die Kette mit neuen Ausgaben zu erweitern und Pfade mit geringeren Wahrscheinlichkeiten zu löschen, um die Strahlgröße konstant zu halten. Die durch diesen Ansatz erzielten Ergebnisse sind genauer als die Verwendung des gierigen Ansatzes
  3. Strahlensuche mit Sprachmodell :- Die Strahlsuche liefert genauere Ergebnisse als die Rastersuche, löst aber dennoch nicht das Problem aussagekräftiger Ergebnisse. Um dies zu lösen, können wir ein Sprachmodell zusammen mit einer Strahlsuche verwenden, wobei sowohl Wahrscheinlichkeiten aus dem Modell als auch aus dem Sprachmodell verwendet werden, um Endergebnisse zu generieren.

Weitere Details zum Generieren genauer Decodierungsergebnisse finden Sie hier Artikel

Encoder-Decoder- und Aufmerksamkeitsnetzwerke

Seq2Seq-Modelle mit Encoder-Decoder-Netzwerken sind in letzter Zeit beliebt, um die Aufgaben der Spracherkennung, maschinellen Übersetzung usw. zu lösen, und wurden daher erweitert, um den Anwendungsfall der Handschrifterkennung durch Einsatz eines zusätzlichen Aufmerksamkeitsmechanismus zu lösen. Lassen Sie uns einige wegweisende Forschungen auf diesem Gebiet diskutieren

Scannen, teilnehmen und lesen

In dieser wegweisenden Arbeit Scan, Attend and Read (SAR) schlagen die Autoren die Verwendung eines aufmerksamkeitsbasierten Modells für die End-to-End-Handschrifterkennung vor. Der Hauptbeitrag der Forschung ist die automatische Transkription von Text ohne Segmentierung in Zeilen als Vorverarbeitungsschritt und kann somit eine ganze Seite scannen und Ergebnisse liefern.

Einfache Handschrifterkennung mit maschinellem Lernen

SAR verwendet eine MDLSTM-basierte Architektur ähnlich der oben diskutierten mit einer kleinen Änderung in der letzten Schicht. Nach der letzten linearen Ebene, dh dem letzten Summenblock in der obigen Abbildung, werden die Feature-Maps in der vertikalen Dimension reduziert und eine endgültige Softmax-Funktion angewendet, um die Ausgaben zu erhalten.

Einfache Handschrifterkennung mit maschinellem Lernen

Die SAR-Architektur besteht aus einer MDLSTM-Architektur, die als Feature-Extraktor fungiert. Das endgültige kollabierende Modul mit einem Softmax-Ausgang und CTC-Verlust wird durch ein Aufmerksamkeitsmodul und einen LSTM-Decoder ersetzt. Das verwendete Aufmerksamkeitsmodell ist eine hybride Kombination aus inhaltsbasierter Aufmerksamkeit und ortsbezogener Aufmerksamkeit, die im nächsten Artikel ausführlicher erläutert wird. Die Decoder-LSTM-Module verwenden den vorherigen Zustand, die vorherige Aufmerksamkeitskarte und die Codierermerkmale, um das endgültige Ausgabezeichen und den Zustandsvektor für die nächste Vorhersage zu erzeugen.

Falten, teilnehmen und buchstabieren

In diesem Artikel wird ein auf Aufmerksamkeit basierendes Sequenz-zu-Sequenz-Modell für die Erkennung handgeschriebener Wörter vorgeschlagen. Die vorgeschlagene Architektur besteht aus drei Hauptteilen: einem Codierer, der aus einem CNN und einer bidirektionalen GRU besteht, einem Aufmerksamkeitsmechanismus, der sich auf die relevanten Merkmale konzentriert, und einem Decodierer, der aus einer einseitigen GRU besteht und das entsprechende Wort buchstabieren kann. Zeichen für Zeichen.

Einfache Handschrifterkennung mit maschinellem Lernen

Der Encoder verwendet ein CNN, um visuelle Merkmale zu extrahieren. Als Merkmalsextraktor wird eine vortrainierte VGG-19-BN-Architektur verwendet. Das Eingabebild wird in eine Merkmalskarte X umgewandelt, die dann in X' umgeformt wird, indem alle Kanäle spaltenweise aufgeteilt und kombiniert werden, um die sequentiellen Informationen zu erhalten. X' wird weiter in H umgewandelt, indem eine bidirektionale GRU verwendet wird. GRU ist ein neuronales Netzwerk ähnlich LSTM und kann zeitliche Informationen erfassen.

Ferner wird ein Aufmerksamkeitsmodell verwendet, während die Ausgabe vom Decoder vorhergesagt wird. Das Papier diskutiert zwei verschiedene Arten von Aufmerksamkeitsmechanismen, die untersucht werden.

  1. Inhaltsbasierte Aufmerksamkeit : - Die Idee dahinter ist, die Ähnlichkeit zwischen dem aktuellen verborgenen Zustand des Decoders und der Feature-Map des Encoders zu finden. Die am meisten korrelierten Merkmalsvektoren finden wir in der Merkmalskarte des Codierers, mit der das aktuelle Zeichen zum aktuellen Zeitschritt vorhergesagt werden kann. Weitere Details zur Funktionsweise des Aufmerksamkeitsmechanismus finden Sie hier Aufmerksamkeit
  2. Standortbezogene Aufmerksamkeit :- Der Hauptnachteil inhaltsbasierter Ortungsmechanismen besteht darin, dass implizit davon ausgegangen wird, dass die Ortungsinformationen in die Ausgabe des Encoders eingebettet sind. Andernfalls besteht keine Möglichkeit, wiederholte Zeichenausgaben des Decoders zu unterscheiden. Stellen Sie sich zum Beispiel ein Wort Glumanda vor, das Zeichen a wird darin zweimal wiederholt und ohne Ortsinformationen kann der Decoder sie nicht als separate Zeichen vorhersagen. Um dies abzumildern, wird das aktuelle Zeichen und seine Ausrichtung vorhergesagt, indem sowohl die Codiererausgabe als auch die vorherige Ausrichtung verwendet werden. Weitere Details zur Funktionsweise der standortbasierten Teilnahme finden Sie hier hier.

Der Decoder ist eine einseitige mehrschichtige GRU. Zu jedem Zeitschritt t erhält es eine Eingabe vom vorherigen Zeitschritt und den Kontextvektor vom Aufmerksamkeitsmodul. Multinomiale Dekodierung und Etikettenglättung werden im Training untersucht, um die Generalisierungsfähigkeit zu verbessern.

Transformatormodelle

Obwohl Encoder-Decoder-Netzwerke ziemlich gut darin waren, Ergebnisse für die Handschrifterkennung zu erzielen, haben sie aufgrund der beteiligten LSTM-Schichten einen Engpass beim Training und können daher nicht parallelisiert werden. In letzter Zeit waren Transformer ziemlich erfolgreich und ersetzten LSTM bei der Lösung verschiedener sprachbezogener Aufgaben. Lassen Sie uns nun diskutieren, wie transformatorbasierte Modelle für die Handschrifterkennung angewendet werden können.

Achten Sie auf das, was Sie lesen

In dieser Arbeit schlugen die Autoren die Verwendung einer transformatorbasierten Architektur vor, die mehrköpfige Aufmerksamkeits-Selbstaufmerksamkeitsschichten sowohl in visuellen als auch in Textphasen verwendet und somit sowohl die Zeichenerkennung als auch sprachbezogene Abhängigkeiten der zu decodierenden Zeichensequenzen lernen kann. Da die Sprachkenntnisse in das Modell selbst eingebettet sind, ist kein zusätzlicher Nachbearbeitungsschritt unter Verwendung eines Sprachmodells erforderlich, und daher können Ausgaben vorhergesagt werden, die nicht Teil des Vokabulars sind. Um dies zu erreichen, erfolgt die Textcodierung auf Zeichenebene und nicht auf Wortebene. Da die Transformatorarchitektur das parallele Trainieren des Modells für jede Region oder jeden Charakter ermöglicht, wird der Trainingsprozess erheblich vereinfacht.

Einfache Handschrifterkennung mit maschinellem Lernen

Die Netzwerkarchitektur besteht aus folgenden Komponenten

  1. Visueller Encoder : - Um relevante Merkmale zu extrahieren und mehrköpfige visuelle Selbstaufmerksamkeit auf verschiedene Charakterpositionen anzuwenden
  2. Textübersetzer : - Es übernimmt die Aufgabe, die Texteingabe zu übernehmen, sie zu codieren, die Selbstaufmerksamkeit in mehreren Sprachen anzuwenden und die visuellen und Textmerkmale gegenseitig zu berücksichtigen.
Visueller Encoder

Das Resnet50-Backbone wird verwendet, um die Funktionen zu erweitern, wie in der obigen Abbildung zu sehen ist. Die 3-dimensionale Feature-Map-Ausgabe von Resnet50 Fc wird an das Temporal Encoding-Modul weitergeleitet, das sich in 2d umformt, indem es die gleiche Breite und damit die Form von (fxh, w) beibehält. Dies wird in eine vollständig verbundene Schicht eingespeist, um die Form auf (f, w) zu reduzieren, und die resultierende Ausgabe ist Fc'. Zusätzlich wird eine Positionscodierung TE zu Fc' hinzugefügt, um die Positionsinformationen beizubehalten, wie in dem Transformer-Papier von Vaswani erwähnt. Weitere Informationen zum Design der Transformatorarchitektur finden Sie hier hier. Die Ausgabe wird durch eine vollständig verbundene Ebene geleitet, um die endgültige Feature-Map mit der Form (f, w) zu erhalten. Die endgültige Ausgabe wird durch ein mehrköpfiges Aufmerksamkeitsmodul mit 8 Köpfen geleitet, um eine visuell reichhaltige Feature-Map zu erhalten

Textübersetzer

Der Eingabetext wird durch einen Encoder geleitet, der Einbettungen auf Zeichenebene generiert. Diese Einbettungen werden mit der zeitlichen Position kombiniert, ähnlich wie in Visual Encoder mithilfe eines Temporal Encoder-Moduls. Dieses Ergebnis wird dann an ein Multi-Head Language Self-Attention-Modul übergeben, das dem Aufmerksamkeitsmodul in Visual Encoder ähnelt. Die Textmerkmale, die entlang der visuellen Merkmale vom visuellen Codierer erzeugt werden, werden an ein Modul für gegenseitige Aufmerksamkeit übergeben, dessen Aufgabe es ist, die aus Bildern und den Texteingaben erlernten Merkmale auszurichten und zu kombinieren. Die Ausgabe wird durch eine Softmax-Funktion geleitet, um das Endergebnis zu erhalten.

Bei der Auswertung von Testdaten sind die Transkriptionen nicht verfügbar. Somit wird nur das Start-Token <S> als Eingabe übergeben und das erste vorhergesagte Zeichen an das System zurückgemeldet, das das zweite vorhergesagte Zeichen ausgibt. Dieser Inferenzprozess wird in einer Schleife wiederholt, bis das Ende des Sequenzsymbols <E> erzeugt wird oder wenn die maximale Ausgangslänge N erreicht ist.

Handschrift Textgenerierung

Handwriting Text Generation ist die Aufgabe, echt aussehenden handschriftlichen Text zu generieren und kann somit zur Erweiterung der bestehenden Datensätze verwendet werden. Wie wir wissen, erfordert Deep Learning eine Menge Daten zum Trainieren, während es eine mühsame Aufgabe ist, einen riesigen Korpus beschrifteter Handschriftbilder für verschiedene Sprachen zu erhalten. Um dies zu lösen, können wir Generative Adversarial Networks verwenden, um Trainingsdaten zu generieren. Lassen Sie uns hier eine solche Architektur diskutieren

ScrabbleGAN

ScrabbleGAN verfolgt einen halbüberwachten Ansatz, um handgeschriebene Textbilder zu synthetisieren, die sowohl im Stil als auch im Lexikon vielseitig sind. Es kann Bilder unterschiedlicher Länge erzeugen. Der Generator kann auch den resultierenden Textstil manipulieren, sodass wir entscheiden können, ob der Text kursiv sein muss oder wie dick / dünn der Stiftstrich sein soll

Einfache Handschrifterkennung mit maschinellem Lernen

Die Architektur besteht aus einem vollständig auf BigGAN basierenden Faltungsgenerator. Für jedes Zeichen in der Eingabe wird ein entsprechender Filter ausgewählt und alle Werte werden miteinander verkettet, was dann mit einem Rauschvektor z multipliziert wird, der den erzeugten Textstil steuert. Wie oben zu sehen ist, überlappen sich die für jedes einzelne Zeichen generierten Bereiche, wodurch zusammengehöriger rekursiver Text generiert und die Flexibilität unterschiedlicher Zeichengrößen ermöglicht wird. Zum Beispiel nimmt m viel Platz ein, während e und t eine begrenzte Fläche einnehmen. Um den gleichen Stil für das gesamte Wort oder den gleichen Satz beizubehalten, wird der Stilvektor z für alle Zeichen konstant gehalten.

Ein auf der BigGAN-Architektur basierender Faltungsdiskriminator wird verwendet, um zu klassifizieren, ob der generierte Bildstil gefälscht oder echt aussieht. Der Diskriminator verlässt sich nicht auf Annotationen auf Zeichenebene und basiert daher nicht auf einem klassenbedingten GAN. Dies hat den Vorteil, dass keine markierten Daten erforderlich sind und daher Daten aus einem unsichtbaren Korpus, der nicht Teil der Trainingsdaten ist, für den Trainingsdiskriminator verwendet werden können. Zusammen mit dem Diskriminator wird ein Texterkenner R trainiert, um zu klassifizieren, ob der generierte Text in der realen Welt sinnvoll ist oder ob es Kauderwelsch ist. Der Erkenner basiert auf CRNN-Architekturen, wobei der wiederkehrende Kopf entfernt wurde, um den Erkenner etwas schwächer zu machen und Text nicht zu erkennen, selbst wenn er unklar ist. Der in der Ausgabe von R generierte Text wird mit dem an den Generator übergebenen Eingabetext verglichen, und der Verlustfunktion wird eine entsprechende Strafe hinzugefügt.

Die von ScrabbleGAN generierten Ausgaben sind unten dargestellt

Einfache Handschrifterkennung mit maschinellem Lernen

Datensätze: -

  1. IAM : - Der IAM-Datensatz enthält ungefähr 100 Bilder von Wörtern aus der englischen Sprache mit Wörtern, die von 657 verschiedenen Autoren geschrieben wurden. Das Zug-, Test- und Validierungsset enthält Wörter, die von sich gegenseitig ausschließenden Autoren geschrieben wurden. Link: - http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL : - Der CVL-Datensatz besteht aus sieben handschriftlichen Dokumenten, die von ungefähr 310 Teilnehmern geschrieben wurden. Dies führt zu ungefähr 83 Wortfrüchten, die in Zug- und Testsätze unterteilt sind. Link: - https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. RIMES : - Enthält Wörter aus der französischen Sprache von ungefähr 60 Bildern, die von 1300 Autoren geschrieben wurden, was ungefähr 5 Mails entspricht, die von jeder Person geschrieben wurden. Link: - http://www.a2ialab.com/doku.php?id=rimes_database:start

Metriken: -

Zeichenfehlerrate : - Es wird als Levenshtein-Abstand berechnet, der die Summe der Zeichensubstitutionen (Sc), Einfügungen (Ic) und Löschungen (Dc) ist, die erforderlich sind, um eine Zeichenfolge in die andere umzuwandeln, geteilt durch die Gesamtzahl der Zeichen in der Grundwahrheit (Nc)

Einfache Handschrifterkennung mit maschinellem Lernen

Wortfehlerrate : - Es wird berechnet als die Summe der Wortsubstitutionen (Sw), Einfügungen (Iw) und Löschungen (Dw), die erforderlich sind, um eine Zeichenfolge in die andere umzuwandeln, geteilt durch die Gesamtzahl der Wörter in der Grundwahrheit (Nw).

Einfache Handschrifterkennung mit maschinellem Lernen

Trainieren Sie Ihr eigenes Handschrifterkennungsmodell

Sehen wir uns nun an, wie wir unser eigenes handschriftliches Texterkennungsmodell trainieren können. Wir werden auf dem IAM-Datensatz trainieren, aber Sie können das Modell auch auf Ihrem eigenen Datensatz trainieren. Lassen Sie uns die Schritte besprechen, die für die Einrichtung erforderlich sind

Datum

Zum Herunterladen des IAM-Datensatzregisters von hier. Einmal registriert, laden Sie words.tgz von herunter hier. Dieser enthält einen Datensatz handgeschriebener Wortbilder. Laden Sie auch die Anmerkungsdatei words.txt von herunter hier.

Wenn Sie Ihr eigenes Dataset verwenden möchten, müssen Sie die Datenstrukturierung des IAM-Datasets befolgen.

Einfache Handschrifterkennung mit maschinellem Lernen

Oben sehen Sie, wie die Ordnerstruktur des AIM-Datensatzes aussieht. Hier stellen a01, a02 usw. die übergeordneten Ordner dar, die jeweils Unterordner mit Daten haben. Jeder Unterordner enthält eine Reihe von Bildern, denen der Name des Ordners als Präfix zum Dateinamen hinzugefügt wird.

Zusätzlich benötigen wir eine Anmerkungsdatei, um die Pfade zu den Bilddateien und die entsprechenden Transkriptionen zu erwähnen. Betrachten Sie zum Beispiel das obige Bild mit Textnominierung, das folgende wäre die Darstellung in der Anmerkungsdatei words.txt

a01-000u-01-00 ok 156 395 932 441 100 VBG nominiert

  1. a01-000u-01-00 -> Wort-ID für eine Zeile in Form a01-000u
  2. ok / err -> Indikator für die Qualität der Segmentierungsausgabe
  3. 156 -> Graustufe zum Binärisieren der Zeile, die dieses Wort enthält
  4. 395 932 441 100 -> Begrenzungsrahmen um dieses Wort im Format x, y, w, h
  5. VBG -> das grammatikalische Tag für dieses Wort. Hier ist es Verb Gerund
  6. Nominierung -> die Transkription für dieses Wort

Die Architektur :-

Wir werden eine CRNN-basierte Architektur mit CTC-Verlust trainieren. Ein CNN wird verwendet, um die visuellen Merkmale zu extrahieren, die an eine RNN übergeben werden, und ein CTC-Verlust wird am Ende mit einem gierigen Decoder angewendet, um die Ausgabe zu erhalten.

Einfache Handschrifterkennung mit maschinellem Lernen

Ausbildung

Wir werden den CRNN-Code von verwenden hier unser Modell zu trainieren. Befolgen Sie die Schritte von unten, um die Daten vorzubereiten

python checkDirs.py

Führen Sie den obigen Befehl aus, und Sie sollten eine Ausgabe wie unten sehen

[OK] Wörter /
[OK] Wörter / a01 / a01-000u /
[OK] Wörter.txt
[OK] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

Jetzt können Sie mit dem Training beginnen.

Gehen Sie zum Stammverzeichnis und führen Sie es aus

python main.py --train

Die Ergebnisse

Nach dem Training für ungefähr 50 Epochen beträgt die Zeichenfehlerrate (CER) 10.72%, während die Wortfehlerrate (WER) 26.45% und damit die Wortgenauigkeit 73.55% beträgt. Einige der Vorhersagen sind in der folgenden Abbildung zu sehen.

Einfache Handschrifterkennung mit maschinellem Lernen

Das Modell ist in der Lage, die Charaktere in hohem Maße genau vorherzusagen, leidet jedoch in einigen Fällen darunter, dass schrecklich als anely vorhergesagt wird, Geschichten als Staries vorhergesagt werden. Diese Probleme können gelöst werden, indem ein Sprachmodell als Nachbearbeitungsschritt zusammen mit dem Decoder verwendet wird, der aussagekräftige Wörter erzeugen und einfache Fehler korrigieren kann.

Zusammenfassung

Obwohl es bedeutende technologische Entwicklungen gegeben hat, die dazu beitragen, handgeschriebenen Text besser zu erkennen, ist HTR im Vergleich zu OCR alles andere als ein gelöstes Problem und wird daher in der Industrie noch nicht umfassend eingesetzt. Trotzdem können wir angesichts des Tempos der technologischen Entwicklung und der Einführung von Modellen wie Transformatoren davon ausgehen, dass HTR-Modelle bald alltäglich werden.

Um mehr über dieses Thema zu erfahren, können Sie beginnen hier

Weiterführende Literatur

Zeitstempel:

Mehr von KI & Maschinelles Lernen