Frage

Ich bin mit Tesseract OCR (über pytesser ) und PIL (Python Bild Library) für die automatisierte Prüfung einer Anwendung.

Ich bin Überprüfung, dass der angezeigte Text, indem Sie einen Screenshot in Ordnung ist und immer den Text dank Tesserakts.

Ich hatte ein paar Probleme am Anfang, und es scheint besser zu arbeiten, da ich die Größe des Bildschirm dank der bikubischen Interpolation von PIL erhöht habe.

Leider habe ich noch einige Fehler wie Verwirrung zwischen ‚0‘ und ‚O‘. Ich kann mir vorstellen, dass ich andere ähnliche Probleme in der Zukunft haben wird.

Ich möchte wissen, ob es einige Techniken sind ein Bild, um zur Vorbereitung der OCR zu helfen. Jede Idee ist willkommen.

Vielen Dank im Voraus

War es hilfreich?

Lösung

Shameless Plug Hinweis: meine Firma Tesseract Pakete für die Verwendung in .NET

Tesseract ist eine OK-OCR-Engine. Es kann eine Menge vermissen und wird von Nicht-Text leicht verwirrt. Das Beste, was Sie für sie tun können, ist sicherzustellen, dass es sich um Text wird nur. Die nächste beste Sache ist, es zu etwas sanely binarisiert (adaptive oder dynamische Schwelle dort zu erhalten) oder Graustufen und lassen Sie es versuchen Digitalisierungs zu tun.

Andere Tipps

  1. Zug Tesseract Ihre Schrift
  2. erkennen
  3. Make Bild Extras sauber und mit genügend Freiraum um Zeichen
  4. Profit:)

Hier sind einige reale Welt Beispiele.

  • Erstes Bild ist Originalbild (croped Leistungsmesser Zahlen)
  • Zweites Bild wird leicht Bild in GIMP gereinigt, um 50% der OCR-Genauigkeit in Tesserakts
  • Drittes Bild Bild komplett gereinigt - 100% OCR ohne Ausbildung anerkannt

eingeben Bild Beschreibung hier eingeben Bild Beschreibung hier eingeben Bild Beschreibung hier

Selbst unter den besten Bedingungen OCR-Varianten wird schleichen sich auf Sie. Ihre beste Option sein, die Tests zu entwerfen, auf sie aufmerksam zu sein.

Für die Unterscheidung zwischen 0 und O, eine einfache Lösung ist eine Schriftart, die unterscheidet zwischen den beiden (zB: 0 hat einen Bindestrich oder Punkt in der Mitte) zu wählen. Wäre das in Ihrer Anwendung akzeptabel sein?

Eine andere Lösung ist ein Wörterbuch-basierten Schritt nach dem Zeichen-für-Zeichen-Analyse des Textes anzuwenden - den erkannten Text in irgendeiner Form von Rechtschreibprüfung oder Validator Fütterung zwischen schwer Zeichen zu unterscheiden.

Zum Beispiel kann eine runde Symbol durch andere Zahlen gefolgt ist höchstwahrscheinlich eine Null sein, während das gleiche Symbol mit den Buchstaben gefolgt ist höchstwahrscheinlich ein Kapital o sein. Es ist ein triviales Beispiel, aber es zeigt, wie Kontext notwendig ist, ein zuverlässigere OCR-System zu machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top