![]() |
>OCR - Schrifterkennung
Hallo,
ich habe ein TImage in ein Array übertragen und möchte versuchen die enthaltenen Buchstaben/Zahlen in Text umzuwandeln. Ich habe mir dazu auch schon diverse OCR Komponenten angesehen, wirklich geholfen hat mir das allerdings nicht, da oftmals der SourceCode nicht zugänglich war bzw. nur gegen Bares. Beispiel: Zitat:
das Array/Bild von Links nach Rechts oder aber von Oben nach Unten einzulesen und Vektoren zu ermitteln die typisch für den jeweiligen Buchstaben sind. Bis hierhin ist das Ganze ja noch relativ einfach umzusetzen. Problematisch ist es allerdings diese Vektoren so weit zu vereinfachen das diese auch mit anderen Schriftarten/-größen zurecht kommen. Ein anderes Problem ist momentan auch der Einstiegspunkt an dem man die Vektoren ermittelt. Sofern die Buchstaben "tanzen" oder leicht verzerrt sind ist eine Erkennung problematisch. Hat Jemand vielleicht eine Idee wie man ein Bild/Array als Ganzes betrachten kann um zu testen welche Buchstaben enthalten sein könnten? Gibt es dabei eine Möglichkeit auf ein neuronales Netz zu verzichten? MfG |
Re: >OCR - Schrifterkennung
Zitat:
Man könnte über Pixel-Ähnlichkeiten gehen, nur dazu müsstest du jedes Zeichen aus jedem Schriftsatz in jeder Variation in jeder Größe gegen dein Bild testen, und z.B. zählen wie viele Pixel gleich sind. Das ist jedoch nicht nur irre langsam und ineffizient, sondern mehr als Fehleranfällig, und damit schon fast als nicht praktikabel anzusehen :). |
Re: >OCR - Schrifterkennung
damals auf meinem atari ST F (1MB ram, 16Mhz)
gab es auch OCR software (für S/W Texte) die mich immer gefragt hat, wenn sie ein zeichen nicht kannte, was es denn sei. nach 20-30 mal nachfragen für einen großen text, ging es ziemlich flüssig und gleichzeitig ziemlich schnell für 16Mhz. da denk ich mir doch, haben die das damals ohne NN gemacht? oder wie :wiejetzt: |
Re: >OCR - Schrifterkennung
Zitat:
\\Edit: Zu "ziemlich schnell": Ein trainiertes NN ist sehr schnell, da der rechnerische Aufwand je nach zu erkennenden Mustern ziemlich gering ist. Das sind DIE Vorteile von NNs: Völlig flexibel, da trainierbar und sehr schnell. Dafür nimmt man in Kauf dass ein NN auch übertrainiert werden kann, und dass Fehlerkennungen möglich sind. |
Re: >OCR - Schrifterkennung
Hier in der DP müsste ein Sourcecode von mir mit einem Neuronalen Netz zu finden sein.
Mit diesem Netz habe ich zwei Arten von OCR's realisiert, experimentell versteht sich. Einmal die Bildorientierten OCR's wie die meisten anderen Lösungen auch. Und dann noch die sogennannten Stroke basierten OCR's wie sie zB. auf den Palm HanldHelds im Grafitti-Bereich üblich sind. Dabei wird die Stiftführung als Relativ-Vektor gescannt. In jedem Fall müssen für das NN die Eingangsdaten normalisiert werden, sprich grafisch kontrastiert werden, danach der relevante Bildausschitt ausgeschnitten werden, dieser auf eine Einheitsgröße scaliert und dann je nach Verfahren in Vektoren für die Inputs des NN's umgewandelt werden. Bei der reinen Bilderkennung von Buchstaben scanne ich eine Bitmap mit 16x16 Pixel jeweils horizontal, vertical und diagonal. Bei diesem Scanning werden einfach die Anzahl der dunklen Pixel gezählt. Bei 16x16 Bitmaps ergibt dies 16+16+15+15 = 63 Inputwerte für das Netzwerk, schon ziemlich viele für die ersten Tests. Mit einzelnen Buchstaben funktioniert beides relativ einfach. Kompliziert wird es erst wenn man OCR Texte erkennen möchte. Dort wird dann meistens mit mehreren verschiedenen Netzen gearbeitet, um Seiten, Zeilen, Wörter, Trennzeichen usw. usw. zu erkennen. Naja auf alle Fälle hat beides ziemlich gut funktioniert. Gruß Hagen |
Re: >OCR - Schrifterkennung
@Dizzy:
Zitat:
Eine Überkonditionierung eines Netzwerkes wird im Grunde ständig zu Fehlern führen. So wie ein Fetischist sich nur noch auf eine einzigste Sache konzentrieren kann so verhält es sich bei einem übertrainiertem Netzwerk. Das Ding ist dann im Grunde zu Nichts mehr zu gebrauchen. Selbst umlernen ist bei den meisten NN Typen unmöglich. Gruß Hagen |
Re: >OCR - Schrifterkennung
@endeffects:
rein interesse halber: meinst du bspw. sowas? ![]() -> ![]() -> ![]() -> ![]() |
Re: >OCR - Schrifterkennung
dein ansatz ist schon ganz richtig.
die ocr's wandeln die bitmap in vektoren um. dann versuchen sie ein einzelnes zeichen zu finden und mit den refernzmustern zu vergleichen. |
Re: >OCR - Schrifterkennung
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ein recht gutes NN für den Einsatz als OCR, das sich zudem auch noch selbst trainiert, gibt es unter ![]() (ich hab es mal ran gehängt). Bisher habe ich es allerdings noch nicht geschafft Buchstaben zu erkennen die miteinander z.B. durch eine Linie verbunden sind. |
Re: >OCR - Schrifterkennung
Moin, moin,
vor etlicher Zeit habe ich mal einen Jugend-Forscht Beitrag gesehen wo eine Schrifterkennung programmiert wurde. Das Prinzip war erst mal eine Datenreduktion. Aus der Fläche wurden die Eckpunkte und die Kreuzungspunkte mit Winkel ermittelt. Daran wurde dann eine Wahrscheinlichkeitsaussage für einen Buchstaben gegeben. Grüße // Martin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz