Wie bewahren Sie die Struktur Ihrer Dokumente in tesseract
Ich bin mit tesseract-ocr zu extrahieren von text aus einem Bild. Erhalten Sie die Struktur des Dokuments ist sehr wichtig für mich. Derzeit tesseract nicht die Erhaltung der Struktur, es ändert sich die Reihenfolge von text. Mein input ist das Bild unten.
und die Ausgabe die ich erhalte ist wie folgt:
Someto the left
Someto the left
Some in the middle
Some in the middle
Some with some tab
Some with some tab
Some with some space between them
Some with some space between them
Sometext here
Sometext here
this much
this much
Wie bekomme ich die gewünschte Ausgabe in Form von der gleichen Struktur im Bild?
also wie folgt:
Some text here
Some text here
Some to the left
Some to the left
Some in the middle
Some in the middle
Some with some tab
Some with some tab
Some with some space between them this much
Some with some space between them this much
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neuere Versionen von tesseract (3.04) haben eine option namens
preserve_interword_spaces
sollte das tun, was Sie wollen.Beachten Sie, dass die Anzahl der Leerzeichen, tesseract erkennt zwischen den Wörtern nicht immer das gleiche zwischen ähnlichen Linien. Also Wörter, die Linksbündig ausgerichtet sind, mit einem Lauf von Räumen vorausgehenden (wie in deinem Beispiel) kann nicht ausgegeben werden, auf diese Weise -- die
preserve_interword_spaces
option versucht nicht, irgendetwas zu tun, Stell dir vor, es lediglich bewahrt die Bereiche Extraktion gefunden. Standardmäßig tesseract zusammenbricht, läuft Leerzeichen in einer.Details zu dieser option sind hier.
Die einzig zuverlässige Möglichkeit wäre die Aktivierung hOCR-Ausgabe und analysieren es. Darin enthalten sind Positionen für jedes Wort auf der Seite in Pixel, wie in der ursprünglichen Bild.
Können Sie tun, indem Sie
tessedit_create_hocr 1
im Tesserakt config-Datei, oder in was auch immer-API, die Sie verwenden.hOCR ist eine Teilmenge von HTML, und was Tesseract generiert nicht immer ein gültiges XML, so können Sie entweder einen HTML-parser oder schreiben Sie Ihre eigenen, Sie können aber nicht zuverlässig ein XML-parser.
Tesseract-code komprimiert Leerzeichen in der Ausgabe. Sie müssen den code ändern, um Sie zu bewahren. Sehen Tesseract - Mehrdeutigkeit in space und tab post.
Für mehrspaltige Dokumente, in die man beibehalten möchte eine einzelne Spalte Fließtext (z.B., Lesen Sie Spalte 1, dann Spalte 2), oder Dokumente mit Fotos (z.B. Zeitungsartikel) es ist wahrscheinlich lohnt ein Blick auf die Anpassung der Seite segmentierungsverfahren. Die Standard-Seite segmentierungsverfahren mit tesseract wird nur "Automatic page segmentation", aber NICHT "Ausrichtung und Skript-Erkennung (OSD)."
Setzen die
psm
Einstellung " 1 " sagt tesseract zu verwenden "Automatische Seite Segmentierung mit OSD." Dies ermöglicht tesseract erkennt man einen mehrspaltigen Dokument (anstatt der Behandlung der Seite als ein einziger block text) und hilft tesseract vermeiden versucht, OCR-nicht-text-Blöcke wie Fotos.Mehr auf Seite Segmentierung-Methoden finden Sie unter: https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality
Hier ist ein Beispiel für die Befehlszeile-syntax passen Sie die Seite segmentierungsverfahren
Um mehr über die syntax finden Sie unter: https://github.com/tesseract-ocr/tesseract/wiki