tesseract ocr (gelöst)

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
guennid

tesseract ocr (gelöst)

Beitrag von guennid » 12.03.2008 17:25:14

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
Zuletzt geändert von guennid am 15.03.2008 08:44:35, insgesamt 1-mal geändert.

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: tesseract ocr

Beitrag von Danielx » 12.03.2008 19:19:52

guennid hat geschrieben:aber deutsche Sonderzeichen werden nicht erkannt.
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:

Code: Alles auswählen

LANG=de_DE.UTF-8 nano /Pfad/zur/Textdatei
Wenn dem nicht so ist, dann kannst du mal versuchen tesseract mit UTF8 auszuführen (z.B. in xsane2tess ändern):

Code: Alles auswählen

LANG=de_DE.UTF-8 tesseract blabla
Gruß,
Daniel

guennid

Beitrag von guennid » 12.03.2008 20:13:58

Beide Möglichkeiten funktionieren nicht. Textfile wird erstellt, aber Umlaute werden nicht erkannt.
Wenn ich richtig sehe, ist deu.unicharset bei mir fehlerhaft. Dort tauchen diese merkwürdigen Ersatzzeichen für die Umlaute, diese selbst aber nicht auf.

Grüße, Günther

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 12.03.2008 21:16:37

Hier die Prüfsumme meiner Datei (aus Lenny):

Code: Alles auswählen

$ md5sum /usr/share/tesseract-ocr/tessdata/deu.unicharset
bb4d669275298146bee1ffd7b2125b62  /usr/share/tesseract-ocr/tessdata/deu.unicharset
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

guennid

Beitrag von guennid » 13.03.2008 06:03:05

@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

Code: Alles auswählen

-l deu
oder?

Grüße, Günther

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 13.03.2008 11:41:11

guennid hat geschrieben:Hast du mal nachgeschaut, ob die Umlaute in deiner deu-unicharset drinstehen?
Ja, in der ersten Spalte stehen die kritischen Zeichen, unter anderem die Sonderzeichen.
guennid hat geschrieben:Wenn ja, kannst du sie bitte mal nach nopaste transerfieren, so dass ich sie kopieren kann?
Warum?
Die Prüfsummen sind doch identisch, also hast du doch die gleiche Datei wie ich. :?
guennid hat geschrieben:der Parameter für die Spracheinstellung bei tesseract bzw. xsane2tess lautet doch

Code: Alles auswählen

-l deu
oder?
Ja.

Gruß,
Daniel

guennid

Beitrag von guennid » 13.03.2008 14:39:41

Hast du mal nachgeschaut, ob die Umlaute in deiner deu-unicharset drinstehen?

Ja, in der ersten Spalte stehen die kritischen Zeichen
hast du doch die gleiche Datei wie ich.
Eine der beiden Aussagen muss falsch sein :lol:

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

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 13.03.2008 18:21:48

guennid hat geschrieben:Eine der beiden Aussagen muss falsch sein :lol:
Warum denn?
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!
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
?
Ja, genau.

Gruß,
Daniel

guennid

Beitrag von guennid » 13.03.2008 19:46:50

Code: Alles auswählen

LANG=de_DE@euro
zeigt keine Wirkung.

Grüße, Günther

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 13.03.2008 19:59:29

Kannst du mal deu.unicharset in nano öffnen und einen Screenshot machen, um zu sehen wie die Sonderzeichen bei dir dargestellt werden.

Gruß,
Daniel

guennid

Beitrag von guennid » 13.03.2008 20:16:42

@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.

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Beitrag von dillo » 13.03.2008 20:33:52

guennid hat geschrieben: oder ich muss die Textdatei nachträglich umcodieren. Hab' ich schon ausprobiert, funktioniert.
Ich hab das so gelöst, dass ich den Text gleich im xsane2tess-script umcodieren lasse.

Code: Alles auswählen

 recode u8..l1 "$FILE_OUT"
am Ende des scripts einfügen.

guennid

Beitrag von guennid » 13.03.2008 20:41:00

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.

guennid

Beitrag von guennid » 13.03.2008 22:39:49

Bei Verwendung von recode sollte das OCR-Arbeitsverzeichnis nicht auf einer fat/fat32-Partition liegen.
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"
Grüße, Günther

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Beitrag von dillo » 14.03.2008 18:29:59

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.
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.

khs
Beiträge: 218
Registriert: 18.07.2007 14:12:59

Re: tesseract ocr (gelöst)

Beitrag von khs » 24.04.2008 22:53:20

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

Antworten