template-matching

___ qstnhdr ___ Verbesserung der Tesseract-Erkennungsqualität ___ tag123opencv ___ OpenCV (Open Source Computer Vision) ist eine plattformübergreifende Bibliothek von Programmierfunktionen für die Echtzeit-Bildverarbeitung. Es wurde 1999 offiziell von Intel ins Leben gerufen und wird nun von Itseez unterstützt. Verwendet werden: Mensch-Computer-Interaktion; Objektidentifikation, Segmentierung und Erkennung; Gesichtserkennung; Gestenerkennung; Bewegungsverfolgung, Bewegung Verständnis; Stereo- und Multikamera-Kalibrierung und Tiefenberechnung; Mobile Robotik. ___ tag123ocr ___ Die optische Zeichenerkennung, normalerweise abgekürzt als OCR, ist die mechanische oder elektronische Übersetzung von gescannten Bildern von handgeschriebenem, maschinengeschriebenem oder gedrucktem Text in maschinencodierten Text. ___ answer29576622 ___

Ich empfehle, OpenCV in Kombination mit tesseract zu verwenden.

Das Problem in Ihren Eingabebildern für tesseract sind die Nicht-Zeichen-Regionen in Ihrem Bild.

Eine Annäherung an mich selbst

Um diese loszuwerden, würde ich die Funktion openCV findContour verwenden, um alle Konturen in Ihrem Binärbild zu erhalten. Definieren Sie anschließend einige Kriterien, um die Nicht-Zeichen-Regionen zu illiminieren. Nehmen wir zum Beispiel nur die Bereiche, die sich innerhalb des Bildes befinden und nicht die Grenze berühren, oder nur die Bereiche mit einem bestimmten Bereich oder einem bestimmten Verhältnis von Höhe zu Breite. Finden Sie einige Funktionen, mit denen Sie zwischen Zeichen und Nicht-Zeichen-Konturen unterscheiden können. Anschließend eliminieren Sie diese Nicht-Zeichen-Regionen und behandeln die Bilder nach tesseract.

Nur als Idee für die generelle Überprüfung dieses Ansatzes:

Beseitigen Sie die Nicht-Zeichen Regionen manuell (Gimp oder Farbe, ...) und geben Sie das Bild Tesseract. Wenn das Ergebnis Ihren Erwartungen entspricht, können Sie versuchen, die Nicht-Zeichenregionen mit der oben vorgeschlagenen Methode zu eliminieren.

    
___ tag123templateatching ___ Template-Matching ist der Prozess, um ein kleineres bekanntes Vorlagenbild in einem anderen größeren Bild zu finden. ___ tag123tesseract ___ Tesseract ist eine OCR-Engine (Optical Character Recognition), die ursprünglich bei HP Labs entwickelt wurde und nun als Open-Source-Bibliothek mit einer von Google gesponserten Entwicklung verfügbar ist. ___ answer27600311 ___

Wie ich hier hier sage, können Sie das tun Sagen Sie Tesseract, dass Sie auf "fast gleiche" Zeichen achten müssen. Außerdem gibt es einige Optionen in Tesseract, die Ihnen in Ihrem Beispiel nicht helfen. Zum Beispiel wird ein "Pocahonta5S" meistens "PocahontaSS", weil die Zahl in einem Buchstabenwort steht. Sie können auf diese Weise so sehen.

Bei der Vorverarbeitung sollten Sie besser einen Scharffilter verwenden. Vergessen Sie nicht, dass tesseract immer einen Otsu-Filter anwendet, bevor Sie etwas lesen. Wenn Sie ein gutes Ergebnis wünschen, sind Scharfstellen + Adaptiver Schwellenwert mit einigen anderen Filtern gute Ideen.

    
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ qstntxt ___

Ich versuche, alphanumerische Zeichen (a-z0-9) zu extrahieren, die keine sinnvollen Wörter aus einem Bild ergeben, das mit einer Verbraucherkamera (einschließlich Mobiltelefonen) aufgenommen wurde. Die Zeichen haben die gleiche Größe und Schriftart und sind nicht formatiert. Die eigentliche Bearbeitung erfolgt unter Windows.

Das folgende Bild zeigt die rohe Eingabe:

Nach der perspektivischen Verarbeitung wende ich folgendes mit OpenCV an:

  • Konvertieren von RGB nach Grau
  • Wenden Sie %code% an, um Rauschen zu entfernen
  • Konvertieren Sie das Bild mithilfe des adaptiven Schwellenwerts in binär. %code%
  • Ich kenne die Anzahl der Zeilen und Spalten des Rasters. Daher extrahiere ich einfach jede Gitterzelle mit diesen Informationen.

Nach all diesen Schritten bekomme ich Bilder, die ähnlich aussehen:

Dann starte ich tesseract (neueste SVN-Version mit den neuesten Trainingsdaten) für jedes extrahierte Zellbild einzeln (ich habe verschiedene %code% und %code% Werte versucht):

%Vor%

Die Ergebnisse von tesseract sind nicht sehr gut:

  • Die meisten Zeichen werden nicht erkannt.
  • Die Gitterlinien werden manchmal als "l" - oder "i" -Zeichen interpretiert.

Ich habe bereits mit morphologischen Operationen experimentiert (öffnen, schließen, erodieren, dilatieren) und das adaptive Thresholding durch OTSU-Thresholding ( %code% ) ersetzt, aber die Ergebnisse verschlechterten sich.

Was könnte ich noch versuchen, um die Erkennungsqualität zu verbessern? Oder gibt es sogar eine bessere Methode, um die Zeichen neben der Verwendung von Tesseract zu extrahieren (zum Beispiel Template-Matching?)?

Bearbeiten (21-12-2014): Ich testete einen einfachen Template-Abgleich (mit normalisierter Kreuzkorrelation und LMS, aber mit noch schlechteren Ergebnissen). Aber ich habe einen großen Schritt vorwärts gemacht, indem ich jedes Zeichen mit %code% extrahiert habe und dann tesseract mit nur einem Zeichen und der Option %code% ausgeführt habe, die jedes eingegebene Bild als einzelnes Zeichen interpretiert. Zusätzlich entferne ich nicht-alphanumerische Zeichen in einem Nachbearbeitungsschritt. Die ersten Ergebnisse sind mit Erkennungsraten von 90% und besser ermutigend. Das Hauptproblem sind Fehldetektionen von "9" und "g" und "q" Zeichen.

Grüße,

    
___
3
Antworten

Schnellste Methode zur Berechnung der Faltung

Weiß jemand die schnellste Methode zur Berechnung der Faltung? Leider ist die Matrix, mit der ich mich beschäftige, sehr groß (500x500x200) und wenn ich convn in MATLAB verwende, dauert es sehr lange (ich muss diese Berechnung in einer versch...
12.12.2013, 21:30
3
Antworten

Echtzeit-Vorlagenvergleich - OpenCV, C ++

Ich versuche, Echtzeit-Tracking mit Vorlagen zu implementieren. Ich möchte die Vorlage mit jedem Rahmen aktualisieren. Die wichtigsten Änderungen, die ich vorgenommen habe, sind: 1) trennte den Vorlagenvergleich und minmaxLoc in separate Modu...
24.11.2013, 19:46
2
Antworten

Verbesserung der Tesseract-Erkennungsqualität

Ich versuche, alphanumerische Zeichen (a-z0-9) zu extrahieren, die keine sinnvollen Wörter aus einem Bild ergeben, das mit einer Verbraucherkamera (einschließlich Mobiltelefonen) aufgenommen wurde. Die Zeichen haben die gleiche Größe und Schrift...
21.12.2014, 06:51