Mit PHP: OCR Erkenung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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.

  • #2
    Vielleicht ist das hier was für dich?

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      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.

      Kommentar


      • #4
        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.
        Zuletzt geändert von Kropff; 13.09.2011, 16:52.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Zitat von Kropff Beitrag anzeigen

          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.

          Kommentar


          • #6
            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
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Versteh nicht wie ihm das helfen soll... er will doch Buchstaben erkennen und nicht erzeugen?
              This is what happens when an unstoppable force meets an immovable object.

              Kommentar


              • #8
                Zitat von ApoY2k Beitrag anzeigen
                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
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  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....

                  Kommentar


                  • #10
                    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?
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      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
                      Zuletzt geändert von hostbar_danny; 14.09.2011, 00:41.
                      hostbar - Full Service Internet Agentur

                      Kommentar


                      • #12
                        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.

                        Kommentar


                        • #13
                          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
                          hostbar - Full Service Internet Agentur

                          Kommentar

                          Lädt...
                          X