Parametri Tesseract / gImageReader

Discussioni relative a Debian e Linux
Rispondi
stephanie
Jr. Member
Jr. Member
Messaggi: 63
Iscritto il: 05/08/2017, 12:44
Contatta:

Parametri Tesseract / gImageReader

Messaggio da stephanie »

Buongiorno a tutti,
occorrendomi un OCR ho provato Tesseract che trovo molto interessante (e anche enormemente migliorato rispetto ad alcuni addietro quando l'avevo provato la prima volta).
Tuttavia non riesco ad impostare i parametri nel modo migliore per potere poi elaborare il testo.
Preciso che si tratta di fatture, quindi layout un po' complicato.
Tuttavia se provo con gImageReader, che si appoggia sempre a TesserAct, il risultato è perfetto nell'estrazione del testo.
Sempre con gImageReader, se invece genero il PDF ricercabile, il risultato è molto inferiore rispetto alla conversione in formato testo.
Dopo avere convertito il PDF in PNG:

Codice: Seleziona tutto

pdftoppm -png Pdf2.pdf > Pdf2_Poppler.png
ho usato TesserAct:

Codice: Seleziona tutto

tesseract Page2_Poppler.png - -l eng+deu > Page2_Poppler.txt
ed anche con parametro PSM (il 4 tra tutti sembra essere quello che va meglio):

Codice: Seleziona tutto

tesseract Page2_Poppler.png - -l eng+deu --psm 4 > Page2_Poppler_EngDeu_PSM4.txt
ma il risultato non è comunque al livello di quello che ottengo con gImageReader che usa sempre TesserAct.
Qualcuno ha un suggerimento per ottenere lo stesso risultato che ottengo con gImageReader?
Vorrei lanciare TesserAct da un software esterno che qualora incontri un PDF grafico lo elabori con OCR, in alternativa al PdfToText per PDF normali (non grafici).
Ho anche provato ad utilizzare OCRMyPDF, per estrarre poi il testo con PdfToText, ma mi sembra peggiorativo rispetto ad utilizzare direttamente TesserAct:

Codice: Seleziona tutto

ocrmypdf -l eng+deu --tesseract-pagesegmode 4 Page2.pdf Page2_OCRMYPDF_PSM4.pdf
Grazie mille per qualsiasi aiuto.
Buona giornata a tutti,
Stéphanie
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1329
Iscritto il: 03/09/2018, 7:53

Re: Parametri Tesseract / gImageReader

Messaggio da azioga »

stephanie
Jr. Member
Jr. Member
Messaggi: 63
Iscritto il: 05/08/2017, 12:44
Contatta:

Re: Parametri Tesseract / gImageReader

Messaggio da stephanie »

Grazie per il link, è molto interessante perché riguarda esattamente questo problema.

Purtroppo non contiene una soluzione per utilizzare direttamente Tesseract da command line per ottenere gli stessi risultati che si ottengono con gImageReader.

Dovrei quindi valutare qualche componente aggiuntivo che permetta di interagire direttamente con le librerie di Tesseract, come fa gImageReader, che nel mio caso (Pascal) potrebbe forse essere TTesseract:

https://github.com/r1me/TTesseractOCR4

cercando di gestirlo sulla falsariga del codice C++ del link che mi hai fornito:

Codice: Seleziona tutto

tesseract::TessBaseAPI tess;
tess.Init(nullptr, language /* i.e. eng */);
tess.SetPageSegMode(mode /* tesseract::PageSegMode */)
tess.SetImage(rgba_data, width, height, 4 /* bytesPerPixel */, stride /*bytesPerRow*/);
tess.SetSourceResolution(srcDpi); /* actually only to ensure that the detected HOCR font sizes are physically correct */
tess.Recognize();
Penso che potrebbe essere una soluzione, anche se abbastanza più complessa rispetto ad impostare i parametri direttamente in Tesseract da riga di comando, che era la soluzione che cercavo. Essendo infatti per me è una casistica residuale da gestire (il 99% dei PDF sono con testo estraibile e quindi posso usare le Poppler-Utils con PdfToText) cercavo una soluzione rapida se c'era, ma temo non sia possibile.

Nel frattempo ho riscontrato differenze anche nel formato di conversione del PDF ad immagine, rispetto al PNG il TIFF ottenuto con GhostScript si dimostra migliore:

Codice: Seleziona tutto

gs -q -dNOPAUSE -sDEVICE=tiffg4 -sOutputFile=Page2.tiff Page2.pdf -c quit
tesseract Page2.tiff - -l eng+deu > Page2_GS_TIFF.txt
tesseract Page2.tiff - -l eng+deu --psm 4 > Page2_GS_EngDeu_PSM4_TIFF.txt
Utilizzando Tesseract da riga di comando mi trovo però sempre all'inizio dell'output alcuni caratteri strani ("Kor a Monfkindf") seguiti da righe vuote, prima del corpo della fattura, cosa che con gImageReader non succede. Nel documento non c'è nulla di questo genere e tra l'altro il PDF grafico di origine comunque è stato creato via software da qualche assurdo sistema gestionale che genera incomprensibilmente PDF grafici, ma non sembra da scannerizzazione.

Intanto comunque davvero grazie per l'utilissimo link.

Buona domenica a tutti,

Stéphanie
Avatar utente
azioga
Hero Member
Hero Member
Messaggi: 1329
Iscritto il: 03/09/2018, 7:53

Re: Parametri Tesseract / gImageReader

Messaggio da azioga »

valuta anche la possibilità di farti uno script in python
https://packages.debian.org/bookworm/python3-tesserocr

e dai un'occhiata ai possibili parametri che puoi passare con l'opzione -c
$ tesseract --print-parameters
che sono una infinità ;)

guarda anche pytesseract
https://nanonets.com/blog/ocr-with-tesseract/
Rispondi