Home / LinuxUser / 2010 / 06 / Richtig digitalisieren

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Richtig digitalisieren

E-Books aus Buchscans als DjVu oder PDF mit OCR-Layer

DjVu und PDF

Für die Manipulationen von DjVu-Dateien gibt es die im Paket Djvulibre [7] zusammengestellten Werkzeuge (djvulibre-bin unter Debian und Ubuntu, djvulibre unter OpenSuse und Fedora). Wieder nutzen Sie eine Shell-Schleife, um die bearbeiteten Buchscans durch den Schwarzweiß-Encoder cjb2 von Djvulibre zu schicken (Listing 1, Zeile 1). Danach packen Sie mit djvm den Container zusammen (Zeile 2)

Listing 1

$ for i in *pbm; do echo $i; cjb2 $i ${i%pbm}djvu; done
$ djvm -c myebook.djvu *djvu

Nun können Sie bereits das neue E-Book betrachten. Dazu benutzen Sie einen Betrachter wie Djview. Auf Debian-basierten Systemen und unter Fedora heißt das passende Paket djview4; bei OpenSuse suchen Sie djvulibre-djview4.

Nun ergänzen Sie bei Bedarf die DjVu-Datei um Bookmarks (im DjVu-Jargon: ein Outline). Dazu erstellen Sie im Textformat mit einem Editor eine entsprechende Outline-Datei, die sich am Beispiel aus Listing 2 orientiert. Diese packen Sie dann mit dem Tool djvused in den bereits erstellten DjVu-Container:

$ djvused myebook.djvu '-e myebook.outline' -s

Listing 2

(bookmarks
("Titel" "#1")
("Hauptteil" "#5"
  ("Kapitel 1" "#5")
  ("Kapitel 2" "#10")
  ("Kapitel 3" "#15")
  )
)

Einfacher geht es wirklich nicht mehr, und das Ergebnis spricht für sich (Abbildung 3).

Abbildung 3

Abbildung 3: Aufgrund der einfachen Syntax fügen Sie dem Scan beim Verpacken im DjVu-Container noch ein Inhaltsverzeichnis mit Bookmarks hinzu. So navigieren Sie ganz einfach im Text.

Um unter Linux PDF-Dateien aus den Scans zusammenzustellen, müssen Sie die PBM-Dateien zunächst in TIFFs umwandeln. Auch das erledigen Sie wieder mit einer kleinen Schleife (Listing 3, Zeile 1). Dann erstellen Sie aus den Einzelbildern zunächst ein Multipage-TIFF (Zeile 2) und wandeln dieses wandeln schließlich mit einem weiteren Befehl in ein PDF um (Zeile 3).

Listing 3

$ for i in *pbm; do convert $i -verbose ${i%pbm}tif; done
$ tiffcp *tif myebook.tif
$ tiff2pdf -o myebook.pdf myebook.tif

Die beiden dazu notwendigen Werkzeuge gehören zum Standardpaket libtiff-tools (libtiff3 unter OpenSuse, libtiff bei Fedora). Bei tiff2pdf haben Sie mit den Optionen -j und -z die Möglichkeit, die Kompressionsalgorithmen von JPEG oder ZIP zu verwenden.

OCR

Mit der OCR-Engine Tesseract [8] und dem Wrapper Ocropus [9] stellen Sie unter Linux hochwertige Buchscans mit einem OCR-Layer her. Zusätzlich zum Hauptprogramm von Tesseract (tesseract-ocr, tesseract auf OpenSuse und Fedora) müssen Sie die dazugehörigen Sprachpakete (tesseract-ocr-deu, tesseract-data-deu unter OpenSuse, tesseract-langpack auf Fedora) einrichten. Der Paketmanager zeigt beim Installieren wie immer entsprechende Abhängigkeiten und Vorschläge an.

Grundsätzlich ist es möglich, ausschließlich Tesseract für die Textscans zu verwenden. Um aber eine Layoutanalyse der Scans zu erhalten, bietet es sich an, die Engine über den Wrapper Ocropus anzusprechen (0.3.1 auf Debian Squeeze und Ubuntu "Lucid Lynx", 0.2 auf Ubuntu "Karmic Koala", noch nicht enthalten in OpenSuse und Fedora).

Auch Ocropus eignet sich für den Einsatz in Skripten. Dazu verwenden Sie den Aufruf ocroscript, wobei Sie dem Programm für optimale Ergebnisse die entsprechende Sprachdatei von Tesseract mitgeben:

$ for i in *pbm; do echo $i; ocroscript recognize --tesslanguage=deu --charboxes *pbm > ${i%pbm}hocr; done

Sowohl Ocropus als auch Tesseract verstehen sich auf Scans in Graustufen und Bilder in den Dateien. Als Ausgabe erhalten Sie OCR-Dateien im Format HOCR [10], einem auf XHTML basierenden Textformat. Dieses bearbeiten Sie gegebenenfalls mit einem Texteditor. Nun gilt es die HOCR-Datei als OCR-Layer in das E-Books zu integrieren.

Bei E-Books auf PDF-Basis fügen Sie den OCR-Layer aus den mit Ocropus gewonnenen HOCR-Metadaten mit dem Tool hocr2pdf aus der ExactImage-Suite [11] an (Debian "Squeeze" und Ubuntu "Karmic"). Dafür wandeln Sie die PBM-Dateien nach dem OCR-Prozess zunächst wieder in TIFFs um. Anschließend kombinieren Sie dann die Daten mit den entsprechenden HOCR-Dateien in Einzel-PDFs:

$ for i in *tif; do hocr2pdf -i $i -o ${i%tif}pdf < ${i%tif}hocr; done

Allerdings gibt es hier noch Schwierigkeiten mit den Layoutdaten: Das Highlighting erscheint versetzt. Das ist allerdings bereits aufgefallen [12]. Die erzeugten einzelnen PDFs fassen Sie schließlich mit Pdftk [13] zu einem Container zusammen:

$ pdftk *pdf cat output myebook.pdf

Für E-Books im Format DjVu gibt es das Helferlein Ocrodjvu von Jakub Wilk [14] (Debian "Squeeze" und Ubuntu "Lucid"). Ocrodjvu übernimmt das Steuern von Ocropus und vollzieht automatisch den gesamten Prozess der Textextraktion und das Wiedereinfügen in das bereits fertige E-Book auf DjVu-Basis, wobei Sie anstelle des Teams Tesseract/Ocropus alternativ auch Cuneiform (siehe Kasten "Open-Source-OCR") einsetzen dürfen.

Das ganze funktioniert bisher noch nicht mit Graustufenscans. Es gibt aber entsprechende Pläne. Dem Paket Ocrodjvu liegt außerdem der Konverter Hocr2djvu bei, mit dem Sie HOCR-Dateien in das Metadatenformat von DjVu umwandeln. Dieses fügen Sie mit Djvused wie bei PDF in die Einzeldateien ein, bevor sie mit Djvm alles in einen Container packen.

Die aktuellen OCR-Engines werfen bei optimalen Bedingungen wie sauberen Scans und ausreichender Auflösung insgesamt einen ziemlich brauchbaren Text aus. Für ein perfektes Finish ist es natürlich prinzipiell möglich, die mit Ocropus oder Tesseract gewonnenen Daten von Hand mit dem Texteditor auf Restfehler durchzusehen und gegebenenfalls nachzubearbeiten. Dabei handelt es sich allerdings um ein sehr zeitaufwändiges Verfahren.

Sinnvoll ist hier, eine Rechtschreibprüfung für die Endkontrolle einzusetzen. GNU Aspell [15] (aktuell: Version 0.6.60) bietet die Möglichkeit, über einen Filter alle XHTML-Tags bei der Rechtschreibkontrolle auszuschließen. Für das Durchkontrollieren der gesamten HOCR-Dateien in einem Verzeichnis starten Sie auch Aspell in einer Schleife:

$ for i in *hocr; do aspell --lang=de --mode=html -c $i; done

Das setzt natürlich voraus, dass Sie das richtige Sprachpaket von Aspell installiert und angegeben haben.

Open-Source-OCR

Es gibt zur Zeit vier frei verfügbare OCR-Engines: Cuneiform vom Hersteller Cognitive Technologie in Russland (aktuell in Version 0.9), GOCR von Jörg Schulenburg (0.48), Ocrad als Teil des GNU-Projektes (0.19), und Tesseract. Bei Cuneiform und Tesseract liegen im Unterschied zu den beiden anderen Programmen Erkennungsdaten für verschiedene Sprachen bei, was die Genauigkeit steigert.

Tesseract (aktuell in Version 2.04) stammt ursprünglich von Hewlett-Packard. Derzeit entwickelt Google die Software unter der Apache-Lizenz 2.0 weiter. Es handelt sich dabei um eine leistungsfähige OCR-Engine, die bei Google Books zum Einsatz kommt. Auch Tesseract ist bisher eine reine Engine ohne statistisches Sprachmodell oder Layoutanalyse. Letztere – und auch zum Beispiel das Erkennen von Chinesisch – sind jedoch für das nächste Major Release angekündigt.

Um den OCR-Prozess mit Layoutanalyse und Sprachmodellen zu vervollständigen, entwickeln Mitarbeiter beim Deutschen Forschungszentrum für Künstliche Intelligenz (DFKI) in Kaiserslautern den Wrapper Ocropus für den Einsatz mit Tesseract (letztes Stable: 0.4.3).

Tip a friend    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 139 Punkte (3 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...