ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

ocrodjvu

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

ocrodjvu {en} ist eine Kommandozeilen-Werkzeug zum Erstellen einer versteckten Textlage für DjVu-Daten, das auf DjVuLibre {en} fußt. Dazu können momentan die Programme OCRopus {en} oder Cuneiform-Linux für die eigentliche Texterkennung genutzt werden. Der Wrapper, verfasst in Python, ist eine Neuentwicklung, und wurde u.a. für das polnische poliqarp-Projekt {en} eingesetzt.

Installation

Seit Lucid Lynx ist das Programm in den Ubuntu-Quellen, installiert[1] werden muss

  • ocrodjvu (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install ocrodjvu 

sudo aptitude install ocrodjvu 

Außerdem muss ocropus, dazu die gewünschten Tesseract-Sprachpakete, installiert sein, optional eine Cuneiform-Version mit libmagick++-Unterstützung (ab Version 0.9.0 integriert).

Hinweis:

Unter Precise Pangolin 12.04 ist die Verwendung von OCRopus nicht mehr ohne Weiteres möglich. OCRopus 0.3 ist nicht mehr in den Quellen vorhanden, da es tesseract-ocr-2.xx benötigt, während in den Quellen inzwischen tesseract-ocr-3.xx vorhanden ist. Außerdem gibt es Probleme, den Tesseract-Engine zu finden, die in den Quellen vorliegende ocrodjvu-Version 0.7.7 findet trotz regulärer Installation Tesseract nicht. Abhilfe schafft die Kompilierung von Version 0.7.9 aus dem Quellcode!

Manuelle Installation

Mit der unter Lucid in den Paketquellen vorhandenen Version kann es zu massiven Problemen mit Cuneiform-Linux kommen; daher ist es ggf. sinnvoll, sich die aktuelle Version aus dem Quellcode selbst zu erstellen[2]. Dazu wird der Code von pypi.python.org {dl} als .tar.gz heruntergeladen und das Archiv entpackt[3]. Die Installation erfolgt über das setup.py-Skript (zunächst ausführbar machen![4]), ein einfaches Paket lässt sich z.B. mit dem Befehl [5][6]

sudo checkinstall python setup.py install 

erstellen und installieren (siehe auch Installationsskripte). Ein aktuelles Paket kann von debian.org {dl} bezogen und installiert[7] werden. Ab Version 0.6.0 ist auch die Verwendung von Ocrad, GOCR oder tesseract-ocr als Texterkennungsprogramm möglich; cuneiform kann auch ohne libmagick++-Support verwendet werden.

Hinweis!

Fremdpakete können das System gefährden.

Außerdem muss das Paket

  • python-lxml

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python-lxml 

sudo aptitude install python-lxml 

installiert sein.

Hinweis:

Ab Version 0.7.0 ist ocrodjvu für tesseract-ocr 3.00 ausgelegt. Damit ist aber auch die Verwendung von OCRopus etwas eingeschränkt, da ocrodjvu als mögliche OCRopus-Sprachen die installierten neuen tesseract-Sprachdateien (<langid>.traineddata) erkennt. Die in den Ubuntu-Paketquellen vorhandene OCRopus-Version 3.1.x baut aber intern auf tesseract-ocr 2.0x auf, und verwendet dafür die alten Sprachpakete. Um OCRopus in diesen Versionen verwenden zu können, müssen daher sowohl die "neuen" traineddata-Dateien (für die Erkennung der Sprache) als auch die "alten" Sprachpakete der entsprechenden Sprachen in den selben Ordner (bei selbstkompiliertem tesseract-ocr 3.0x im Regelfall in /usr/local/share/tessdata) installiert sein.

Bedienung

Die allgemeine Syntax auf der Kommandozeile[5] lautet

ocrodjvu {-o | --save-bundled} <Ausgabe>.djvu [Option...] <Eingabe>.djvu 

zur Erstellung eines bundled-Dokuments, bzw.

ocrodjvu {-i | --save-indirect} <Index-Datei> [Option...] <Eingabe>.djvu 

um ein indirect-Dokument zu erstellen. Dazu sollte ein Ordner mit dem Namen der Index-Datei existieren, in den dann die Indexdatei selbst und alle weiteren Dateien abgelegt werden. Ansonsten werden alle Daten im gerade genutzten Verzeichnis abgelegt.

Um z.B. mit XSane o.ä. selbsterstellte und mit pdf2djvu oder DjVuDigital ins DjVu-Format konvertierte PDF-Dateien mit einer Textlage zu versehen, ist die Option --render all nötig, da die standardmäßig verarbeitete bitonale Lage (mask) nicht vorhanden ist, und ocrodjvu eine Fehlermeldung ausgibt. Das gilt auch farbige mit gscan2pdf erstellte DjVu-Dateien ohne Textlage. Das Programm xsane2djvu verwendet ocrodjvu, um direkt die Textlage aus der dort erstellten "foreground-mask" für ein gescanntes Dokument zu erstellen.

Optionen

Das Programm kann durch vielfältige Optionen gesteuert werden.

Optionen für ocrodjvu
Argument Funktion
OCR-Anwendungen
--list-engines listet die installierten OCR-Anwendungen auf
--engine <OCR-Anwendung> --list-languages listet die installierten Sprachen für den jeweiligen Engine auf
--engine <OCR-Anwendung> zu verwendendes OCR-Programm (Standard: ocropus)
--language <Sprachkürzel> zu verwendende Sprache (Standard eng)
zusätzliche spezielle Erkennungsfunktionen
--ocr-only Seiten ohne Texterkennung werden nicht bearbeitet
--clear-text vorher bereits existierender Text wird entfernt
--render {foreground,all,mask} Angabe, welche Ebene bearbeitet werden soll, sinnvoll z.B. für fehl-gesplittete Dateien (Standard: mask)
-p <Seitenzahlen/Bereiche>, --pages <Seitenzahlen/Bereiche> Seiten/Bereiche die bearbeitet werden sollen, durch Kommata getrennt (z.B. 1-7, 9, 13-15)
-t {lines,words,chars}, --details {lines,words,chars} Angabe zu Erkennungsdetails - Zeilen, Wörter oder Buchstaben (Standard: words)
--word-segmentation {simple,uax29} zu verwendender Wort-Aufteilungs-Algorithmus, jede zusammenhängende Zeichenfolge oder uax29 {en}
mögliche Ausgabeformen
-o <Dateiname>, --save-bundled <Dateiname> Resultat als mehrseitiges "bundled"-Dokument speichern
-i <Index-Dateiname>, --save-indirect <Index-Dateiname> Resultat als mehrseitiges "indirect"-Dokument speichern
--save-script <Dateiname> Resultate werden als Skript für djvused {en} ausgegeben
--in-place Resultate werden direkt im Terminal ausgegeben
--dry-run Testdurchlauf, keine Änderungen an den Daten
Sonstiges
-D, --debug Debugging, tempöräre Dateien bleiben zur Kontrolle erhalten
-j [N], --jobs [N] Anzahl der parallel auszuführenden OCR-Prozesse
-h, --help Hilfe, listet die möglichen Optionen auf
-v, --version gibt die Versionsnr. des Programms aus

Weitere Informationen liefert die Manpage des Programms, allerdings wird diese bei der manuellen Installation ggf. nicht erstellt.

Probleme

Auflösung zu hoch

Ggf. funktioniert ocrodjvu bei Vorlagen mit Auflösungen höher als 300 dpi insbesondere bei Verwendung von Cuneiform nicht einwandfrei und stürzt ab; bis 300 dpi sollte es aber kein Probleme geben. Ggf. hilft es, das Programm mit dem Befehl

ocrodjvu [Optionen] </dev/null 

aufzurufen, zumindest funktioniert damit auch die Verarbeitung 600-dpi-Scans unter Verwendung von Cuneiform-Linux.

Allerdings erhöht sich die Verarbeitungsdauer bei Verwendung von höheren Werten auch für OCRopus enorm, die Verarbeitung eines 600dpi-A4-Scan kann auch auf einem modernen Rechen mehrere Minuten in Anspruch nehmen!

Cuneiform-Linux

Die ocrodjvu-Version aus den Paketquellen hat einen Fehler, der dazu führt, dass Cuneiform ggf. nicht verwendbar ist. Abhilfe schafft die Verwendung der aktuellen Version aus dem Quellcode.

Bis zur ocordjvu-Version 0.5.2 ist mit Cuneiform 0.7.0 aus den Paketquellen eine Texterkennung nicht möglich, da ocrodjvu eine Version benötigt, die pnm-Daten bearbeiten kann. Abhilfe schafft z.B. die Verwendung der Version 0.9.0 aus dem pdfocr-PPA {en}, oder das Kompilieren mit libmagick++-dev.

Wenn Cuneiform aus dem Quellcode erstellt wurde, und das Programm unter /usr/local/bin abgelegt ist, findet ocrodjvu es nicht, auch wenn der Pfad (was Standard ist) in der PATH-Variable eingetragen ist. Die Binärdatei cuneiform muss entweder nach /usr/bin verschoben, oder dort eine symbolische Verknüpfung darauf erstellt werden. Das Problem ist ab Version 0.4.7 behoben.

Alternativen

  • gscan2pdf kann verschiedene OCR-Engines verwenden; sinnvoll allerdings erst ab 0.9.31 mit implementierter OCRopus und Cuneiform-Unterstützung

  • xsane2djvu und pct-scanner-script können ocrodjvu zur Texterkennung verwenden

  • Kommerzielle Programme von Celaterm {en}

  • any2djvu {en}, Texterkennung ist allerdings nur für englische Texte zu empfehlen; außerdem muss eine bitonale "foreground mask" vorliegen.

  • Projektseite {en}

  • DjVu - Grundlagenartikel

  • didjvu - Programm zum Erstellen "regulärer" DjVu-Dateien mit bitonaler Vordergrundebene

ubuntuusers.local › Wikiocrodjvu