2013-07-16 28 views
13

Das Problem, mit dem ich arbeite, ist, den Text aus einem Bild zu extrahieren, und dafür habe ich Tesseract v3.02 verwendet. Die Beispielbilder, aus denen ich Text extrahieren muss, hängen mit den Zählerständen zusammen. Einige von ihnen sind mit solidem Hintergrund und einige von ihnen haben LED-Anzeige. Ich habe den Datensatz für Solid Sheet Hintergrund trainiert und die Ergebnisse sind einige, wie effektiv.Texterkennung auf Seven-Segment-Anzeige über Tesseract OCR

Das Hauptproblem, das ich jetzt habe, sind die Textbilder mit LED/LCD-Hintergrund, die von Tesseract nicht erkannt werden und aufgrund dessen das Trainingssatz nicht erzeugt wird.

Kann mir jemand die richtige Richtung zeigen, wie Tesseract mit dem Sieben-Segment-Display (LCD/LED-Hintergrund) verwendet wird oder gibt es eine andere Alternative, die ich anstelle von Tesseract verwenden kann.

LED background image 1 LED background image 2 Meter 1 with solid sheet background enter image description here enter image description here

+2

"Ich habe den Datensatz für den Vollblatthintergrund trainiert". Würdest du mir bitte sagen, wie du das erreicht hast? –

Antwort

4

Dies scheint wie eine Bildvorverarbeitung Aufgabe. Tesseract würde wirklich bevorzugen, dass seine Bilder alle weiß-auf-schwarz Text im Bitmap-Format sind. Wenn Sie etwas geben, das nicht das ist, wird es sein Bestes geben, es in dieses Format zu konvertieren. Es ist nicht sehr schlau, wie man das macht. Mit einem Bildbearbeitungstool (ich mag imagemagick) müssen Sie die Bilder mehr zur Zufriedenheit von tesseract machen. Ein einfacher erster Durchlauf könnte darin bestehen, eine Gauß'sche Unschärfe mit kleinem Radius zu machen, einen Schwellenwert bei einem ziemlich niedrigen Wert (Sie versuchen, nur Schwarz zu behalten, also 15% scheint richtig) und dann das Bild umzukehren.

Der schwierige Teil wird dann wissen, welche Preprocessing Aufgabe zu tun ist. Wenn Sie Metadaten darüber haben, mit welcher Art von Display Sie es zu tun haben, großartig. Wenn nicht, vermute ich, dass Sie Bildfarbhistogramme betrachten können, um zumindest herauszufinden, ob Ihr Text weiß-auf-schwarz oder schwarz-auf-farbig ist. Wenn dies die einzigen Szenarien sind, ist Weiß-auf-Schwarz immer ein durchgehender Hintergrund, und Schwarz-auf-Farbe ist immer Sieben-Segment-Anzeige, dann sind Sie fertig. Wenn nicht, müssen Sie clever sein. Viel Glück, und lassen Sie uns bitte wissen, was Sie vorhaben.

+0

http://StackOverflow.com/Questions/9361213/7-Segment-Display-ocr?RQ=1 Diese StackOverflow-Frage hat eine Verknüpfung zu einem c-Skript zum Lesen von unabhängig von OCR sieben Segmenten. Wahrscheinlich auch einen Blick wert. – Mongoose1021

+0

Danke, ich werde darauf aktualisieren. – yunas

+0

Ich verwende GPUImageLibrary https://github.com/BradLarson/GPUImage. Ich habe genau das Gleiche gemacht wie du. Ich habe Gaußsche Unschärfe angewendet und dann habe ich anstelle von Invertieren das unscharfe Bild geschärft und das zum Gaussian mitgelieferte funktioniert es bis zu einem gewissen Grad aber für Bilder, die ich auf Position 4 in Frage gestellt habe. Es schlägt fehl ... welche Art von Filtern sollte angewendet werden? – yunas

Verwandte Themen