Kann mir mal jemand bei Tesseract Training helfen

Nore Ply

Banned
Registriert
Okt. 2021
Beiträge
983
( "helfen" wollte ich eigentlich im Betreff noch schreiben. Aber das mochte die Forensoftware gar nicht. :pcangry: )

Grüße, Erdenmenschen.

Ich scanne routinemäßig meine eingehende Post und ältere Dokumente. Nun wollte ich sie im nächsten Schritt verschlagworten.

Tesseract mit Language File deu-best ist schon ganz gut, an einigen Dokumenten beißt er sich aber die Zähne aus.

Also will ich nun versuchen mein eigenes File zu trainieren. Haltet mich ruhig für verrückt, aber besser scheitern als nie versuchen.

Host ist debian 10 buster, installiert sind tesseract-ocr und nach den ersten Fehlschlägen nun auch libtesseract-dev

Was funktioniert:
Code:
tesseract -l deu img1.tif img1
Damit erzeuge ich img1.txt mit mehr oder weniger brauchbarem Text.

Mein Problem:
Code:
tesseract -l deu img1.tif img1 lstmbox
Das sollte eine Textdatei und eine Boxdatei erzeugen. Stattdessen bekomme ich eine Fehlermeldung:
Code:
read_params_file: Can't open lstmbox

Alle Quellen sagen das mir, das Konfig File zu lstmbox fehlt. Aber alle Fundstellen verlinken zu Seiten die auf Seiten verlinken die zu Seiten verlinken die Dokumente enthalten die zu Seiten verlinken......ich müsste schon das halbe Internet nicht nur duchsuchen sondern auch lesen. Vielleicht geht es ja etwas einfacher? Hat jemand diese Config-Datei für mich oder kann mir ein Dokument nennen in dem konkret beschrieben wird wie ich es erzeuge oder wo ich es finde?
 
Zuletzt bearbeitet von einem Moderator: ("helfen" im Betreff ergänzt)
Disclaimer: Ich habe keine praktische, nicht mal theoretische, Erfahrung mit Tesseract.

Wenn ich die Dokumentation richtig verstehe, dann gibt es (mindestens) 3 Möglichkeiten, ein box file zu erzeugen:
  1. es "from scratch" selbst zu schreiben. Der Aufbau ist beschrieben, es gibt wohl auch Editoren dafür.
  2. ein "beliebiges" box file zu erstellen, welches dann selbst angepasst wird. Laut hier kann das einfach mit "tesstrain.sh" (vermutlich ein Skript, dass beiliegt) und einer Fontdatei erzeugt werden.
  3. ein box file für ein eigenes Bild erzeugen und dieses dann anzupassen. Siehe hier, erster Abschnitt

Ich hoffe, das hilft irgendwie.
 
Nore Ply schrieb:
Also will ich nun versuchen mein eigenes File zu trainieren. Haltet mich ruhig für verrückt, aber besser scheitern als nie versuchen.
Ähm nur mal so zum Verständnis:
Das trainieren geschieht nicht dadurch, das Du irgendeinen Kommandozeilenschalter setzt. Trainieren heißt, das Du ihm sowohl die Scans "zeigen" musst als auch die "Übersetzung" in Textform.
Das heißt, das Du die Scans von Hand in Textform übersetzen musst. Da reicht auch nicht nur ein Scan, sondern eher: Umso mehr, umso besser.

Kurzum: Das ist durchaus mit Arbeit verbunden und nichts was man mal "eben so nebenbei" macht.

Der Vorgang selbst ist in dem offiziellen Tesseract-Guide eigentlich hinreichend beschrieben:
https://tesseract-ocr.github.io/tessdoc/tess4/TrainingTesseract-4.00.html
 
Capet schrieb:
Disclaimer: Ich habe keine praktische, nicht mal theoretische, Erfahrung mit Tesseract.

[...]
Ich hoffe, das hilft irgendwie.

Nein, hilft mir nicht. Was Dich hoffentlich nicht zu sehr überrascht, denn ich habe nicht gefragt wie training in Tesseract abläuft sondern ein konkretes Problem in einem der Trainingsschritte geschildert und um Unterstützung dabei ersucht.
 
andy_m4 schrieb:
Ähm nur mal so zum Verständnis:
Das trainieren geschieht nicht dadurch, das Du irgendeinen Kommandozeilenschalter setzt.

Das ist mir soweit schon bewußt. Das erzeugen der Boxdateien ist aber ein recht wesentliches Element des Trainings wie ich es vorhabe.

Mittlerweile bin ich wenigstens einen halben Schritt weiter:

a) der Parameter lstmbox funktioniert
Code:
tesseract -l deu img1.tif img1 lstmbox

b) die fehlende Config habe ich auf Gitlab ( https://github.com/tesseract-ocr/tesseract/blob/main/tessdata/configs/lstmbox und andere ) gefunden und nach /usr/share/tesseract-ocr/4.00/tessdata/configs kopiert. Fragt mich nicht warum, aber vorher habe ich das nciht gesehen. Ist mir ziemlich peinlich.

Herausforderungen:
a) liefert Boxkoordinaten für einzelne Zeichen. Ich muss noch testen ob jTessBoxEditor damit zurecht kommt

b) die Konfig alleine reicht scheinbar nicht
Code:
tesseract -l deu img1.tif img1 lstmbox
Warning: Parameter not found: tessedit_create_lstmbox
Tesseract Open Source OCR Engine v4.0.0 with Leptonica
Page 1
Detected 217 diacritics

Der erkannte Text wird nach img1.txt geschrieben, aber keine img1.box angelegt. Leider finde ich zu der Fehlermeldung erneut nichts was zum Kontext passt.

Aber gut. Meine vage Hoffnung war es das sich hier jemand schonmal mit Tesseract und dessen Training unter Debian/Linux beschäftigt hat und mir etwas auf die Spur helfen kann.

Dem scheint nicht so zu sein. Entgangener Vorteil ist kein Nachteil.
 
Ich habe es jetzt gerade selbst mal mit einer Ubuntu 20.04 VM und tesseract v4.1.1.1 probiert.

Die config unter
Code:
/usr/share/tesseract-ocr/4.00/tessdata/configs/lstmbox
war vorhanden und ein Test mittels
Code:
tesseract -l deu img1.tiff img1 lstmbox
mit einem einfachen Beispiel-TIFF hat auch eine img1.box erzeugt.

Code:
user@WS2:~/Downloads$ tesseract -l deu img1.tiff img1 lstmbox
Tesseract Open Source OCR Engine v4.1.1 with Leptonica
Page 1
user@WS2:~/Downloads$ ls
img1.box  img1.tiff  img1.txt
user@WS2:~/Downloads$ cat img1.box
D 98 503 256 516 0
a 98 503 256 516 0
s 98 503 256 516 0
  98 503 256 516 0
i 98 503 256 516 0
s 98 503 256 516 0
t 98 503 256 516 0
  98 503 256 516 0
e 98 503 256 516 0
i 98 503 256 516 0
n 98 503 256 516 0
  98 503 256 516 0
B 98 503 256 516 0
e 98 503 256 516 0
i 98 503 256 516 0
s 98 503 256 516 0
p 98 503 256 516 0
i 98 503 256 516 0
e 98 503 256 516 0
l 98 503 256 516 0
t 98 503 256 516 0
e 98 503 256 516 0
x 98 503 256 516 0
t 98 503 256 516 0
     98 503 256 516 0

Muss dann wohl ein debianspezifisches oder systemspezifisches Problem sein.
 
Danke! Das war tatsächlich hilfreich, ich habe es nun auch in einer VM mit Debian 11 ausprobiert. Tesseract 4.1.1 - lstmbox funktioniert.

Ich habe zwar an meinem Debian Buster schon hier und da etwas gefrickelt, meines Erachtens aber noch in keinem Bereich der einen solchen Fehler produzieren könnte. Also entweder Fehler trotzdem bei mir, Fehler im Paket von Debian-Buster oder schlicht zu frühe Version von Tesseract.
Es wäre zwar nett das herauszufinden, aber ehrlich gesagt fehlt mir der Nerv. Eine Neuinstallation mit Bullseye steht sowieso an (seit 8 über mehrere GraKa-Wechsel habe ich nur dist-upgrade gemacht), Tesseract motiviert mich das etwas zu forcieren. Bis dahin arbeite ich in der VM.

@All: Auch euch Danke für die Unterstützung.

PS: oh, einen hab ich noch. Ich werde wohl versuchen mittels der Anleitung in https://linuxhint.com/install-tesseract-ocr-linux/ die neueste Version zu erstellen um Trefferquoten und Geschwindigkeit zu vergleichen.
 
Zurück
Oben