Problem mit korrekter Zahlenerkennung Emgu Tesseract OCR

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von dreama69.

    Problem mit korrekter Zahlenerkennung Emgu Tesseract OCR

    Hallo zusammen,

    ich habe folgendes Problem und zwar versuche von meinem Screen Zahlen auszulesen und mit diesen dann weiterzuarbeiten. Tesseract erkennt zwar richtig, wie viele Stellen die Zahl hat und den Tausenderpunkt, jedoch zeigt es mir nur 0 (Nuller) an also zb. bei 7.000 -> 0.000 bei 10.000 -> 00.000.

    Code:

    Dim OCRz as Tesseract = New Tesseract()
    ....
    OCRz.SetVariable("tessedit_char_whitelist", ".1234567890"
    OCRz.Init("tessdata", "eng", false)
    OCRz.Recognize(New Image(Of Bgr, Byte)(image)

    Das "original Image" (Anhang: Test) ist allerdings ziemlich klein, deswegen habe ich versucht das Image durch:

    Dim newsize As New Size(x,y)
    Dim resimage As Image = New Bitmap(bmp, newsize)

    zu vergrößern (wie auf den angehängten Bildern zu sehen ist). Hab aber leider immer noch das gleiche Problem, dass nur 0 (Nullen) erkannt werden :/
    Muss oder kann ich Tesseract irgendwie trainieren oder anlernen, um diese Zahlen erkennen zu können oder was mache ich falsch? Wäre sehr dankbar wenn mir jemand helfen könnte, langsam bin ich am verzweifeln :/ ^^

    Vielen Dank im Voraus schonmal :)
    Bilder
    • Test3.jpg

      125,23 kB, 3.685×2.070, 253 mal angesehen
    Dateien
    • Test.bmp

      (1,13 MB, 286 mal heruntergeladen, zuletzt: )
    • Test1.bmp

      (4,52 MB, 240 mal heruntergeladen, zuletzt: )
    • Test2.bmp

      (10,17 MB, 176 mal heruntergeladen, zuletzt: )

    dreama69 schrieb:

    diese Schrift
    Oder anders herum:
    Verwende eine OCR-freundliche Schriftart.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    dreama69 schrieb:

    und nicht
    Wo kommt denn das Image her?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Aus Emails aber das spielt doch eigentlich keine Rolle, für die Behebung des Problems oder ? Also woher das Image kommt !?
    Es muss doch eine Möglichkeit geben das Programm "anzulernen" um die Zahlen von 0 bis 9 aus diesen Bildern herauslesen zu können ? Wie kann es sein dass jede Zahl als 0 angesehen wird ?

    Es geht mir auch darum einfach was zu lernen :)

    dreama69 schrieb:

    das spielt doch eigentlich keine Rolle
    Es gibt OCR-freundliche Schriftarten
    und
    es gibt OCR-unfreundliche Schriftarten.
    Wenn diese OCR für Deine Schriftart nicht getuned wurde, hast Du schlechte Karten und steigst besser auf eine OCR-freundliche Schriftart um.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Aber ich kann doch nicht die Schriftart aus einem bestehenden Image ändern ??
    Also ist die einzige Möglichkeit die OCR zu tunen oder versteh ich da was falsch ?

    Ich hab teilweise auch gelesen bzw. Videos gesehen wo die OCR verbessert wurde um Handschrift zu erkennen zum Beispiel... die Frage ist nur wie das funktioniert ?
    Mir ist nicht bekannt das du dem neue Schriftarten einfach mal so beibringen kannst.
    Also bleibt dir nur die möglichkeit die Quelle der Bilder zu ändern so das eine vernünftige Schriftart beim erstellen der Bilder verwendet wird.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Naja es muss ja nicht unbedingt einfach sein ;) Und der Aufwand ist ja eh deutlich reduziert, da ich nur Zahlen erkennen muss und nicht das ganze Alphabet + Sonderzeichen ... Hmm die Quelle der Bilder kann ich aber nicht ändern. Die sind wie sie sind ... :/

    dreama69 schrieb:

    die OCR zu tunen
    ist des Anbieters Bier, nicht Deins.
    Es sei denn, Du erfindest die OCR für diese Schriftart neu.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    dreama69 schrieb:

    Es muss gehen.
    Es geht auch.
    Die Frage ist, wer macht die Arbeit und wer sorgt dafür, dass das Richtige getan wird.
    Hier im Forum wohl niemand. :/
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    dreama69 schrieb:

    das Richtige
    1. reden wir uns hier mit Du an.
    2. müsstest Du eine vorhandene Open-Source-OCR verwenden, und da bräuchte derjenige, der das machen soll, eine Einweisung, wo man ihm sagt, was zu tun ist und wo angefasst werden sollte.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    dreama69 schrieb:

    eine Open-Source-OCR verwend ich ja bereits.
    Diese Information bereits in Post #16. :rolleyes:
    Debugge diese Software, gib ihr Muster vor, sieh Dir den Unterschied an zwischen erkannten und nicht erkannten Zeichen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    dreama69 schrieb:

    eigentlich schon in Post #1
    Kann ich nicht entdecken.
    Da müsste so was stehen wie:
    Ich verwende die (Open-Source-) OCR von XYZ.
    Das sind ganz wichtige Informationen, die musst Du explizit posten!
    Und dann so was:
    Gibt es hier User, die damit Erfahrungen haben?
    Usw.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich verwende EmguCV oder würdest du mir eine andere empfehlen ?
    Gibt es hier User, die damit Erfahrungen haben und helfen können ?

    Du hast bestimmt Erfahrung darin und kennst dich aus ;) Ich weiß nur noch nicht so genau, wie ich dich überzeigen kann, mir zu helfen :D