2016-08-31 20 views
-2

Ich arbeite an dem Programm, um Text aus dem Bild zu extrahieren. Dafür habe ich versucht mit Tessaract und Ocropus Bibliotheken und ich bin in der Lage, einfachen Klartext (schwarz und weiß mit einfacher Schriftart) von Bild zu Textfolge zu konvertieren. Zum Beispiel:OCR: Text aus Bild extrahieren

Example of image 1

Aber ich bin nicht in der Lage Texte aus komplexem Bild zu extrahieren. Lassen Sie sich von diesem Bild zum Beispiel sagen:

Example of image 2

Wer weiß, wie dies zu erreichen? Gibt es eine Bibliothek für Extrakt Text von komplexen Bildern zur Verfügung (mit unvorhersehbar verschiedenen Hintergründen? Ich werde Python bevorzugen, aber die Sprache ist nicht eine Bar.

+0

Kennen Sie schon Captcha-Codes? Der Grund, warum sie verwendet werden, ist, dass es für Computer willkürlich schwierig ist, den Text zu erkennen, wenn er wie in dem Logo, das Sie lesen möchten, verzerrt ist. Aber ich würde anfangen, indem ich versuche, das Logo in mindestens etwas ähnlich zu schwarz auf weißem Text zu konvertieren und zu sehen, was von dort geht;) – meetaig

+1

Wenn Sie den Text als Binärbild haben, können Sie versuchen, das Skelett der Buchstaben zu extrahieren. Dies sollte für dieses Bild trotzdem funktionieren. Aber für alle Logos - auf keinen Fall. Zum Beispiel kann negativer Raum wirklich schwierig sein, einem Computer beizubringen – meetaig

+0

Gibt es eine Möglichkeit, mein Programm nur über den Text zu informieren und das Rauschen (Hintergrund) zu entfernen ?. Zum Beispiel, entfernen Sie alles aus dem Hintergrund mit Ausnahme der 'Sprite'. Danach wird es einfacher, sie in die Zeichenfolge umzuwandeln. –

Antwort

2

Wie dies alle Worterkennung Arbeit Maschine Lernalgorithmus eine Menge zugeführt wird, Bilder mit bereits interpretiertem korrespondierendem Text Es lernt, Buchstaben aus verschiedenen Schriftarten und Erscheinungsbildern zu verstehen

Logos werden jedoch mit einer sehr spezifischen Schriftart erstellt, fast keine zwei Logos verwenden eine ähnliche Schrift, das macht es sehr schwer, wenn nicht unmöglich, um ein Lerndaten zu erstellen, um zu erkennen, was geschrieben wird

Das ist möglich Train-Algorithmus, um das Sprite-Markenzeichen überall zu erkennen, wo es es sieht. Dafür müsstest du OpenCV verwenden und es auf Sprite-Logos verschiedener Qualitäten trainieren, Bilder von Sprite-Logos auf Läden, Flaschen usw. Auf diese Weise wird es in der Lage sein, dieses spezielle Logo zu sehen (du brauchst auch ein Datensatz von Nicht-Sprite-Logos, wie Coke-Logo oder Bild von etwas völlig irrelevant, wie Katze). Die Gründe, warum Menschen, im Gegensatz zu Computern, lernen können, diese Dinge zu erkennen, sind, weil das menschliche Gehirn so viel mächtiger ist, dass das neuronale Netzwerk geschaffen werden kann, um diese Art von Dingen im Computer zu verstehen. Wenn Computer in Bezug auf Rechenkapazität so leistungsfähig wie Menschen sind, stellen Sie diese Frage erneut und Sie erhalten eine automatische Antwort von einer menschenähnlichen Maschine.

+0

+1 für die letzte Zeile: * Wenn Computer in Bezug auf die Rechenkapazität so leistungsfähig wie Menschen sind, stellen Sie diese Frage erneut und Sie erhalten eine automatische Antwort von einer menschenähnlichen Maschine. * :( –