| 
02.04.2009
 | 
09:56

Cuneiform und hocr2pdf unter Ubuntu/Linux installieren und einsetzen

Im Linux-Magazin 03/2009 war ein guter Artikel zum Thema OCR unter Linux mit Hilfe von cuneiform, tesseract und anderen Programmen. Allerdings fehlte ein einfacher Einstieg zum Thema, den ich hier kurz für Ubuntu beschreiben will.

Edit: Seit der Erstveröffentlichung des Artikels hat sich einiges getan. cuneiform und hocr2pdf sind beide in Ubuntu 10.04 vorhanden, für das Erstellen von Sandwhich-PDFs gibt es ein Tool auf der Seite http://pdfsandwich.origo.ethz.ch/.

cuneiform

Das OCR-Programm cuneiform benötigt einige Pakete für das Holen und Kompilieren der Sources:

sudo apt-get install bzr cmake build-essential

(Falls es noch weitere Pakete braucht, bitte mir Bescheid sagen und ich füge sie hinzu. Hinweis aus dem Kommentaren: Es kann zu Fehlern in der Kompilierung führen, wenn die Pakete libmagick++1 oder libmagick++-dev nicht installiert sind — bitte bestätigen!)

Unter Hardy Heron muss im Übrigen ein Backport von cmake installiert werden! Diesen findet man auf der Seite https://launchpad.net/ubuntu/hardy/i386/cmake/. Dort kann man links oben unter “Package releases” die neuen Backports auswählen (Pakete findet man dann unter “Downloadable files”).

Nun suchen wir uns ein Installationsverzeichnis – ich nehme z.B. ~/devel, andere sinnvolle Namen wären bspw. ~/src oder ~/tmp, je nach Zielsetzung und Geschmack.

mkdir ~/devel
cd ~/devel

Die Sources für cuneiform holen wir mit folgendem Befehl:

bzr branch lp:cuneiform-linux

Das holt den Code von der launchpad/Bazaar-Plattform. Nun können wir mit dem Kompilieren beginnen:

cd cuneiform-linux
mkdir builddir
cd builddir
cmake ..
make
sudo make install

Falls hier Fehler auftauchen, müssen ggf. noch Pakete nachinstalliert werden. Einfach bei mir melden! Der letzte Befehl installiert die Dateien von cuneiform unter /usr/local.

Mit einem echo $PATH kann man prüfen, ob /usr/local/bin im Pfad angegeben ist. Falls nicht, kann man folgende Zeilen in der Datei ~/.profile hinzufügen:

# set PATH so it includes /usr/local/bin if it exists
if [ -d "/usr/local/bin" ] ; then
PATH="/usr/local/bin:$PATH"
fi

Anmerkung: Es ist gegebenenfalls sinnvoll, statt /usr/local/bin z.B. ~/bin zu nehmen. Damit ist das Programm nur für den Benutzer ausführbar, hat aber den Vorteil, dass keine administrativen Rechte bei der Installation nötig sind. Dazu muss man im Makefile die Pfadnamen entsprechend ändern und den $LD_LIBRARY_PATH auf einen Pfad im Home-Verzeichnis setzen (dazu muss man dieses vorher natürlich anlegen und in der Installation entsprechend durchführen).

Gleiches gilt für die Libraries. Mit echo $LD_LIBRARY_PATH sollte man prüfen, ob /usr/local/lib im Pfad ist. In meiner Ubuntu-Version (8.04) war das noch nicht der Fall. In diesem Fall ist es vielleicht ratsam in der Datei ~/.bashrc folgende Zeile hinzuzufügen:

#Include local libs
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Edit: Bei 64-Bit-Systemen lautet der Pfad /usr/local/lib64.

Damit sollte nach einem erneuten Öffnen eines Terminalfensters das Aufrufen von cuneiform ohne Probleme vonstatten gehen:

max@compi:~$ cuneiform
Cuneiform for Linux 0.6.0
Usage: cuneiform[-l languagename -f format --dotmatrix --fax -o result_file] imagefile

Edit: cuneiform ist seit Ubuntu 10.04 im Standard-Repository vorhanden (Version 0.7) und kann also mit Hilfe von sudo apt-get install cuneiform installiert werden.

Durchsuchbare PDFs mit hocr2pdf von Exactimage

Das ist nun etwas richtig cooles: PDFs erstellen, die den eingescannten Originaltext darstellen, gleichzeitig jedoch durchsuchbar sind! Wieder brauchen wir entsprechende Pakete:

sudo apt-get install subversion build-essential libagg-dev libevas-dev libtiff-dev libjpeg-dev libpng-dev libungif4-dev

(Auch hier wieder: Bitte weitere benötigte Pakete mitteilen)

Die Pakete holen wir uns wieder aus dem Internet:

mkdir ~/dev/hocr2pdf
cd ~/dev/hocr2pdf
svn co svn.exactcode.de/exact-image/trunk
cd trunk

Das Compilieren und Installieren geht klassisch von der Hand:

./configure
make
sudo make install

Die entsprechenden Dateien sind wieder unter /usr/local installiert.

Weitere Anmerkung: Im Moment klappt das Kompilieren von hocr2pdf leider nicht, da ein Fehler in libagg auftaucht. Falls jemand eine Lösung hat, bitte ich um Hinweise.

Anmerkung: Unter Ubuntu Karmic (9.10) existiert nun ein Debian-Paket für hocr2pdf. Der Paketname lautet exactimage.

Leider gibt es damit im Moment ebenfalls ein Problem: Die Extraktion des Textes mit cuneiform funktioniert wunderbar. Beim Erstellen des Sandwich-PDFs werden die Zeichen jedoch riesig gesetzt, so dass die Suche und das Kopieren von Text aus dem PDF nicht wirklich funktionieren. Für Hinweise bin ich dankbar.

Update: Eine Anleitung zur Installation der Version 1.0 von cuneiform-linux in Ubuntu befindet sich unter: http://wiki.ubuntuusers.de/Baustelle/pdfsandwich. Leider scheint auch diese Version das Problem der großen Schriften nicht zu beheben.

Sandwich-PDF erstellen

Als Beispiel habe ich einen PNG-Text genommen, den ich irgendwann einmal eingescannt habe, einen Teil von Fernbergers Reisebericht am Ende des 16. Jahrhunderts über die Insel Hormuz (Quelle: Fernberger, Georg Christoph: Reisetagebuch (1588-1593) Sinai, Babylon, Indien, Heiliges Land, Osteuropa. Lateinisch-Deutsch. Kritische Edition und Übersetzung von Ronald Burger und Robert Wallisch (Beiträge zur Neueren Geschichte Österreichs, Bd. 12), Frankfurt a. M. 1999).

Wie bekomme ich aus diesem Text nun ein durchsuchbares PDF?

Um die Eingangsdatei für cuneiform vorzubereiten, brauche ich imagemagick (alternativ: GIMP o.ä.):

sudo apt-get install imagemagick

Ich kann nun meine Datei entsprechend umwandeln:

convert Fernberger01.png BMP3:Fernberger01.bmp

Das BMP3 ist deshalb wichtig, weil cuneiform nur BMP-Dateien der Version 3 verträgt.

Nun können wir den OCR-Vorgang tatsächlich beginnen:

cuneiform -l ger -f hocr -o Fernberger01.html Fernberger01.bmp

Die Switches besagen, dass es sich um einen deutschen (ger) Text handelt, dass das Format als hocr exportiert werden soll und die Ausgabedatei Fernberger01.html heißen soll. Das Ergebnis kann man sich z.B. mit Firefox betrachten und ist sehr zufriedenstellend (Knackpunkt ist hier immer die Auflösung, denke ich – 300 DPI sollten es schon sein)!

Das PDF kann man nun mit Hilfe von hocr2pdf bauen:

hocr2pdf -i Fernberger01.bmp -o Fernberger01.pdf < Fernberger01.html

Heraus kommt ein schönes Sandwich-PDF! Alternativ kann man auch Fernberger01.png als Input-Datei nehmen, wenn die bmp-Vorlage zu schlecht ausfällt. Falls man die Leerzeichen zwischen den Wörtern entfernen will, kann man die Option -s einfügen. Das erleichtert das spätere Durchsuchen des PDFs.

Damit wäre die Basis erstellt – mit einigem Geschick kann man ein Skript schreiben, dass mehrere Seiten nacheinander umwandelt und in PDF zusammenfasst. Für letzteren Schritt bietet sich das Paket pdftk an.

  •  
  • 59 Kommentare
  •  
Gravatar: Christian HartmannChristian Hartmann
08.05.2009
15:11

Danke

zunächst großen dank für den artikel und die damit verbundene mühe! die infos sind gerade extrem hilfreich.

zwei dinge würde ich gern anmerken:

1.
die wahl eines verzeichnisnamens "dev" halte ich für außerordentlich problematisch. einmal das tilde vergessen und schon findet man sich im geräteschuppen wieder. und das womöglich noch mit root-rechten. "dev" ist semantisch mit geräten assoziiert und dabei sollte es m.e. auch bleiben. "devel" hingegen macht solcherlei - zugegebenermaßen esoterischen - probleme nicht.

2.
für .profile würde ich - wenn denn überhaupt nötig - empfehlen:
if [ -d "/usr/local/bin" ] ; then
PATH=”/usr/local/bin:$PATH”
fi

Gravatar: MaxMax
08.05.2009
15:20

Danke!

Hallo Christian,
danke für die konstruktive Kritik! In beiden Dingen gebe ich dir Recht! Es macht natürlich keinen Sinn, das Verzeichnis "dev" zu nennen. "devel" oder "src" wären hier angebrachter. Der Zusatz zu .profile ist sinnvoll, da man ja nicht in jeder Distribution von der Existenz eines solchen Pfades ausgehen kann.
Ich werde den Artikel enstprechend ändern.
Max.

Gravatar: peter mertenpeter merten
09.05.2009
14:46

Probleme

Hallo Max,
ich habe nur hocr installiert. Das hat auch geklappt. Allerdings wird bei mir nur eine 1k große pdf Datei erzeugt und hocr2pdf kommt nichtmehr zurück.
Gruß
Peter

Gravatar: MaxMax
09.05.2009
16:10

...

Hallo Peter,
ohne nähere Informationen kann ich dazu wenig sagen - cuneiform kümmert sich um die Texterkennung, hocr2pdf fügt lediglich die von der Texterkennung erstellte hocr-Datei (mit html-Endung) und das Grundbild zusammen. Hast du eine hocr-Datei mit einem anderen Programm erzeugt?
Max.

Gravatar: MaxMax
12.05.2009
00:13

Automatisches Skript für die Konvertiertung

Automatisches Skript für die Konvertiertung:
http://www.auxnet.de/blog/blog-post/2009/05/11/automatisches-skript-fuer-cuneiform-und-hocr2pdf.html

Gravatar: peter mertenpeter merten
12.05.2009
13:39

Fehler gefunden

Fehler gefunden. Das compilieren der Quellen war an einer stellen nicht korrekt. Testen auf einer anderen Maschine dann solte es gehen.
Vielen Dank.

gruß
Peter

Gravatar: peter mertenpeter merten
12.05.2009
13:48

cmake

So jetzt läuft es aus dem Ruder. Ich habe Ubuntu 8.0.4 und bekommen beim cmake für cunei folgende Meldungen:
WARNING: This project requires version 2.6.0 of CMake. You are running version 2.4.7.
-- ImageMagick++ not found. Only uncompressed BMP images supported.
-- Adding __snp.c to individual libraries.
CMake Error: Error in cmake code at
/opt/cunei/cuneiform-linux/cuneiform_src/Kern/cstr/CMakeLists.txt:6:
Unknown CMake command "set_property".
-- Configuring done
Hat sich da was an cunei geändert??
Bei der Doku steht nichts von einer cmake Version 2.6.x. Desweiteren ist erstaunlich dass er "ImageMagick" nicht findet installiert ist es. Vielleicht bin ja jetz auf dem Holzweg.
Gruß
Peter

Gravatar: MaxMax
12.05.2009
15:34

cmake

Hallo Peter,

stimmt, ohne cmake 2.6.0 läuft es nicht...

Auf launchpad findest du eine neue Version:
https://launchpad.net/ubuntu/hardy/i386/cmake/2.6.2-1ubuntu1~hardy1
bzw. direkter Download:
http://launchpadlibrarian.net/19616511/cmake_2.6.2-1ubuntu1%7Ehardy1_i386.deb

Damit sollte es funktionieren.

Bei ImageMagick könnte es sein, dass entweder das Paket libmagick++9-dev fehlt oder eine andere dev-Library. Ich glaube aber, dass es kein Beinbruch ist, wenn nur nicht-komprimierte BMPs unterstützt werden.

Hoffe, das hilft weiter.

Gravatar: StefanStefan
09.06.2009
23:10

libmagick

Unter Ubuntu 9.04 muss das Paket "libmagick++-dev" installiert werden
sudo apt-get install libmagick++-dev

Gravatar: peter mertenpeter merten
13.05.2009
17:43

Geholfen!

Hallo Max,
das hat geholfen. cunei ist kompiliert und funktioniert. Jetzt teste ich mal mit verschiedene Dateien.

gruß
Peter

Gravatar: PetraPetra
07.06.2009
18:34

Hallo!

Hallo!
Endlich eine Quelle für OCR Fragen, Danke schon mal!

Ich bekomme leider folgenden Fehler in Ubuntu 8.04, obwohl ich die 2.6.2 cmake Version verwende und Imagemagick installiert habe:

-- Could NOT find ImageMagick (missing: ImageMagick_FOUND)
-- ImageMagick++ not found. Only uncompressed BMP images supported.
-- Adding __snp.c to individual libraries.
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
ImageMagick_Magick++_LIBRARY
linked by target "cuneiform" in directory /opt/src/cuneiform-linux/cuneiform_src/cli

-- Configuring incomplete, errors occurred!

Kann mir auch jemand weiterhelfen? Leider funktioniert das "sudo make install" anschließend nicht.

Grüße! Petra

Gravatar: MaxMax
07.06.2009
23:44

Hallo

Hallo Petra,
ok, ich vermute mal, dass hier noch ein Paket fehlt. Der Fehlermeldung nach sollte es eines der folgenden sein:
- libmagick++10
- libmagick10
- libmagick++-dev
- libmagick-dev
Ich würde mit dem ersten beginnen und dann noch einmal versuchen, zu installieren. Falls es nicht klappt, einfach das nächste Paket, etc. Über ein Feedback würde ich mich freuen, dann baue ich das noch in den Artikel ein.

Max.

Gravatar: PetraPetra
07.06.2009
18:41

svn checkout?

Hallo nochmal,

sollte es bei dem Abschnitt mit HOCR2PDF statt:

svn http://svn.exactcode.de/exact-image/trunk
nicht
svn checkout http://svn.exactcode.de/exact-image/trunk
heissen?

Grüße, Petra

Gravatar: MaxMax
07.06.2009
23:44

Danke

Stimmt... Danke für den Hinweis!
Max.

Gravatar: StefanStefan
09.06.2009
23:37

/usr/local/lib64/

Bei mir konnte cuneiform das /usr/local/lib Verzeichniss nicht finden und meldet beim starten "cuneiform: error while loading shared libraries: libpuma.so: cannot open shared object file: No such file or directory".
Bei mir liegt es an meinem Ubuntu 9.04 64bit, da heißt der Pfad /usr/local/lib64.
Ein schneller Patch hilft ein "ln -s /usr/local/lib64/*.so /usr/lib64/" in der Konsole als root.
Quelle: https://bugs.launchpad.net/cuneiform-linux/+bug/345033

Gravatar: MaxMax
10.06.2009
01:10

LD_LIBRARY_PATH

Hallo Stefan,
danke für den Hinweis. Vermutlich sollte es auch helfen, wenn man den Pfad zur Umgebungsvariable LD_LIBRARY_PATH hinzufügt:
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
Das kann man z.B. in der ~/.bashrc eintragen.
Max.

Gravatar: GuntherGunther
14.07.2009
05:31

Tipp

Hallo Max,

das alles ist ziemlich großartig.
Noch besser wird das Ergebnis, wenn cuneinform mit der Option -s aufgerufen wird. So werden Leerzeichen zwischen den Buchstaben im erkannten Text entfernt, die ansonsten eventuell eingefügt würden und dann die Suche im Text erschweren.

Gruß,
Gunther

Gravatar: MaxMax
14.07.2009
14:25

Danke für den Tipp!

Hallo Gunther,
danke für den Tipp - den kannte ich auch noch nicht!
Max.

Gravatar: detlefdetlef
07.08.2009
22:07

Hallo

Hallo Max,
habe soeben diese Seite gefunden, großartig! Darf ich mal fragen:
Unter Jaunty kann ich cuneiform-linux-0.7 nicht installieren. Beim make heißt es:
[ 59%] Built target rshelllines
[ 59%] Building CXX object cuneiform_src/Kern/rline/CMakeFiles/rline.dir/sources/newline.cpp.o
In file included from /home/Download/cuneiform/cuneiform-linux-0.7/cuneiform_src/Kern/rline/sources/newline.cpp:60:
/usr/include/c++/4.3/fstream:109: Fehler: expected unqualified-id before »?« token
Hast Du einen Hinweis, was mir fehlt?

Danke, Detlef.

Gravatar: MaxMax
08.08.2009
19:11

cmake

Hallo Detlef,
ein kurzer Blick ins Internet zeigt, dass dieser Fehler nicht ganz selten ist. Auf den ersten Blick würde ich sagen, dass es ein Problem zwischen cmake und gcc ist. Schau mal nach, welche gcc-Version dein cmake benötigt (aktuell wäre das ja evt. 3.4). Möglicherweise musst du das upgraden, sicher bin ich mir hierbei allerdings nicht.
Max.

Gravatar: DetlefDetlef
08.08.2009
23:42

cmake

Hallo Max,
vielen Dank. Die Hinweise im Internet hatte ich schon gesehen, aber sie zielen auf Programmierer ab, dazu gehöre ich nicht. Meine Versionen scheinen plausibel u. auch aktuell zu sein:
detlef@dpp:~$ cmake --version
cmake version 2.6-patch 2
detlef@dpp:~$ gcc --version
gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3

Schönen Gruß - Detlef.

Gravatar: MaxMax
09.08.2009
01:50

Fehler

Hallo Detlef,
hm - ich habe das auf Jaunty ausprobiert und kann den Fehler nicht nachvollziehen. Schau mal, ob der Aufruf von cmake .. dir Hinweise gibt, welche Module noch fehlen.
Viele Grüße,
Max.

Gravatar: DetlefDetlef
18.08.2009
04:51

Vielen Dank

Hallo Max,
vielen Dank für die Mühen. Ich habe das Problem jetzt gelöst:
Beim Make-Lauf ignorierte ich die Warnung, ImageMagick+ sei nicht zu finden und es können nur bmp-Dateien verarbeitet werden. ImageMagick war installiert. Nach der Installation von ImageMagick+ (ImageMagick++1 in Ubuntu) lief der make-Lauf problemlos durch u. cuneiform ließ sich mit "sudo make install" installieren.
Schönen Gruß - Detlef.

Gravatar: MaxMax
25.08.2009
03:38

Ok

Damit haben sich die Fragen geklärt - werde das explizit noch einmal im Artikel anmerken :-)
Max.

Gravatar: PfisterPfister
25.08.2009
00:45

Links

Vor gut einem Jahr haben wir (Archivista) das Programm hocr2pdf (auf unsere Kosten, Copyright gemeinsam bei Archivista GmbH/Exactcode GmbH) programmieren lassen, damit wir mit der besten "freien" OCR-Erkennung auch durchsuchbare PDF-Dateien erstellen können. Es war für uns von Anfang an klar, dass hocr2pdf unter der gpl stehen soll und dass der Einsatz wo auch immer stattfinden können soll.
Cuneiform bzw. hocr2pdf wurden anlässlich des linuxday.at im Jahre 2008 ausführlich vorgestellt. Das Skript findet sich hier:
http://www.archivista.ch/de/media/ocr2.pdf
Darin findet sich auch eine Installationsanleitung, wie econvert, cuneiform und hocr2pdf installiert werden können. Ich denke, dass solche Anleitungen Sinn ergeben, wenn Power-User eine tolle Lösung zusammenstellen möchten.
Für alle die, welche einfach mal eine webbasierte OCR-Erkennung laufen lassen möchten, sei darauf hingeweisen, dass es dafür an sich die ArchivistaBox gibt. Es handelt sich um ein OpenSource DMS-Produkt, dass sowohl Tesseract als auch Cuneiform eingebunden haben. Die fertige ISO-Datei (virtualisiert zu installieren) kann bei sourceforge hier bezogen werden:
http://sourceforge.net/search/?type_of_search=soft&words=ArchivistaBox

Gravatar: MaxMax
25.08.2009
03:37

Links

Hallo!
Danke für die Links. Stimmt, Archivista wurde seinerzeit auch im Artikel des Linux Magazins vorgestellt und klang sehr spannend!
Gerne bin ich an weiteren Hinweisen und Vorschlägen, auch zur Zusammenarbeit, interessiert.
Max.

Gravatar: PhoenixPhoenix
17.09.2009
06:58

Tolle Arbeit! Aber...

Hallo Max,
tolle Arbeit! Aber...
Linux heißt ja nicht nur Ubuntu. Hast Du auch mal an andere Distributionen gedacht? Jetzt z. B. die ganze Arbeit für openSUSE oder so umzustricken, muß vielleicht nicht sein. Kennst Du jemanden, der Dein Werk auf andere Distris umgestrickt hat?
Oder hast Du z. B. schon mal hiervon gehört
http://software.opensuse.org/search - cuneiform - 1-Click Install - sowohl für die Grunddatei, als auch für cuneiform-multilang, cuneiform-qt, cuneiform-multilang-debuginfo?
...und was hältst Du davon? Ich hoffe, ich bin nicht in der falschen Ecke der Linux- Distris gelandet...

Nette Grüße
Phoenix

Gravatar: MaxMax
17.09.2009
15:20

Hinweis

Hallo Phoenix,
danke für den Hinweis! Klar, Linux ist nicht nur Ubuntu :-) Ich erhebe auch gar nicht den Anspruch, eine vollständige Anleitung schreiben zu wollen. Mein Ziel war hier, Hinweise und Lösungsvorschläge zu geben, indem ich ein Beispiel aufgegriffen habe und gezeigt habe, dass es dort funktioniert. Mit etwas Linux-Wissen kann man in der Regel dieses Beispiel auf seine spezifische Distribution umstricken. Für Hinweise in dieser Richtung bin ich dennoch immer dankbar!
Max.

Gravatar: JoeJoe
03.10.2009
16:57

Fehler

Hallo,
also ich bekomme folgende Fehler nach dem installieren von

bzr branch lp:cuneiform-linux
wget http://launchpadlibrarian.net/19616511/cmake_2.6.2-1ubuntu1%7Ehardy1_i386.deb
dpkg -i cmake_2.6.2-1ubuntu1~hardy1_i386.deb
apt-cache search libmagic
apt-get install libmagick10
apt-get install libmagick++-dev

#cmake cuneiform_src/
-- ImageMagick++ found at /usr/include.
-- Adding __snp.c to individual libraries.
CMake Error at Kern/ccom/CMakeLists.txt:9 (install_dll):
Unknown CMake command "install_dll".

CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as

cmake_minimum_required(VERSION 2.6)

should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.

-- Configuring incomplete, errors occurred!
# cmake -version
cmake version 2.6-patch 2
# uname -a
Linux gw 2.6.27-7-server #1 SMP Tue Nov 4 20:18:35 UTC 2008 i686 GNU/Linux

Kann mir jemand sagen was da nicht geht ? (Wieso install_dll ?? Windows ??)

Gravatar: MaxMax
04.10.2009
18:09

install_dll

Hm, klingt eigenartig, v.a. das mit "install_dll". Kann jemand den Fehler bestätigen?

Max.

Gravatar: TamásTamás
05.10.2009
03:57

Hallo, grossartiges howto!

Hallo, grossartiges howto! Es wird bei mir eine pdf-datei mit 4,5kB grösse erstellt, wenn ich diese öffne, baut sich ein leeres Blatt auf!
Keine fehlermeldung nach z.Bsp.: :/tmp$ hocr2pdf -i 001.bmp -o 001.pdf < 001.html

Grüsse, Tamás

Gravatar: TamásTamás
05.10.2009
04:50

NACHTRAG

NACHTRAG >> Die Grösse ist wohl nicht massgebend! Der Text wird in der PDF gespeichert, jedoch ist kein Bild in der Datei???

Gravatar: MaxMax
05.10.2009
04:59

Fehlersuche

Hallo Tamás,
zur Fehlersuche versuche zuerst, mit cuneiform ein HTML zu erzeugen:
cuneiform -l ger -f hocr -o 001.html 001.bmp
Kannst du die HTML-Datei öffnen und wird Text korrekt extrahiert? Falls nein, stimmt etwas mit dem bmp oder der Textextraktion nicht.
Ansonsten könnte es am BMP-Format liegen - probiere mal, das bmp in ein JPG oder etwas anderes umzuwandeln...
Max.

Gravatar: TamásTamás
05.10.2009
05:44

Die html ist korrekt.

Die html ist korrekt.
Hatte ich bereits probiert undzwar mit JPEG, PNG, TIFF, wurde jeweils mit > "Error reading input file" quittiert!!

Gravatar: TamásTamás
05.10.2009
11:18

ERLEDIGT

ERLEDIGT... Des Rätsels Lösung war:
:$ apt-get install python-dev python2.5
hatte vorher immer ohne python gebaut
:~/hocr2pdf/trunk$ ./configure --prefix=/usr --without-python
Nun funzt es wunderbar. Trotz dessen vielen dank für die mühen.

Viele Grüsse
Tamás

Gravatar: hankhank
31.10.2009
06:07

Bildformate

Hi!
cuneiform kann so gut wie alle Bild-Formate verwenden (nicht nur .bmp, Version 3) wenn beim Kompilieren libmagick++-dev installiert ist; das erspart das Konvertieren der Dateien zu bmp.
Die Sandwich-PDF's funktonieren leider mit Bildern in den Vorlagen nur sehr eingeschränkt; ggf, kann man versuchen, auf das .rtf-Format auszuweichen,und die Bilder dort dann wieder einzubauen; ist allerdings recht mühsam...
Meine Erfahrungen bastele ich gerade zu einem Wiki-Artikel (http://wiki.ubuntuusers.de/Baustelle/Cuneiform) zusammen; das wird vermutlich noch weitere nach sich ziehen - das Thema fasziniert mich ziemlich! Interessant ist auch yagf (http://symmetrica.net/cuneiform-linux/yagf-en.html), ein GUI, das direkt XSane zum Scannen verwendet. Leider hat es noch keine hOCR-Unterstützung.
so long
hank

Gravatar: Martin WildamMartin Wildam
22.12.2009
19:03

Tests

Ich habe jetzt auch einige Tests gemacht. TIFF funktioniert bei mir, solange ich es über convert (imagemagick) mache:
convert /tmp/input.tif /tmp/output-%04d.tif
Wenn ich es mit tiffsplit in die Einzelseiten zerlege, dann bekomme ich auch "error reading input file" - aber schon weil cuneiform dann nichts erzeugt (verwende übrigens cuneiform v0.8.0).
Original sollte ein TIFF G4 sein (aber ich wüsste nicht, mit welchem Tool ich das unter Linux jetzt überprüfen könnte - ob es wirklich G4 ist).
Am Ende sieht das PDF leider von der Bildqualität schlechter aus als das PDF - zumindest in Evince (Document Viewer). Wenn ich aber Foxit oder Adobe Acrobat Reader verwende, sieht das Bild gut aus - offensichtlich ist Evince nicht der Beste im PDF-Rendering - aber andere PDFs sehen auch im Evince ordentlich aus (nicht so "ausgefranst und kantig").
Alles andere außer TIF, also mit BMP3 oder PNG zu arbeiten bringt jedenfalls am Ende immer riesengroße PDF-Files, dh für mich fällt alles außer TIF flach, wenn ich ein Multipage TIFF in PDF mit OCR über convert, cuneiform und hocr2pdf convertieren will. Bei JPG gibt es mit v0.8.0 überhaupt einen page fault.
Was ich aber echt nicht kapiere: Wieso funktioniert es mit den single-page TIFFs, wenn ich convert verwende, aber nicht, wenn ich tiffsplit verwende, obwohl da doch scheinbar dasselbe dabei rauskommt.

Gravatar: MaxMax
27.12.2009
17:56

Evince

Zu Evince: Das Rendering ist eigentlich gar nicht so schlecht, habe ich festgestellt. Dennoch unterscheidet sich bei gescannten Bildern die Bildschirmdarstellung von PDF Reader zu PDF Reader. Evince verwendet meines Wissens kein Anti-Alias beim Rendering von Bildern auf dem Bildschirm. Ich vermute allerdings, dass dies ein Feature und kein Bug ist. Der Ausdruck auf einem Drucke sollte bei allen PDF Readern natürlich gleich sein.
Danke für die Anmerkungen.
Max.

Gravatar: iSOiSO
14.01.2010
16:31

Ubuntu 9.10

unter Ubuntu 9.10 braucht man exactimage nicht mehr selbst zu kompilieren, es gibt dazu nen package im normalen repo.
habe ich rausgefunden nachdem ich etwa 15min lange versucht hab, das ding zu kompilieren, hat beim make immer fast sofort nen error erzeugt.

Gravatar: MaxMax
14.01.2010
16:47

Re: Ubuntu 9.10

Stimmt, danke für den Hinweis!



Max.

Gravatar: DanielDaniel
09.02.2010
18:43

Do it on SUSE !

Hallo zusammen :-)

hier eine Hilfestellung wie es unter Suse zu bewerkstelligen ist:

sudo zypper in bzr
sudo zypper cmake
cd ~
sudo mkdir ~/devel
cd ~/devel
bzr branch lp:cuneiform-linux
zypper in -t pattern devel_C_C++
cd cuneiform-linux
mkdir builddir
cd builddir
cmake ..
make
sudo make install
sudo ln -s /usr/local/bin/cuneiform /usr/bin/cuneiform

## siehe .profile ... :
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
### test:
cuneiform
sudo zypper addrepo http://download.opensuse.org/pub/opensuse/repositories/X11:/Enlightenment/openSUSE_11.2/X11:Enlightenment.repo
sudo zypper in agg agg-devel DirectFB-devel fribidi fribidi-devel giflib-devel libeet1 libeina-ver-pre-svn-05-0
libevas-ver-pre-svn-05-0 libevas-ver-pre-svn-05-0-devel libjpeg-devel liblo7 python-liblo python-devel
cd ~
mkdir ~/devel/hocr2pdf
cd ~/devel/hocr2pdf
svn co http://svn.exactcode.de/exact-image/trunk
cd trunk
./configure
make
sudo make install
sudo ln -s /usr/local/bin/hocr2pdf /usr/bin/hocr2pdf

sudo zypper in imagemagick
## wenn alles fertig ist, kannst du die devel-pakete löschen:
sudo zypper remove -t pattern devel_C_C++

Wenn jemand weiß wie man eingrenzen kann, welche devels man statt pattern devel_C_C++ braucht, bitte hier eintragen. Das entspricht aber ca. essentials... (hab grad kein bock das jetzt auch noch zu recherchieren..)

Gravatar: MaxMax
09.02.2010
18:55

Danke für die Anleitung

Hallo Daniel!



Danke für die Infos zu SuSE!



Max.

Gravatar: MarcMarc
16.03.2010
08:09

Marc

Hallo,

unter Ubuntu 9.10 scheint es ein Problem mit libagg-dev zu geben:



marc@Ubuntu:~/src/hocr2pdf/trunk$ make

C++ objdir/lib/agg.o

In file included from /usr/include/agg2/agg_rasterizer_scanline_aa.h:42,

from lib/agg.hh:26,

from lib/agg.cc:16:

/usr/include/agg2/agg_rasterizer_cells_aa.h: In member function ‘void agg::rasterizer_cells_aa::line(int, int, int, int)’:

/usr/include/agg2/agg_rasterizer_cells_aa.h:338: error: ‘INT_MAX’ was not declared in this scope

make: *** [objdir/lib/agg.o] Fehler 1



Hat es jemand bereits lösen können? Vielleicht libagg von Hand übersetzen?



Vielen Dank für die super Anleitung!

Marc

Gravatar: MaxMax
16.03.2010
08:58

hocr2pdf unter Ubuntu Karmic (9.10)

Hallo Marc,



es gibt unter Karmic inzwischen ein Binärpaket für hocr2pdf:



sudo apt-get install exactimage



(Werde das oben noch angeben - danke für diesen indirekten Hinweis!)



Max.

Gravatar: MarcMarc
16.03.2010
09:36

Marc

Hallo Max,

vielen Dank für den Hinweis :-)



Marc

Gravatar: cataclysmiccataclysmic
31.03.2010
15:23

riesige Buchstaben

Erstmal danke für das Tutorial.

Ich war ewig auf der Suche nach einer entsprechenden Lösung und diese ist schick.

Also danke für das Tutorial und vielen Dank an die Programmierer.



Leider habe ich noch ein kleines Problem.

Nutze cuneiform 0.9und hocr2pdf 0.7.4 aus den ubuntu quellen.



hocr-HTML zu erstellen klappt alles und auch das Zusammenfügen mit hocr2pdf. Leider kriege ich dann riesige Buchstaben im Dokument, so dass Suchen und Kopieren gar nicht hinhaut, da die Seitenmaßen nicht mit dem Textplatz korrespondiert. Interessanterweise ist das meist erst ab Zeile 3-4 der Fall. Zeile 1 und 2 sind immer ok.



Wollte es auch kompilieren, aber bin auch in das agg.h-Problem gelaufen.



Grüße

cat

Gravatar: OssiOssi
08.05.2010
01:33

auch mit neuerer hocr2pdf-version

Das selbe Phänomen habe ich auch. Das sonst so gesprächige Google schweigt sich dazu aus. Hat jemand mittlerweile eine Lösung?



hocr2pdf 0.8.0

Cuneiform 0.9.0

Gravatar: MaxMax
08.05.2010
13:56

Re: auch mit neuerer hocr2pdf-version

Ja, beide Probleme kann ich bestätigen. Habe den Artikel angepasst - vielleicht hat ja jemand eine Lösung und teilt sie mit.

Gravatar: TobiasTobias
17.05.2010
13:20

Sandwich-Dateien

Hallo,



ich hab ein Skript gebastelt, welches mit Hilfe von cuneiform und exactimage aus gescannten pdf-Dateien Sandwich-Dateien erstellt. Ich hab auch gleich deb-Pakete fuer Ubuntu dazugebastelt, kann diese allerdings nicht ausprobieren, da ich kein Ubuntu habe.



Wenn es jemand ausprobieren moechte - es sollte ab dem neuesten Ubuntu (10.4) laufen. Quelltexte und deb-Pakete findet man auf der Projektseite:



http://pdfsandwich.origo.ethz.ch/



Manual liegt hier:



http://www.tobias-elze.de/pdfsandwich/index.html



Achtung: Die deb-Pakete erzwingen bewusst cuneiform

Gravatar: TobiasTobias
17.05.2010
18:41

Sandwich-Dateien, Teil 2

Sorry, im obigen Post ist was verlorengegangen:



Achtung: Die deb-Pakete erzwingen bewusst cuneiform KLEINER 0.9.0. Version 0.9.0 hat einen Bug, der zusammen mit hocr2pdf zu den oben im Thread beschriebenen riesigen Buchstaben fuehrt.



Tobias.



P.S.: Falls jemand Fehler in den deb-Paketen findet, bitte mich informieren - ich bemuehe mich dann um Bug-fixes.

Gravatar: MaxMax
17.05.2010
22:28

Re: Sandwich-Dateien

Danke für die Hinweise und Links. Installation unter Ubuntu 10.04 funktioniert problemlos! Da cuneiform in Version 0.7 in der Distribution vorliegt, sollte das Problem mit den riesigen Buchstaben nicht mehr auftreten. Habe ich allerdings noch nicht probiert :-)



Max.

Gravatar: Heinrich SchwieteringHeinrich Schwietering
11.08.2010
16:13

pdfsandwich

Hi!



Mit der Verwendung von cuneiform-linux in Version 1.0.0 scheint der Fehler mit den riesigen Buchstaben gelöst zu sein.



Zu dem pdfsandwich-Programm von Tobias hab' ich einen Artikel im Ubuntuuser-Wiki verfasst, noch in der Baustelle, aber demnächst wohl auch ganz offiziell:



http://wiki.ubuntuusers.de/Baustelle/pdfsandwich



Sehr schönes Tool, besten Dank!



so long

hank aka Heinrich Schwietering

Gravatar: MaxMax
12.08.2010
09:27

Re: pdfsandwich

Danke für den Hinweis!

Gravatar: Heinrich SchwieteringHeinrich Schwietering
16.08.2010
08:35

pdfsandwich

Hi!

Muss leider zurück rudern: Weitere Tests mit Cuneiform 1.0.0 zeigen, dass der Fehler trotz allem weiter auftritt, wenn auch die erstellten .hocr-Dateien recht gute Qualität aufweisen. Die Ergebnisse der Konvertierung in ein sandwich-pdf sind nur dann relativ gut, wenn ein einheitliches Layout ohne viel Schickschnack und verschiedenen Schriftarten/Größen vorliegt.



Vielversprechend, wenn auch noch nicht ganz ausgereift, ist die neuste Version von gscan2pdf (0.9.32), die jetzt auch mit Cuneiform arbeiten kann; allerdings wohl eine Version benötigt, die mit dem Paket libmagick++-dev (in Ubuntu) kompiliert ist, da funktioniert 1.0.0, wieder unter der Voraussetzung eines einigermaßen einheilichen Layout, schon ganz gut. Es kommt zumindest nicht zu den überdimensionierten Buchstaben - dafür werden dann mal ganze Zeilen ausgelassen, obwohl Cuneiform sie eigentlich (in "externem Test" jedenfalls) erkennt...



Interessant ist da ggf. auch das Tool pdfocr (siehe auch http://wiki.ubuntuusers.de/pdfocr )

Mal sehen, was die Zeit so bringt...



so long

hank aka Heinrich Schwietering

Gravatar: MaxMax
16.08.2010
10:15

Re: pdfsandwich

Schade! Ich vermute eigentlich auch eher, dass hocr2pdf die Schriften falsch dimensioniert. Die hocr-Dateien schauen für mich ganz gut aus - aber ich kann auch falsch liegen.



Max.

Gravatar: Heinrich SchwieteringHeinrich Schwietering
17.08.2010
17:12

pdfsandwich

Hi!

Das Problem scheint in unterschiedlichen hOCR-Versionen zu liegen: von cuneiform 0.9.0 und größer werden andere hOCR-Dateien erstellt als von den älteren Versionen; hocr2pdf hat wohl wirklich mit den neuen Probleme.



Werde mal sehen, ob die ExactImage-Leute dazu Näheres wissen; sie hatten sich allerdings , nachdem ich sie wg. des agg-bugs angeschrieben hatte, nicht gemeldet...



so long

hank aka Heinrich Schwietering

Gravatar: Heinrich SchwieteringHeinrich Schwietering
18.08.2010
15:11

pdfsandwich

Hi!



Das Update von weiter oben:

"Update: Eine Anleitung zur Installation der Version 1.0 von cuneiform-linux in Ubuntu befindet sich unter: http://wiki.ubuntuusers.de/Baustelle/pdfsandwich. Leider scheint auch diese Version das Problem der großen Schriften nicht zu beheben."



ist etwas missverständlich. In dem Artikel habe ich zudem den Bezug zu Cuneiform 1.0.0 aufgrund der Fehler korrigiert, und explizit auf kleinere Versionen als 0.9.0 hingewiesen.



Sorry, aber ich hoffe, es ergibt sich noch was anderes dazu. Habe jetzt auch nochmal den gscan2pdf-Entwickler angeschrieben. Vielleicht gibt es noch eine andere Möglichkeit als hocr2pdf. um die Lagen zusamenzubekommen?



so long

hank







so long

hank aka Heinrich Schwietering

Gravatar: Heinrich SchwieteringHeinrich Schwietering
23.09.2010
23:07

Alternative gsan2pdf

Hallo!

Als derzeit imho beste Alternative, die mit etwas bug-fixing sehr gute Ergebnisse für "Sandwich-PDFs" bietet, würde ich gscan2pdf empfehlen; mit dem OCR-Engine OCRopus sind auch bei vielen Bildern recht gute Ergebnisse erzielbar. Allerdings muss dazu Version 0.9.31 verwendet, und die tesslanguage-Variable exportiert werden, um nicht-englische Texte vernünftig erkennen zu können. Cuneiform funktioniert leider momentan noch nicht richtig, das soll aber auch noch gefixt werden.



Habe das in http://wiki.ubuntuusers.de/gscan2pdf auf den aktuellen Stand gebracht.



Ansonsten ist DjVu eine echte Alternative, kleine Dateien, gute OCR-Ergebnisse, und mit xsane2pdf http://wiki.ubuntuusers.de/xsane2djvu

auch relativ einfach, und gut zu bedienen über XSane machbar.



so long

Heinrich aka hank (vom ubuntuusers-wikiteam)

Gravatar: MaxMax
27.09.2010
10:36

Re: Alternative gsan2pdf

Danke für die Hinweise! Ich bin gespannt auf die zukünftigen Entwicklungen.

Mein Kommentar
cmake
Ich möchte über jeden weiteren Kommentar benachrichtigt werden.

Zurück