synOCR - GUI für OCRmyPDF

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
Hallo zusammen,

für alle, die es brauchen, habe ich mal eine kleine GUI für den Dockercontainer OCRmyPDF erstellt. Nicht jeder fummelt ja gerne an Skripten herum. Außerdem hatten ja einige in Verbindung mit dem PHP-Skript Rechteprobleme. synOCR ruft den Dockercontainer etwas anders auf, so dass es mit jedem Ein- und Ausgabeordner funktionieren sollte.

  • Es besteht die Möglichkeit, über den integrierten Zeitplaner einen Zeitplan zu erstellen, oder ihr nutzt die Beschreibung (Hilfe-Seite), um einen Zeitplan über den DSM-Aufgabenplaner einzurichten. Beim integrierten Zeitplaner ist zu beachten, dass der DSM-Sicherheitsberater den zusätzlichen Croneintrag (da für DSM unbekannt) bemängeln wird.
  • auch ohne Zeitplan kann man einen manuellen Durchlauf über die Statusseite auslösen.
  • Ihr könnt für die Quelldokumente einen Suchpräfix verwenden (z.B. SCAN_). Es werden dann nur die Dokumente bearbeitet, welche einen entsprechenden Dateinamen haben. Für alle Dokumente einfach leer lassen.
  • Paketvoraussetzung: Docker
  • Sofern ihr OCRmyPDF bisher noch nicht genutzt habt, dauert der erste Programmlauf etwas länger, da das entsprechende Image zunächst geladen werden muss
  • Download von synOCR über cphub.net (falls noch nicht getan, am besten als Paketquelle eintragen, um so auch automatisch über Updates informiert zu werden).

Bitte schreibt, wenn euch eine Funktion fehlt oder ihr euch eine Verbesserung wünscht.
 

TeXniXo

Benutzer
Mitglied seit
07. Mai 2012
Beiträge
4.704
Punkte für Reaktionen
36
Punkte
134
Ich habe es soeben installiert.

* OCR-Qualität wirklich sehr gut (auch Tabellen und Bildunterschriften problemlos erkannt und richtig dargestellt).
* Eine Wohltat, dieses Tool zu benützen ohne Fummeleien & Skripts (was mich auch nicht so gestört hätte). Für Laien ganz klare Empfehlung, da die Installation, Konfiguration und Testdurchlauf max. 10 Min. gedauert hat.
* Hab synoOCR via Paketzentrum installiert. Einrichtung denkbar einfach und alles klar und gut erläutert, was man da zu tun hat.
* Zeitplaner in zwei Möglichkeiten auszuwählen ist schon Luxus hier ;)

Was mir nicht so klar ist:
* Backup - was genau wird da gesichert? Die Einstellungen/Konfigs und interner Zeitplaner? Denn ein Restore-Button hab ich nicht gefunden? Wie wird das Ganze wiederherstellt?
* Evtl eine Option einbauen, dass nach dem OCR-Scan die Quelldatei nicht gelöscht werden soll?
* Suchpräfix hilft sehr, aber bisschen zu statisch - möglich, einfach alle PDFs in einem vorgegebenen Ordner suchen zu lassen?
* Möglich, "Scan_" nach OCR-Scan zu entfernen? Wäre sonst eig. verwirrend - ist mehr ein "Schönheitsfehler" ;)

Sonst Hut ab vor deiner Leistung hier!
 

peterhoffmann

Benutzer
Mitglied seit
17. Dezember 2014
Beiträge
2.904
Punkte für Reaktionen
14
Punkte
84
Vorab, danke für deine Mühen das Script umzusetzen. :)

In der Standardeinstellung
Rich (BBCode):
-srd -l deu
funktioniert es.

Da mein Scanner PDFs mit einer grausamen OCR-Erkennung (nicht abschaltbar) produziert, habe ich testweise die Konfi auf
Rich (BBCode):
-rd -l deu
gesetzt. Ich hatte die Hoffnung, dass der Text verworfen und neu erstellt wird.

Leider haben dann die PDFs alle 0kb.
 
Zuletzt bearbeitet:

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
Hallo Peter,

hast du es mal mit dem Parameter aus dem Log versucht:
Rich (BBCode):
--force-ocr -rd -l deu
Ich habe bisher auch noch nicht alle Parameterkombinationen testen können.

Und die (defekte) Zieldatei hat wirklich 0kb? Solche Dateien sollten eigentlich gelöscht werden und die Quelldatei im Quellordner belassen werden. Könntest du mal gucken, wie viel Byte sie hat? Danke
 

peterhoffmann

Benutzer
Mitglied seit
17. Dezember 2014
Beiträge
2.904
Punkte für Reaktionen
14
Punkte
84

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
Hallo TeXniXo,

vielen Dank für dein Feedback!
* OCR-Qualität wirklich sehr gut (auch Tabellen und Bildunterschriften problemlos erkannt und richtig dargestellt) …
Das ist wirklich dem Container ORCmyPDF zu verdanken, der eine sehr gute Arbeit leistet :eek:

* Backup - was genau wird da gesichert? Die Einstellungen/Konfigs und interner Zeitplaner? Denn ein Restore-Button hab ich nicht gefunden? Wie wird das Ganze wiederherstellt?…
Von welcher Stelle sprechen wir genau? Im Einstellungsdialog kannst du dir die Konfigurationsdatei entweder in den Quellordner exportieren, oder von dort auch importieren. 'BackUp' sollte sich doch nur noch im Paket selbst finden. Dort sind die Skripte hinterlegt, um Einstellungen und den Dateizähler mit HyperBackup sichern und wiederherstellen zu können. Oder meinst du etwas anderes? Der Zeitplan wird derzeit nicht gesichert.
* Evtl eine Option einbauen, dass nach dem OCR-Scan die Quelldatei nicht gelöscht werden soll?…
Dafür wäre die Angabe des Suchpräfixes zwingend, der entfernt würde (wobei man dann wieder die Originaldatei anfassen würde). Mit entsprechender Prüfung wäre das sicher umsetzbar … Ich persönlich nutze den "Löschordner" als Backupordner, der parallel zu den anderen liegt.
* Suchpräfix hilft sehr, aber bisschen zu statisch - möglich, einfach alle PDFs in einem vorgegebenen Ordner suchen zu lassen?…
Einfach weglassen. Dann werden alle PDFs verwendet. (In diesem Fall sollte dann der Quellordner natürlich auch nicht der Zielordner sein.)
* Möglich, "Scan_" nach OCR-Scan zu entfernen? Wäre sonst eig. verwirrend - ist mehr ein "Schönheitsfehler" ;)
Das, und die anderen Sachen kommen mit auf die Liste
 
Zuletzt bearbeitet:

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
Problem gelöst. Funktioniert. Danke!
Definitiv 0 Byte. Sie wird mit Startem vom Script schon erstellt und bleibt dann auch stehen.…
Freut mich :)

Ist aber dennoch komisch. Ich hatte es gerade mal mit einer geocrten PDF nachgestellt und auch hier hat die Zeildatei 0Byte, was aber korrekt abgefangen wird.
Rich (BBCode):
    VERARBEITE:       --> SCAN__002571.pdf (Tue Jan 15 14:02:25 CET 2019)

OCRmyPDF-LOG:
   INFO - reading file from standard input
  ERROR -    1: page already has text! – aborting (use --force-ocr to force OCR)

                          L=> fehlgeschlagen! (Zieldatei ist leer oder nicht vorhanden)
Könntest du mal testen, was ein ls -s auf die Zieldatei ausgibt?
Rich (BBCode):
ls -s "/volume … /zieldatei.pdf"
 

peterhoffmann

Benutzer
Mitglied seit
17. Dezember 2014
Beiträge
2.904
Punkte für Reaktionen
14
Punkte
84
Könntest du mal testen, was ein ls -s auf die Zieldatei ausgibt?
Rich (BBCode):
ls -s "/volume … /zieldatei.pdf"
Ergebnis: 8 zieldatei.pdf

[HR][/HR]
Ich habe ein wenig weiter rumgetestet. Dazu habe ich 100 verschiedene PDFs (Größe von 10 bis 50kb je Datei) in den Eingangsordner gelegt.

Ergebnis war, dass zwei Dateien ignoriert wurden (blieben im Eingangsordner), 7 Dateien 0 Byte hatten und die Gesamtgröße der 100 PDFs von 2,6 MB auf 13,8 MB bei verbliebenen 91 Dateien angestiegen ist.

  • Die ignorierten Dateien hatten als Dateiendung ein .PDF statt einem .pdf.
  • Die 7 Dateien habe ich noch mal durchlaufen lassen. Das Log liegt anbei.
  • Mit der Größe bin ich aus Zeitgründen noch nicht weitergekommen. Das schaue ich mir später an.
 

Anhänge

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
Dateigröße:
Ich glaube, meine Methode war nicht optimal. Was sagt:
Rich (BBCode):
stat -c %s "/volume … /zieldatei.pdf"
Zu dem anderen Fehler:
Das ist ein Error von OCRmyPDF, worauf ich keinen Einfluss habe. Ist bei den entsprechenden PDFs etwas besonderes?

  • Die ignorierten Dateien hatten als Dateiendung ein .PDF statt einem .pdf.
Ja, dass kann sein. Ich werde die Suche entsprechend anpassen.
 

Mike0185

Benutzer
Mitglied seit
26. Juni 2012
Beiträge
409
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich interessiere mich sehr für synOCR, da ich mir demnächst einen Dokumentenscanner anschaffen werde und dieser auf eine Freigabe scannen soll. Ich hätte das gerne alles getestet. Das Programmpaket habe ich schon heruntergeladen und eingerichtet. Alles bisher tipptopp! Daumen hoch!

Ich bekomme allerdings den Dockercontainer nicht zum Laufen. Habe die latest Version von jbarlow83-ocrmypdf1 als Abbild heruntergeladen. Beim Starten wird diese immer "unerwartet wieder heruntergefahren". Was muss denn noch für den Container genau eingerichtet werden, damit dieser korrekt läuft? Gibt es hier ein how to?

Herzlichen Dank und viele Grüße
Mike
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
Hallo Mike,

eigentlich solltest du lediglich das Paket "Docker" installiert haben, synOCR startet dann den Container jbarlow83/ocrmypdf. Ggf. wird das entsprechende Abbild vorher geladen. Der Container wird nicht dauerhaft laufen (dafür ist er nicht gebaut).
 

Mike0185

Benutzer
Mitglied seit
26. Juni 2012
Beiträge
409
Punkte für Reaktionen
0
Punkte
0
Danke Stephan! Gerade habe ich es gelesen in einem anderen Thread!

Und siehe da: Funktioniert alles auf Anhieb!
 

peterhoffmann

Benutzer
Mitglied seit
17. Dezember 2014
Beiträge
2.904
Punkte für Reaktionen
14
Punkte
84
Rich (BBCode):
stat -c %s "/volume … /zieldatei.pdf"
Bei allen sieben PDFs eine 0.
Rich (BBCode):
root@DS216+ /volume1/temp/scanner/2_ausgang $ stat -c %s OCR_testdatei1.pdf
0
Ist bei den entsprechenden PDFs etwas besonderes?
Ich bin nicht der PDF-Profi und kann das nicht beurteilen. Auch die Fehlermeldungen sind ja teilweise verschieden (siehe Log im Vorposting).
Die testdatei1.pdf beinhaltet eine Zeichnung und unverfänglichen Text. Die Datei habe ich dir gezippt und anbei gelegt. Vielleicht weißt du woran es liegt.
Zusätzlich liegt die OCR_testdatei1.pdf auch mit drin.
 

Anhänge

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
Bei allen sieben PDFs eine 0.
Sehr schön. Die andere Methode gibt wohl die Größe in Blöcken aus und nicht in Bytes. Sollte im nächsten Release behoben sein.

Ich bin nicht der PDF-Profi und kann das nicht beurteilen. Auch die Fehlermeldungen sind ja teilweise verschieden (siehe Log im Vorposting).
Die testdatei1.pdf beinhaltet eine Zeichnung und unverfänglichen Text. Die Datei habe ich dir gezippt und anbei gelegt. Vielleicht weißt du woran es liegt.
Zusätzlich liegt die OCR_testdatei1.pdf auch mit drin.
Deine PDF ist verschlüsselt und lässt sich nicht modifizieren. Da kann ich nichts machen. Unerklärlicher für mich sind die anderen Fehler in dem Log die so oder ähnlich lauten:
ValueError: time data '201405211108390100' does not match format '%Y%m%d%H%M%S%z'
 

mördock

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
735
Punkte für Reaktionen
0
Punkte
42
Nabend,
Irgendwas mache ich wohl falsch:(
Docker läuft, ocrmypf liegt als Abbild im Docker, synocr ist installiert und Einstellungen sind vorgenommen worden. Unter Status zeugt er mir das 9 PDF Dateien vorhanden sind die verarbeitet werden können. Starte ich den Vorgang wird mir angezeigt das die Daten verarbeitet werden. Mach wenigen Sekunden scheint alles fertig zu sein, aber es wurden keine Dateien verarbeitet. Synocr zeigt mir noch immer 9 zu verarbeitende Dateien an. Es wird lediglich eine leere Log Datei angelegt.
Wo könnte es wohl dran liegen?
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
Ein leeres Log macht es mir ja auch nicht unbedingt leichter …:rolleyes:

Du könnest mal bitte synOCR über die Konsole starten:
Rich (BBCode):
/usr/syno/synoman/webman/3rdparty/synOCR/synOCR-start.sh
Sofern du dich damit nicht auskennst, kannst du auch über den Aufgabenplaner einen benutzerdefinierten Task mit obigen Befehl erstellen, einmalig ausführen und anschließend das Ergebnis ausgeben lassen.

Danke
 

mördock

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
735
Punkte für Reaktionen
0
Punkte
42
Moin,

werde mal versuchen den Code auszuführen, allerdings werde ich da vermutlich nicht die nächsten Tage zu kommen.
Melde mich dann.

#Mördock#

PS: Auf sowas wie SynOCR warte ich schon lange. Vielen Dank Geimist das Du Dir die Arbeit damit machst.
 

mördock

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
735
Punkte für Reaktionen
0
Punkte
42
Moin,

meine DS darf nachts ausgehen, habe dann eben nochmal einen Anlauf unternommen PDF Dateien zu bearbeiten und siehe da....... Es klappt.:D Genial, und so einfach!!

Jetzt muss ich mir noch überlegen wie ich meine vorhandenen Dateien am besten bearbeite. Schön wäre es wenn ich einfach einen Ordner nehmen könnte und er lediglich zu jeder vorhandenen Datei eine weitere, bearbeitete legt, ohne die Alte zu löschen oder zu verschieben. Mal schauen was sich mit den Einstellungen und Präfixen für eine Arbeitsablauf organisieren lässt.

Hinweis: Ein Hinweistext bei der Konfiguration wird falsch angezeigt. Geht man mit der Maus auf das "i" hinter der Zeile "Systembenachrichtigung (Piep) wir einem angezeigt: Ein kurzer Piep, sobald ein Film fertig bearbeitet wurde.

#Mördock#
 

peterhoffmann

Benutzer
Mitglied seit
17. Dezember 2014
Beiträge
2.904
Punkte für Reaktionen
14
Punkte
84
Dank naps2 (Scannersoftware) habe ich jetzt einen guten Workflow gefunden. Per Knopfdruck am Scanner wird das Dokument (ohne OCR) auf dem NAS abgelegt, alle 5min (von 9 bis 21 Uhr) prüft ein Script, ob ein Dokument vorhanden ist, wenn ja, wird synOCR in Gang gesetzt, OCR läuft drüber und legt das Dokument im endgültigen Ordner ab.

@geimist
  1. Ist es in Zukunft geplant, dass kein Log angelegt wird, wenn kein Dokument bearbeitet wird? Das war nämlich jetzt mein Problem, wenn ich das Script alle 5min starte. So habe ich mir hilfsweise eine Abfrage gebaut, die prüft, ob überhaupt ein Dokument vorhanden ist.
  2. Ist es in Zukunft geplant die Anzahl der Backupdateien zu begrenzen (ähnlich wie bei Logs)? Wenn nein, muss ich da noch ein Script drüberlaufen lassen, was ab einer gewissen Anzahl die Dateien löscht.

[HR][/HR]
Nachtrag:
Mir ist ein Fehler bei der Bennung aufgefallen. Beim Testen hatte ich zufällig zwei Dokumente (20190117_2.pdf und 20190117_.pdf) im Eingangsordner.
Daraus wurden dann "20190117_2.pdf" und "20190117_ (2).pdf".

Log:
Rich (BBCode):
    VERARBEITE:       --> 20190117_2.pdf (Thu Jan 17 11:28:17 CET 2019)

OCRmyPDF-LOG:
   INFO - reading file from standard input
   INFO -    1: page is facing ⇧, confidence 4.94 - no change
   INFO - Optimize ratio: 1.00 savings: 0.0%
   INFO - Output sent to stdout

                      --> übertrage die Dateirechte und -besitzer
                      --> verschiebe Quelldatei nach: /volume1/.../scanner/3_backup/20190117_2.pdf
                      --> 315 PDFs bisher verarbeitet
        (PushBullet-TOKEN nicht gesetzt)
                      --> (Laufzeit: 25 Sekunden)

    VERARBEITE:       --> 20190117_.pdf (Thu Jan 17 11:28:42 CET 2019)

OCRmyPDF-LOG:
   INFO - reading file from standard input
   INFO -    1: page is facing ⇧, confidence 2.50 - no change
WARNING -    1: [tesseract] unsure about page orientation
   INFO - Optimize ratio: 1.00 savings: 0.0%
   INFO - Output sent to stdout

                      --> übertrage die Dateirechte und -besitzer
                      --> verschiebe Quelldatei nach: /volume1/.../scanner/3_backup/20190117_ (2).pdf
                      --> 316 PDFs bisher verarbeitet
        (PushBullet-TOKEN nicht gesetzt)
                      --> (Laufzeit: 21 Sekunden)
 
Zuletzt bearbeitet:

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
2.736
Punkte für Reaktionen
6
Punkte
84
synOCR v0.9.3 ist online

IMPLEMENTIERUNGEN:
- Dateisuche ist jetzt case insensetive (Suchpräfix / .pdf .PDF)
- Suchpräfix kann nun automatisch entfernt werden lassen
BUGFIXES:
- leere LOGs wurden z.T. nicht korrekt gelöscht
- bei einem OCRmyPDF Error wurde das Skript z.T. nicht korrekt abgebrochen
- kleinere Korrekturen

[HR][/HR]
… Jetzt muss ich mir noch überlegen wie ich meine vorhandenen Dateien am besten bearbeite. Schön wäre es wenn ich einfach einen Ordner nehmen könnte und er lediglich zu jeder vorhandenen Datei eine weitere, bearbeitete legt, ohne die Alte zu löschen oder zu verschieben. Mal schauen was sich mit den Einstellungen und Präfixen für eine Arbeitsablauf organisieren lässt.
Du musst in jeden Fall die zu bearbeitenden Dateien mit einem Präfix versehen (z.B. gleich beim Scannen). In Version 0.9.3 lässt sich nun auch dieses Präfix automatisch entfernen > bearbeitete Dokumente werden also nicht mehr berücksichtigt (kann sein, dass ich den Zähler der offenen Aufgaben auf der Statusseite dafür noch sensibilisieren muss).
Hinweis: Ein Hinweistext bei der Konfiguration wird falsch angezeigt. …
Film wurde im aktuellen Release schon zum File - Danke :)

[HR][/HR]
  1. Ist es in Zukunft geplant, dass kein Log angelegt wird, wenn kein Dokument bearbeitet wird? Das war nämlich jetzt mein Problem, wenn ich das Script alle 5min starte. So habe ich mir hilfsweise eine Abfrage gebaut, die prüft, ob überhaupt ein Dokument vorhanden ist.
Das Löschen von Logs ohne Dateibearbeitung sollte in der aktuellen Version besser funktionieren. Vielleicht werde ich in Zukunft im Startskript eine Prüfung auf zu bearbeitende Dokumente einbauen, sodass das Hauptskript erst gar nicht anläuft. Dabei gibt es dann keinerlei Logs, was ich am Anfang vermeiden wollte.
  1. Ist es in Zukunft geplant die Anzahl der Backupdateien zu begrenzen (ähnlich wie bei Logs)? Wenn nein, muss ich da noch ein Script drüberlaufen lassen, was ab einer gewissen Anzahl die Dateien löscht.
Das habe ich derzeit nicht geplant. Man kann ja auch in den Systempapierkorb 'backupen' lassen. Sollte das dringend benötigt werden, lasse ich mich auch gerne erweichen :eek:
Mir ist ein Fehler bei der Bennung aufgefallen. Beim Testen hatte ich zufällig zwei Dokumente (20190117_2.pdf und 20190117_.pdf) im Eingangsordner.
Daraus wurden dann "20190117_2.pdf" und "20190117_ (2).pdf".
Es wird geprüft, ob es den vollen Dateinamen (20190117_) bereits gibt (ja > 20190117_2.pdf). Deshalb der Zähler hinten dran. Mir war schon klar, dass es da Sonderkonstallationen geben könnte, aber dass die so schnell auftauchen … :rolleyes: Dazu müsste ich das härter prüfen.
 
Zuletzt bearbeitet: