Probleme beim erkennen von Ziffern in Tesseract - android
Ich hatte gehofft, jemand könnte mir sagen, warum, es ist mein Tesseract hat Schwierigkeiten zu erkennen, einige Bilder mit Ziffern, und wenn ich etwas über es tun können.
Alles funktioniert laut test, und da ist es nur die Ziffern, die ich brauche, dachte ich, ich könnte verwalten mit dem englischen Muster, bis ich hatte zu Beginn mit der 7segmented Anzeige aswell.
Obwohl ich hatte eine Menge ärger mit den angehängten Bildern, ich würde gerne wissen, ob ich sollte anfangen zu arbeiten auf meine eigenen algorithmen oder wenn ich tun konnte, meine eigene Datensätze für Tesseract und dann würde es auch funktionieren, weiß jemand, wo die Einschränkung liegt mit Tesseract?
Sachen ausprobiert:
versuchte, zu psm zu one_line, one_word, one_char(und hacken, bis das Bild).
Mit one_line und one_word gab es keine signifikanten Veränderungen.
mit one_char es erkennt, etwas besser, aber manchmal, aufgrund der großen Abstände ist es angebracht, eine extra-Zahl, die dann schraubte Sie bis, wenn Sie einen Blick auf das angehängte Bild dann ergab sich in der 04.
Ich habe auch versucht zu tun die Binarisierung mich, dies führte in den ärmeren Anerkennung und war sehr rescource konsumieren.
Ich habe versucht, zum umkehren der Bilder, das macht überhaupt keinen Unterschied für tesseract.
Ich anbei die Bilder, die ich brauchen würde, unter anderem, bearbeitet werden.
Erklärung zu den Bildern:
ist ein Bild, das tesseract hat keine Schwierigkeiten zu erkennen, obwohl es in word für die Bequemlichkeiten der Erstellung einer app rund um ein funktionierendes image.
ist real life image matching der image_seven. Aber kann es nicht erkennen.
ist ein weiteres Bild, das ich mag würde, es zu erkennen, und ja, ich weiß, es kann nicht sein, skrewed, und ich habe unskrew(denke skrew ist der Begriff hier=="straighting"), die es bei der Prüfung.
- skrew=skew schön :). Auch Bild tool-sets können reduzieren Lärm, schärfen, und was nicht. Das kann helfen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kenne ich einige Optionen, die Ihnen helfen könnten:
font training
undimage binarization
für tesseract.Beachten Sie, dass die eingebaute Kamera in mobilen Geräten meist zu produzieren niedrige Qualität Bilder (blured, ruchbar, verzerrt, etc.) OCR selbst ist eine Ressource comsuming Prozess, und wenn Sie fügen Sie ein würdig Bild-Vorverarbeitung zu, dass low-end-und mid-mobile-Geräte (die sind wahrscheinlich android) könnte sich unerwartet langsam-oder auch der Mangel an Ressourcen. Das ist OK für frei/Studie-Projekte, aber wenn Sie planen, eine kommerzielle app - verwenden Sie ein besseres SDK.
Haben Sie einen Blick auf diese Frage: OCR für android
Tesseract nicht-Segmentierung für Sie. Tesseract wird eine Binarisierung des Bildes vor dem eigentlichen tesseract algo. Nach der schwellenwertbestimmung aktiviert ist, kann es einige Kanten, Artefakte, die bleiben im Bild.
Versuchen, manuell zu ändern, können Sie Ihre Bilder auf die Farben schwarz und weiß, und sehen, was tesseract liefert als Ausgabe.
Versuchen Schwellenwert (automatisch) Ihrer Bilder und sehen, was tesseract liefert als Ausgabe. Die Ausgabe der Schwellenwert kann so schlimm sein verursacht tesseract geben schlechte Ausgabe.
Dein 4. Bild wird wahrscheinlich nicht durch schwellenwertbestimmung (Sie haben 3 Farben: schwarzer hintergrund, Grau hintergrund und weiße Schrift) und die Schwelle kann zwischen (schwarzer hintergrund, Grau hintergrund).
In der Regel Tesseract will schöne schwarze und weiße Bilder. Vorverarbeitung der Bilder können erforderlich sein, um bessere Ergebnisse zu erzielen.
Für dein erstes Bild (mit dem Ergebnis "04"), versuchen Sie, um zu sehen, die box-Ergebnis (char + Koordinaten-box enthält, die erkannt char). Die "0" können Sie einen kleinen Artefakt - wie ein 4 von 4 blob-Pixel.
Können Sie javaocr versuchen ( http://sourceforge.net/projects/javaocr/ , ja, ich bin Entwickler )
Therre ist keine offocial release aber, und Sie werden sehen, "Quellen" (die gute Nachricht: es gibt funktionierende android-Probe einschließlich sampler, offline-trainer und-Erkennungs-Anwendung )
Wenn Sie nur eine schriftart, können Sie bekommen Recht gute Ergebnisse mit ihm (ich erreicht bis zur Anerkennung Tarife 99.96 Ziffern auf der gleichen schriftart)
PS: es ist reines java und verwendet die invariante Momente Durchführung von übereinstimmenden ( also keine Probleme mit der Skalierung und rotation ) . Es ist auch ziemlich effektiv Binarisierung.
Ihn in Aktion zu sehen:
https://play.google.com/store/apps/details?id=de.pribluda.android.ocrcall&feature=search_result#?t=W251bGwsMSwxLDEsImRlLnByaWJsdWRhlmfuzhjvawqub2nyy2fsbcjd