Raspberry Pi: Dokumentenverwaltung mit OCR einrichten

05 Mrz
5. März 2014

Im Dezember schrieb mich Sascha, der hier auch mitließt, mit einem Themenvorschlag an. Er bastelte an einer Dokumentenverwaltung mit OCR (gescanntes Dokument wird in Text verwandelt, damit es durchsuchbar wir) auf dem Raspberry Pi. Damit kann man von überall aus auf wichtige Dokumente zugreifen und sie sind indexiert wie auch durchsuchbar. Insbesondere letztere Funktion ist zum schnellen Auffinden vorteilhaft. Auf dem Raspberry Pi sind die Dokumente nicht bei einem dritten Anbieter gelagert, sodass auch der Punkt Datenschutz Beachtung findet. Im folgenden Artikel werde ich unter Einbezug der Erfahrungen von Sascha erklären, wie man eine Dokumentenverwaltung mit OCR auf dem Raspberry Pi einrichtet und verwendet. Dabei sei vorab noch erwähnt, dass mit einer Wartezeit von zwei bis drei Minuten pro gescannter Seite zu rechnen ist, bis es final abgelegt ist, da der Raspberry Pi eben kein Powerpaket ist. Des Weiteren kann diese Lösung „nur“ mit Dokumenten im PDF und TIF umgehen und die Erkennung von Umlauten (ä, ö, ü und ß) in Dokumenten funktioniert nicht. Wenn diese kleinen Einschränkungen nicht stören, sollte man mit der folgenden Lösung seinen Spaß haben.

Step 1

Zunächst sollten wir den Raspberry Pi übertakten, damit wir etwas mehr Leistung aus diesem rausholen. Wie dies funktioniert, erklärte ich bereits in dem Artikel Overclocking/Übertakten ohne Garantieverlust.

Step 2

Nun müssen wir eine Verzeichnisstruktur anlegen, in der die Dokumente später abgelegt werden. Diese sollte man an einem Ort anlegen, an dem genug Speicherplatz für die später eingescannten Dokumente vorhanden ist. In raw/ werden die zu bearbeitenden, eingescannten Dokumente später zu finden sein. Diese werden vor der Verarbeitung in dem Ordner backup/ gesichert. In handled/ werden sich die, durch die Dokumentenverwaltung verarbeiteten, Dokumente wiederfinden und in tmp/ werden Dateien bei der Verarbeitung durch die Dokumentenverwaltung zwischengelagert. In diesem Tutorial gehen wir davon aus, dass wir diese Ordner in /home/pi anlegen. Falls dem bei dir nicht so ist, musst du dies in diesem und den folgenden Schritten jeweils ändern.

cd /home/pi
mkdir document-vault
mkdir document-vault/raw
mkdir document-vault/backup
mkdir document-vault/handled
mkdir document-vault/tmp

Step 3

Wir müssen nun noch einige Softwarepakete für die Dokumentenverwaltung installieren. Dies können wir ganz einfach über den Paketmanager APT mittels des folgenden Kommandos erledigen.

sudo apt-get update
sudo apt-get install ghostscript libtiff-tools imageMagick pdftk tesseract-ocr bc python-reportlab python-lxml oracle-java7-jdk screen aspell-de

Step 4

Des Weiteren müssen wir OCRmyPDF, ein in Java geschriebenes Programm, welches die Texte in den gescannten Dokumenten erkennt, installieren. Wir benötigen die Version 1.1, da neuere Versionen nicht mehr so einfach funktionieren. Bei Interesse findet man jedoch die aktuelle Version der Software in dessen Git Repository auf GitHub.

cd /home/pi/document-vault
wget https://github.com/fritz-hh/OCRmyPDF/archive/v1.1-stable.tar.gz
tar xfvz v1.1-stable.tar.gz
mv OCRmyPDF-* OCRmyPDF
rm v1.1-stable.tar.gz
chmod 755 OCRmyPDF/OCRmyPDF.sh

Step 5

Jetzt müssen wir ein Script zur Dokumentenverwaltung anlegen. Dieses wird später Dateien konvertieren und durch das ORC System jagen.

nano run.sh

Step 6

Des Weiteren brauchen wir ein Script, das den Index der Suche aktualisiert, wenn sich der Datenbestand verändert hat. Dieses legen wir in diesem Schritt an.

nano index.sh

Step 7

Ein drittes Script wird auch noch benötigt, welches die Lockfiles bei einem Reboot bereinigt.

nano clean.sh

Step 8

Die Scripts aus den vorherigen Schritten müssen wir nun noch ausführbar machen.

chmod +x run.sh
chmod +x index.sh
chmod +x clean.sh

Step 9

Jetzt müssen wir Recoll mit der dazugehörigen Weboberfläche installieren. Recoll ist eine schlanke Dokumentensuchmaschine, die den kompletten, durch OCR aus dem gescannten Dokument geholten Text durchsuchbar macht. Im Folgenden installieren wir Recoll über den Paketmanager APT.

sudo apt-get install recoll python-recoll

Step 10

Nun müssen wir noch das Recoll Webinterface herunterladen. Dabei brauchen wir die Version 1.18.1, da es ansonsten zu Kompatibilitätsproblemen mit der installierten Recoll Version kommt.

wget https://github.com/koniu/recoll-webui/archive/v1.18.1.zip
unzip v1.18.1.zip
rm v1.18.1.zip
mv recoll-webui-1.18.1 recoll-webui

Step 11

Da diese Version nicht ganz lauffähig ist, müssen wir nun den kompletten Inhalt der Datei recoll-webui/webui-standalone.py durch folgenden Code ersetzen. Speichern kann man in dem Editor nano mittels STRG + X, Y und Enter.

nano recoll-webui/webui-standalone.py

Step 12

Nachdem nun endlich alles Nötige installiert ist, geht es an das Einrichten. Leider habe ich keine Möglichkeit gefunden, ohne XServer (grafischer Oberfläche) Recoll zum erstmaligen Start anzusprechen. Daher müssen wir über die grafische Oberfläche auf den Raspberry Pi zugreifen. Entweder hängen wir diesen hierzu an einen Bildschirm oder wir greifen über Remote Desktop bzw. VNC Server auf diesen zu. Für letztere beiden Varianten habe ich die entsprechenden Anleitungen verlinkt. Der Zugriff über die grafische Oberfläche ist nur in diesem Schritt notwendig.

Wenn wir nun in der grafischen Oberfläche des Raspberry Pis sind, öffnen wir den Terminal (in Raspbian LXTerminal genannt). Dort geben wir folgendes Kommando ein, woraufhin sich einige Sekunden später Recoll öffnen sollte.

recoll

In dem Recoll Fenster sollte das First indexing setup Fenster offen sein, in dem wir über einen Klick auf Indexing configuration die Konfigurationen des Programmes aufrufen können. Dort löschen wir zunächst im Top directories den Eintrag ~ (Tilde). Anschließend fügen wir den Pfad zum Ordner handled/ (/home/pi/document-vault/handled) hinzu. Anschließend fügen wir bei dem Punkt Stemming languages die Auswahl german hinzu. Wir bestätigen die Änderungen mit einem Klick auf OK. Anschließend starten wir die Erstellung des bislang leeren Indexes mittels eines Klicks auf Start indexing now. Sobald in der unteren Zeile des Hauptfensters von Recoll kein Text mehr steht, können wir es schließen und haben diesen Schritt geschafft.

Step 13

Nun müssen wir einen Cronjob einrichten, der einmal in der Minute das oben angelegte Script zum Verarbeiten der Dokumente ausführt, sofern das Script vom letzten Aufruf nicht noch läuft. Des Weiteren soll alle fünf Minuten geprüft werden, ob sich der Datenbestand geändert hat und ggf. der Index aktualisiert werden. Dazu fügen wir am Ende der Crontab Datei folgende Zeile ein.

crontab -e

Step 14

Jetzt können wir das Webinterface erstmals starten. Dabei ist darauf zu achten, dass man sowohl den Port als auch die IP-Adresse/DynDNS Domain auf dem das Webinterface laufen gelassen werden soll, definiert werden müssen.

cd /home/pi/document-vault/recoll-webui
./webui-standalone.py -a [IP] -p [Port]

Beispiel
./webui-standalone.py -a 192.168.178.22 -p 8080

Step 15

Hat alles geklappt, so können wir nun im Browser unter http://IP:Port/ (im Beispiel http://192.168.178.22:8080/) das Webinterface aufrufen. Wir können im Terminal mittels STRG + X die aktuelle Instanz des Webinterfaces wieder schließen

Step 16

Damit das Webinterface bei jedem Start des Raspberry Pis automatisch gestartet wird, müssen wir eine screen Instanz hiervon in eine Crontab legen. Dies geht, indem wir am Ende der Crontab Datei folgende Zeile einfügen (IP und Port wie oben anpassen). Des Weiteren tragen wir auch das Clean Script in die Crontab, damit es nach einem Neustart des Raspberry Pis nicht zu Fehlern kommt.

crontab -e

Step 17

Soweit ist nun alles eingerichtet, was zum Verwalten der Dokumente gebraucht wird. Nun stellt sich noch die Frage, wie die eingescannten Dokumente auf den Raspberry Pi gelangen. Im Endeffekt müssen die Dokumente irgendwie in den Ordner /home/pi/document-vault/raw (ggf. abweichend) wandern. Ich kann hierzu empfehlen, Samba zu verwenden, womit man eine Netzwerkfreigabe einrichten kann. Wie dies geht, beschrieb ich bereits in dem Tutorial Samba Server installieren.

Dabei sollte man in Step 6 des Tutorials folgenden Eintrag hinzufügen:

Step 18

Abschließend sollten wir den Raspberry Pi noch einmal neustarten.

sudo reboot

Endlich geschafft! Wenn du nun alles richtig gemacht hast, solltest du das Webinterface aufrufen und in diesem nach einem Dokument suchen können (Herunterladen via Samba). Neue Dokumente solltest du über die Netzwerkfreigabe auf den Raspberry Pi laden können. An dieser Stelle sei noch einmal erwähnt, dass diese Lösung nur mit PDF und TIF Dokumenten umgehen kann und es ein paar Minuten dauern wird, bis ein neues Dokument durch das OCR System gejagt wurde und folglich in Recoll zu finden sein wird. Des Weiteren sei noch erwähnt, dass das Setzen eines Passwortes für das Webinterface nur möglich wäre, wenn man diesen durch einen Webserver als Proxy jagen würde, was ich mir in diesem Tutorial erspart habe, da man sowohl IP-Adresse des Raspberry Pis und Recoll Webinterface Port kennen muss, um auf dieses zuzugreifen. Wer das dennoch haben möchte, sollte es mal auf eigene Faust versuchen 😉

Dir hat der Artikel gefallen?
Teile ihn mit deinen Freunden!
49 Antworten
  1. Sascha Flach says:

    Dank Jan habe ich nun seit vielen Monaten diese Dokumentenverwaltung am start.

    Fazit: Sehr schnelle und leichte Veraltung für den privat gebrauch. Besser als große installationen.

    Vielen Dank Jan!

    Antworten
  2. Heiko says:

    Ich war von der Möglichkeit auch super begestert. Installiert ist alles, aber ich bekomme einen Fehler von OCRmyPDF.sh. „Resolutions difference (290.42016/277.05463) higher than expected (.81716). Exiting…“ Hat jemand eine Idee?!

    Antworten
    • Jan Karres says:

      An dem Format des gescannten Dokumentes scheint so zu sein, dass es nicht verarbeitet werden kann (irgendwas stört an der Auflösung). Konkretes bekomme ich aus er Fehlermeldung aber auch nicht raus.

      Antworten
      • Sascha Flach says:

        Wenn ich Morgen da dran denke schaue ich mal welche Auflösung etc. Meine Dokumente habe.

        Hast Du pdf oder jpg Dateien gescannt ?

        Antworten
        • Heiko says:

          Ich habe nur PDFs in das Verzeichnis gelegt. Aber kein PDF ist von der Auflösung korrekt! Daher glaube ich, das irgendetwas nicht mehr korrekt die Auflösung bestimmt. Alle Versionen >1.1 kann man auch vergessen, da die abhängigen Pakete für Wheezy nicht verfügbar sind… Danke aber schon mal…

          Antworten
  3. max says:

    Hallo Jan! ich bin seit einigen Wochen an einem änlichen Projekt dran und gerade zufällig auf die Seite hier gekommen.
    Ich habe eine Frage. Weißt du vielleicht ob es ein änliches Programm wie ocrmypdf gibt was einem erlaubt in jpg. datein zu suchen? oder ist dies sogar mit ocrmypdf möglich?

    Außerdem würde mich interressieren wie die qualität des finales textes ist nach dem umwandeln mit dem ocr tool.

    tesseract-ocr oder andere tools haben bei mir meist sehr seltsame resultate hervorgebracht^^

    gruß max

    Antworten
    • Sascha Flach says:

      Hallo Max, ich bin der besagte Sascha. Ein ähnliches Projekt wie OCRmyPdF ist mir nicht hat bekannt.

      Ich bin auch gerade dabei dieses Projekt hier mal via installiert zu verwirklichen. Vielleicht kann man ja was zusammen machen?

      Ich bin mit den Ergebnissen absolut zu frieden. Bis auf die Umlaute.

      Ansonsten würde ich das Script erweitern. Jpg zu tiff.

      Antworten
      • max says:

        Hi sascha

        Als zusatzinfo, das ganze soll dazu dienen bilder die uber den pi gemacht werden in text umzuwandeln. Bin naemlich zu faul runter in den keller zu laufen um den wasser zähler abzulesen 🙂
        sollen eben nur zahlen uebersetzt werden.

        Koennen uns da gerne mal zusammen dran setzen, jedoch gibt es noch weitere probleme die ich vorher beheben muss 🙂

        Antworten
  4. Meister_Knobi says:

    Moin moin,
    irgendwie klappt das bei mir nur teilweise. Wenn ich OCRmyPDF manuell ausführe bekomme ich immer einen Haufen fehlermeldungen.
    wenn ich das script im terminal ausführe mekert er : Basename fehlender operant

    Kann es daran liegen das ich die „alten“ packete über wget gezogen habe, aber die aktuellen über den packetmanager bezogen habe?

    Das seltsame ist aber das es ab und zu funktioniert ein paar pdf mit text ebene habe ich erhalten aber das ist nur ca 1/4 von dem was ich in raw geschogen habe.

    Was ich zudem festgestllt habe ist das wenn 2 Dateien gleich heißen, zB scann_001.pfd werden in Backup und in Handled die bereits existirenden Dateien überschrieben. Das Könnte man vll einfach mit einem Zeitstempel beheben.

    Antworten
  5. Florian says:

    Hallo,

    habe alles nach Ihrer Anleitung installiert. Habe während der Installation auch keinerlei Fehlermeldungen erhalten. Nun habe ich eine PDF Datei per WinSCP auf meinen Pi in den Ordner „raw“ geladen. Die datei wird auch kurze zeit später automatisch in den Ordner „backup“ geschoben. Doch mehr passiert nicht. Auch nach einer stunde kann ich über recoll noch nichts finden.
    Wenn ich in den Ordner „ocrmypdf/tmp“ gehe, lässt sich auch erkennen, dass schon etwas an der pdf datei gearbeitet wurde. Dort sind Grafiken aus dem PDF und einige textdokumente mit Zahlenfolgen zu finden.

    Wo kann ich denn einen detaillierten log bzw. fehlermeldungen finden ?? Habe den Ordner „var/log“ schon durchsucht aber kann keine Fehlermeldung finden.

    Könnten Sie mir hier weiterhelfen ?

    Vielen Dank!

    Gruß

    Florian

    Antworten
    • Sascha Flach says:

      Ein detailliertes Log kenne ich nicht. Sind alle drei Scripte Chmod – x ( Run clean und Index? ).

      Ansonsten würde ich mir eine PDF Datei nehmen und von Hand mal durch OCRmyPdF schicken . /OCRmyPdF testen.pdf oder so. Siehst du mit dem. Befehl top etwas?

      Antworten
      • Florian says:

        Hi,

        habe den Fehler gefunden. Ich habe zum testen eine x-beliebige PDF genommen bzw. keine eingescannte PDF. Damit kann OCRmyPDF wohl nicht umgehen.
        Nun habe ich mal ein Dokument eingescannt und auf den Pi kopiert, und hat gleich auf anhieb funktioniert.

        Nur habe ich noch eine Frage:

        Wenn ich in Recoll nun nach Dateien suche, kann ich die gefundenen PDF dateien nicht aus dem Browser heraus herunterladen. Ist dies irgendwie möglich ?

        Gruß Florian

        Antworten
        • Sascha Flach says:

          Jan hatte dazu oben etwas geschrieben. Ich persöhnlich habe es etwas anders gelöst.

          ich habe einen apachen installiert und das verzeichniss handeld in var/www/handeld gemountet. Im Recoll Webinterface kannst du unter settings den Link angeben und alles ist fluffig.

          Antworten
  6. Sascha Flach says:

    Das ganze Projekt lebt nun auf https://github.com/JuXReal/SimpleDocumentManagement

    Am Ende soll ein Installscript alles für euch übernehmen.

    Derzeit noch eine Beta

    Antworten
  7. Mario Vogel says:

    Hallo Jan. Vielen Dank für dieses überragende Tutorial. Hat mir den Wiedereinstieg in diesen Bereich deutlich vereinfacht. Mein Ziel war es das private Büro papierlos zu bekommen.
    Folgendes Setup habe dazu gewählt. Raspberry Pi (am Router), Netwerkdrucker (Brother MFC-L2740DW), 2x1TB USB Festplatten (Toshiba Canvio Basics), Amazon Basic USB Hub mit 4 Ports.

    Die beiden Festplatten habe ich zur Datensicherung am Raspberry über mdadm als Raid1 Verbund eingerichtet. Hierzu gibt es zahlreiche sehr gute Tutorials. Allerdings sollte man beachten, dass bei einem Reboot der Kernel gestartet wird noch bevor sich die USB devices gemeldet haben. Ein rootdelay hilf hier weiter. (hat lange gedauert bis ich das gecheckt hab 😀 )

    Das Einrichten von OCRmyPDF und Recoll hat super funktioniert. Allerdings habe ich noch ein paar zusätzliche Einstellungen vorgenommen, die eventuell nützlich sein könnten. Und zwar habe ich in der run.sh in Zeile 30 hinter OCRmyPDF.sh noch die Optionen „-d“ für das Geradeziehen der eingescannten Bilder und „-l deu“ für Deutsch hinzugefügt. Bei Letzterem muss vorher noch die deutsche Sprachdatei für tesseract installiert werden (tesseract-ocr-deu). Vor allem das Geradeziehen der Bilder ist für die Untere Hälfte des Dokuments sehr hilfreich bei der Texterkennung. 😉

    Bei der Recoll Web Oberfläche hat mich gestört, dass ich über den Hyperlink nicht auf das Dokument zugreifen konnte. ==> Anpassung der /home/pi/recoll-webui/views/result-tpl
    Zeile 11 sieht bei mir folgendermaßen aus:

    [{{d[‚label‘]}}]

    Die Recoll Startseite rufe ich via InternetExplorer auf und lege die Seite als „Vertrauenswürde Seite“ in den Einstellungen unter „Internetoptionen“ –> „Sicherheit“ an. Und schon öffnet sich beim Click auf das entsprechende Suchergebnis das entsprechende PDF in einem neuen Tab.

    Noch eine kurze Sache zum Brother MFC. Hier gibt es leider keine Einstellung um die gescanten Blätter in einzelnen PDF Dokumenten abzulegen. Wen das stört, kann sich mit pdftk behelfen und so die erzeugten PDFs wieder zerstückeln. Ich habe das Ganze gleich in der run.sh eingebunden.

    Achja un den Brother musste ich via FTP anbinden. Samba hat leider nicht funktioniert.

    Wer noch Fragen zu den einzelnen Punkten hat kann sich gerne bei mir via Facebook melden.

    Antworten
    • Sascha Flach says:

      Hallo Mario,
      schön das es bei Dir so gut läuft. Ich habe angefangen das ganze hier als ein Github Projekt aufzusetzen. ( https://github.com/JuXReal/SimpleDocumentManagement ).

      Ziel ist es einen einfachen Installer zu machen, damit dieses Tutorial entfällt.

      Vielleicht hast Du ja Lust mit zu helfen?

      Leider stecke ich gerade etwas fest. Alles wird installiert etc. Aber die Cronjobs starten nicht. Leider kenne ich mich nicht gut damit aus.

      Vielleicht würdest Du ja sogar deine Verbesserungen ( Sprache etc.) commiten ?

      Ich wüsste zum Beispiel nicht wie ich das als Variable einbaue. In dem Guthub Projekt gibt es eine Config Datei, zum einfachen Editieren.

      PS: Ich habe Dich absichtlich nicht in FB angeschrieben, da hier alles für alle Leute einzusehen ist. Ich hoffe das ist kein Problem.

      MFG
      Sascha

      Antworten
  8. OliverAmann says:

    Hi,
    unhabhängig von diesem Projekt hab ich mir , ebenfalls auf Basis von OCRMyPDF ein script gebaut welches normale nicht durchsuchbare PDFs in durchsuchbare wandelt(bei mir wir auch noch jpg als format unterstützt) der text im PDF wird dann in eiener mysql Volltextsuche gespeichert und wird somit schnell suchbar. ist im Scan ein Barcode enthalten wird dieser zur Benennung und Einsortierung des PDFs genutzt(zbarimg).
    ist kein Barcode vorhanden, kann man Schlagworte vorgeben die dann zur Benennung genutzt werden. Trifft nichts zu wird die Datei einfach unter Ihrem alten Namen mit Datum abgelegt.
    Ausgabe erfolgt mittels einer kleinen PHP Seite, nachträgliches umbenennen und verschieben der Dateien ist möglich.
    Aktueller Stand „Internal Privat Use“
    (Variablenprüfung, sql injection, dateirechte. usw. noch nicht berücksichtigt)
    Screenshots gibst hier…
    http://oliver-amann.de/projekt-postsortierer/
    PS:
    Raspbery Pi 1B Portierung: geht so, 2-4 Minuten Pro Seite….

    Oli

    Antworten
  9. 5pHiNxX says:

    Hallo Jan,
    mir sind 2 Dinge aufgefallen.
    Zum einen werden keine Dateien verarbeitet, die ein Leerzeichen im Dateinamen enthalten. Hierfür habe ich beim run.sh script folgende Zeile vor dem Backup eingefügt: find /home/pi/document-vault/raw -name „* *“ -type f | rename ’s/ /_/g‘

    Zum anderen sind wohl nicht immer deutsche Dictionaries für aspell installiert. Das kann mit sudo apt-get install aspell-de erledigt werden

    Ansonsten super Tutorial… Funktioniert einwandfrei.

    Antworten
  10. Mirko says:

    Hallo Sascha,

    ich habe heute die Installation per SDM.sh dirchgeführt.
    Leider hat Step 10 nicht funktioniert. Das Zip wurde in Verzeichnis bin nicht ausgepackt. DAs musste ich manuell durchführen und danach konnte ich dann die Recoll Webui aufrufen. fyi

    Gruß
    Mirko

    Antworten
    • Mirko says:

      Hallo,

      ich habe sämtliche Dateien unter Simple* gelöscht und von scratch noch einmal gestartet. Anschließend hat es funktioniert. Ich habe danach noch apache installiert und nun das ganze auch auf einem Webserver.

      Ich habe aber leider das beschriebene Problem von recoll-webui, dass die PDF´s nicht angezeigt bzw. geöffnet werden können. Die Erweiterung von Chrome hat leider nichts gebracht. Wenn ich eine RDP Session auf den PI aufmache, dann kann ich das File öffnen. Lokal auf dem PI funktioniert es, aber nicht via Webbrowser von einem anderen Client.

      Wenn jemand dieses Problem gelöst hat, dann würde ich mich freuen, wenn jemand die Lösung pasten könnte.

      Danke

      Gruß
      Mirko

      Antworten
      • Sascha F. says:

        Ich habe das „ganz einfach“ gelöst. Ich habe mein Handled Ordner in /var/www gemountet.

        Und dann unter Einstellungen im Webgui ( also im Browser: http://deineIP:deinPort dann oben Links glaube ich ) den Pfad zu den Dateien auf /var/www/handeld gestellt.

        Dann geht das von allen Geräten aus und man braucht kein Plugin.

        Ich kontrolliere das nachher noch einmal und schreibe das hier hin. Sollte ich das vergessen, erinnert mich dran 🙂

        Antworten
        • Mirko says:

          Hallo Sascha,

          das habe ich nun auch so ähnlich gemacht. Ich habe es mit einem MAC getestet und dann habe ich das Problem mit /home auf dem MAC und dem SAMBA Share. Das habe ich nun auch wie Du gelöst, dass ich ein link gesetzt habe von handled nach /Volumes/handled. Nun kann ich via SAMBA mounten auf dem MAC nach /Volumes/handled und ich kann das PDF Dokument aufrufen, da es jetzt lokal auch unter /Volumes/handled zu finden ist. In Recoll habe ich vorsichtshalber noch den Index nach /Volumes/handled verschoben.

          Unter Chrome habe ich das Extension benötigt und unter Firefox via user.js.
          Für Safari habe ich noch keine Lösung gefunden.

          Sieht somit gut aus.
          Danke

          Gruß
          Mirko

          Antworten
    • Sascha F. says:

      Das kann ich mir nicht erklärem. An diesem Punkt hatte ich noch keine Probleme. Ich schaue mir die ganze Geschichte noch einmal an.

      Antworten
  11. Jochen says:

    Hallo zusammen. Ich hab mir das jetz auch mal installiert und den gleichen Fehler wie Florian oben erwähnt hat. Bekomm ne Fehlermeldung wegen der Resolution. Gibt es da inzwischen ne Lösung? Desweiteren ist mir noch aufgefallen wenn ich über remote auf dem PI bin um das Recoll einzurichten bekomm ich beim Indexieren auch ne Fehlermeldung in der Konsole.
    :2:../index/indexer.cpp:298:ConfIndexer::createAspellDict: aspell init failed: Could not open shared library [/usr/lib/libaspell.so] [/usr/lib/libaspell.so.15] [/usr/lib/libaspell.so.16] : /usr/lib/libaspell.so.16: cannot open shared object file: No such file or directory

    Antworten
  12. Mokkaschnitte says:

    Bei mir hat es soweit gut funktioniert, nur verzweifle ich total an den Umlauten. Ganz egal, was ich in /home/pi/.recoll/recoll.conf als „defaultcharset“ eintrage – ich kriege die Umlaute in Dateinamen nicht korrekt angezeigt und daher auch nicht gesucht. Genauer: bereits beim Suchen des Pfades wird mir bspw. Steuererklärung als „Steuererklärung“ angezeigt. Daher ist wohl auch nicht erstaunlich, dass das in der Suche nicht besser klappt. Auch im Terminal stimmen die Sonderzeichen nicht, dagegen passt es in Leafpad oder pcmanf (Dateimanager). In der raspi-config habe ich unter locale sowohl die DE-ISO…, DE-UTF8, als auch die en_GB_UTF8 aktiviert – ist das vielleicht irgendwie falsch? Danke Euch!

    Antworten
  13. Mokkaschnitte says:

    Oh, hat sich bereits erledigt, das lag nicht an Recoll, sondern ich hatte fälschlicherweise die locale nicht korrekt auf de_DE.UTF-8 eingestellt (lässt sich einsehen mit „cat /etc/default/locale“)
    Aber dennoch: wenn ich in der recoll-webui als Verzeichnis eines mit Umlauten auswähle (Bspw. folder „Kontoauszüge“), dann kriege ich folgenden Fehler:
    UnicodeDecodeError(‚ascii‘, ‚ dir:“Steuer/Kontoausz\xc3\xbcge 2014″ ‚, 22, 23, ‚ordinal not in range(128)‘)
    Gibt es da ein Mittel gegen? Ist nicht wirklich schlimm, aber lästig.
    Ansonsten ein Tipp meinerseits, um auf die gefundenen Dateien über die webui auch tatsächlich zugreifen zu können: FTP!!
    Kurzgesagt: ich habe das gleiche Verzeichnis einfach über FTP im Intranet freigegeben und anschließend im Browser unter Settings/Locations einfach „ftp://192.168.178.61:21“ eingetragen, also die IP des Raspi. Beim ersten Anklicken müssen dann nur noch die Zugangsdaten für FTP eingetragen und gespeichert werden und fertig! PDF/JPG öffnen sich direkt im Browser, andere Dateien meist als Download.
    Das ganze läuft dann auch per Smartphone (jedenfalls Android), allerdings bei mir nur unter Firefox. Weder der Systembrowser noch Chrome noch Dolphin laufen mit dieser Lösung, aber was solls…

    Antworten
  14. Mokkaschnitte says:

    Juhu, auch das ist lösbar, in der Datei webui.py muss Zeile 162 (!!) ausgetauscht werden durch die folgende:
    qs += “ dir:\“%s\“ “ % q[‚dir‘].decode(‚utf-8‘)
    Quelle: https://github.com/koniu/recoll-webui/issues/26

    Antworten
  15. Sascha Flach says:

    Guten morgen,

    vielen Dank für eure Hinweise. Ich habe soweit alles in das Git übernommen.

    Einzig der letzte Teil, das habe ich noch nicht hinbekommen.

    Aber das kommt noch!

    Antworten
    • Andreas says:

      Mich würde mal interessieren, ob zu diesem Artikel nicht eine „Fortsetzung PDF OCR mit Raspi 2016“ sinnvoll wäre, der beim Stand der aktuellen Version beginnt, denn seither scheint sich viel getan zu haben, wie die Diskussion allein zeigt.

      Was bekomme ich wohl, wenn ich gemäß der obigen Erst Anleitung installiere?
      Was aus den Kommentaren ist bereits in die Anleitung eingeflossen, was nicht?

      Hintergrund meiner Fragen/Anregungen:

      Ich denke, dass mittlerweile fast alle HP MFP zumindest der Laserjet Serien in ein Verzeichnis Raspi/NAS Verzeichnis JPG oder PDF schreiben können, so dass dann der Raspi automatisch loslegen könnte, das PDF mit einem OCR Layer und evtl. Volltextindex zu erstellen. Nur geht das auch bei mehrseitigen PDF und wann beginnt der Raspi seine Arbeit, wenn es 20 Seiten sind, die der HP scannt und liefert als PDF?

      Legt der Raspi sofort los oder wartet der, bis die Datei nicht mehr „in use“ ist?

      Was es hier auf dieser website mit den Umlauten auf sich hat, muss ich noch evaluieren, denn mal war die Rede vom Dateinamen („Steuererklärung“) und mal von der OCR Erkennung an sich.

      Ich hoffe, dass das eine tragfähige Solution bereits ist oder wird.
      Dann wird das Ganze für HP interessant, zumindest in der Vermarktung von deren MFP, denn HP hat momentan nur deutlich teurere, aber auch leistungsfähige HP Digital Sender zur Digitalisierung im Angebot, aber nichts für den Heimgebrauch bzw. Small Business.

      Zur Performance:
      Mit welchem RaspBi Modell und welchem Overclocking wurde gearbeitet?
      Darf der Pi 3 einen großen Fortschritt erwarten?

      Erst einmal Danke für diese schöne, praktische Idee, an der ich vor 17 Jahren mit Entwicklern von HP aus Bergamo (Italy) einst arbeitete und anno 1998 auf einer Messe war. In 1999 gab es von Acrobat ein Produkt namens Acrobat Capture, wo man pro OCR erkannter Seite zu zahlen hatte. Das dauerte damals etwas über 1 Minute auf IBM Highend Laptop / PC, so meine ich, u.a. gut 1000 Buchseiten einzulesen und mit OCR Layer zu versehen. Von daher ist 1 Minute für einen 35€ Rechner doch super.

      Nochmals

      DANKE…

      Antworten
      • Sascha Flach says:

        Guten Morgen,

        ich habe einge Änderungen aus den Kommentaren auf Guthub übernommen.

        Was ich nicht hinbekommen haben, waren die Umlaute (installieren des deutschen sprachpaketes).

        Das war mein erstes bash Porjekt und der Syntax fällt mir echt schwer.

        (ZAUNPFAHL 🙂 )

        Stand derzeit:

        Umlaute konnen nicht gesucht werden (Steuererklärung) Ä. Wobei Steuererklärung auch richtige treffer liefert. Ich suche eigentlich immer nach Nummern ( Steuernummer, ID, etc).

        Ich würde mich aber wie bolle freuen, wenn sich jemand findet der etwas mithilft 🙂

        Die Angabe:

        2-3 Minuten pro Seite beruht auf einen Raspberry B ohne übertaktung. Mit übertaktung geht es viel schneller.

        Wobei ich auch da sagen muss:

        In der Regel suche ich nicht direkt nach einem Dokument das gerade gescannt wurde.

        Bearbeitung:
        Alle Scanner die ich betreut habe, speicher eine .tmp Datei und bennen sie um sobald alles fertig ist. Erst wenn die Datei .pdf/.tiff ist wird sie bearbeitet.

        Ansonsten freue ich mich über jede Anregung.

        Antworten
  16. Mokkaschnitte says:

    Noch ein Nachtrag bzgl. FTP und anderen Standardeinstellungen. Diese lassen sich im Verzeichnis ./recoll-webui/views/settings.tpl nämlich teilweise voreinstellen. Einmal gepeichert werden diese Werte als Cookie gespeichert, was auf dem PC kein Thema sein sollte, ggf. aber auf mobilen Geräten. Hier lief bei mir nur Firefox (Android) sauber. Falls diese Einstellungen zurückgesetzt wurden, reicht ein Tipp auf „settings“ und dann auf „save“, damit erübrigt es sich dann, alle Einstellungen manuell nochmal vorzugeben. Hier ein paar geänderte Zeilen aus der settings.tpl, wie sie bei mir gut laufen:
    Zeit (time format string)

    Speicherort
    %for d in dirs:
    lokal gespeichert auf {{d}}
    %end
    Die englischen Begriffe innerhalb und lassen sich hier nebenbei auch leicht ins Deutsche übertragen…
    Unter value ist die IP, ggf. gefolgt vom entsprechenden Unterverzeichnis (ftp://192.168.178.61:21/Dateien) einzutragen, der USB-Stick muss dazu natürlich via FTP erreichbar sein. Einfach testen, der richtige Wert sollte schnell ermittelt sein!

    Antworten
    • Sascha Flach says:

      Guten Morgen, das ist auch eine guter Weg.

      Ich habe Apache installiert, das /handled Verzeichnis nach www gemountet und in den Settings http://192.168.1.200 (also die Ip) eingetragen.

      Läuft auf allen Mobilen Geräten, auch via VPN etc.

      Antworten
      • Berthold says:

        Hallo, weiß nicht ob ihr hier noch online seid aber eine Frage habe ich noch zu dem Thema Dateien öffnen aus der Weboberfläche und zwar habe ich das Verzeichnis handled in das /var/www/handled gemountet aber wenn ich das dann öffnen will steht dann da das ich nicht die erforderlichen Rechte habe. Hat einer ne Idee was ich noch machen kann?

        Antworten
        • Sascha Flach says:

          Hallo, klar sind wir online :-). sudo chmod 777 /handled sollte erst einmal helfen. Vielleicht auch 775 kenne mich damit nivht so aus. Du musst nur sicherstellen, das du nur im LAN bist.

          Antworten
  17. Almin says:

    Guten Tag,
    wie kann man bei dem Komplet Image eine Festplatte hinzufügen, oder den Speicherort ändern? Ich danke schon mal für die Unterstützung.

    Antworten
  18. jan says:

    Hallo,
    nutze das Projekt seit einiger Zeit ohne Probleme auf meinem Laptop.

    Unter Neuinstallation von debian 9 funktioniert OCRmyPDF (1.1) nicht mehr — unter debian 8 gings noch — , wahrscheinlich weil nun irgendwelche Abhängigkeiten verletzt sind bzw. Pakete fehlen. Einen Fehler konnte ich durch Installation durch python-reportlab beheben, nun aber:

    File „./src/hocrTransform.py“, line 10, in
    import Image, re, sys
    ImportError: No module named Image

    Die unter Step 3 angegebenen Pakete gibt es teilweise nicht mehr, etwa oracle-java7-jdk. Es wäre super wenn der Step 3 mit debian 9 äquivalenten Pakete aktualisiert werden könnte/genannt werden könnte. Bzw. mittlerweile gibt es ja OCRmyPDF 3.0, ist es wirklich weiterhin so, dass die (sicher verbesserte) Version für das Projekte nicht alternativ genutzt werden kann?

    Vielen Dank für Hilfe/Tipp jeder Art.

    Antworten
  19. Udo Heinrich says:

    Ich habe die Scripts von Jan noch ein wenig erweitert. Mein Ziel war es, das PDF mit OCR/TXT schon einigermaßen sinnvoll zu benennen. Die Idee: eine Wortliste wird im PDF gesucht und in der Reihenfolge der Funde wird das File dann benannt und um das aktuelle Datum ergänzt.

    Das Script:

    ———————————— Anfang
    #!/bin/bash

    # Check lockfile
    if [ -f newname.lock ]
    then
    echo „—– Script is already running —–“
    exit
    fi

    date +%s > newname.lock

    # Scipt will search for predefined words by using pdfgrep and rename the file.

    # Define Wordlist – content and order will determine the new file name

    ´word=(telekom unitymedia mainova süwag aldi amazon adac gemeinde versicherung hausrat haftpflicht miete vertrag auszug rechnung beitrag zeugnis lohn finanzamt steuererklärung beleg quittung reservierung)

    # Start searching for keywords and rename
    echo „—– starting renaming —–“
    unset newname

    for i in ls /home/pi/document-vault/handled/ScanDoc*.pdf | tr '\n' '\0' | xargs -0 -n 1 basename;

    do
    wordlimiter=0
    for item in ${word[*]}
    do

    pdfgrep -ic $item /home/pi/document-vault/handled/$i > /dev/nul
    pdfgrepreturn=$?

    if [ $pdfgrepreturn == 0 ];
    then
    # echo $item $pdfgrepreturn
    newname=“$newname-$item“
    wordlimiter=$((wordlimiter + 1))
    if [ $wordlimiter -gt 5 ];
    then
    break
    fi
    fi

    done

    newname=${newname:1}
    mv /home/pi/document-vault/handled/$i „/home/pi/document-vault/handled/$newname-$(date ‚+%Y%m%d‘).pdf“

    echo “ Renaming finished. Renamed from $i to $newname-$(date ‚+%Y%m%d‘).pdf“
    unset newname
    done
    rm newname.lock

    echo „—– Finish —–“
    ———————————— Ende

    In run.sh muss dann noch eine Passage (die Schleife mit den OCRmyPDF aufrufen) angepasst werden:

    ———————————–Anfang
    for i in ls /home/pi/document-vault/tmp/*.pdf | tr '\n' '\0' | xargs -0 -n 1 basename;
    do sh /home/pi/document-vault/OCRmyPDF/OCRmyPDF.sh -d -l deu+eng /home/pi/document-vault/tmp/$i /home/pi/document-vault/handled/$i &&
    /home/pi/document-vault/newname.sh &&
    echo “ OCR finish from $i“
    done

    ————————————— Ende

    Im clean.sh dann noch für die Bereinigung beim Neustart

    rm newname.lock

    einfügen.

    Die Güte der Wortliste (Inhalt und Reihenfolge) bestimmt den neuen Dateinamen.

    (Vielen Dank an meinen Freund für die tatkräftige Unterstützung bei der Umsetzung.)

    Antworten
    • Berthold says:

      Hallo Udo,
      das hört sich ganz gut an was du da vor hast!!!
      Habe allerdings noch ein paar Fragen zu deinem Vorschlag und zwar hast du im ersten Teil einen ganz neuen Script erstellt oder das nur in den run.sh eingefügt und den Rest wo OCR gestartet wird und so gelöscht?
      Gruß Berthold

      Antworten
  20. Martin says:

    Hallo,

    * „OCRmyPDF … Wir benötigen die Version 1.1“ – gilt das noch?

    * Ist die Anleitung 2018 allgemein noch gültig?

    * Ist das völlig ohne GUI machbar/installierbar/konfigurierbar?

    Antworten

Antworten

Kommentar verfassen

JanKarres.de © 2007-2018