synOCR synOCR - GUI für OCRmyPDF

vistalba

Benutzer
Mitglied seit
21. Dez 2020
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Ich habe da ein PDF das will einfach nicht...

Code:
                     INFO ocrmypdf._exec.tesseract -    1  [tesseract] Too few characters. Skipping this page
                     INFO ocrmypdf._exec.tesseract -    1  [tesseract] Too few characters. Skipping this page
                    ERROR ocrmypdf._exec.tesseract -    1  [tesseract] Error during processing.

Hat eine eine Idee wie ich das beheben kann? Es ist ein PDF mit nicht sonderlich viel Text. Es ist quasi eine Tabelle mit ein paar Einträgen.
Das PDF hat am Ende jedoch überhaupt nichts zu Suchen drin. Also hat er wohl gar nichts erkannt.
Ich habe schon --force-ocr aktiviert und auch das zweite Docker-Image ausprobiert das hier im Thread Mal empfohlen wurde.

Meine alte OCR Lösung wo aber immer ein Windowss Computer laufen muss hat das ohne Probleme indexiert. Also am PDF File kann es eigentlich nicht liegen.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.567
Punkte für Reaktionen
1.392
Punkte
234
Mein Tipp wäre auch, es mal mit dem Parameter -f zu versuchen. Und auch mal ein anderes Image zu probieren, wäre mein nächster Tipp gewesen.

Es liegt jedenfalls an ocrmypdf. Eine bessere Hilfe kann ich dir hier leider nicht geben :confused:
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.567
Punkte für Reaktionen
1.392
Punkte
234
@vistalba
Vielleicht probierst du es auch mal über den Weg, das PDF nochmal über einen PDF-Drucker neu generieren zu lassen.
 

vistalba

Benutzer
Mitglied seit
21. Dez 2020
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Danke für deine Hilfe und deine Tipps. Hab mich inzwischen nun sicher 4h mit OCRmyPDF und tesseract optionen rumgeschlagen. Leider hilft wirklich nichts. :(
Ich habe bisher OmniPage DocuDirect verwendet. Dies hat auf anhieb sämtlichen Text erkannt. Absolut ohne Probleme auf dem identischen Source-File.

Der Nachteil mit OmniPage DocuDirect ist halt, dass ich immer eine Windows Maschine laufen lassen muss, damit er das OCR im Hintergrund macht. Macht die Windows Maschine Mal ein Update, muss ich mich erst wieder einmal anmelden, damit das Tool im Autostart startet. Das ist der Grund warum ich dachte... SynOCR wäre eine viel bessere Lösung für mich.

Interessanterweise habe ich mehrere andere Testscans gemacht, wo das OCR absolut kein Problem darstellt.
Das betroffene Dokument stammt aber aus den 1990er Jahren. Langsam frage ich mich, ob die Schriftart irgendwie speziell ist und er das darum nicht erkennen kann.

Muss Mal noch schauen. Es soll ja anscheinend auch ein Lernmodus für tesseract geben. Weiss zufällig gerade schon jemand wie das funktioniert?
 

Gortosch

Benutzer
Mitglied seit
04. Apr 2020
Beiträge
21
Punkte für Reaktionen
1
Punkte
3
Moinsen, ist das Tool Quellcodeoffen, bzw. findet man den Code dafür irgendwo auf Github o.ä.?
In der aktuellen DSM 7 Preview funktioniert es nicht mehr und ich hätte mir sonst mal angeschaut, wie man das ggf. fixen kann :)

Hi @voodoo44,

wie schaut es aus? Hast du schon eine Spur wie man das Problem lösen könnte? Brauchst du irgendwie Hilfe?


Grüße
Sven
 

_gm

Benutzer
Mitglied seit
28. Dez 2020
Beiträge
10
Punkte für Reaktionen
1
Punkte
53
Ich beschäftige mich seit ca. 3 Jahren mit dem Workflow scan/ocr/verschlagworten/ordner wählen/speichern

synOCR ist super! Was jedoch echt ein Akt ist: automatisch verschlagworten und dann nach zuvor angelernten Regeln auf dem NAS abspeichern.
Ich habe viel gelesen und eines war sehr wichtig: "*.pdf verschlagworten und in eine Ordnerstruktur" niemals in eine Datenbank eines DMS mit Programm. Man ist dann abhängig.

Hat jemand was passendes?
ich habe den PDF Archiver entdeckt, ein open source Projekt. Das würde mit dem synOCR hamonieren und es ergänzen.
 
  • Like
Reaktionen: peterhoffmann

koen

Benutzer
Mitglied seit
04. Mrz 2019
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Frage an die Runde: Wie sucht ihr nach OCRmyPDF Dateien?
Separate Software auf dem PC, Dokumentenverwaltung selbstgehostet, Windows search, Synology Drive search?

Ich suche etwas, das die Filestruktur beibehält aber auch tagging zulässt, idealerweise über den gesamten Bestand an Daten ohne alle Daten zu verändern. Daher fand ich das Tagging von Drive ganz interessant.

It's a shame Drive stores its labels per user, not per file. It would make a great combination, since it would allow to select tagged(labeled) files AND allows very fast full content text search (withit the files, not just filenames)

I use TagSpaces, which can filter tagged files easily and will automatically recognizes SynOCR tags when configured correctly. But it's quiteslow when working in network folders. PRO version allows text search within documents but unfortunately not yet for PDF files :oops:

Windows explorer doesn't index text inside the pdf files for network folders (on your diskstation)
It will search text only if you set advanced settings to search inside contents for unindexed folders, but searching takes very long.

So for me:
Tagspaces for sorting, additional tagging and previewing files,
Drive to search for document contents

If tags could be converted to Drive labels then I would use Drive only I guess.
Regarding this link in the synology community I imagine there should be a way to manage the drive label database but then it would still need complex scripting when multiple users are involved.... Really, such a shame!
 

koen

Benutzer
Mitglied seit
04. Mrz 2019
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Noch ne Ergänzungsidee. Wenn ich es richtig verstanden habe gebe ich Tags ein, nach denen so gesucht wird und die dann so in den dateinamen gebaut werden. Bei Bedarf mit = eine Kategorie anlegen, die bei Verschieben in Kategorie Ordner genutzt wird, sosnt nicht?
Kann man auch iwie einen Tag-Alias anlegen, der in den Dateinamen gebaut wird, statt dem Suchtag?
(Falls noch nicht, ist vielleicht eine Syntax mit : möglich, also zB "Klaus-Peter:KP=Klaus;" -> Tag Klaus-Peter, Dateiname mit KP, Kategorie Ordner Klaus)
...

...

Dein Thema mit den Tags solltest du über die erweiterten Tag-Möglichkeiten mittels yaml-Datei hinbekommen.
Für dein Klaus-Peter-Beispiel sollte die Config unten funktionieren. Im content wird nach "Klaus-Peter" gesucht, der Tag-Name im Dateinamen würde "KP" lauten und die Datei wird in den Ordner nach /irgendwas/Klaus verschoben.

Code:
Klaus-Peter-Tag-Config:
    tagname: KP
    targetfolder: /irgendwas/Klaus
    condition: all
    subrules:
    - searchstring: Klaus-Peter
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: false
A year ago I posted the same request as @s-tyle, So many thanks to @DeeKay1 for a solution! I don't know how to use the YAML file but I guess I will need to dive into that now.

Still I imagine more users would like this function implemented in the without scripting; Of course "Klaus-Peter:KP=Klaus" is much easier than 10 lines of code for every tag. Even better could be multiple searchstrings for a tag: "Opel/BMW/Ford:car=transport"
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.567
Punkte für Reaktionen
1.392
Punkte
234
I don't know how to use the YAML file but I guess I will need to dive into that now.
It is not so difficult. And the rules don't have to be changed that often.

Still I imagine more users would like this function implemented in the without scripting;
The YAML-file is the easiest way to realize this. A better way is a native implementation in GUI (with tables). For this, I don't have the needed skills :rolleyes:
 

loswochos

Benutzer
Mitglied seit
30. Dez 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
3
Hallo zusammen,

ich bin gerade dabei unsere ganze analoge Briefpost (wir ersticken langsam darin) zu digitalisieren. synOCR ist dabei sehr hilfreich, also erst einmal vielen Dank dafür!

Allerdings habe ich gerade etwas Probleme mein gewünschtes "Sortier-Ziel" zu erreichen. Ich möchte gerne die Dokumente nach Name der Person im Haushalt in eine Verzeichnisstrukur kategorisieren. Dafür brauche ich also mindestens zwei Verzeichnisebenen. also z.B. <Zielverzeichnis>/heinz/kfz-versicherung oder <Zielverzeichnis>/anna/bank. Ich hatte gehofft das über die yaml rules mit einer Kombination aus "targetfolder" und "tagname" hinzubekommen, z.B.:

Code:
kfz_versicherung_heinz:
    tagname: kfz-versicherung
    targetfolder: heinz
    condition: any
    subrules:
    - searchstring: Heinz
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: Cosmos
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: M-LL
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true

Klappt aber nicht, da bei Verwendung des "tagname" als Verzeichnisname, das "targetfolder" scheinbar ignoriert wird.

Der nächste Gedanke war, die Aufgabe einfach über mehrere Profile zu lösen. Bringt aber auch nichts, da beim processing des ersten Profils, die pdf ja immer aus dem source direcory in das zielverzeichnis verschoben wird (unterschiedliche Quellverzeichnisse möchte ich nicht nutzen).

Toll wäre es mehrere tagnames in einer rule definieren zu können, nach denen dann die Verzeichnisstruktur aufgebaut wird. Auch eine Idee wäre es, in den subrules (optional) auf Basis des searchstrings eine Art subtag dynamisch zu generieren und für die Verzeichnisstrukur bzw. den Filename zu nutzen.

Eventuell geht das auch alles schon und ich checke es gerade einfach nicht. :) Bin über Vorschläge dankbar.

(PS: Nutze die aktuelle Version vom 23.12.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.567
Punkte für Reaktionen
1.392
Punkte
234
Natürlich würde es einfacher, wenn man mehrere Quellverzeichnisse nutzen würde. Dies entspräche auch einem Quellverzeichnis in Verbindung mit unterschiedlichen Suchpräfixen und Profilen.

Aber aus meiner Sicht sollte das auch über Regeln definierbar sein (muss man so halt alles als Regel beschreiben ????)
Klappt aber nicht, da bei Verwendung des "tagname" als Verzeichnisname, das "targetfolder" scheinbar ignoriert wird.

Der tagname hat nichts mit dem Verzeichnisnamen zu tun, sondern nur für den Dateinamen. In deinem Fall müsstest du dein Zielverzeichnis um den Namen erweitern.

YAML:
kfz_versicherung_heinz:
    tagname: kfz-versicherung
    targetfolder: heinz/kfz-versicherung
    condition: any
    subrules:
    - searchstring: Heinz
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: Cosmos
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: M-LL
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
 

loswochos

Benutzer
Mitglied seit
30. Dez 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
3
Danke für deinen Input Stephan! Mehrere Quellverzeichnisse sind in meinem Fall eher unpraktisch, da ich direkt von meinem Brother via SMB auf die Synology scanne. Ich könnte da zwar mehrere Profile konfigurieren, aber dann muss ich mir vorher ja immer schon anschauen wo ich das Dokument hin scannen möchte.

Das mit dem tagname habe ich in der Tat falsch verstanden. Ich hatte aufgrund der Option "Ziel-PDF in Tagordner" einsortieren gedacht, dass er hier (zusätzlich) den tagname als Verzeichnis nutzt. Was ist denn der Unterschied zwischen "Tagordner" und "Kategorieordner"?

Die yaml von dir probiere ich gleich mal. Das würde ja dann durchaus so passen.

VG
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.567
Punkte für Reaktionen
1.392
Punkte
234
Ja, es gibt die Option für Tagordner (war irgendwann mal ein Wunsch eines Users bevor die Regeldatei eingeführt wurde). Wenn die Angabe des Zielordners greifen soll, musst du Kategorieordner in der GUI auswählen (diese Bezeichnung ist inzwischen auch nicht mehr ganz konsistent:rolleyes: )
 

loswochos

Benutzer
Mitglied seit
30. Dez 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
3
Danke hab ich so konfiguriert. Passt jetzt. Habe nun schön den Abend damit verbracht Rules zu schreiben und zu optimieren. Funktioniert soweit.

Vielen Dank und guten Rutsch ins neue Jahr! :)
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: geimist

loswochos

Benutzer
Mitglied seit
30. Dez 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
3
Nachdem ich gestern nun doch einige Rules geschrieben und eine Nacht darüber geschlafen habe, möchte ich meine Gedanken einmal ausspeichern. Vielleicht sind ja ein paar brauchbare Anregungen dabei:
  • Ich denke zusätzliche Tags auf Basis der Subrules wären wirklich hilfreich. So könnte dem File mehrere Tags verpassen ohne das es in mehreren Verzeichnissen landet:
YAML:
kfz_versicherung_heinz:
    tagname: kfz-versicherung
    targetfolder: heinz/kfz-versicherung
    condition: any
    subrules:
    - searchstring: Heinz
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: Cosmos
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
      additionaltags: Cosmos
    - searchstring: M-LL
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
      additionaltags: "Golf;GTI;2010"

  • Einige etwas weniger streng formulierte Rules führten dazu, dass ein paar PDFs erwischt wurden, die hätten gar nicht auf die Rule matchen sollen. Ich fände es tatsächlich besser (ggf. als Konfiguration) wenn das Skript nach der ersten Regel die matcht aussteigen würde. So könnte man die Sachen auch etwas besser priorisieren.

  • Auch cool wäre es wenn man mit den Subrules richtige Filterketten bauen, also Subrules logisch mit AND, OR etc. verknüpfen und diese ggf. auch verschachteln, könnte. Die globale Condition ist (zumindest mir) doch manchmal etwas zu unflexibel. Das führt dann dazu, dass mehrere Rules gebaut werden müssen, obwohl eine reichen könnte. Wie man das komfortabel per yaml umsetzt müsste man natürlich mal schauen.

  • Ich persönlich finde die yaml Rules sehr praktisch, für manche aber ggf. eine Hürde. Perspektivisch wäre hier sicher ein UI-Dialog ganz schick mit denen sich die Rules bauen ließen. :)
 

guidovg

Benutzer
Mitglied seit
26. Nov 2011
Beiträge
148
Punkte für Reaktionen
51
Punkte
34
Frage an die Runde: Wie sucht ihr nach OCRmyPDF Dateien?
Separate Software auf dem PC, Dokumentenverwaltung selbstgehostet, Windows search, Synology Drive search?

Ich suche etwas, das die Filestruktur beibehält aber auch tagging zulässt, idealerweise über den gesamten Bestand an Daten ohne alle Daten zu verändern. Daher fand ich das Tagging von Drive ganz interessant.
Auf dem PC nutze ich die Software "Copernic Desktop Search". Diese indiziert vorgegebene Verzeichnisse und findet in durchsuchbaren PDFs frei definierbare Schlagworte.

Auf dem MacBook nutze ich DevonSphere express.

Für Dokumente, die regelmäßig per Post kommen (Gehaltsabrechnungen, Mitteilungen der Stadtverwaltung etc.), habe ich feste Regeln in dem Docker "Organize" hinterlegt. Dieser sucht in meinem SynOCR Output-Ordner alle 15 Minuten nach neuen Dateien. Sobald eine Regel greift, wird die Datei umbenannt und verschoben.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.567
Punkte für Reaktionen
1.392
Punkte
234
  • Ich denke zusätzliche Tags auf Basis der Subrules wären wirklich hilfreich. So könnte dem File mehrere Tags verpassen ohne das es in mehreren Verzeichnissen landet:
Einfach die Regel mit einem anderen Tag wiederholen. Das Dokument wird nur einmal in jeden Zielordner abgelegt.

Einige etwas weniger streng formulierte Rules führten dazu, dass ein paar PDFs erwischt wurden, die hätten gar nicht auf die Rule matchen sollen. Ich fände es tatsächlich besser (ggf. als Konfiguration) wenn das Skript nach der ersten Regel die matcht aussteigen würde. So könnte man die Sachen auch etwas besser priorisieren.
Ich denke nicht, dass das dein Problem löst. Wenn dann nämlich der erste Match ein ungewünschter Treffer ist, geht dir der gesuchte Treffer ganz durch die Lappen. Aber Priorisierung kam ja in der letzten schon einmal auf. Ich hatte mir das aufgeschrieben.

Auch cool wäre es wenn man mit den Subrules richtige Filterketten bauen, also Subrules logisch mit AND, OR etc. verknüpfen und diese ggf. auch verschachteln, könnte. Die globale Condition ist (zumindest mir) doch manchmal etwas zu unflexibel. Das führt dann dazu, dass mehrere Rules gebaut werden müssen, obwohl eine reichen könnte. Wie man das komfortabel per yaml umsetzt müsste man natürlich mal schauen.
Im Vergleich zur Tagliste in der GUI, finde ich die Regeldatei schon ziemlich flexibel :cool:
Du hast recht: flexiblere Regeln muss man auch irgendwie in der YAML-Datei abbilden (und zwar gut dokumentiert, damit es jeder versteht - da haben jetzt schon manche User Probleme). Die Auswertung ist dann aber wohl die größere Hürde. Es ist ja nur ein Freizeitprojekt von mir und leider kann ich bei weitem nicht alles perfekt realisieren und alle Wünsche umsetzen. Da das Projekt aber OpenSource ist, nehme ich gerne Codevorschläge auf :)

Ich persönlich finde die yaml Rules sehr praktisch, für manche aber ggf. eine Hürde. Perspektivisch wäre hier sicher ein UI-Dialog ganz schick mit denen sich die Rules bauen ließen. :)
Das fände ich auch am besten. Hier bin ich ja aber völlig auf Input von jemand befähigten angewiesen.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.567
Punkte für Reaktionen
1.392
Punkte
234

guidovg

Benutzer
Mitglied seit
26. Nov 2011
Beiträge
148
Punkte für Reaktionen
51
Punkte
34
Der Hauptgrund für mich war, dass Devon auch in (nicht indizierten) Netzlaufwerken sucht.
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: geimist

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.567
Punkte für Reaktionen
1.392
Punkte
234
habe ich feste Regeln in dem Docker "Organize" hinterlegt.
Hast du mal den Link zum Dockerhub?
Gibt es eine GUI für die Tag- / Regelverwaltung, oder läuft das auch alles über ein Textfile?
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat