Captcha RegEx Cracker

10/09/2013 20:00 Shadow992#1
Hallo zusammen,

ich habe ein recht triviale Frage, zu der ich bisher jedoch noch keine passende Antwort gefunden habe:

Gibt es einen Captcha-Cracker oder allgemein ein OCR-Programm/eine lib, die mir auf Basis von RegEx gewisse Zeichen interpretiert?

Der Sinn davon ist ganz einfach gehen wir davon aus, dass ich eine eingescannte handschriftliche Rechenaufgabe habe:

Quote:
10+8*122-0
Wenn ich jetzt per RegEx dem OCR schon im voraus sagen kann:
1. Es kommen nur Zahlen und Rechenzeichen vor.
2. Die Zahlen besitzen keine Nachkommastelle.
3. Nach jedem Rechenzeichen muss entweder ein + oder - kommen oder eine Zahl.

Dann wäre die Erkennungsrate um einiges höher als mit einem System, das von dem kompletten ASC II Satz ausgeht oder vielleicht sogar von UTF8.

Natürlich könnte man nachträglich mit RegEx drüber gehen, dabei bemerkt man dann aber lediglich ob die Syntax der Rechenaufgabe korrekt ist, man kann jedoch nicht die gewonnen Erkentnisse in die OCR-Lib einfließen lassen, zumindest in keine, die ich kenne.

Die Frage ist also erst einmal gibt es OCR-Libs, die derartig (einfache) RegEx-Ausdrücke mit einbeziehen können?
10/09/2013 20:45 tolio#2
die meisten ocrs muss man eh selber trainieren, also nur buchstaben und rechenzeichen trainieren

sonst kann man bei den meisten systemen die ich ausprobiert hab auch nen wörterbuch oä angeben
10/09/2013 22:38 Shadow992#3
Quote:
Originally Posted by tolio View Post
die meisten ocrs muss man eh selber trainieren, also nur buchstaben und rechenzeichen trainieren

sonst kann man bei den meisten systemen die ich ausprobiert hab auch nen wörterbuch oä angeben
Natürlich lassen sich die Sachen auch nur antrainieren, aber RegEx geht ja über ein vorgegebens Alphabet hinaus sondern sagt auch etwas über die Syntax aus. ;)
10/09/2013 22:38 tolio#4
schon klar, ums dann kurz zu sagen, mir ist nichts in der richtung bekannt ;)
10/11/2013 22:45 VisionEP1#5
Schau mal nach dem Algo der Nummernschilder von Autos erkennt,
Anderer Ansatz aber geht auch ganz gut.
10/12/2013 11:06 Shadow992#6
Quote:
Originally Posted by VisionEP1 View Post
Schau mal nach dem Algo der Nummernschilder von Autos erkennt,
Anderer Ansatz aber geht auch ganz gut.
Wenn ich mich nicht irre, läuft das meistens über Support Vector Maschinen, zumindest bieten diese die höchste Erkennungsrate. Wenn man sich jetzt selbst einen zusammenbastelt kann man den freilich anpassen wie man möchte, aber deswegen ist es immer noch hardcoded und nicht wie RegEx modulisierbar und allgemein änderbar.
10/12/2013 12:07 CallSaul#7
#nicht genug geschlaften p.q

Naja, Edit: [Only registered and activated users can see links. Click Here To Register...]
10/12/2013 13:25 MrSm!th#8
Quote:
Originally Posted by Shadow992 View Post
Natürlich lassen sich die Sachen auch nur antrainieren, aber RegEx geht ja über ein vorgegebens Alphabet hinaus sondern sagt auch etwas über die Syntax aus. ;)
Ein vorgegebenes Alphabet schränkt es ja schon massiv ein. Die Nachkommastellen halte ich für Peanuts (zumal du das Komma einfach nicht zulassen musst).
Quote:
Originally Posted by Shadow992 View Post
Wenn ich mich nicht irre, läuft das meistens über Support Vector Maschinen, zumindest bieten diese die höchste Erkennungsrate. Wenn man sich jetzt selbst einen zusammenbastelt kann man den freilich anpassen wie man möchte, aber deswegen ist es immer noch hardcoded und nicht wie RegEx modulisierbar und allgemein änderbar.
Und was hindert dich daran, RegExps in diese Anpassung einfließen zu lassen?
10/13/2013 22:23 Shadow992#9
Quote:
Originally Posted by MrSm!th View Post
Ein vorgegebenes Alphabet schränkt es ja schon massiv ein. Die Nachkommastellen halte ich für Peanuts (zumal du das Komma einfach nicht zulassen musst).
Ja da hast du natürlich recht, aber ich würde trotzdem noch das i-Tüpfelchen dafür haben wollen. :)

Quote:
Originally Posted by MrSm!th View Post
Und was hindert dich daran, RegExps in diese Anpassung einfließen zu lassen?
Naja prinzipiell der Programmieraufwand.
Ich würde halt wenn möglich das Rad nicht neu erfinden wollen, sondern auf eine bestehende Lib zurückgreifen können wollen. ;)
Wenn ich etwas derartiges selbst programmieren würde, wäre ein RegEx-Anpassung selbstverständlich total unproblematisch.