synOCR synOCR - GUI für OCRmyPDF

allahopp

Benutzer
Mitglied seit
15. Mai 2022
Beiträge
130
Punkte für Reaktionen
10
Punkte
18
werde noch ein paar Tests machen und dann berichten.

Bevor ich meine alte DS 418play verkauft habe, habe ich das SPK von synOCR drauf installiert. PDFs konnte ich an dieser Stelle nicht testen, da auf diesem Modell Docker nicht installiert werden kann.

Die Performance war so wie es @geimist beschrieben hat.
- Das Speichern einer Einstellung innerhalb eines Profiles 5 Sekunden

Daher würde ich mal auch davon ausgehen, dass das OCRen außerhalb VDSM ebenfalls schneller durchgeführt werden kann.
Alles im grünen Bereich :)
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.388
Punkte für Reaktionen
1.205
Punkte
234
Bevor ich meine alte DS 418play verkauft habe, habe ich das SPK von synOCR drauf installiert. PDFs konnte ich an dieser Stelle nicht testen, da auf diesem Modell Docker nicht installiert werden kann.
Wenn ich das richtig sehe, dann hat die DS418play doch eine 64Bit Intel CPU. Dann sollte man auch Docker installieren können (möglicherweise nur manuell, wenn es im Paketzentrum nicht angeboten werden sollte).
 

allahopp

Benutzer
Mitglied seit
15. Mai 2022
Beiträge
130
Punkte für Reaktionen
10
Punkte
18
Mit Sicherheit könnte man das manuell installieren, leider habe ich sie am Dienstag verkauft.

Werde mir aber synOCR auf meine physische NAS installieren. Auf Grund der bescheidenen Wetteraussichten für das Wochenende, habe ich hierfür genug Zeit. ;)
 
  • Like
Reaktionen: geimist

Avalox

Benutzer
Mitglied seit
24. Jun 2022
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Was meinst du mit lokale Datei? Du musst nur einmal via Docker-GUI das Image herunterladen
Im Docker kann unter Images auch eine Datei ausgewählt werden. Um an die Docker repositorys zu kommen muss ich erst einige Freigaben in der Firewall machen. Und da ich die eigentlich nicht brauche (also generellen Zugriff), stellt sich mir die Frage nach einer Image-Datei, wenn sie doch auszuwählen geht.

Unter synOCRDownload von geimist findet sich ein Image. Dieses ist allerdings wahnsinnig groß und die DS meckert wegen Ressourcen (selbst nach Neustart). Ich hab aber noch ein zweites DS218 auf dem Docker läuft. Dort habe ich ein Image exportiert und werde es gleich mal ausprobieren. Da ist das Image nur knapp 600MB im Vergleich zu 1,4GB.

Das kleinere Image kann auch eingespielt werden. Allerdings kommt es trotzdem zu gleichen Meldung im Log. Ergo muss ich mich wohl mit den Firewall freigaben befassen. :/

-----------------------------------
| ==> installation info <== |
-----------------------------------

synOCR-user: synOCR
synOCR-user is admin: yes
synOCR-version: 1.2.0
Architecture: x86_64
DSM-build: 42661
Device: 218plus (1499060362)
current Profil: Provisionslisten
DB-version: 5
WARNING: Error loading config file: .dockercfg: $HOME is not defined
Error: No such object: geimist/ocrmypdf-polyglot:latest
used image (created): geimist/ocrmypdf-polyglot:latest ()
used ocr-parameter (raw): -f -l deu+eng
OCR-arg 1: -f
OCR-arg 2: -l
OCR-arg 3: deu+eng
ocropt_array: -f -l deu+eng
search prefix:
replace search prefix: yes
renaming syntax: §y-§m-§d_§tag_§tit
Symbol for tag marking: #
Document split pattern:
Date search method: use standard search via RegEx
source for filedate: ocr
ignored dates by search:
PATH-Variable: /sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/opt/usr/bin:/usr/syno/synoman/webman/3rdparty/synOCR/bin:/usr/local/bin:/opt/usr/bin
Docker test: WARNING: Error loading config file: .dockercfg: $HOME is not defined
OK
DSM notify to user: admin
Loglevel: debug
max. count of logfiles: 10
Source directory: /volume1/OCR/OCR einlesen/
Target directory: /volume1/OCR/OCR verarbeitet/
BackUp directory: /volume1/OCR/BackUp/
rotate backupfiles after: (purge backup deactivated)



----------------------------------
| ==> Funktionsaufrufe <== |
----------------------------------
show files in INPUT with transcoded special characters

@eaDir$
AG113941 Proxy f\303\274r XcalibuR.pdf$
(pages counted with pdfinfo)

PROCESSING: ➜ AG113941 Proxy für XcalibuR.pdf (Fri Jun 24 22:22:04 CEST 2022)
temp. target file: /tmp/tmp.S5ZdWQW19O/Beispiel.pdf

[runtime up to now: 00:00:00]


➜ OCRmyPDF-LOG:
WARNING: Error loading config file: .dockercfg: $HOME is not defined
Unable to find image 'geimist/ocrmypdf-polyglot:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 3.215.210.111:443: connect: connection refused.
See 'docker run --help'.
← OCRmyPDF-LOG-END


[runtime up to now: 00:00:02]

┖➜ failed! (target file is empty or not available)
➜ purge logfiles:
➜ purge backup deactivated



-----------------------------------
| ==> synOCR ENDE <== |
-----------------------------------

Was ist mit:
--> Error: No such object: geimist/ocrmypdf-polyglot:latest
gemeint?

Dank euch.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.388
Punkte für Reaktionen
1.205
Punkte
234
Um an die Docker repositorys zu kommen muss ich erst einige Freigaben in der Firewall machen. Und da ich die eigentlich nicht brauche (also generellen Zugriff), stellt sich mir die Frage nach einer Image-Datei, wenn sie doch auszuwählen geht.
Das erklärt alles. Dann kann Docker die auch nicht auf der Commandline holen.

Das kleinere Image kann auch eingespielt werden. Allerdings kommt es trotzdem zu gleichen Meldung im Log. Ergo muss ich mich wohl mit den Firewall freigaben befassen. :/
Wenn du ein Image manuell einspielst, musst du es auch in der GUI explizit auswählen. Dazu noch anmerkend: Die Fehlermeldung betrifft das Image von jbarlow83. In der GUI ist 'mein' Polyglot-Image ausgewählt. Möglicherweise hast du in unterschiedlichen Profilen verschiedene Images ausgewählt. Das bitte auch checken.
 

psychochicken80

Benutzer
Mitglied seit
17. Mrz 2022
Beiträge
8
Punkte für Reaktionen
1
Punkte
53
Moin!
Habe jetzt endlich auch mal getestet. Dieses Forum treibt mich in den Wahnsinn, weil einfach keine der Benachrichtigungsfunktionen funktionieren will und ich hier überhaupt nichts mitbekommen und eher dachte, dass seit Monaten nicht mehr passiert...
Habe Version 1.2.0.7 und bekomme einen Fehler bei Ermittlung der OCR Datümer:
2022-06-25 15:24:42,513 - Date scanning ended
find_dates.py result:
None
ERROR at line 984: date "+%d/%m/%Y" -d $(awk -F- '{print $2}' <<<"$founddatestr" )/$(awk -F- '{print $3}' <<<"$founddatestr" )/$(awk -F- '{print $1}' <<<"$founddatestr" ) > /dev/null 2>&1

! ! ! failed ...
fallback to RegEx search

run RegEx date search - search for date format: 1 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
run RegEx date search - search for date format: 2 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
run RegEx date search - search for date format: 3 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
Date not found in OCR text - use file date:
day: 20
month:04
year: 2022
Log-Ausschnitte teile ich gerne auf Anfrage, steht ja doch einiges Privates drin.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.388
Punkte für Reaktionen
1.205
Punkte
234
Gehe ich recht in der Annahme, dass der 20.12.2021 hätte gefunden werden sollen?
@Gthorsten hatte letztens noch etwas im Pythonskript für die Datumsuche gefixt. Das hatte ich aber noch nicht veröffentlicht. Kannst du das mal bitte checken (LINK)?
 

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
145
Punkte für Reaktionen
41
Punkte
28
Wenn du nicht weiterkommst melde dich mal Stephan. Habe den lappi mit im Urlaub. Könnte abends mal gucken.
[
 
  • Like
Reaktionen: geimist

psychochicken80

Benutzer
Mitglied seit
17. Mrz 2022
Beiträge
8
Punkte für Reaktionen
1
Punkte
53
Gehe ich recht in der Annahme, dass der 20.12.2021 hätte gefunden werden sollen?
@Gthorsten hatte letztens noch etwas im Pythonskript für die Datumsuche gefixt. Das hatte ich aber noch nicht veröffentlicht. Kannst du das mal bitte checken (LINK)?
Genau, als Datum steht im Text "20. Dezember 2021". Das wird auch gefunden, wenn ich das Log korrekt interpretiere, allerdings kommt es danach zum Fehler.
@Gthorsten Genieß mal lieber deinen Urlaub, das hier hat Zeit...
 

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
145
Punkte für Reaktionen
41
Punkte
28
Vom log her könnte es ein größer, größer gleich Thema sein.... Gucke nachher mal nach

Ja ist es. Schande über mich. Der. Vergleich ist > statt >=
Deshalb wird 2021 nicht akzeptiert...
Könnte Stephan zur Not eine neue Version schicken..
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.388
Punkte für Reaktionen
1.205
Punkte
234
Ich sehe gerade auch:
date range in past: -1 [absolute: 2021]

Was ist, wenn der Zeitraum in die Vergangenheit um ein Jahr erhöht wird?
 

Yippie

Benutzer
Mitglied seit
01. Feb 2011
Beiträge
573
Punkte für Reaktionen
31
Punkte
54
Guten Morgen!

Ich kämpfe derzeit mit zwei Profilen, die ich erstellt habe und die auch aktiv sind. Es gibt für beide jeweils eine eigene Profildatei, wie nachfolgend beschrieben.
YAML:
CITES_1:
    tagname: Cites
    tagname_RegEx: "[[:digit:]]{6}-[[:digit:]]{2,}"
    targetfolder:
    condition: any
    subrules:
    - searchstring: EUROPEAN UNION
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: false
    - searchstring: "[[:digit:]]{6}-[[:digit:]]{2,}"
      searchtyp: contains
      isRegEx: true
      source: content
      casesensitive: false

und

YAML:
LV_1:
    tagname: Lebensversicherung
    tagname_RegEx: ""
    targetfolder:
    condition: any
    subrules:
    - searchstring: Versicherungsnummer
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: "LV-1111-7777-3333"
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: false

Vor ein paar Tagen hatte ich nur das erste Profil im Einsatz. Die Erkennung und Benamung der Datei funktionierte tadellos.
Heute ein zweites Profil erstellt, LV_1, und eine Datei ins Eingabe-Vz kopiert, die eigentlich dem zweiten Profil zuzuordnen ist.

Nur, die Erkennung bzw. die Benamung des Ziel-Dateinamens für ein Dokument, welches zum zweiten Profil passt, wird über das erste Profil ausgeführt. Allerdings nicht vollständig, da die erforderlichen Tags ja gar nicht im Dokument zu finden.

Der Eingabedateiname lautet "IMG_20220626_0001.pdf" und die Ausgabe "Cites DE-DEG.pf".

Ich bin jetzt ein wenig ratlos denn ich dachte das Prinzip von synOCR funktioniert nach dem Schema:
  1. Verarbeite alle Profile
  2. Wird ein Profil, anhand dessen Profildatei erkannt bzw. ist es diesem zuordbar, dann verwende die Einstellungen dort und führe die OCR Ereknnung durch und benennen den Dateinamen entsprechend
  3. Andernfalls gehe weiter zur nächsten Profildatei und führe Punkt 2) durch
Ich bin überzeugt davon, dass es genau so sein soll, nur warum eben nicht in meinem Fall?
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.046
Punkte für Reaktionen
900
Punkte
204
Ich bin mir nicht sicher, aber ich glaube nicht, dass die Profile nacheinander abgearbeitet werden. Ich habe auch unterschiedliche erstellt, die überwachen aber jeweils unterschiedliche Ordner. Ansonsten sind die ganzen Regeln immer in einer einzelnen Datei und die einzelnen Profile nur für unterschiedliche Oberthemen gedacht (bei mir).
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.388
Punkte für Reaktionen
1.205
Punkte
234
Genauso ist es. Profile dienen dazu, unterschiedliche Userszenarien / Ordnerstrukturen abbilden zu können. Sobald ein Profil abgearbeitet ist, sind die darin greifenden Ordner in Verbindung mit den eingestellten Filtern (Präfix / Suffix / Ausschlusskriterium) abgearbeitet. Mehrere Regeln sind einfach untereinander in ein und derselben Regeldatei aufzuführen (mit eindeutigen Regelnamen).
 

Yippie

Benutzer
Mitglied seit
01. Feb 2011
Beiträge
573
Punkte für Reaktionen
31
Punkte
54
Dank für eure Antworten!

Ich dachte mir auch, dass es so ist. Habe die Suchdateien der beiden Profile nochmals leicht angepasst, hauptsächlich was die Bedingungen für die Suchtexte angeht.

YAML:
CITES_1:
    tagname: Cites
    tagname_RegEx: "[[:digit:]]{6}-[[:digit:]]{2,}"
    targetfolder: Cites
    condition: all
    subrules:
    - searchstring: EUROPEAN UNION
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: false
    - searchstring: "[[:digit:]]{6}-[[:digit:]]{2,}"
      searchtyp: contains
      isRegEx: true
      source: content
      casesensitive: false

und

YAML:
LV_1:
    tagname: Lebensversicherung
    tagname_RegEx: ""
    targetfolder:
    condition: all
    subrules:
    - searchstring: Versicherungsnummer
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: "LV-1111-2222-3333"
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true

Die Profile in der GUI sind wie folgt dazu definiert:

1656226553755.png
und
1656226623801.png

Ich schiebe nun zwei Dateien gleichzeitig ins das Eingabe-Verzeichnis. "IMG_LV.pdf" und "IMG_CITES.pdf".

Nach der Erkennung hätte ich eine Datei mit Namen "2022-06-23 Lebensversicherung.pdf" im Verzeichnis "./Lebensversicherung" und eine zweite Datei im Verzeichnis "./Cites" mit dem Namen "Cites DE-DEG220420-80.pdf" erwartet.

Bekommen habe ich jedoch:
  1. Eine Datei mit dem Namen "Cites DE-DEG.pdf" im Verzeichnis "./Cites" welche jedoch den Inhalt der Quell-Datei "IMG_LV.pdf" hat. Dies ist lt. meinen gedachten Einstellung falsch!
  2. Eine Datei mit dem Namen "Cites DE-DEG220420-80.pdf" im Verzeichnis "./Cites" mit dem korrekten Inhalt der Quell-Datei "IMG_CITES.pdf". Dies ist korrekt!
  3. Es existiert somit keine Datei im Ziel-Verzeichnis "./Lebenversicherung" mit dem Inhalt der Quell-Datei "IMG_LV.pdf"!
Das entsprechende Log, welches im kompletten Scan-Lauf erzeugt wird:
Code:
    -----------------------------------
    |    ==> installation info <==    |
    -----------------------------------

synOCR-user:              synOCR
synOCR-user is admin:     yes
synOCR-version:           1.2.0
Architecture:             x86_64
DSM-build:                42661
Device:                   918plus (3974443861)
current Profil:           Cites Bescheinigungen
DB-version:               5
WARNING: Error loading config file: .dockercfg: $HOME is not defined
used image (created):     jbarlow83/ocrmypdf:latest (2022-06-24T08:19:52)
used ocr-parameter (raw): -srd -l deu --clean-final -O2
ocropt_array:             -srd -l deu --clean-final -O2
search prefix:         
replace search prefix:    yes
renaming syntax:          Cites DE-DEG§tag
Symbol for tag marking: 
Document split pattern: 
Date search method:       use standard search via RegEx
source for filedate:      ocr
ignored dates by search:
Docker test:              WARNING: Error loading config file: .dockercfg: $HOME is not defined
OK
DSM notify to user:       admin
Loglevel:                 normal
max. count of logfiles:   10
Source directory:         /volume1/Scanner/Eingabe/
Target directory:         /volume1/Scanner/Ausgabe/Cites/
Files are deleted immediately! / No valid directory [/]
rotate backupfiles after: (purge backup deactivated)



    ----------------------------------
    |    ==> Funktionsaufrufe <==    |
    ----------------------------------

PROCESSING:   ➜ IMG_LV.pdf (Sun Jun 26 09:03:59 CEST 2022)
                  temp. target file: /tmp/tmp.LXwGU9Z8Ws/IMG_LV.pdf

              ➜ OCRmyPDF-LOG:
                WARNING: Error loading config file: .dockercfg: $HOME is not defined
                reading file from standard input
                Start processing 4 pages concurrently
                    2 with existing rotation ⇩, page is facing ⇧, confidence 12.69 - no change
                    3 page is facing ⇧, confidence 13.63 - no change
                    4 with existing rotation ⇩, page is facing ⇧, confidence 11.08 - no change
                    1 page is facing ⇧, confidence 12.82 - no change
                Postprocessing...
                Optimize ratio: 1.23 savings: 18.6%
                Output sent to stdout
              ← OCRmyPDF-LOG-END

                target file (OK): /tmp/tmp.LXwGU9Z8Ws/IMG_LV.pdf

              ➜ search tags and date:
                source for tags is yaml based tag rule file [/volume1/Scanner/Eingabe/profiles/cites.txt]
                validate the integrity of yaml-file:

                search by tag rule: "CITES_1" ➜
                  ➜ condition:        all
                  ➜ tag:              Cites
                  ➜ destination:   
                  ➜ RegEx for tag:    [[:digit:]]{6}-[[:digit:]]{2,}
                          >>> Rule is not satisfied

                rename tag is: ""

                  Using date format: 1 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
                  Dates found: 4
                  check date (dd mm [yy]yy): 23.06.2022
                  ➜ valid
                      day:  23
                      month:06
                      year: 2022
              ➜ renaming:
                  apply renaming syntax ➜ Cites DE-DEG
              ➜ edit metadata FAILED! - exiftool not found! Please install it over cphub.net if you need it
                  target file: Cites DE-DEG.pdf
              ➜ Adapt file date (Source: OCR)
              ➜ delete source file
                  INFO: (PushBullet-TOKEN not set)

              Stats:
                  ➜ runtime last file:    00:00:54
                  ➜ pagecount last file:  4
                  ➜ file count profile :  (profile Cites Bescheinigungen) - 31 PDF's / 55 Pages processed up to now
                  ➜ file count total:     50 PDF's / 155 Pages processed up to now

              ➜ delete tmp-files …

PROCESSING:   ➜ IMG_CITES.pdf (Sun Jun 26 09:04:53 CEST 2022)
                  temp. target file: /tmp/tmp.Hs2ZxV37qy/IMG_CITES.pdf

              ➜ OCRmyPDF-LOG:
                WARNING: Error loading config file: .dockercfg: $HOME is not defined
                reading file from standard input
                    1 page is facing ⇧, confidence 6.56 - no change
                    1 [tesseract] lots of diacritics - possibly poor OCR
                Postprocessing...
                Optimize ratio: 1.03 savings: 2.9%
                Output sent to stdout
              ← OCRmyPDF-LOG-END

                target file (OK): /tmp/tmp.Hs2ZxV37qy/IMG_CITES.pdf

              ➜ search tags and date:
                source for tags is yaml based tag rule file [/volume1/Scanner/Eingabe/profiles/cites.txt]
                validate the integrity of yaml-file:

                search by tag rule: "CITES_1" ➜
                  ➜ condition:        all
                  ➜ tag:              Cites
                  ➜ destination:   
                  ➜ RegEx for tag:    [[:digit:]]{6}-[[:digit:]]{2,}
                          >>> Rule is satisfied

                              ➜ search RegEx for tag ➜ 220420-80

                rename tag is: "220420-80"

                  Using date format: 1 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
                  Dates found: 2
                  check date (dd mm [yy]yy): 01.08.2021
                  ➜ valid
                      day:  01
                      month:08
                      year: 2021
              ➜ renaming:
                  apply renaming syntax ➜ Cites DE-DEG220420-80
              ➜ edit metadata FAILED! - exiftool not found! Please install it over cphub.net if you need it
                  target file: Cites DE-DEG220420-80.pdf
              ➜ Adapt file date (Source: OCR)
              ➜ delete source file
                  INFO: (PushBullet-TOKEN not set)

              Stats:
                  ➜ runtime last file:    00:01:06
                  ➜ pagecount last file:  1
                  ➜ file count profile :  (profile Cites Bescheinigungen) - 32 PDF's / 56 Pages processed up to now
                  ➜ file count total:     51 PDF's / 156 Pages processed up to now

              ➜ delete tmp-files …
              ➜ purge logfiles:
              ➜ purge backup deactivated



    -----------------------------------
    |       ==> synOCR ENDE <==       |
    -----------------------------------

Offenbar wurde während des gesammten Erkennungsprozesses, die Tag-Datei "/volume1/Scanner/Eingabe/profiles/LV.txt" überhaupt nicht verwendet!

Meines Erachtens wird auch nur ein Profil des GUI verwendet:
current Profil: Cites Bescheinigungen

Was ist mit dem zweiten Profil "Lebensversicherung" und dessen Tag-Datei?

Was mache ich mit somit meinen Einstellungen falsch?
 
Zuletzt bearbeitet:


 

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