tesseract ocr (gelöst)
tesseract ocr (gelöst)
Ich habe mir die lenny-Pakete unter etch installiert und zusätzlich ein script aus dem französischen ubuntu-Forum [1]. Funktioniert soweit, aber deutsche Sonderzeichen werden nicht erkannt. utf8 ist bei mir nicht die Standard-Locale. Wird das von tesseract gefordert oder lässt sich da was einstellen?
Grüße, Günther
[1] http://doc.ubuntu-fr.org/xsane2tess
Grüße, Günther
[1] http://doc.ubuntu-fr.org/xsane2tess
Zuletzt geändert von guennid am 15.03.2008 08:44:35, insgesamt 1-mal geändert.
Re: tesseract ocr
Vielleicht speichert tesseract den Text in UTF8, um das zu überprüfen, öffne mal die Textdatei so, um nachzusehen, ob die Sonderzeichen dann richtig dargestellt werden:guennid hat geschrieben:aber deutsche Sonderzeichen werden nicht erkannt.
Code: Alles auswählen
LANG=de_DE.UTF-8 nano /Pfad/zur/Textdatei
Code: Alles auswählen
LANG=de_DE.UTF-8 tesseract blabla
Daniel
Hier die Prüfsumme meiner Datei (aus Lenny):
Kannst du ja mal mit deiner vergleichen.
Es gibt übrigens auch Testbilder für tesseract:
http://tesseract-ocr.googlecode.com/fil ... deu.tar.gz
Gruß,
Daniel
Code: Alles auswählen
$ md5sum /usr/share/tesseract-ocr/tessdata/deu.unicharset
bb4d669275298146bee1ffd7b2125b62 /usr/share/tesseract-ocr/tessdata/deu.unicharset
Es gibt übrigens auch Testbilder für tesseract:
http://tesseract-ocr.googlecode.com/fil ... deu.tar.gz
Gruß,
Daniel
@Danielx
Prüfsumme ist identisch.
Hast du mal nachgeschaut, ob die Umlaute in deiner deu-unicharset drinstehen? Wenn ja, kannst du sie bitte mal nach nopaste transerfieren, so dass ich sie kopieren kann?
der Parameter für die Spracheinstellung bei tesseract bzw. xsane2tess lautet doch oder?
Grüße, Günther
Prüfsumme ist identisch.
Hast du mal nachgeschaut, ob die Umlaute in deiner deu-unicharset drinstehen? Wenn ja, kannst du sie bitte mal nach nopaste transerfieren, so dass ich sie kopieren kann?
der Parameter für die Spracheinstellung bei tesseract bzw. xsane2tess lautet doch
Code: Alles auswählen
-l deu
Grüße, Günther
Ja, in der ersten Spalte stehen die kritischen Zeichen, unter anderem die Sonderzeichen.guennid hat geschrieben:Hast du mal nachgeschaut, ob die Umlaute in deiner deu-unicharset drinstehen?
Warum?guennid hat geschrieben:Wenn ja, kannst du sie bitte mal nach nopaste transerfieren, so dass ich sie kopieren kann?
Die Prüfsummen sind doch identisch, also hast du doch die gleiche Datei wie ich.
Ja.guennid hat geschrieben:der Parameter für die Spracheinstellung bei tesseract bzw. xsane2tess lautet dochoder?Code: Alles auswählen
-l deu
Gruß,
Daniel
Hast du mal nachgeschaut, ob die Umlaute in deiner deu-unicharset drinstehen?
Ja, in der ersten Spalte stehen die kritischen Zeichen
Eine der beiden Aussagen muss falsch seinhast du doch die gleiche Datei wie ich.
Wir müssen das Pferd anders herum aufzäumen. Nur unter kwrite und oo werden die Zeichen falsch dargestellt. leafpad, geany und abiword zeigen sie richtig. Der von tesseract benutzte Zeichensatz ist offensichtlich utf8. Ich sollte ihm also sagen, dass es iso8859-15 benutzen soll. Wie wäre da die Syntax für xsane2tess:
Code: Alles auswählen
LANG=de_DE@euro
Grüße, Günther
Warum denn?guennid hat geschrieben:Eine der beiden Aussagen muss falsch sein
1.) Bei mir stehen in der genannten Datei in der ersten Spalte die problematischen Zeichen.
2.) Du hast dieselbe Datei wie ich, siehe Prüfsumme.
Da gibt es keinen Widerspruch!
Ja, genau.guennid hat geschrieben:Ich sollte ihm also sagen, dass es iso8859-15 benutzen soll. Wie wäre da die Syntax für xsane2tess:?Code: Alles auswählen
LANG=de_DE@euro
Gruß,
Daniel
@Danielx,
ich weiß nicht, was das bringen könnte. Ich denke das Problem ist klar: tesseract codiert in utf8. Entweder kann man das beeinflussen, dann ist unser LANG ... falsch, oder ich muss die Textdatei nachträglich umcodieren. Hab' ich schon ausprobiert, funktioniert.
In meiner deu.unicharset das gleiche Bild: geöffnet mit mcedit sehe ich in der ersten Spalte an Stelle von Sonderzeichen den entsprechenden Müll, geöffnet mit geany werden dann die Sonderzeichen " richtig" dargestellt.
Das bringt mich auf eine andere Idee: Ich werde deu.unicharset mal umcodieren.
ich weiß nicht, was das bringen könnte. Ich denke das Problem ist klar: tesseract codiert in utf8. Entweder kann man das beeinflussen, dann ist unser LANG ... falsch, oder ich muss die Textdatei nachträglich umcodieren. Hab' ich schon ausprobiert, funktioniert.
In meiner deu.unicharset das gleiche Bild: geöffnet mit mcedit sehe ich in der ersten Spalte an Stelle von Sonderzeichen den entsprechenden Müll, geöffnet mit geany werden dann die Sonderzeichen " richtig" dargestellt.
Das bringt mich auf eine andere Idee: Ich werde deu.unicharset mal umcodieren.
Ich hab das so gelöst, dass ich den Text gleich im xsane2tess-script umcodieren lasse.guennid hat geschrieben: oder ich muss die Textdatei nachträglich umcodieren. Hab' ich schon ausprobiert, funktioniert.
Code: Alles auswählen
recode u8..l1 "$FILE_OUT"
Umcodieren der deu.unicharset hat weder mit recode noch mit iconv funktioniert - kann an falschen Parametern gelegen haben.
@dillo
Danke! Das wäre mein nächster Versuch gewesen. Hattest du noch keine "Verluste"? Ich habe bisher mit iconv das von tesseract generierte Textfile umcodiert. iconv brach ab, wenn es auf ein von tesseract verhunztes Zeichen traf. (Mit verhunzt meine ich nicht die deutschen Sonderzeichen, die wurden korrekt umcodiert.)
Grüße, Günther
[edit]
Ich denke, am elegantesten wäre es schon, wenn man tesseract dazu bewegen könnte, direkt den "richtigen" Zeichensatz zu benutzen.
@dillo
Danke! Das wäre mein nächster Versuch gewesen. Hattest du noch keine "Verluste"? Ich habe bisher mit iconv das von tesseract generierte Textfile umcodiert. iconv brach ab, wenn es auf ein von tesseract verhunztes Zeichen traf. (Mit verhunzt meine ich nicht die deutschen Sonderzeichen, die wurden korrekt umcodiert.)
Grüße, Günther
[edit]
Ich denke, am elegantesten wäre es schon, wenn man tesseract dazu bewegen könnte, direkt den "richtigen" Zeichensatz zu benutzen.
Bei Verwendung von recode sollte das OCR-Arbeitsverzeichnis nicht auf einer fat/fat32-Partition liegen.
Ich habe xsane2tess nochmals abgeändert:
Grüße, Günther
Ich habe xsane2tess nochmals abgeändert:
Code: Alles auswählen
# Sicherungskopie der originalen utf8-codierten Textdatei anlegen
cp "$FILE_OUT" "$FILE_OUT"_u8
# Textdatei umcodieren
recode u8..l1 "$FILE_OUT"
recode lief bisher immer durch und wenn tesseract Probleme mit der Zeichenerkennung hat, wiederhole ich den Scan mit einer höheren Auflösung. Das geht IMHO schneller, als den Text zu korrigieren.guennid hat geschrieben:Hattest du noch keine "Verluste"? Ich habe bisher mit iconv das von tesseract generierte Textfile umcodiert. iconv brach ab, wenn es auf ein von tesseract verhunztes Zeichen traf.
Re: tesseract ocr (gelöst)
Habe das gleiche Problem wie es guennid hatte,
und versucht, es nach dem Vorschlag von dillo zu lösen.
Habe also am Ende des xsane2tess-Script-Textes folgende 2 Zeilen angefügt:
# Textdatei umcodieren
recode u8..l1 "$FILE_OUT"
Es hat aber keine Verbesserung gebracht.
Habe ich da etwas nicht richtig verstanden?
Bitte um entsprechende Anweisung für die Einstellung.
MfG, Hans
und versucht, es nach dem Vorschlag von dillo zu lösen.
Habe also am Ende des xsane2tess-Script-Textes folgende 2 Zeilen angefügt:
# Textdatei umcodieren
recode u8..l1 "$FILE_OUT"
Es hat aber keine Verbesserung gebracht.
Habe ich da etwas nicht richtig verstanden?
Bitte um entsprechende Anweisung für die Einstellung.
MfG, Hans