Autor Beitrag
P@u1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Do 25.03.10 18:46 
Ich wollte schon immer mal in programmen von mir grafikerkennung benutzen, und jetzt habe ich diese kostenlose ocr engine gefunden:
code.google.com/p/tesseract-ocr/

nur hab ich leider überhaupt keine ahnung, ob und wenn ja wie ich das mit delphi verwenden kann.

Funktioniert das irgendwie mit kommandozeile vielleicht? (weiß nicht genau was das ist, hab ich aber mal gehört)

Wäre gut wenn ihr mir helfen könntet ;)

Edit: Wenn ich diesen Download hier nehme:
code.google.com/p/te....gz&can=2&q=

dann krieg ichs nichtmal ohne delphi, also über die exe verwendet, ich starte es, es erscheint eine konsole die irgendwas ganz kurz anzeigt und dann sich direkt wieder schließt.
Liegt das vll daran, dass das nur über kommandozeile funktioniert?

edit2: wenn jemand gute kostenlose(!) alternativen kennt, wäre das auch gut.

Ich möchte das hauptsächlich (würde schon reichen) dafür verwenden, ziffern von 0 bis 9 erkennen zu können - bei einem beliebigen hintergrund (von dem angenommen werden kann, dass die farbe sich räumlich nur schwach unterscheidet, z.B. verschiedene grüntöne, aber alles grün).
Ich möchte aber auf keinen fall mit vergleichsbildern arbeiten müssen.
Wenn ihr dazu gute ideen habt wie das anders geht, immer her damit ;)
Ich denke aber das das schwierig wird das selbst zu programmieren sowas zu erkennen, also dachte ich an fertige ocr's wie die oben beschriebene.
DHE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP, Ubuntu 9.04
Delphi 7 PE; Delphi 2010 Prof (Dank AGS 2009 ;-) )
BeitragVerfasst: Fr 26.03.10 01:00 
Ja Tesseract ist nur ne "reine" OCR-Engine, also ohne GUI usw. Du übergibst beim Programmaufruf den Pfad zum Eingabebild und bekommst den Output als Datei zurück.

Um Tesseract mit Delphi zu nutzen musst du nur Tesseract mit den richtigen Paramtern ausführen und den Output aus der Texdatei laden (Memo, Stringlist, etc.)

Tesseract ausführen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
LocalPath := ExtractFilePath(Application.ExeName);
Params := 'input.tif output -l deu';

ShellExecute(Application.Handle,'open',PChar(LocalPath + '\tesseract\tesseract.exe'),Params,PChar(LocalPath + '\Tesseract'), SW_HIDE);


Und Ergebnis öffnen (Standardmäsig im Tesseractverzeichniss):
ausblenden Delphi-Quelltext
1:
Memo.Lines.LoadFromFile('LocalPath + '\tesseract\output.txt');					


Das ganze kannst du ja noch über weitere Parameter anpassen (Ausgabepfad, Direkter Bildpfad, etc.) Dazu einfach mal durch die Seite durchwühlen :D
P@u1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Sa 27.03.10 20:10 
vielen dank für die hilfe.

Leider werden kleine ziffern, die aus relativ wenig pixeln bestehen nicht richtig oder gar nicht erkannt.
Kann man das irgendwie optimieren nur auf ziffern oder auf ne kleine zahlengröße, oder etwas anderes, was dafür besser geeignet ist benutzen?
Tryer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: Sa 27.03.10 20:34 
Hier steht doch alles ;)
Also: Ja, man kann die Engine trainieren (was bei sehr kleinen Zeichen explizit empfohlen wird).

Grüsse, Dirk
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 27.03.10 20:54 
Moin!

user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
Leider werden kleine ziffern, die aus relativ wenig pixeln bestehen nicht richtig oder gar nicht erkannt.
Kann man das irgendwie optimieren nur auf ziffern oder auf ne kleine zahlengröße, oder etwas anderes, was dafür besser geeignet ist benutzen?
Um mal ein bischen Sinn in diese Diskussion zu bringen: die modernen Captchas sind so gebaut, dass man sie nicht mit einer Standard-OCR-Engine geknackt kriegen soll (selbst modernere mit Winkelschnittanalyse haben bei den meisten Captchas keine Chance). Und - genau so soll es sein. :|

Fazit: Vergiss es, wenn es um Captchas geht. :P dafür brauchst du intelligentere, auf genau diese Aufgabe und den Captcha-Typ optimierte kleine "Kunstwerke" an Code...

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
P@u1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Sa 27.03.10 21:00 
es geht nicht um captchas
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 27.03.10 21:05 
Moin!

user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
Ich möchte das hauptsächlich (würde schon reichen) dafür verwenden, ziffern von 0 bis 9 erkennen zu können - bei einem beliebigen hintergrund (von dem angenommen werden kann, dass die farbe sich räumlich nur schwach unterscheidet, z.B. verschiedene grüntöne, aber alles grün).
Ich möchte aber auf keinen fall mit vergleichsbildern arbeiten müssen.
user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
es geht nicht um captchas
Da OCR-Technik mal eins meiner Hobbies war, bin ich da grundsätzlich neugierig ;) Um was geht´s denn sonst? :gruebel:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
P@u1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Sa 27.03.10 21:09 
es geht um eine art bot für ein kartenspiel
bisher habe ich mit vergleichsbildern gearbeitet, aber mit ocr wäre es viel besser

das mit dem trainieren versteh ich leider nicht wie das geht, auch mit dem link^^

ich bin für jede hilfe dankbar, auch alternativlösungen, aber bitte erzählt mir jetzt nicht wieder, dass solch ein programm nicht erlaubt ist oder sowas.
DHE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP, Ubuntu 9.04
Delphi 7 PE; Delphi 2010 Prof (Dank AGS 2009 ;-) )
BeitragVerfasst: Sa 27.03.10 22:30 
user profile iconP@u1 hat folgendes geschrieben Zum zitierten Posting springen:
es geht um eine art bot für ein kartenspiel

Wieso? Wie willst du denn die Farbenerkennung (Karo, Herz, Pik, Kreuz) über OCR regeln?
Vergleichsbilder scheinen mir da die bessere Lösung zu sein...
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 27.03.10 22:58 
Bevor noch weitere Missverständnisse aufkommen, solltest Du user profile iconP@u1 vielleicht noch an diesen Thread von Dir erinnern.
Wenn es noch darum geht? Alles andere ist sonst zweifelhaft oder?
Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
P@u1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: So 28.03.10 00:46 
ja um sowas geht es, aber die kartenwerte werden auch als zahlen angezeigt, das würde schon reichen wenn man die erkennen kann

außerdem finde ich das thema texterkennung sehr interessant und wollte mich mal ein bisschen damit beschäftigen, auch wenns erstmal nur um das "trainieren" von fertigen engines geht^^