AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

>OCR - Schrifterkennung

Ein Thema von endeffects · begonnen am 4. Aug 2005 · letzter Beitrag vom 7. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2   
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

>OCR - Schrifterkennung

  Alt 4. Aug 2005, 19:55
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:
____________######____
__________#########___
________############__
_______#_______######_
______#_________####__
_____#___________##___
____#_________________
____#_________________
___##_________________
__###_________________
__###________#####____
_####_____###########_
_####_____#____######_
_####____#________####
########__________#####_
########___________####_
#######____________#####
#######____________######
#######____________######
#######____________######
#######____________#####_
_######____________#####_
_######____________#####_
_######____________####__
__#######________#####___
___######________####____
___########___######_____
____#############________
__________#______________
Nunja, nun habe ich mir überlegt
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
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: >OCR - Schrifterkennung

  Alt 4. Aug 2005, 20:29
Zitat von endeffects:
Gibt es dabei eine Möglichkeit auf ein neuronales
Netz zu verzichten?
Ich hatte mich irgendwann mal aus Interesse zu OCR im Netz rumgetrieben, und davon habe ich noch eine Sache ganz besonders im Kopf: Keine der Lösungen kam ohne NN aus. Das ist auch gut nachvollziehbar, da Texterkennung eine reinrassige Mustererkennung ist, und exakt dafür sind NNs geschaffen.
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 .
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#3

Re: >OCR - Schrifterkennung

  Alt 4. Aug 2005, 21:09
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
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: >OCR - Schrifterkennung

  Alt 4. Aug 2005, 21:28
Zitat von supermuckl:
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
Aber ganz im Gegenteil. Genau das ist die Arbeitsweise von NNs. Sie müssen im Vorfeld trainiert werden, und man hat dieses damals denke ich sehr gering gehalten bei Auslieferung, damit die Datenmenge nicht zu groß für die damaligen Träger wurde., und/oder um die Kosten gering zu halten. Spracherkennungssoftware arbeitet z.B. nach dem selben Prinzip, und muss auch trainiert werden. Gerade das ist ja das Wesen von NNs

\\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.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#5

Re: >OCR - Schrifterkennung

  Alt 5. Aug 2005, 01:04
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
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: >OCR - Schrifterkennung

  Alt 5. Aug 2005, 01:08
@Dizzy:

Zitat:
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.
Das ist korrekt. Wenn man denn auch ein trainierbares Netzwerk zustande bekommt. Denn das schwierigste bei jedem NN ist es die Eingangsdaten und Trainingsdaten so aufzubereiten das das NN auch lernen kann. Dies ist nicht so einfach wie man denkt.

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
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
614 Beiträge
 
#7

Re: >OCR - Schrifterkennung

  Alt 5. Aug 2005, 02:05
@endeffects:

rein interesse halber: meinst du bspw. sowas?

http://www.google.de/search?hl=de&q=...le-Suche&meta=
-> http://www.19.5degs.com/element/222.php (php source)
-> http://www.codeproject.com/aspnet/as...select=1071893 (source)
-> http://www.text-image.com/convert/ascii.html
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.277 Beiträge
 
Delphi XE5 Professional
 
#8

Re: >OCR - Schrifterkennung

  Alt 5. Aug 2005, 09:16
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.
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#9

Re: >OCR - Schrifterkennung

  Alt 5. Aug 2005, 10:58
Hallo,

ein recht gutes NN für den Einsatz als OCR,
das sich zudem auch noch selbst trainiert, gibt
es unter http://xpidea.com/Default.aspx?tabid=29
(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.
Angehängte Dateien
Dateityp: zip neurovcl12free_118.zip (1,99 MB, 124x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.015 Beiträge
 
Delphi XE3 Enterprise
 
#10

Re: >OCR - Schrifterkennung

  Alt 5. Aug 2005, 11:33
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
Martin Schaefer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf