![]() |
>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 |
Re: >OCR - Schrifterkennung
ein interessanter ansatz, leider spuckt google
und jugend-forscht.de nicht mehr dazu aus |
Re: >OCR - Schrifterkennung
@Alle
Den alten Thread hole ich mal aus der Versenkung, da es mich im Zuge meiner Projekte interessiert und meiner Idee entspricht, eigentlich nur die wichtigsten Punkte eines Buchstabens zu speichern. Damit würde sich die Erkennung nicht auf alle Punkte, sondern nur den wesentlichen Eckpunkten/Merkmalen konzentrieren. Z. B. dürfte der Buchstabe A mit zwei oder drei Vektoren zu beschreiben sein, was aber letztendlich das NN Programm entscheiden sollte. Ein Wörterbuch sollte das Programm abrunden. Viellicht findet doch jemand den Jugendforscht Beitrag. Leider scheinen die Projekte von Jugend forscht nicht mehr online zu sein, oder werden generell nicht reingestellt. Ich fand, es gab hochinteressante Beiträge. Ein Link zu OCR ![]() |
Re: >OCR - Schrifterkennung
ja das würde mich auch noch interessieren,
leider bin ich trotz wochenlanger suche zu keinem brauchbaren ergebnis gekommen |
Re: >OCR - Schrifterkennung
Ich glaube, ein OCR-System mit Delphi (für eine kommerzielle Anwendung) zu programmieren ist kein Projekt, das man mal "so eben" alleine durchzieht. Über Mustererkennung gibt es ganze Bücher, Vorlesungen und eine Menge Theorie und das ist kein ganz einfacher Stoff. Wenn man ein paar Buchstaben oder Zahlen erkennen möchte, um die prinzipiellen Algorithmen kennenzulernen, ist das alles machbar. Wenn man aber ganze Texte und Seiten erkennen möchte, dann wird es unglaublich viel komplexer. Daher würde ich dafür auf jeden Fall eine Komponente lizensieren und die paar 1000 Euro dafür ausgeben - man selber schafft so etwas nicht für den gleichen Preis...
Wer sich für Mustererkennung interessiert, sollte sich entweder Literatur dazu durchlesen, oder sich Vorlesungen an der Uni für einen ersten Überblick anhören. Hier: ![]() |
Re: >OCR - Schrifterkennung
@dominik.boehm
Das denke ich auch, das OCR nur "im Team" und weniger in Einzelarbeit gelingt und zum kommerziellen Einsatz auch eine kommerzielle, ausgereiftes OCR Modul zum Einsatz kommen sollte. Aber anscheinend haben die "Jugend forscht" Leute eine Methode gefunden, trotz vieler Bücher und Abhandlungen. Die "Jungen" schauen im Gegensatz zu uns Älteren oder Studierten, nach neuen, kreativen Lösungen. Und das funktioniert auch, weil die "Jungen" noch nicht so auf Exaktheit und streng wissenschaftliches Arbeiten konditioniert wurden. Dein Link ist sehr informativ. Ich kann ihn nur weiterempfehlen. Danke Dominik! CU! Go2EITS |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 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