Mit PHP: OCR Erkenung

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • hostbar_danny
    replied
    Hallo,

    sicherlich mag das auch mit PHP gehen. Ich bin jetzt nicht so fit in der Theorie hinter Texterkennung, aber soweit ich mich noch an meine Bildinformatik Vorlesung erinnere läuft Mustererkennung wie folgt ab:

    Du hast dein Ausgangsbild, entfernst unwichtige Bildinformationen (z.B. Nicht-Text/Linien/etc.), erkennst Merkmale in dem Bild und Klassifizierst diese.

    Und hier liegt der Punkt, die Merkmale musst du dem System erst einmal beibringen. So musst du in deinem Fall alle bei dir möglicherweise vorkommenden Zeichen in Merkmalen ausdrucken. Bei der Analyse erkennst du im Eingabebild ebenfalls Merkmale und durch die Klassifikation kommst du dann zum Schluss, dass z.B. die gefundenen Merkmale am besten auf den Buchstaben A passen.

    Und deshab hat phpOCR wahrscheinlich bei dir nicht funktioniert. Ich hab mir das Paket mal heruntergeladen, in der char_inc_6.php ist die Merkmalsdatenbank für die Zahlen 0-9. Für andere Zeichen, bzw. Fonts muss das System trainiert werden (wie steht in der readme).

    Schau dir mal Google an, die nutzen den reCaptcha Dienst genau für diesen Zweck. Ein Captcha mit zwei Wörtern, eins ist bekannt und bei dem anderen ist man sich nicht "sicher". Gibt der Benutzer nun das bekannte richtig ein und beim unsicheren auch nicht Murks ein, dann gehen Sie davon aus, dass der Besucher auch das zweite Wort richtig eingegeben hat und Sie haben ein neues Wort gelernt. Damit wird das OCR System von Google Books (evt. Docs) trainiert.

    Bei dir kommt ja noch ein Punkt dazu. Aufnahmen mit der Handy Cam sind selten senkrecht von oben. Dein Text ist also zusätzlich je nach Winkel verzerrt.

    Nummernschilder in Deutschland z.B. haben deshalb ein speziellen Font der für die einzelnen Zeichen, sehr unterschiedliche Merkmale liefert und deshalb die Erkennung des Nummerschild bei Blitzern (leider ) sehr gut funktioniert.

    Es ist also sicherlich möglich, aber je nach dem wie unterschiedlich deine Eingabebilder sind, sicherlich nicht einfach

    Gruß Danny

    Leave a comment:


  • alexander_fire
    replied
    danke für die vielen Tipps.

    Ich werde mir das ganze gleich genauer ansehen.

    Es geht darum:
    Der Benutzer fotografiert mit der Handykamera einen Beleg (z.B. Bahnticket) und das Programm soll eben den Text davon erkennen und im Anschluss die wichtigsten Daten daraus herauslesen und verbuchen.

    Handykameras haben mittlerweile schon hohe Auflösungen. Würde das mit PHP nicht mehr funktionieren? (zu Ressourcen intensiv?)

    lg.

    Leave a comment:


  • hostbar_danny
    replied
    Was sind das denn für Grafiken? Sind das große Dokumente die du zu Text konvertieren möchtest oder nur einzelne Buchstaben / Captcha ? OCR ist grundsätzlich recht ressourcenintensiv, macht es da nicht vielleicht Sinn das ganze nicht per PHP zu lösen, sondern mit bewährter Software die auf dem Server läuft ?

    Alternative wäre da vielleicht auch ein Webservice. Google Docs bietet OCR aus Grafiken und PDF an. Ich kenn die GoogleDocs API nicht wirklich gut und hab nur mal einen kurzen Blick darauf geworden, aber so wie ich es verstehe lädt er das konvertierte Dokument in dein Google Docs Account... Aber ich vermute da gibt es auch eine genau so einfach Möglichkeit das konvertierte Dokument wieder auszulesen.

    Protocol Guide (v3.0) - Google Documents List Data API v3.0 - Google Code

    Oder ein anderer OCR Web Service, von denen es einige zu geben scheint. Nun weiß ich nicht ob wieviele Requests du hast, ob du dafür Geld ausgeben möchtest, etc... Ohne zu wissen ob der Dienst gut oder schlecht ist, vielleicht ist das ja was für dich Ocr Api Service - Iphone - Android - Blackberry - Windows Phone - Web apps

    Gruß Danny

    P.S. Falls es zum Knacken von Captchas ist, dafür gibt es ebenfalls ein paar "gute" Web-Services
    Last edited by hostbar_danny; 13-09-2011, 23:41.

    Leave a comment:


  • Kropff
    replied
    Also eine reine OCR-Erkennung ist wohl ziemlich heftig. Frag am Besten mal all die Spammer, die so was knacken. Und tierisch viel Arbeit sowie Geld darin investieren.

    Peter

    PS. Was genau hast du eigentlich vor?

    Leave a comment:


  • alexander_fire
    replied
    also ich bin noch immer nicht schlauer...
    hat mir in der tat nicht wirklich geholfen.

    wäre für mehr vorschläge sehr dankbar.

    Bzw. grundsätzlich ist es möglich eine halbwegs gute OCR-Erkennung selber mit PHP zu programmieren. Wird natürlich eine Weile dauern schätzi ich. aber das ist okey....

    Leave a comment:


  • Kropff
    replied
    Originally posted by ApoY2k View Post
    Versteh nicht wie ihm das helfen soll... er will doch Buchstaben erkennen und nicht erzeugen?
    Upsi, hab mich zu sehr auf das Captcha konzentriert.

    Peter

    Leave a comment:


  • ApoY2k
    replied
    Versteh nicht wie ihm das helfen soll... er will doch Buchstaben erkennen und nicht erzeugen?

    Leave a comment:


  • Kropff
    replied
    Da erzeugst mit rand ein paar Zahlen. Und wandelst die mit chr in Buchstaben um (Dec-Zahl aus der ASCII-Tabelle). Und den Rest bastelst du mit der Gdlib zusammen. Bei Letzterer kann ich dir aber nicht weiterhelfen, da ich damit kaum gearbeitet habe.

    Peter

    Leave a comment:


  • alexander_fire
    replied
    Originally posted by Kropff View Post

    EDIT:
    Warum gehst du eigentlich nicht anders vor? Du generierst per PHP ein paar Buchstaben, jagst die durch die Gdlib und dann hast du ein Captcha und du kennst schon die Buchstabenkombination.
    Ähhmmm.....
    Da komm ich gerade nicht mit?

    buchstaben erzeugen per PHP: Okey... werd ich schon irgendwie lernen, bzw. googeln.

    durch Gdlib jagen?
    Was habe ich? Captcha?

    Kannste mir das nochmal genauer erklären? gg

    lg.

    Leave a comment:


  • Kropff
    replied
    This class provides a base implementation for an OCR tool. It can be trained to learn how to recognize each letter drawn in an image. Then it can be used to recognize longer texts in real documents.
    Ansonsten hilft nur weitersuchen.

    Peter

    EDIT:
    Warum gehst du eigentlich nicht anders vor? Du generierst per PHP ein paar Buchstaben, jagst die durch die Gdlib und dann hast du ein Captcha und du kennst schon die Buchstabenkombination.
    Last edited by Kropff; 13-09-2011, 15:52.

    Leave a comment:


  • alexander_fire
    replied
    Hallo,

    danke für die Antwort.

    Ähhmmm.... wenn ich diese Example_01.php ausführe (was ja ein Beispiel sein sollte)
    zeigt es bei allen beispielbildern "not recognised yet" an. Also funktioniert dies nicht wirklich oder mache ich etwas falsch?

    lg.

    Leave a comment:


  • Kropff
    replied
    Vielleicht ist das hier was für dich?

    Peter

    Leave a comment:


  • alexander_fire
    started a topic Mit PHP: OCR Erkenung

    Mit PHP: OCR Erkenung

    Hallo,

    Ich habe mit PHP noch nicht soviel programmiert, bin aber Programmierer.
    Also kein blutiger Anfänger.

    Meine Aufgabenstellung: OCR Erkennung bei einem Bild (jpeg)
    Dies soll in einer Web Anwendung funktionieren.
    Nun bin ich durch vieles suchen darauf gestoßen das PHP hierbei eventuell der richtige Ansatz wäre.

    Und auf das bin ich auch gestoßen:
    PHP: GD - Manual

    Ist mein Vorhaben möglich? Mit PHP ein Bild einzulesen die einzelnen Buchstaben zu erkennen, sie zu vergleichen mit bestehenden Buchstaben und so eine OCR Erkennung zu programmieren?

    lg. Danke für eure Antworten.
Working...
X