{"id":17614,"date":"2020-09-15T13:32:06","date_gmt":"2020-09-15T13:32:06","guid":{"rendered":"http:\/\/parashift.io\/?p=3725"},"modified":"2025-11-30T22:40:39","modified_gmt":"2025-11-30T22:40:39","slug":"handwritten-text-recognition-im-jahr-2020","status":"publish","type":"post","link":"https:\/\/parashift.ai\/de\/handwritten-text-recognition-im-jahr-2020\/","title":{"rendered":"Handwritten Text Recognition im Jahr 2020"},"content":{"rendered":"\n<p>Der Markt f\u00fcr Optical Character Recognition (OCR) beziehungsweise Document Capture Software wird bis 2027 voraussichtlich&nbsp;<a href=\"https:\/\/blog.parashift.io\/de\/blog\/the-market-for-document-extraction-software-is-gaining-ever-more-relevance\" rel=\"noreferrer noopener\" target=\"_blank\">ein Volumen von 12,6 Milliarden USD erreichen.<\/a>&nbsp;Das bei einem j\u00e4hrlichen Wachstum von ca. 10%. Die steigende Nachfrage nach Softwarel\u00f6sungen zur Dokumentenextraktion ist haupts\u00e4chlich auf Compliance-Initiativen, die Digitalisierung des Dokumentenmanagements und die Absicht, die Betriebskosten zu optimieren, zur\u00fcckzuf\u00fchren. Aber auch wegen der zunehmend mobilen Arbeitskr\u00e4fte und der oft damit verbundenen Notwendigkeit der Dokumentenverarbeitung \u00fcber mobile Ger\u00e4te. Obwohl OCR von einer Vielzahl von Menschen als gel\u00f6stes Problem betrachtet wird, gibt es hier noch viele Herausforderungen zu l\u00f6sen. Die Handschrifterkennung (engl. Handwritten Text Recognition oder kurz HTR) ist eine davon. Die hohe Varianz der Handschriftstile und die teils schlechte Qualit\u00e4t des handgeschriebenen Textes im Vergleich zum maschinell gedruckten Text, stellen erhebliche Hindernisse bei der Umwandlung in maschinenlesbare Textformate dar. Nichtsdestotrotz handelt es sich um ein entscheidendes Problem, das f\u00fcr mehrere Branchen wie zum Beispiel das Gesundheitswesen, Versicherungen und Banken von Relevanz ist und wir bei Parashift unbedingt l\u00f6sen wollen. Entsprechend sind unsere Forschungs- und Entwicklungsaktivit\u00e4ten in vollem Gange.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"470\" src=\"https:\/\/www.researchgate.net\/profile\/Eric_Granger\/publication\/267957644\/figure\/fig1\/AS:669952793128973@1536740601374\/Handwriting-sample-from-for-NIST-SD19-a-Handwritten-sample-form-b-Images-of.png\" alt=\"Handwriting sample from for NIST SD19 (a) Handwritten sample form. (b)... |  Download Scientific Diagram\"><\/p>\n\n\n\n<p class=\"has-text-align-center\">Source:&nbsp;<a href=\"https:\/\/www.researchgate.net\/figure\/Handwriting-sample-from-for-NIST-SD19-a-Handwritten-sample-form-b-Images-of_fig1_267957644\" rel=\"noreferrer noopener\" target=\"_blank\">ResearchGate<\/a><\/p>\n\n\n\n<p>Relativ neue Fortschritte im Bereich des Deep Learnings wie beispielsweise das Aufkommen von Transformer-Architekturen haben unsere Lernkurve in der handschriftlichen Texterkennung ziemlich stark beschleunigt. In der Branche spricht man dabei \u00fcbrigens gew\u00f6hnlich von Intelligent Character Recognition (ICR). Dies ist daher, da die Algorithmen, die f\u00fcr ICR ben\u00f6tigt werden, mehr &#8222;Intelligenz&#8220; ben\u00f6tigen als die von generischer OCR.<br><br>In diesem Artikel erfahren Sie mehr \u00fcber den Task der Erkennung von handgeschriebenem Text, die Komplikationen und wie wir sie mit verschiedenen Techniken des Deep Learnings l\u00f6sen k\u00f6nnen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"challenges-in-handwriting-recognition\">Hauptherausforderungen von HTR<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enorme Variabilit\u00e4t und Mehrdeutigkeit der Schriften von Mensch zu Mensch<\/li>\n\n\n\n<li>Inkonsistenz im Schreibstil<\/li>\n\n\n\n<li>Schlechte Qualit\u00e4t des Quelldokuments aufgrund von Verschlechterung im Laufe der Zeit<\/li>\n\n\n\n<li>Oftmals ist der Text nicht streng geradlinig gehalten<\/li>\n\n\n\n<li>Die kursive Handschrift macht die Trennung und Erkennung von Zeichen noch schwieriger<\/li>\n\n\n\n<li>Text in Handschrift kann unterschiedliche Neigungen haben<\/li>\n\n\n\n<li>Das Sammeln eines qualitativ hochwertigen Datensatzes mit Labels ist relativ teuer<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"use-cases\">Anwendungsf\u00e4lle<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"healthcare-and-pharmaceuticals\">Healthcare und Pharma<\/h4>\n\n\n\n<p>Einer der relevanteren Pain Points im Gesundheitswesen und in der pharmazeutischen Industrie ist die Digitalisierung von Patientenrezepten. Beispielsweise verarbeitet Roche t\u00e4glich Unmengen von medizinischen PDFs. Auch die Patientenregistrierung und andere Cases zur Digitalisierung von Formularen erfordern eine zuverl\u00e4ssige L\u00f6sung, die handschriftliche Texte erkennen und extrahieren kann. Durch das Implementieren von automatischer Handschrifterkennung in Gesch\u00e4ftsprozessen k\u00f6nnen Gesundheits- und Pharmaunternehmen also ihre Prozesseffizienz und die Kundenzufriedenheit erheblich verbessern.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"insurance\">Insurance<\/h4>\n\n\n\n<p>Eine grosse Versicherungsgesellschaft kann schnell einmal ein paar Millionen Dokumente an einem einzigen Tag erhalten. Eine Verz\u00f6gerung bei der Bearbeitung von beispielsweise Schadensf\u00e4llen hat demnach einen signifikanten Impact. Da die Anspruchsdokumente, welche unterschiedliche Handschriftenstile enthalten k\u00f6nnen, regelm\u00e4ssig rein manuell bearbeitet werden, hat die Automatisierung der Verarbeitung hier einen bedeutenden Bottleneck, der mit HTR adressiert werden kann.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"banking\">Banking<\/h4>\n\n\n\n<p>Ich weiss, es ist vielleicht schwer zu glauben, aber Leute stellen tats\u00e4chlich immer noch regelm\u00e4ssig Schecks aus und deshalb spielen diese Art von Dokumenten bei den meisten bargeldlosen Transaktionen immer noch eine relativ grosse Rolle. In einigen L\u00e4ndern nat\u00fcrlich mehr als in anderen. In vielen Entwicklungsl\u00e4ndern erfordert das derzeitige Verfahren der Scheckbearbeitung, dass ein Bankmitarbeiter die auf einem Scheck vorhandenen Informationen pr\u00fcft und manuell eintr\u00e4gt. Da diese Schecks in den meisten F\u00e4llen f\u00fcr die Verarbeitung zentralisiert werden, ist es durchaus \u00fcblich, dass Tag f\u00fcr Tag eine grosse Anzahl solcher Schecks bearbeitet werden muss. Mit anderen Worten, auch hier k\u00f6nnte ein leistungsstarkes Handschrifterkennungssystem eine betr\u00e4chtliche Anzahl Stunden menschlicher Arbeit einsparen und zu so hohen Kosteneinsparungen f\u00fchren.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn%3AANd9GcTs0NnVBadIa2DTwLmWZlscrg3TdLquyu5GjA&amp;usqp=CAU\" alt=\"Automatic processing of handwritten bank cheque images: a survey\"\/><figcaption class=\"wp-element-caption\">Source:&nbsp;<a href=\"https:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.651.6458&amp;rep=rep1&amp;type=pdf\" rel=\"noreferrer noopener\" target=\"_blank\">The Pennsylvania State University<\/a><\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"online-libraries\">Online-Bibliotheken<\/h4>\n\n\n\n<p>Ein weiterer Bereich, in dem HTR ins Spiel kommt, sind die Online-Bibliotheken. Denn hier werden grosse Mengen historischer Schriften digitalisiert und damit f\u00fcr Menschen auf der ganzen Welt online zug\u00e4nglich gemacht. Wegen der riesigen Datenmengen sind solche Bem\u00fchungen jedoch nur dann wirklich n\u00fctzlich, wenn man den Text auf diesen Scans identifizieren, sie indexieren und abfragen kann.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.akg-images.de\/Docs\/AKG\/Media\/TR3_WATERMARKED\/6\/1\/a\/6\/AKG44643.jpg\" alt=\"akg-images - Sachsenspiegel\"\/><figcaption class=\"wp-element-caption\">Source:&nbsp;<a href=\"https:\/\/www.akg-images.de\/archive\/Sachsenspiegel-2UMDHUCSHGJ.html\" rel=\"noreferrer noopener\" target=\"_blank\">akg-images<\/a><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"methods\">Methods<\/h3>\n\n\n\n<p>Im Grossen und Ganzen lassen sich die Methoden zur Handschrifterkennung in zwei verschiedene Typen einteilen:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/bg0wSgy.png\" alt=\"img\"\/><\/figure>\n\n\n\n<p>Bei der&nbsp;<strong>Online-Handschrifterkennung<\/strong>&nbsp;arbeiten wir in der Regel mit einem digitalen Stift und haben dadurch Zugriff auf die Strichinformationen wie etwa die Position des Stifts, w\u00e4hrend geschrieben wird. Das obige Bild illustriert dies sehr gut und sollte auch verdeutlichen, dass wir f\u00fcr Online-Schriften in der Regel \u00fcber eine gute Menge an Daten verf\u00fcgen, was es wesentlich einfacher macht, Zeichen mit h\u00f6herer Genauigkeit zu klassifizieren.<\/p>\n\n\n\n<p>Bei den&nbsp;<strong>Offline-Methoden<\/strong>&nbsp;hingegen wird der Text nach der Niederschrift und nur auf Basis dieser Grundlage klassifiziert. Daher haben wir bedeutend weniger Merkmale, die wir f\u00fcr Vorhersagen verwenden k\u00f6nnen. Noch schlimmer ist, dass wir m\u00f6glicherweise auch mit Hintergrund-Noise umgehen k\u00f6nnen m\u00fcssen, welche vom Papier ausgehen.&nbsp;<\/p>\n\n\n\n<p>Wenn es in der realen Welt nicht so schwierig w\u00e4re, den Ansatz mit dem digitalen Stift richtig zu skalieren, w\u00e4re die also Aufgabe der Erkennung von handgeschriebenem Text nicht mehr so schwierig. Da es aber nun mal so ist, wie es ist, m\u00fcssen wir L\u00f6sungen finden, die uns helfen, die Informationen, die wir von nicht-digitalen Stiften erhalten, m\u00f6glichst effizient zu nutzen. Deshalb werden wir uns jetzt mit verschiedenen Techniken befassen, die sich als vielversprechend erweisen, das Problem der Erkennung von offline geschriebenem Text zu l\u00f6sen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"techniques\">Einige der Techniken<\/h3>\n\n\n\n<p>Die ersten Ans\u00e4tze zur Handschrifterkennung waren Machine Learning Methoden wie zum Beispiel die bekannten&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/Hidden_Markov_Model\" rel=\"noreferrer noopener\" target=\"_blank\">Hidden-Markov-Modelle<\/a>&nbsp;(HMM),&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/Support_Vector_Machine\" rel=\"noreferrer noopener\" target=\"_blank\">Support Vector Machines<\/a>&nbsp;und dergleichen. Diese Ans\u00e4tze konzentrierten sich auf die Merkmalsextraktion nach einer anf\u00e4nglichen Vorverarbeitung des Textes. Bei diesen Merkmalen kann es sich zum Beispiel um Schleifen, Wendepunkte, Verh\u00e4ltnisse irgendeiner Art und andere Aspekte eines einzelnen Zeichens handeln. Nach der Extraktion werden die Merkmale einem Klassifikator wie dem HMM zugef\u00fchrt. Dies mit dem Ziel, m\u00f6glichst gute Ergebnisse zu erhalten. Solche Ans\u00e4tze sind jedoch stark auf manuelle Arbeit f\u00fcr die Merkmalsextraktion angewiesen und somit nicht skalierbar sowie hinsichtlich der Lernf\u00e4higkeit ziemlich begrenzt. Infolgedessen ist die Leistung dieser Art von Machine Learning-Modellen eher logischerweise stark begrenzt.<\/p>\n\n\n\n<p>Aber es gibt gute Nachrichten: Wie eingangs erw\u00e4hnt, hat Deep Learning ein v\u00f6llig neues Spektrum an M\u00f6glichkeiten er\u00f6ffnet, die bestehenden Probleme anzugehen und enorme Verbesserungen in der Genauigkeit hinzukriegen. Im Folgenden werde ich auf einige der relevanteren Forschungsarbeiten auf diesem Gebiet eingehen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"multi-dimensional-recurrent-neural-networks\">Multi-dimensional Recurrent Neural Networks<\/h4>\n\n\n\n<p><a href=\"https:\/\/de.wikipedia.org\/wiki\/Rekurrentes_neuronales_Netz\" rel=\"noreferrer noopener\" target=\"_blank\">Recurrent Neural Networks<\/a>&nbsp;(RNN) oder&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/Long_short-term_memory\" rel=\"noreferrer noopener\" target=\"_blank\">Long Short-Term Memory<\/a>&nbsp;(LSTM), bei welchen es sich um eine spezielle RNN-Architektur handelt, sind daf\u00fcr bekannt, dass sie mit sequentiellen Daten umgehen k\u00f6nnen, um zeitliche Muster zu identifizieren und Ergebnisse zu generieren. Zumindest die g\u00e4ngigsten Konfigurationen dieser Art von Architekturen. Dennoch gibt es eine bedeutende Einschr\u00e4nkung: Sie k\u00f6nnen nur 1D-Daten verarbeiten. Daher k\u00f6nnen diese Architekturen auch nicht direkt auf Bilddaten angewendet werden. Um dieses Problem zu l\u00f6sen, schlugen die Autoren des Papiers &#8222;<a href=\"https:\/\/sci-hub.tw\/10.1007\/978-1-4471-4072-6_12\" rel=\"noreferrer noopener\" target=\"_blank\">CITlab ARGUS for Arabic Handwriting<\/a>&#8220; eine mehrdimensionale RNN\/LSTM-Struktur vor. Eine solche ist hier visualisiert.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.parashift.io\/hs-fs\/hubfs\/Credo%20pack\/MDRNN.png?width=600&amp;name=MDRNN.png\" alt=\"MDRNN\"\/><\/figure>\n\n\n\n<p>Was ist also der Unterschied zwischen einem traditionellen RNN und dem vorgeschlagenen mehrdimensionalen RNN&#8230; Im Allgemeinen ist es bei RNNs so, dass die verborgene Schicht i den Zustand von einer vorhergehenden verborgenen Schicht in der Zeit i-1 erh\u00e4lt. Bei mehrdimensionalen RNNs, nehmen wir das Beispiel einer zweidimensionalen RNN-Struktur, erh\u00e4lt die verborgene Schicht (i, j) Zust\u00e4nde von mehreren vorhergehenden verborgenen Schichten, n\u00e4mlich (i-1, j) und (i, j-1). Daher erfassen solche Architekturen den Kontext sowohl von der H\u00f6he als auch von der Breite her in einem Bild, was f\u00fcr ein klares Verst\u00e4ndnis der lokalen Region von entscheidender Bedeutung ist. Sie k\u00f6nnen dies weiter ausbauen, um auch Informationen aus zuk\u00fcnftigen Schichten zu erhalten. Dies ist also in der Art und Weise ziemlich \u00e4hnlich wie Bidirektionale Long Short-Term Memory Netzwerke (BI-LSTM) Informationen von t-1 und t+1 erhalten. Um auf unsere hypothetische zweidimensionale RNN-Struktur zur\u00fcckzukommen: Hier w\u00e4ren wir nun in der Lage, Informationen ebenso in beiden Richtungen zu empfangen. Also beispielsweise in (i-1, j), (i, j-1), (i+1, j), (i, j+1). So k\u00f6nnen wir wie beim BI-LSTM Kontext in allen Richtungen zu erfassen.<\/p>\n\n\n\n<p>Was Sie in der Abbildung unten sehen k\u00f6nnen, ist im Grunde die gesamte mehrdimensionale RNN-Struktur. Was wir also tun, ist einfach den RNN-Block durch einen LTSM-Block zu ersetzen. Der Input des Netzwerks wird in Bl\u00f6cke der Gr\u00f6\u00dfe 3&#215;4 unterteilt, der in die mehrdimensionalen RNN-Schichten bzw. die hierarchische Struktur des Netzwerks aus mehrdimensionalen RNN-Schichten eingespeist wird, gefolgt von Feed-Forward-Schichten im Tandem. Feed-Forward-Schichten sind klassische k\u00fcnstliche neuronale Netze. Der endg\u00fcltige Output wird in einen 1D-Vektor umgewandelt und an eine&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Connectionist_temporal_classification\" rel=\"noreferrer noopener\" target=\"_blank\">CTC-Funktion<\/a>&nbsp;(Connectionist Temporal Classification) weitergeleitet, um ein Output zu erzeugen.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.parashift.io\/hs-fs\/hubfs\/Credo%20pack\/RS.png?width=600&amp;name=RS.png\" alt=\"RS\"\/><\/figure>\n\n\n\n<p>CTC ist ein Algorithmus, der zur Bew\u00e4ltigung von Aufgaben wie Spracherkennung und Handschrifterkennung verwendet wird. In beiden F\u00e4llen handelt es sich um Aufgaben, bei denen nur die Eingabedaten und die Transkription des Ouputs zur Verf\u00fcgung stehen und keine Angaben zur Ausrichtung gemacht werden. Sprich, wie eine bestimmte Region in einem Audio-File f\u00fcr Sprache oder eine bestimmte Region in Bildern f\u00fcr Handschrift auf ein bestimmtes Zeichen ausgerichtet ist. Das Problem dabei ist, dass einfache Heuristiken wie beispielsweise jedem Zeichen den gleichen Bereich zu geben, nicht funktionieren, da der Platz, den jedes Zeichen einnimmt, bei den Handschriftarten sehr unterschiedlich sein kann. Eine gute Quelle f\u00fcr weitere Informationen \u00fcber die Funktionsweise von CTC finden Sie&nbsp;<a href=\"https:\/\/distill.pub\/2017\/ctc\/\" rel=\"noreferrer noopener\" target=\"_blank\">hier<\/a>.<\/p>\n\n\n\n<p>Wenn wir die Ausgabe eines CTC unter Verwendung einfacher Heuristiken der h\u00f6chsten Wahrscheinlichkeit f\u00fcr jede Position dekodieren, erhalten wir m\u00f6glicherweise Ergebnisse, die in realen F\u00e4llen nicht viel Sinn ergeben. Deshalb m\u00fcssen wir eine andere Art von Decoder verwenden, der vielversprechender ist, um unsere Ergebnisse zu verbessern. Um ein besseres Verst\u00e4ndnis f\u00fcr die Entscheidungsfindung zu erhalten, betrachten wir die verschiedenen Arten der Dekodierung, die es gibt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Die&nbsp;<strong>Best-Path-Dekodierung<\/strong>&nbsp;ist die generische Dekodierung, die wir bisher implizit diskutiert haben. Bei diesem Typ nehmen wir an jeder Position den Ouput des Modells und finden einfach das Ergebnis mit der h\u00f6chsten Wahrscheinlichkeit.<\/li>\n\n\n\n<li>Bei der&nbsp;<strong>Beam Search-Dekodierung<\/strong>&nbsp;schl\u00e4gt die&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Beam_search\" rel=\"noreferrer noopener\" target=\"_blank\">Beam Search<\/a>&nbsp;vor, mehrere Ausgabepfade mit den h\u00f6chsten Wahrscheinlichkeiten beizubehalten und dadurch die Kette mit neuen Outputs zu erweitern, w\u00e4hrend Pfade mit niedrigeren Wahrscheinlichkeiten fallen gelassen werden, um die Beam-Gr\u00f6sse konstant zu halten.<\/li>\n\n\n\n<li>Die Beam Search liefert in der Regel genauere Ergebnisse als die Grid Search. Aber es gibt noch Raum, um wirklich aussagekr\u00e4ftige Ergebnisse zu erlangen. Eine M\u00f6glichkeit eine h\u00f6here Leistung anzustreben, besteht darin, neben der Beam Search ein Sprachmodell zu verwenden, bei dem sowohl Wahrscheinlichkeiten aus dem Modell als auch dem Sprachmodell (das z.B. Zeichenfolgen nach Wahrscheinlichkeiten bewertet) verwendet werden, um die Endergebnisse zu erzeugen.<\/li>\n<\/ul>\n\n\n\n<p>Weitere Einzelheiten zur Erzeugung genauer Dekodierungsergebnisse k\u00f6nnen in diesem&nbsp;<a href=\"https:\/\/towardsdatascience.com\/word-beam-search-a-ctc-decoding-algorithm-b051d28f3d2e\" rel=\"noreferrer noopener\" target=\"_blank\">Artikel<\/a>&nbsp;nachgelesen werden.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"encoder-decoder-and-attention-networks\">Encoder-Decoder und Attention Networks<\/h4>\n\n\n\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Seq2seq\" rel=\"noreferrer noopener\" target=\"_blank\">Seq2Seq-Modelle<\/a>&nbsp;(Sequenz zu Sequenz) mit Encoder-Decoder-Netzwerken sind in letzter Zeit ziemlich popul\u00e4r geworden. Auch zur Spracherkennung oder maschinellen \u00dcbersetzung. In Folge dessen wurden sie dann ebenso zur L\u00f6sung des Anwendungsfalles HTR eingesetzt, wobei hier zus\u00e4tzlich Aufmerksamkeitsmechanismen implementiert werden. Schauen wir uns einige der j\u00fcngsten Forschungen auf diesem Gebiet n\u00e4her an.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-attend-and-read\">Scan, Attend and Read<\/h5>\n\n\n\n<p>Im Paper &#8222;<a href=\"https:\/\/arxiv.org\/abs\/1604.03286\" rel=\"noreferrer noopener\" target=\"_blank\">Scan, Attend and Read: End-to-End Handwritten Paragraph Recognition with MDLSTM Attention&#8220;<\/a>&nbsp;schlagen die Autoren die Verwendung eines aufmerksamkeitsbasierten Modells f\u00fcr die End-to-End-Mehrzeilen-Handschrifterkennung vor. Der Hauptbeitrag dieses Papers besteht in der automatischen Transkription von Text, ohne dass dieser als Vorverarbeitungsschritt in Zeilen segmentiert werden muss. So k\u00f6nnen sie stattdessen einfach eine ganze Seite scannen und direkt Ergebnisse liefern.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.parashift.io\/hs-fs\/hubfs\/Credo%20pack\/SAR.png?width=600&amp;name=SAR.png\" alt=\"SAR\"\/><\/figure>\n\n\n\n<p>Scan, Attend and Read (SAR) verwendet eine auf dem mehrdimensionalenLong Short-Term Memory (MDLSTM) basierende Architektur, \u00e4hnlich der, die wir bereits zuvor diskutiert haben, mit einem kleinen Unterschied in der letzten Schicht. Nach der letzten linearen Schicht, also dem letzten Summenblock in der oben stehenden Abbildung, werden die Feature-Maps in der vertikalen Dimension kollabiert und eine Softmax-Funktion angewendet, um den Output zu erhalten.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.parashift.io\/hs-fs\/hubfs\/Credo%20pack\/Attention.png?width=600&amp;name=Attention.png\" alt=\"Attention\"\/><\/figure>\n\n\n\n<p>Die SAR-Architektur besteht aus einer MDLSTM-Architektur, die als Merkmalsextraktor fungiert. Das abschliessende kollabierende Modul mit einem implementierten Softmax-Output und CTC-Verlust wird durch ein Attention-Modul und einen LSTM-Decoder ersetzt. Das angewandte Aufmerksamkeitsmodell ist eine hybride Kombination aus inhaltsbasierter Aufmerksamkeit und ortsbasierter Aufmerksamkeit. Was dies bedeutet, k\u00f6nnen Sie in dem Papier lesen, das wir als n\u00e4chstes diskutieren werden. Im Allgemeinen erlauben Aufmerksamkeitsmechanismen einem Modell, den Zustand zu einem fr\u00fcheren Zeitpunkt direkt zu betrachten und daraus Schlussfolgerungen zu ziehen, so dass es sich bei jedem Dekodierungsschritt auf die relevantesten kodierten Merkmale konzentrieren kann. Die Decoder-LSTM-Module nehmen hingegen den vorherigen Zustand, die vorherige Attention-Map und die Codiermerkmale, um ein Ausgabezeichen und den Zustandsvektor f\u00fcr die n\u00e4chste Vorhersage zu erzeugen.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"convolve-attend-and-spell\">Convolve, Attend and Spell<\/h5>\n\n\n\n<p>Das Paper &#8222;<a href=\"http:\/\/www.cvc.uab.es\/~marcal\/pdfs\/GCPR18.pdf\" rel=\"noreferrer noopener\" target=\"_blank\">Convolve, Attend and Spell: An Attention-based Sequence-to-Sequence Model for Handwritten Word Recognition<\/a>&#8220; schl\u00e4gt ein aufmerksamkeitsbasiertes Sequenz-zu-Sequenz-Modell vor. Die vorgeschlagene Architektur besteht aus drei Hauptteilen: Einem Encoder, bestehend aus einem&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/Convolutional_Neural_Network\" rel=\"noreferrer noopener\" target=\"_blank\">Convolutional Neural Net<\/a>&nbsp;(CNN) und einem bidirektionalen&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Gated_recurrent_unit\" rel=\"noreferrer noopener\" target=\"_blank\">GRU<\/a>, einem Aufmerksamkeitsmechanismus, der sich auf die entsprechenden Merkmale konzentriert und einem Decoder, der aus einem eindirektionalen GRU besteht, der in der Lage ist, das entsprechende Wort Zeichen f\u00fcr Zeichen zu buchstabieren.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.parashift.io\/hs-fs\/hubfs\/Credo%20pack\/Seq2Seq.png?width=600&amp;name=Seq2Seq.png\" alt=\"Seq2Seq\"\/><\/figure>\n\n\n\n<p>Der Encoder verwendet ein CNN, um visuelle Low-Level Merkmale zu extrahieren. Insbesondere wird eine vortrainierte VGG-19-BN-Architektur (im Grunde ein 19 Schichten tiefes Netzwerk, Batch-normalisiert) als Merkmalsextraktor verwendet. Das Eingabebild wird dabei in eine Merkmal-Repr\u00e4sentation X konvertiert, die dann in X&#8216; umgeformt wird, indem alle Kan\u00e4le spaltenweise aufgeteilt und kombiniert werden, um die sequentiellen Informationen zu erhalten. X&#8216; wird weiter in H konvertiert, indem eine bidirektionale GRU verwendet wird. GRU ist ein neuronales Netzwerk, das in seiner Natur dem LSTM \u00e4hnelt und zeitliche Informationen erfassen kann.<\/p>\n\n\n\n<p>Zuz\u00fcglich wird ein Aufmerksamkeitsmodell angewendet, w\u00e4hrend der Output des Decoders vorhergesagt wird, wobei ein RNN in jedem Zeitschritt ein Zeichen decodiert und somit das ganze Wort buchstabiert. Die Autoren diskutieren zwei verschiedene Arten von Aufmerksamkeitsmechanismen, die sie untersucht haben.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Inhaltliche Aufmerksamkeit:<\/strong>&nbsp;Die Idee hinter dieser Methodik besteht darin, die \u00c4hnlichkeit zwischen dem aktuellen verborgenen Zustand des Decoders und der Feature-Map vom Encoder zu finden. Wir k\u00f6nnen die am st\u00e4rksten korrelierten Merkmalsvektoren in der Merkmalskarte des Encoders finden, die zur Vorhersage des aktuellen Zeichens im aktuellen Zeitschritt verwendet werden k\u00f6nnen. Eine intuitivere Art und Weise, die Funktionsweise von Aufmerksamkeitsmechanismen zu verstehen, finden Sie&nbsp;<a href=\"https:\/\/jalammar.github.io\/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention\/\" rel=\"noreferrer noopener\" target=\"_blank\">hier<\/a>.<\/li>\n\n\n\n<li><strong>Ortsbezogene Aufmerksamkeit:<\/strong>&nbsp;Der Hauptnachteil von ortsbezogenen Mechanismen ist die implizite Annahme, dass die Ortsinformation in die Ausgabe des Encoders eingebettet ist. Andernfalls g\u00e4be es keine M\u00f6glichkeit, zwischen Zeichenausgaben zu unterscheiden, die vom Decoder wiederholt werden. Aber schauen wir uns ein Beispiel an, um die Dinge klarer zu machen. Nehmen wir an, wir haben das Wort Parashift, in dem das Zeichen a zweimal wiederholt wird. Ohne Ortsangaben kann der Decoder sie nicht als getrennte Zeichen vorhersagen. Um dieses Problem zu l\u00f6sen, wird das aktuelle Zeichen und seine Ausrichtung vorhergesagt, indem sowohl der Output des Encoders als auch die vorherige Ausrichtung verwendet werden. Wenn Sie erfahren, wie die Methodik im Detail funktioniert, k\u00f6nnen Sie&nbsp;<a href=\"https:\/\/arxiv.org\/abs\/1506.07503\" rel=\"noreferrer noopener\" target=\"_blank\">hier<\/a>&nbsp;weiterlesen.<\/li>\n<\/ul>\n\n\n\n<p>Der Decoder ist ein einseitig gerichteter, mehrschichtiger GRU. Zu jedem Zeitschritt t empf\u00e4ngt er Input vom vorhergehenden Zeitschritt und den Kontextvektor vom Aufmerksamkeitsmodul. Multinomiale Dekodierung und Label-Gl\u00e4ttung werden im Training untersucht, um die Generalisierungsf\u00e4higkeit zu verbessern.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"transformer-models\">Transformer Modelle<\/h4>\n\n\n\n<p>Encoder-Decoder-Netzwerke haben sich bei der Handschrifterkennung erstaunlich gut bew\u00e4hrt. Dennoch weisen diese Art von Netzwerken aufgrund der beteiligten LSTM-Schichten einen erheblichen Engpass im Trainingsprozess auf. Denn aufgrund diesen k\u00f6nnen die Trainings nicht parallel laufen. Vor nicht allzu langer Zeit kamen jedoch Transformer Modelle auf, welche sich als sehr vielversprechend erwiesen und LSTM-Strukturen bei der L\u00f6sung einiger sprachbezogener Aufgaben ersetzt. Es stellt sich daher die Frage, wie wir diese f\u00fcr unseren Task der Handschrifterkennung einsetzen k\u00f6nnen.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"pay-attention-to-what-you-read\">Pay Attention to What You Read<\/h5>\n\n\n\n<p>Im Paper &#8222;<a href=\"https:\/\/arxiv.org\/abs\/2005.13044\" rel=\"noreferrer noopener\" target=\"_blank\">Pay Attention to What You Read: Non-recurrent Handwritten Text-Line Recognition<\/a>&#8220; stellen die Autoren einen Non-Recurrent Ansatz vor, indem sie stattdessen eine Transformer-basierte Architektur und Multi-Headed Self-Attention-Schichten sowohl in der visuellen als auch in der inhaltlichen Phase verwenden. Dadurch k\u00f6nnen sie sowohl die Zeichenerkennung als auch die sprachlichen Abh\u00e4ngigkeiten der zu entschl\u00fcsselnden Zeichenfolgen erlernen. Da das Sprachwissen in das Modell selbst eingebettet ist, ist kein zus\u00e4tzlicher Nachbearbeitungsschritt mit einem Sprachmodell erforderlich. Mit anderen Worten, es ist kein Vokabular notwendig, um Outputs vorhersagen zu k\u00f6nnen. Um dies zu erreichen, erfolgt die Textkodierung auf Zeichen- und nicht auf Wortebene. Da die Transformer-Architektur ein parallelisiertes Training f\u00fcr jede Region oder jedes Zeichen erm\u00f6glicht, ist der Trainingsprozess viel einfacher.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.parashift.io\/hs-fs\/hubfs\/Credo%20pack\/transformer.png?width=600&amp;name=transformer.png\" alt=\"transformer\"\/><\/figure>\n\n\n\n<p>Die im Paper vorgeschlagene Netzwerkarchitektur besteht aus zwei Hauptkomponenten. Ein visueller Encoder, der relevante Merkmale extrahiert und Muti-Headed Visual Self-Attention auf verschiedene Zeichenpositionen anwendet sowie ein Texttranskribierer, der Texteingaben entgegennimmt, den Text kodiert, Muti-Headed Language Self-Attention und Mutations-Aufmerksamkeit auf sowohl visuelle als auch auf inhaltliche Merkmale anwendet.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"visual-encoder\">Visual Encoder<\/h5>\n\n\n\n<p>Die Autoren verwenden das ResNet50 als eine R\u00fcckgrat Convolutional-Architektur, um die Merkmale zu extrahieren (in der Abbildung oben visualisiert). Die dreidimensionale Feature Repr\u00e4sentation von ResNet50 wird an ein Temporal Encoding (TE)-Modul \u00fcbergeben, das sich unter Beibehaltung der gleichen Breite und damit der Form von (f x h, b) zu 2D umformt. Diese wird in eine vollst\u00e4ndig verbundene Schicht eingespeist, um die Form auf (f, w) zu reduzieren und in der Ausgabe Fc&#8216; resuliert, die als eine w-lange Sequenz von visuellen Vektoren gesehen werden kann. Zus\u00e4tzlich wird zu Fc&#8216; eine Positionskodierung TE hinzugef\u00fcgt, um die Positionsinformation zu erhalten. Die Ausgabe wird durch eine vollst\u00e4ndig verbundene Schicht geleitet, um die endg\u00fcltige Feature Repr\u00e4sentation mit der Form (f , w) zu erhalten. Der endg\u00fcltige Output wird durch ein Multi-Headed Attention-Modul mit 8 K\u00f6pfen geleitet, das eine visuell reichhaltige Feature-Map produziert. Um mehr \u00fcber Transformer-Modelle zu erfahren, klicken Sie&nbsp;<a href=\"https:\/\/jalammar.github.io\/illustrated-transformer\/\" rel=\"noreferrer noopener\" target=\"_blank\">hier<\/a>.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"text-transcriber\">Texttranskribierer<\/h5>\n\n\n\n<p>Der zweite Teil der vorgeschlagenen Methodik ist eine Texttranskription. Dort wird der Text durch einen Encoder geleitet, der Embeddings auf Zeichenebene erzeugt. Diese Embeddings werden mit einem TE-Modul mit der zeitlichen Lage kombiniert, \u00e4hnlich wie im visuellen Encoder. Die Werte werden dann an ein Multi-Head Language Self-Attention-Modul weitergeleitet, das wiederum dem im visuellen Encoder verwendeten Modul \u00e4hnelt. Die Textmerkmale, die entlang der visuellen Merkmale vom visuellen Encoder generiert werden, werden an ein Modul f\u00fcr Mutation-Attention weitergeleitet, dessen einzige Aufgabe darin besteht, die gelernten Merkmale sowohl aus den Bildern als auch aus den Texteingaben auszurichten und zu kombinieren. Letztlich wird der Output durch eine Softmax-Funktion geleitet.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"handwriting-text-generation\">Handwriting Text Generation<\/h4>\n\n\n\n<p>Kommen wir wieder auf eine allgemeinere Ebene zur\u00fcck und schauen uns die handschriftliche Texterzeugung an. Wie Sie sich vielleicht denken k\u00f6nnen, geht es hier um die Generierung von synthetischem handgeschriebenem Text oder &#8211; in anderen Worten &#8211; um die Erweiterung vorhandener Datens\u00e4tze. Um sinnvolle Datenerweiterungen machen zu k\u00f6nnen, k\u00f6nnen wir uns auf&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/Generative_Adversarial_Networks\" rel=\"noreferrer noopener\" target=\"_blank\">Generative Adversarial Networks<\/a>&nbsp;st\u00fctzen.&nbsp;<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scrabblegan\">ScrabbleGAN<\/h5>\n\n\n\n<p><a href=\"https:\/\/arxiv.org\/abs\/2003.10557\" rel=\"noreferrer noopener\" target=\"_blank\">ScrabbleGAN<\/a>&nbsp;ist eine vorgestellte Methode, die einen Semi-Supervised Ansatz verfolgt, um handgeschriebene Textbilder zu synthetisieren, die sowohl im Stil als auch im Wortschatz unterschiedlich sind. Der Ansatz st\u00fctzt sich auf ein neuartiges generatives Modell, das Bilder unterschiedlicher L\u00e4nge erzeugen kann. Der Generator kann auch den resultierenden Textstil manipulieren, wodurch wir entscheiden k\u00f6nnen, ob der Text beispielsweise kursiv sein soll oder wie dick beziehungsweise d\u00fcnn der Strich ist.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.parashift.io\/hs-fs\/hubfs\/Credo%20pack\/scrabble.png?width=600&amp;name=scrabble.png\" alt=\"scrabble\"\/><\/figure>\n\n\n\n<p>Die Architektur besteht aus einem vollst\u00e4ndig auf BigGAN basierenden Convolutional-Generator. F\u00fcr jedes Zeichen in der Eingabe wird ein entsprechender Filter aus einer Filterbank ausgew\u00e4hlt bevor alle Werte werden miteinander verkettet und dann mit einem Noise-Vektor z multipliziert werden. Wie in der oben stehenden Abbildung veranschaulicht, \u00fcberlappen sich die f\u00fcr jedes einzelne Zeichen erzeugten Bereiche, was die Erzeugung von zusammenh\u00e4ngendem rekursivem Text erleichtert und die Flexibilit\u00e4t verschiedener Zeichengr\u00f6ssen erm\u00f6glicht. Zum Beispiel nimmt &#8222;m&#8220; ziemlich viel Platz ein, w\u00e4hrend die &#8222;e&#8220;s nicht so viel Platz einnehmen. Um den gleichen Stil f\u00fcr das gesamte Wort oder auch den Satz beizubehalten, wird der Noise-Vektor&nbsp;z f\u00fcr alle Zeichen konstant gehalten.<br><br>Um zu klassifizieren, ob der generierte Stil eines Bildes gef\u00e4lscht oder echt ist, wird ein Convolutional-Diskriminator implementiert, der auf einer BigGAN-Architektur basiert. Da sich der Diskriminator nicht auf Annotationen auf Zeichenebene angewiesen ist, basiert er nicht auf einem klassenbedingten GAN. Dies hat den Vorteil, dass keine beschrifteten Daten ben\u00f6tigt werden. Das heisst, dass auch nicht gelabelte Daten aus nicht bekannten Korpora zum Training des Diskriminators verwendet werden k\u00f6nnen. Zusammen mit dem Diskriminator wird ein Texterkenner R trainiert, um zu klassifizieren, ob der erzeugte Text echt ist oder ob es sich um Kauderwelsch handelt. Der Erkenner basiert auf einer Convolutional Recurrent Neural Network (CRNN)-Architektur. Der im Output von R erzeugte Text, wird dann mit dem an den Generator gegebenen Eingabetext verglichen und eine entsprechende Strafe zu einer Verlustfunktion hinzugef\u00fcgt.<br><br>Einige der von ScrabbleGAN erzeugten Ausgaben sehen Sie hier:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.parashift.io\/hs-fs\/hubfs\/Credo%20pack\/generated.png?width=600&amp;name=generated.png\" alt=\"generated\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"summary\">Fazit<\/h3>\n\n\n\n<p>Wir haben in den letzten Jahren viele fundamentale Durchbr\u00fcche erlebt und doch ist HTR trotz all dieser Fortschritte bei den zugrunde liegenden Technologien noch lange kein gel\u00f6stes Problem. Angesichts der j\u00fcngsten Trends wie schnell wir vorankommen, k\u00f6nnte sich dies jedoch relativ bald \u00e4ndern. Und nur um das auch erw\u00e4hnt zu haben&#8230; Schon heute k\u00f6nnen wir Unternehmen Mehrwert stiftende Technologien zur Verf\u00fcgung stellen, die den manuellen Aufwand in diesem Zusammenhang erheblich reduzieren.<\/p>\n\n\n\n<p>Wenn Sie neugierig geworden sind und mehr \u00fcber die Funktionalit\u00e4ten von Parashift in dieser Hinsicht erfahren wollen, z\u00f6gern Sie nicht, uns zu kontaktieren. Wir freuen uns, Ihnen eine detailliertere Einf\u00fchrung in das zu geben, was unsere Extraktions-Engine leisten kann.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/parashift.ai\/meeting\/\/\" target=\"_blank\" rel=\"noreferrer noopener\">Meeting vereinbaren<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Der Markt f\u00fcr Optical Character Recognition (OCR) beziehungsweise Document Capture Software wird bis 2027 voraussichtlich&nbsp;ein Volumen von 12,6 Milliarden USD erreichen.&nbsp;Das bei einem j\u00e4hrlichen Wachstum von ca. 10%. Die steigende Nachfrage nach Softwarel\u00f6sungen zur Dokumentenextraktion ist haupts\u00e4chlich auf Compliance-Initiativen, die&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[121],"tags":[],"class_list":["post-17614","post","type-post","status-publish","format-standard","hentry","category-allgemein-2"],"_links":{"self":[{"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/posts\/17614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/comments?post=17614"}],"version-history":[{"count":1,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/posts\/17614\/revisions"}],"predecessor-version":[{"id":30214,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/posts\/17614\/revisions\/30214"}],"wp:attachment":[{"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/media?parent=17614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/categories?post=17614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/tags?post=17614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}