synOCR synOCR - GUI für OCRmyPDF

commanderi

Benutzer
Mitglied seit
25. Mrz 2011
Beiträge
205
Punkte für Reaktionen
4
Punkte
18
Danke, keine Ahnung wie der da weg gekommen ist.

Jetzt habe ich gerade eine Rechnung von einer E-Mail in den Input geschoben und die will er nicht, hier der LOG:

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

synOCR-user: root
synOCR-user is admin: yes
synOCR-version: 1.2.0
Architecture: x86_64
DSM-build: 23824
Device: 716plusII (4275539728)
current Profil: default
DB-version: 5
used image (created): jbarlow83/ocrmypdf:latest (2022-08-15T00:14:34)
used ocr-parameter (raw): -frd -l deu+eng
OCR-arg 1: -frd
OCR-arg 2: -l
OCR-arg 3: deu+eng
ocropt_array: -frd -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: now
ignored dates by search: 2021-02-29;2020-11-31
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
Docker test: OK
DSM notify to user: admin
Loglevel: debug
max. count of logfiles: 100000
Source directory: /volume1/DMS/_INPUT/
Target directory: /volume1/DMS/_OUTPUT/
Files are deleted immediately! / No valid directory [/]
rotate backupfiles after: (purge backup deactivated)



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

@eaDir$
Rechnung_2022_08_DE_180015429386.pdf$
(pages counted with pdfinfo)

PROCESSING: ➜ Rechnung_2022_08_DE_180015429386.pdf (Tue Sep 6 10:20:03 CEST 2022)
temp. target file: /tmp/tmp.3rJYR2fsII/Rechnung_2022_08_DE_180015429386.pdf

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


➜ OCRmyPDF-LOG:
DEBUG ocrmypdf - ocrmypdf 13.7.1.dev22+g23f38305.d20220815
DEBUG ocrmypdf.subprocess - Running: ['tesseract', '--version']
DEBUG ocrmypdf.subprocess - Found tesseract 4.1.1
DEBUG ocrmypdf.subprocess - Running: ['tesseract', '--version']
DEBUG ocrmypdf.subprocess - Running: ['tesseract', '--version']
DEBUG ocrmypdf.subprocess - Running: ['gs', '--version']
DEBUG ocrmypdf.subprocess - Found gs 9.55.0
DEBUG ocrmypdf.subprocess - Running: ['gs', '--version']
DEBUG ocrmypdf.subprocess - Running: ['tesseract', '--list-langs']
DEBUG ocrmypdf.subprocess.tesseract - stdout/stderr = List of available languages (7):
chi_sim
deu
eng
fra
osd
por
spa

INFO ocrmypdf._validation - reading file from standard input
DEBUG ocrmypdf.helpers - os.symlink(/tmp/ocrmypdf.io.cllpz4id/stdin, /tmp/ocrmypdf.io.cllpz4id/origin.pdf)
DEBUG ocrmypdf.builtin_plugins.tesseract_ocr - Using Tesseract OpenMP thread limit 2
INFO ocrmypdf._sync - Start processing 2 pages concurrently
INFO ocrmypdf._pipeline - 1 page already has text! - rasterizing text and running OCR anyway
INFO ocrmypdf._pipeline - 2 page already has text! - rasterizing text and running OCR anyway
DEBUG ocrmypdf.subprocess - 1 Running: ['gs', '-dQUIET', '-dSAFER', '-dBATCH', '-dNOPAUSE', '-dInterpolateControl=-1', '-sDEVICE=jpeggray', '-dFirstPage=1', '-dLastPage=1', '-r3178.807947x3178.807947', '-o', '-', '-sstdout=%stderr', '-dAutoRotatePages=/None', '-f', '/tmp/ocrmypdf.io.cllpz4id/origin.pdf']
DEBUG ocrmypdf.subprocess - 2 Running: ['gs', '-dQUIET', '-dSAFER', '-dBATCH', '-dNOPAUSE', '-dInterpolateControl=-1', '-sDEVICE=jpeggray', '-dFirstPage=2', '-dLastPage=2', '-r400.000000x400.000000', '-o', '-', '-sstdout=%stderr', '-dAutoRotatePages=/None', '-f', '/tmp/ocrmypdf.io.cllpz4id/origin.pdf']
DEBUG ocrmypdf._exec.ghostscript - 2 Rotating output by 0
DEBUG ocrmypdf.subprocess - 2 Running: ['tesseract', '-l', 'osd', '--psm', '0', '/tmp/ocrmypdf.io.cllpz4id/000002_rasterize_preview.jpg', 'stdout']
INFO ocrmypdf._pipeline - 2 page is facing ⇧, confidence 10.93 - no change
DEBUG ocrmypdf._pipeline - 2 Rasterize with png16m, rotation 0
DEBUG ocrmypdf.subprocess - 2 Running: ['gs', '-dQUIET', '-dSAFER', '-dBATCH', '-dNOPAUSE', '-dInterpolateControl=-1', '-sDEVICE=png16m', '-dFirstPage=2', '-dLastPage=2', '-r400.000000x400.000000', '-o', '-', '-sstdout=%stderr', '-dAutoRotatePages=/None', '-f', '/tmp/ocrmypdf.io.cllpz4id/origin.pdf']
DEBUG PIL.PngImagePlugin - 2 STREAM b'IHDR' 16 13
DEBUG PIL.PngImagePlugin - 2 STREAM b'iCCP' 41 2354
DEBUG PIL.PngImagePlugin - 2 iCCP profile name b'default_rgb.icc'
DEBUG PIL.PngImagePlugin - 2 Compression method 0
DEBUG PIL.PngImagePlugin - 2 STREAM b'pHYs' 2407 9
DEBUG PIL.PngImagePlugin - 2 STREAM b'tEXt' 2428 31
DEBUG PIL.PngImagePlugin - 2 STREAM b'IDAT' 2471 8192
DEBUG ocrmypdf._exec.ghostscript - 2 Rotating output by 0
DEBUG ocrmypdf.subprocess - 2 Running: ['tesseract', '-l', 'deu+eng', '--psm', '2', '/tmp/ocrmypdf.io.cllpz4id/000002_rasterize.png', 'stdout']
DEBUG PIL.PngImagePlugin - 2 STREAM b'IHDR' 16 13
DEBUG PIL.PngImagePlugin - 2 STREAM b'iCCP' 41 2350
DEBUG PIL.PngImagePlugin - 2 iCCP profile name b'ICC Profile'
DEBUG PIL.PngImagePlugin - 2 Compression method 0
DEBUG PIL.PngImagePlugin - 2 STREAM b'pHYs' 2403 9
DEBUG PIL.PngImagePlugin - 2 STREAM b'IDAT' 2424 65536
DEBUG PIL.PngImagePlugin - 2 STREAM b'IHDR' 16 13
DEBUG PIL.PngImagePlugin - 2 STREAM b'iCCP' 41 2350
DEBUG PIL.PngImagePlugin - 2 iCCP profile name b'ICC Profile'
DEBUG PIL.PngImagePlugin - 2 Compression method 0
DEBUG PIL.PngImagePlugin - 2 STREAM b'pHYs' 2403 9
DEBUG PIL.PngImagePlugin - 2 STREAM b'IDAT' 2424 65536
DEBUG ocrmypdf._pipeline - 2 resolution (399.9992, 399.9992)
DEBUG ocrmypdf._pipeline - 2 convert
DEBUG PIL.PngImagePlugin - 2 STREAM b'IHDR' 16 13
DEBUG PIL.PngImagePlugin - 2 STREAM b'iCCP' 41 2350
DEBUG PIL.PngImagePlugin - 2 iCCP profile name b'ICC Profile'
DEBUG PIL.PngImagePlugin - 2 Compression method 0
DEBUG PIL.PngImagePlugin - 2 STREAM b'pHYs' 2403 9
DEBUG PIL.PngImagePlugin - 2 STREAM b'IDAT' 2424 65536
DEBUG img2pdf - 2 PIL format = PNG
DEBUG img2pdf - 2 imgformat = PNG
DEBUG img2pdf - 2 input dpi = 400 x 400
DEBUG img2pdf - 2 rotation = 0°
DEBUG img2pdf - 2 input colorspace = RGB
DEBUG img2pdf - 2 width x height = 3307px x 4678px
DEBUG img2pdf - 2 read_images() embeds a PNG
DEBUG ocrmypdf._pipeline - 2 convert done
DEBUG ocrmypdf.subprocess - 2 Running: ['tesseract', '-l', 'deu+eng', '-c', 'textonly_pdf=1', '/tmp/ocrmypdf.io.cllpz4id/000002_ocr.png', '/tmp/ocrmypdf.io.cllpz4id/000002_ocr_tess', 'pdf', 'txt']
ERROR ocrmypdf._sync - A decompression bomb error was encountered while executing the pipeline. Use the argument --max-image-mpixels to raise the maximum image pixel limit.
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/ocrmypdf/_sync.py", line 393, in run_pipeline
optimize_messages = exec_concurrent(context, executor)
File "/usr/local/lib/python3.10/dist-packages/ocrmypdf/_sync.py", line 280, in exec_concurrent
executor(
File "/usr/local/lib/python3.10/dist-packages/ocrmypdf/_concurrent.py", line 87, in __call__
self._execute(
File "/usr/local/lib/python3.10/dist-packages/ocrmypdf/builtin_plugins/concurrency.py", line 141, in _execute
result = future.result()
File "/usr/lib/python3.10/concurrent/futures/_base.py", line 439, in result
return self.__get_result()
File "/usr/lib/python3.10/concurrent/futures/_base.py", line 391, in __get_result
raise self._exception
File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.10/dist-packages/ocrmypdf/_sync.py", line 191, in exec_page_sync
rasterize_preview_out = rasterize_preview(page_context.origin, page_context)
File "/usr/local/lib/python3.10/dist-packages/ocrmypdf/_pipeline.py", line 345, in rasterize_preview
page_context.plugin_manager.hook.rasterize_pdf_page(
File "/usr/local/lib/python3.10/dist-packages/pluggy/_hooks.py", line 265, in __call__
return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
File "/usr/local/lib/python3.10/dist-packages/pluggy/_manager.py", line 80, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/usr/local/lib/python3.10/dist-packages/pluggy/_callers.py", line 60, in _multicall
return outcome.get_result()
File "/usr/local/lib/python3.10/dist-packages/pluggy/_result.py", line 60, in get_result
raise ex[1].with_traceback(ex[2])
File "/usr/local/lib/python3.10/dist-packages/pluggy/_callers.py", line 39, in _multicall
res = hook_impl.function(*args)
File "/usr/local/lib/python3.10/dist-packages/ocrmypdf/builtin_plugins/ghostscript.py", line 67, in rasterize_pdf_page
ghostscript.rasterize_pdf(
File "/usr/local/lib/python3.10/dist-packages/ocrmypdf/_exec/ghostscript.py", line 121, in rasterize_pdf
with Image.open(BytesIO(p.stdout)) as im:
File "/usr/local/lib/python3.10/dist-packages/PIL/Image.py", line 3133, in open
im = _open_core(fp, filename, prefix, formats)
File "/usr/local/lib/python3.10/dist-packages/PIL/Image.py", line 3120, in _open_core
_decompression_bomb_check(im.size)
File "/usr/local/lib/python3.10/dist-packages/PIL/Image.py", line 3029, in _decompression_bomb_check
raise DecompressionBombError(
PIL.Image.DecompressionBombError: Image size (977066020 pixels) exceeds limit of 500000000 pixels, could be decompression bomb DOS attack.
← OCRmyPDF-LOG-END


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

┖➜ failed! (target file is empty or not available)
ERROR-Directory [/volume1/DMS/_INPUT/ERRORFILES] will be created!

Ist die irgendwie geschützt oder warum kann er die nicht verarbeiten?

Danke
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
ERROR ocrmypdf._sync - A decompression bomb error was encountered while executing the pipeline. Use the argument --max-image-mpixels to raise the maximum image pixel limit.
Keine Ahnung, welche Probleme hier OCRmyPDF hat. Vielleicht solltest du mal auf den Parameter -f (= force OCR) verzichten und stattdessen -s (= skip text) verwenden. Das ist nur ein Versuch. Eine Eigentümerverschlüsselung (wie man sie oft bei Kontoauszügen oder ähnlichem findet), macht auch Probleme, aber dafür sehe ich im Log keinen Anhalt.

-srd -l deu+eng

Du kannst natürlich auch mal der Empfehlung des Errors folgen und den Parameter --max-image-mpixels setzen und mit verschiedenen Werten probieren.

Beispiel:
-srd -l deu+eng --max-image-mpixels=270
 
Zuletzt bearbeitet:
  • Like
Reaktionen: commanderi

Avalox

Benutzer
Mitglied seit
24. Jun 2022
Beiträge
13
Punkte für Reaktionen
1
Punkte
3
Hi,
ich hätte hier einen ganz speziellen Anwendungsfall, lässt sich das mit synOCR abbilden?

Ich habe dazu ein eigenes Thema im Forum geöffnet.

Vielen Dank. Schon mal.
 

gunfran

Benutzer
Mitglied seit
25. Nov 2014
Beiträge
31
Punkte für Reaktionen
17
Punkte
58
Hallo @geimist
Ich habe vielleicht eine Schwäche in der Datumssuche mittels Python und Blacklist entdeckt.
Ich habe die Version 1.2.0.11 installiert.
Ich hatte ein Dokument in mein Eingangsverzeichnis gelegt und mich gewundert das zukünftig Immer die Meldung kam das die Aufgabe synocr nicht ausgeführt werden konnte.
Mir fiel auf das sich die Aufgabe scheinbar in einer Endlosschleife befand.

Die Einstellung in meinem Profil bzgl. Datumsreihenfolge stand auf "1. Datum im Dokument"
Nun war es dummerweise so das in meinem besagten Dokument das erste gefundene Datum auf der Blacklist stand. Dadurch schien sich die Datumssuche in einer Endlosschleife zu befinden.

Ein Auszug aus dem Log.
Code:
2022-09-09 15:47:12,274 - Date scanning started
2022-09-09 15:47:12,274 - Version: 0.93
2022-09-09 15:47:12,274 - Parameter minYear = 0
2022-09-09 15:47:12,274 - Parameter maxYear = 0
2022-09-09 15:47:12,274 - Parameter searchnearest = off
2022-09-09 15:47:12,275 - set searchnearest = off
2022-09-09 15:47:12,275 - Parameter fileWithTextFindings = /tmp/tmp.sBMXyIT4N3/synOCR.txt
2022-09-09 15:47:12,275 - Parameter dateBlackLIst = 2001-06-21;1979-10-25;1978-05-01;2018-06-29
2022-09-09 15:47:12,275 - start checking blacklist
2022-09-09 15:47:25,388 - end checking blacklist
2022-09-09 15:47:25,388 - start search alphanumeric dates
2022-09-09 15:47:32,076 - found 0 alphanumeric dates
2022-09-09 15:47:32,076 - no alphanumeric dates found
2022-09-09 15:47:32,076 - end search alphanumeric dates
2022-09-09 15:47:32,076 - start search numeric dates
2022-09-09 15:47:32,277 - found 17 numeric dates
2022-09-09 15:47:32,277 - end search numeric dates
2022-09-09 15:47:32,277 - found date 1978-05-01
2022-09-09 15:47:32,277 - Date scanning ended
                  Dates found: 1
                  check date ([yy]yy mm dd): 1978-05-01
                  Date 1978-05-01 is on ignore list. Skipping this date.
2022-09-09 15:47:34,222 - Date scanning started
2022-09-09 15:47:34,222 - Version: 0.93
2022-09-09 15:47:34,223 - Parameter minYear = 0
2022-09-09 15:47:34,223 - Parameter maxYear = 0
2022-09-09 15:47:34,223 - Parameter searchnearest = off
2022-09-09 15:47:34,223 - set searchnearest = off
2022-09-09 15:47:34,223 - Parameter fileWithTextFindings = /tmp/tmp.sBMXyIT4N3/synOCR.txt
2022-09-09 15:47:34,223 - Parameter dateBlackLIst = 2001-06-21;1979-10-25;1978-05-01;2018-06-29
2022-09-09 15:47:34,224 - start checking blacklist
2022-09-09 15:47:47,305 - end checking blacklist
2022-09-09 15:47:47,306 - start search alphanumeric dates
2022-09-09 15:47:54,049 - found 0 alphanumeric dates
2022-09-09 15:47:54,049 - no alphanumeric dates found
2022-09-09 15:47:54,049 - end search alphanumeric dates
2022-09-09 15:47:54,049 - start search numeric dates
2022-09-09 15:47:54,255 - found 17 numeric dates
2022-09-09 15:47:54,255 - end search numeric dates
2022-09-09 15:47:54,256 - found date 1978-05-01
2022-09-09 15:47:54,256 - Date scanning ended

Ich hab das Problem für mich zunächst gelöst indem ich auch "jüngstes Datum in Vergangenheit" eingestellt habe, obwohl dadurch meiner Ansicht nach trotzdem nicht das richtige Datum ermittelt hat.

Es wurde dann der 16.08.2022 gefunden obwohl direkt danach noch der 08.09.2022 zu finden war.

Leider kann ich dir die PDF Datei nicht zum probieren geben da es ein medizinisches Dokument ist aber ich hoffe das ich hier das einigermaßen aufzeigen konnte.

Sollten noch fragen sein, einfach raushauen.

LG

Michael
 
  • Like
Reaktionen: Gthorsten

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
Danke für den Hinweis. Ich gucke mir das direkt mal an. Gruß Thorsten
 
  • Like
Reaktionen: geimist

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
Nochmal eine Nachfrage. Im ersten Teil des logs sind 17 Datumswerte gefunden worden.
Auf der blacklist steht der 01.05.1978.
Scheinbar ignoriert mein Skript das, denn der Wert wird ja an Stephan zurück gegeben.
Und bei diesem ersten Versuch lief es in einer endlosschleife?

Auch im 2. Teil des logs sehe ich keine Änderung.

Der Parameter fürs Suchen in der Vergangenheit steht auch immer noch auf off.

Ich muss das heute abend mal bei mir im. Debugging ausprobieren.
Im dem Ordner wo die logs liegen, liegt auch ein textfile in dem der umgewandelte Text steht.
Das könntest du bearbeiten und das was du nicht weitergeben möchtest löschen.
Dann könnte ich aber die Datumswerte sehen.
Aber ich gucke erstmal so
 
Zuletzt bearbeitet von einem Moderator:

geimist

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

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
Leider kann ich dir die PDF Datei nicht zum probieren geben da es ein medizinisches Dokument ist aber ich hoffe das ich hier das einigermaßen aufzeigen konnte.
Als Alternative zu dem Textfile: Du kannst es auch mal ausdrucken und die vertraulichen / personenbezogenen Stellen mit einem Edding schwärzen, einscannen und auf meinen Server laden. Es wird sonst wahrscheinlich schwierig, den Fehler zu finden. Schwärzen kann man auch digital u.a. mit Adobe Acrobat oder der macOS Vorschau.

Auf jeden Fall bräuchten etwas Content um dem Fehler auf die Schliche zu kommen.
 

gunfran

Benutzer
Mitglied seit
25. Nov 2014
Beiträge
31
Punkte für Reaktionen
17
Punkte
58
Ich werde zusehen das ich da morgen dran denke.

Zur Info: Das mit den 17 Datumsfunden kann ich mir gut vorstellen.

Es handelt sich um ein Laborergebniss,

Dort stand recht früh mein Geburtstag, dann darunter drei Datumangaben: Abnahmedatum, Eingangsdatum und Befunddatum.

Darunter dann in einer Liste jede Menge Ergebnisse. Und in jeder Liste ein Datum vom vorherigen Wert. Die waren alle das gleiche Datum. Daher kommen sicher die ganzen Datumsfunde zusammen.
 
  • Like
Reaktionen: geimist und Gthorsten

lil-ac

Benutzer
Mitglied seit
14. Feb 2013
Beiträge
39
Punkte für Reaktionen
0
Punkte
6
Guten Morgen, besteht die Möglichkeit vordefiniert QR oder Barcodes mit einzubinden? Ich würde gerne, Qr oder Barcodes erstellen, die dann mit auf das zu scannen Blatt gelegt werden und SynORC entschlüsselt diese? Aktuell nutz ich eine Art Scan Deckblatt.
 

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
Was soll dann mit den entschlüsseln Inhalten passieren?
 

lil-ac

Benutzer
Mitglied seit
14. Feb 2013
Beiträge
39
Punkte für Reaktionen
0
Punkte
6
Zb. Qr hat die Infos: AOK schreiben Max Mustermann. Ich habe nämlich das Problem das einige Dokumente nicht richtig verarbeitet werden.
 

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
Nun ja, aber du willst die Inhalte dann ja auch durchsuchen können. Also muss ja der Inhalt des qr Codes irgendwie zum PDF hinzugefügt werden. Das ist doch das was du. Möchtest oder?
 

lil-ac

Benutzer
Mitglied seit
14. Feb 2013
Beiträge
39
Punkte für Reaktionen
0
Punkte
6
Jaein. Ich habe einen Dymo Labeldrucker und noch genügend Wiederverwendbare bzw. abziehbare Labels. Dort würde ich dementsprechend einen Code erstellen. Wie schon gesagt: Post - AOK - Max Mustermann. Dieses dann auf das Schreiben kleben, einscannen und verarbeiten lassen. So habe ich mir das Vorgestellt. Die Datenbank mit den "entschlüsselten" Codes würde ich ja anlegen.
 

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
Also der Ablauf ist ja so.
Dokument scannen
PDF to Text Konvertierung
Rules Verarbeitung
Kopieren des Dokumentes in die entsprechenden Ordner

Wenn man jetzt nach dem Dokument scannen qr code lesen einbauen würde, wie möchtest du dann in deine Datenbank den Inhalt des qr Codes bekommen?
 


 

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