Scansione

Da EigenWiki.

In questa pagina sono raccolte informazioni, procedure e software utili a eseguire il passaggio da libro cartaceo a una sua copia digitale. Questa operazione permette da un lato di arricchire la biblioteca digitale e dall'altro di creare copie cartacee da un libro originale; il processo come descritto prevede che dopo la scansione il documento sia elaborato per renderlo più facilmente fruibile da chi lo userà dopo di te. Le operazioni di post-produzione sono utili soprattuto quando si voglia ristampare e rilegare il libro o digitalizzarlo tramite un OCR, ma non sono indispensabili.

Scansione

Fai un po' di prove di scansioni singole di pagine che rappresentino bene in termini di distribuzione del colore, testo e distribuzione del contenuto quello che andrai a scansionare: se la stampante te lo permette, valuta se è opportuno regolare contrasti e luminosità per ottenere una scansione più nitida. Imposta una buona risoluzione: deve essere sufficientemente alta da rendere nitido e definito il risultato finale, ma non troppo da appesantire eccessivamente ogni fase del lavoro; normalmente 400 ppi sono un buon compromesso. Imposta infine il formato di scansione: è consigliabile scegliere un formato ben definito anziché la modalità di autorilevamento del formato, in modo da ottenere immagini tutte uguali. Cerca infine di posizionare il documento in modo da farne coincidere il più possibile l'angolo con quello dello scanner.

Per la scansione, se lo scanner ne è provvisto, è consigliabile la modalità PDF multipagina. Normalmente la memoria interna di uno scanner è molto limitata, quindi il lavoro potrà dover essere spezzato su più PDF distinti. In questo caso sarà sufficiente rinominarli con un nome progressivo (e.g. SCAN01.pdf, SCAN02.pdf etc.) e poi riassemblarli in un unico documento:

$ pdftk SCAN*.pdf cat output SCAN_ASS.pdf

A questo punto avrai finalmente un file PDF unico contenente tutte le scansioni ordinate.

Post-produzione

La post produzione può essere eseguita con diversi programmi free. Alcuni di questi permettono di svolgere solo alcune semplici operazioni molto rapidamente altri invece, più pesanti sia in termini di risorse che di tempo, assistono l'intera post produzione del documento. Le operazioni principali da svolgere in questa fase sono: riorientare correttamente le pagine, dividere le scansioni qualora siano state fatte a due pagine per foglio, selezionare l'area della scansione che dovrà finire nel pdf, inserire i margini e comprimere il pdf a dimensioni che lo rendano usabile. Di seguito una collezione di toolchain che possono essere utili per queste operazioni.

Scantailor

Sicuramente il software più completo, ha moltissime opzioni e può fare praticamente tutte le operazioni elencate sopra. Scantailor è pacchettizzato sia su arch che su debian e può essere quindi installato tramite il gestore di pacchetti. E' molto intuitivo e ha una wiki in cui è spiegato il workflow. Per lavorare con scantailor dopo aver scannerizzato un documento sulla Develop Ineo250 è necessario dividere il pdf in una serie di immagini .png. Questo può essere fatto così: si copia il pdf multipagina in una nuova cartella e quindi lo si divide in tanti pdf contenenti una singola pagina:

$ pdftk multipage_document.pdf burst

questo genera tanti file quanti sono le pagine nominati come pg_001.pdf, pg_002.pdf, ecc. Questi possono essere convertiti in png usando:

$ for i in *.pdf; convert -density 300 $i "${i%.pdf}.png";

Così si ottengono le immagini da dare in pasto a scantailor. L'output di scantailor sono una serie di immagini tiff che possono essere compattate in un unico .pdf generando prima una .tiff multipagina:

$ tiffcp out_di_scantailor/*.tiff multipage.tiff

e poi convertendola in un pdf:

$ tiff2pdf megatiff.tiff megapdf.pdf

Briss

Briss è un programma in Java che prende in input un pdf, e permette di selezionare da ciasucna pagina una o più aree che corrisponderanno alle pagine del pdf in output. E' un programma molto semplice e intuitivo che è comodo quando si devono fare solo modifiche veloci su un documento già allineato ecc. Per lanciarlo è sufficiente usare da linea di comando:

$ java -jar briss.jar

dalla cartella dove si è scompattato il software.

OCR

Il passo finale della digitalizzazione è il processo di riconoscimento dei caratteri. Migliore è la qualità della scansione e migliore è stato il loro post-processing e migliore è l'accuratezza che ci si può aspettare da un'operazione OCR.

Tesseract OCR

È il software più completo, può fare OCR in molte lingue diverse e sono disponibili molti pacchetti di trained data per varie lingue.

OCRopus

È un progetto open inizialmente basato su Tesseract e ora dotato di un proprio motore OCR; è in forte crescita.

Pypdfocr

È uno script in Python che combina l'azione di GhostScript, ImageMagick, Poppler e Tesseract OCR. Prende in input un PDF e scrive in output un PDF identico ma con un layer OCR. L'utilizzo è estremamente semplice e nella maggior parte dei casi basta specificare la lingua e dare:

$ pypdfocr -l eng mybeautifulbook.pdf

Per rendere più veloce l'operazione, nel caso in cui il documento abbia già subito un processo di post-produzione come quello indicato nella sezione precedente, allora si può dare:

$ pypdfocr -l eng --skip-preprocess mybeautifulbook.pdf

Il processo è estremamente pesante dal punto di vista computazionale: nel caso in cui si stia lavorando con un PC portatile, potrebbe essere necessaria l'alimentazione da rete elettrica. Potrebbe essere inoltre utile monitorare periodicamente la temperatura della CPU e posizionare la macchina in modo che il sistema di raffreddamento massimizzi il flusso d'aria.

Condivisione