Glossario

L’idea di inserire un glossario nasce dall’esistenza di una terminologia molto specifica, spesso sconosciuta a chi non ha maturato direttamente esperienze in ambito lettura ottica. L’obiettivo è agevolare la comprensione dei concetti afferenti la cattura dei dati e l’elaborazione di immagini fornendone una spiegazione sintetica e semplice, al fine di valutare e scegliere consapevolmente la soluzione più adatta alle proprie esigenze.

ANPR

L’acronimo ANPR (Automatic Number Plate Recognition) indica la tecnologia utilizzate per la lettura delle targhe di veicoli. Si tratta di una derivazione dei motori OCR, in cui il sottosistema di riconoscimento è addestrato in modo specifico per consentire di ottenere la maggiore affidabilità possibile anche in condizioni non ottimali (caratteri parzialmente occlusi, elementi di disturbo, messa a fuoco imprecisa).

La tecnologia ANPR è utilizzata sia direttamente a bordo di telecamere specifiche, in grado di acquisire immagini ad alta risoluzione anche attraverso l’uso di illuminatori a infrarossi, sia in applicazioni mobile (ad esempio sui tablet usati dalla Polizia Municipale, che consentono di scattare una foto del veicolo ricavando immediatamente il numero di targa e i dati relativi alla validità dell’assicurazione, alla presenza o meno in elenchi di veicoli rubati, etc.), sia in applicazioni server (Telepass, Tutor, Vergilius, etc.).


La lettura delle targhe via OCR è oggi ampiamente diffusa per automatizzare le attività di controllo effettuate dalla Polizia Municipale, integrata direttamente a bordo dei dispositivi mobili.

AUTO-ORIENTATION

Non è detto che tutti i documenti da sottoporre a lettura ottica siano orientati in modo corretto. Spesso capita che all’interno di un documento con orientamento “portrait” (verticale), le pagine contenenti grafici, tabelle, report ed elaborati simili siano stampate in modalità “landscape” (orizzontale), ossia – con riferimento a un foglio A4 – aventi il lato lungo quale base del foglio.

Ne deriva che effettuandone la scansione ci si troverà con alcune pagine correttamente ruotate per la lettura, e con altre no; inoltre, durante la fase di scansione, potrebbero aver luogo degli errori di inserimento che produrranno inevitabilmente immagini sotto-sopra.

Per evitare che, durante la successiva consultazione dei documenti, l’operatore debba ripetutamente usare funzioni di rotazione per poter leggere correttamente a schermo il documento, o semplicemente per raddrizzarlo manualmente, esistono apposite tecnologie di auto-orientamento (auto-orientation o auto-orient) che consentono di effettuare automaticamente tale operazione senza intervento umano.

Un’analisi del contenuto della pagina consente di individuare il corretto orientamento di lettura e di decidere autonomamente se il documento è dritto o se ruotare automaticamente le immagini di 90, 270 o 180 gradi. Tale tecnologia può basarsi sia su una analisi degli elementi grafici che compongono la pagina, quindi sul layout globale, sia sull’interpretazione dei caratteri vera e propria attraverso l’OCR.

Nel primo caso vengono applicate delle euristiche, delle regole implementate sulla scorta di una pregressa analisi di documenti eterogenei, oppure, quando possibile, viene fatto un confronto con un layout atteso dei moduli. Nel secondo caso invece l’approccio è quello di tentare di leggere il documento, o una porzione di esso, nei quattro orientamenti possibili, utilizzando poi i dati relativi alla confidenza di lettura per individuare qual è l’orientamento in cui si riesce a leggere più testo.

Ciascuno dei due approcci può essere più o meno rapido ed efficace: la scelta va fatta di volta in volta, in funzione delle esigenze specifiche e della natura dei documenti da processare. Naturalmente è fondamentale che il software di lettura ottica utilizzato abbia la possibilità di configurare e scegliere la modalità di orientamento più adatta.

BCR-1D

L’acronimo BCR indica la tecnologia di BarCode Recognition, anche se è stato inizialmente coniato per indicare Business Card Recognition, ossia la tecnologia di lettura ottica specifica per i biglietti da visita.

Un codice a barre lineare consiste in una sequenza di elementi bianchi e neri (barre) che codificano dei dati in base alla loro dimensione e alla loro posizione. I dati codificabili sono numeri, caratteri alfabetici, caratteri speciali e ogni altra informazione. Nati per essere letti da macchine, i codici a barre rappresentano con ogni probabilità il metodo più accurato per catturare dati da immagini.

Un codice a barre lineare.


Esistono diverse tipologie di codici a barre lineari che si differenziano per quantità di caratteri codificabili, numero di barre necessarie a codificare un singolo carattere, misure ammesse per le barre e presenza di codici di controllo. Tra le più diffuse ci sono il Code39, il Code128, il 2of5, l’ EAN8/13c.

La ricerca e la decodifica di un codice a barre all’interno di una pagina può essere effettuata in una zona specifica o all’interno dell’intera immagine: più piccola è l’area di ricerca, maggiore è la velocità di riconoscimento e minore la possibilità di errore.

Durante l’operazione di riconoscimento sono ricercati tutti i possibili codici a barre nella zona indicata: se viene trovato un potenziale codice a barre, questo viene esaminato per determinare se soddisfa i requisiti richiesti. Viene verificato il tipo di codice a barre del candidato, le sue dimensioni, il numero di caratteri codificati, l’eventuale codice di controllo (checksum) e tutti questi dati sono confrontati con le impostazioni predefinite al fine di decidere se decodificarlo o scartarlo.

Poiché i codici a barre sono nati per la lettura automatica, la loro decodifica solitamente non presenta particolari problematicità a patto che non risultino danneggiati, che siano stati stampati rispettando le loro specifiche tecniche, che abbiano una adeguata quiet zone (zona vuota) ai margini e che la risoluzione di acquisizione sia sufficiente a consentire la corretta discriminazione delle barre.

Qualora si abbia la necessità di prestampare un codice o un dato su un documento, la scelta di utilizzare un codice a barre è spesso la più adatta (ma attenzione a non dimenticare la stampa “in chiaro” del codice a barre, così da consentirne una lettura “d’emergenza”).

BCR-2D

In un codice a barre bidimensionale le informazioni sono codificate su due dimensioni, come se fossero una sorta di tanti codici lineari di altezza ridotta posti uno sull’altro. Il grande vantaggio è ovviamente la maggiore quantità di dati codificabili nel medesimo spazio (densità), rispetto ad un codice lineare, ma lo svantaggio è rappresentato dalla maggior difficoltà di decodifica.

Al fine di evitare che un danneggiamento di una piccola parte di codice lo renda completamente illeggibile, sono stati introdotti sistemi di correzione degli errori basati su sofisticati procedimenti matematici: maggiore è il livello di “tolleranza” – e quindi la capacità di sopportare eventuali danneggiamenti – maggiore sarà la superficie richiesta per la stampa del codice.

I codici a barre bidimensionali più diffusi sono il QR code, il PDF417 e il DataMatrix.


Un esempio di codice a barre bidimensionale (PDF417)

BLACK BORDER REMOVAL

Alcune tipologie di scanner ad elevata produttività utilizzano uno sfondo nero invece che bianco per due motivi fondamentali: evitare problemi di trasparenza acquisendo fogli molto sottili, e consentire l’acquisizione contemporanea di fogli di dimensioni diverse. L’immagine del documento acquisito può quindi presentare spessi bordi costituiti da fasce annerite. L’operazione di identificazione ed eliminazione di questi bordi è chiamata black border removal e può essere eseguita automaticamente da una procedura software che, dopo aver analizzato l’immagine, può tagliare via la parte nera aggiuntiva sui quattro lati del foglio o può semplicemente sbiancarla, in base alle impostazioni prescelte. L’intervento dell’operatore non è necessario, i tempi di elaborazione sono pressoché istantanei ed è possibile agire sia su immagini in bianco e nero, che su immagini in scala di grigi o a colori.


Black Border Removal e Thresholding Dinamico applicati ad una pagina di libro acquisita con scanner planetario: sulla sinistra l’immagine originale, sulla destra quella processata.

BOOK CURVATURE CORRECTION

Quando si digitalizzano dei libri utilizzando degli scanner a planetario o delle fotocamere digitali, cioè ci si trova in situazioni in cui le pagine non sono schiacciate su una lastra di vetro ed il sensore ottico si trova ad una cospicua distanza dalla pagina, si può notare sulle immagini digitalizzate un effetto onda.

In sostanza il margine superiore ed inferiore di ciascuna pagina, invece che essere orizzontale o quantomeno lineare, risulta simile ad un’onda, costituito cioè da una specie di curva sinusoidale. L’effetto è causato dalla distorsione prospettica introdotta dalla scansione, accentuata maggiormente dalla distanza non costante dovuta alla rilegatura rigida o allo spessore del libro.

Per ovviare a questo difetto delle immagini sono stati sviluppati algoritmi di Book Curvature Correction che, analizzando l’immagine acquisita, riescono ad identificare e correggere la curva del libro automaticamente, ottenendo così delle pagine digitalizzate con lati perfettamente paralleli.

Il rilevamento della curva inoltre consente, quando si acquisiscono contemporaneamente le due pagine affiancate del libro, di trovare con precisione il punto di taglio verticale, così da permetterne anche la suddivisione automatica.

La correzione della curvatura è un passaggio di fondamentale importanza nel processo di scansione libri.

Il software rileva automaticamente la curvatura e la corregge, producendo l’immagine di una pagina perfettamente piatta.

 Successivamente si procede, in automatico, alla rilevazione e successiva rimozione del dito e alla binarizzazione dinamica della pagina, così da ottenere un’immagine in bianco/nero leggera e al tempo stesso perfettamente leggibile ed elaborabile da un motore OCR.

CHR

Il riconoscimento ottico di testo manoscritto in corsivo è un problema tutt’ora aperto, ed è uno dei campi di ricerca più attivi e attuali.

All’interno del riconoscimento della scrittura manoscritta in corsivo bisogna è importante fare una distinzione tra riconoscimento on-line e riconoscimento off-line.

Quando si parla di riconoscimento della scrittura on-line si fa riferimento alla tecnologia che serve a riconoscere parole scritte su dispositivi in grado di produrre informazioni spazio temporali relative ai movimenti della penna effettuati dallo scrivente: in pratica il riconoscimento avviene su dati vettoriali, costituiti dalle coordinate dei tratti d’inchiostro e dai pen up/pen down campionati in tempo reale durante la scrittura. Si tratta quindi dell’analisi di una rappresentazione dinamica della scrittura.

Parlando invece di riconoscimento della scrittura off-line si fa riferimento alla tecnologia che serve a riconoscere parole scritte su supporti cartacei in cui è presente la sola rappresentazione come immagine del testo da riconoscere: il riconoscimento avviene su dati raster, costituiti dai soli pixel accesi/spenti ottenuti dalla digitalizzazione del supporto cartaceo mediante scanner. Si tratta quindi dell’analisi di una rappresentazione statica della scrittura.

Tramite un PDA o un tablet PC si può facilmente sperimentare l’input di testi utilizzando il riconoscimento della scrittura corsiva on-line talvolta in esso integrato; tale tecnologia è, infatti, largamente impiegata in dispositivi che richiedono l’input mediante l’utilizzo di una penna ed una tavoletta grafica o un touch screen.

Al contrario è molto raro trovare pacchetti software in grado di effettuare il riconoscimento della scrittura off-line su immagini e documenti acquisiti da scanner: ciò è dovuto all’intrinseca difficoltà nel riconoscimento off-line di operare su una quantità di informazioni nettamente inferiore e molto più rumorose rispetto a quelle su cui lavora il riconoscimento on line.

La tecnologia di prima generazione, unica disponibile sino ad ora, ha un requisito fondamentale che in molti casi non è un problema ma che in alcune circostanze può rappresentare un grosso limite: per ogni tipo di dato da leggere è richiesto l’utilizzo di un dizionario che contenga tutte le possibili parole che possono essere riconosciute. Vale a dire che, ad esempio per riconoscere un “nome” ed un “cognome”, è necessario avere a disposizione un dizionario di nomi ed un dizionario di cognomi che contengano tutti i possibili valori riconoscibili.

Pertanto se si sottoponesse al sistema un’immagine contenente una parola non contenuta nel dizionario, si riceverebbe come risultato la parola più simile tra quelle contenute nel dizionario, senza che il sistema possa tentare di produrre in output la parola sconosciuta.

Oltre alla difficoltà di doversi procurare i dizionari da utilizzare e di non poter leggere parole extra dizionario, neppure se scritte in modo ideale, un ulteriore problema è dato dall’elevato tasso di errore riscontrabile in applicazioni reali all’aumentare delle dimensioni del dizionario, tale da consentirne l’uso solo in ambiti circoscritti.

Partendo da queste considerazioni, Recogniform Technologies ha avviato un progetto di ricerca sul riconoscimento ottico della scrittura manoscritta corsiva, con l’obiettivo di realizzare una tecnologia utilizzabile anche senza l’ausilio di vocabolari e con tassi di riconoscimento sufficientemente elevati da poter essere utilizzata con profitto in ogni ambito applicativo.

Alla base di questo innovativo progetto di ricerca c’è la semplice idea di poter riconoscere le parole identificandone delle sotto sequenze mediante il confronto di tratti di inchiostro contenuti in un reference set. Un semplice esempio è quello di un reference set contenente le sole parole “problema” e “valore”, da cui poter riconoscere le parole “prova”, “malore”, “prore”, “mare”, “arma”, “roma” e così via.


Tuttavia la variabilità nella forma del manoscritto corsivo prodotto da una popolazione di scriventi si traduce nella possibilità che scriventi appartenenti allo stesso gruppo possano usare N grafemi diversi per rappresentare lo stesso N-gramma: in altre parole, la variabilità del modo di scrivere è tale che la stessa cosa può essere scritta in modi anche molto diversi tra loro, secondo lo stile di scrittura di ciascuno.

Con riferimento all’esempio di cui sopra, se scrivessimo le due sillabe della parola “prova” in maniera completamente diversa rispetto alle stesse presenti in “problema” e “valore”, potremmo non essere in grado di riconoscere correttamente il testo.

Da ciò deriva la necessità di associare ad ogni grafema il/i possibili N-gramma/i di riferimento, secondo complessi algoritmi di probabilità congiunte in grado di portare all’interpretazione corretta della parola.

La tecnologia di riconoscimento per il manoscritto corsivo off-line sviluppata da Recogniform Technologies è stata battezzata CHR (acronimo di Cursive Handwritten Recognition) e ha richiesto la collaborazione di prestigiosi laboratori universitari italiani, ingenti investimenti e diversi anni di ricerca e sperimentazione.

L’architettura è costituita da diversi sottosistemi specializzati che, a partire dall’immagine della parola da riconoscere, riescono a produrre la sua rappresentazione in termini di caratteri. Per comprenderne il funzionamento possiamo brevemente descrivere le diverse fasi svolte in sequenza dai diversi sottosistemi che agiscono in cascata: pre-processing, sbrogliatura, segmentazione, descrizione, matching e classificazione.


Pre-processing
La prima fase si occupa del pre-processing dell’immagine, cioè della pulizia e della normalizzazione del tratto di inchiostro. Ciascuna parola viene raddrizzata, viene pulita da punti spuri e sporco, ne viene corretta l’inclinazione del tratto, viene normalizzato il rapporto tra core, ascenders e descenders.

Sbrogliatura
Successivamente ci si fa carico della sbrogliatura: in pratica si tenta di ricostruire la sequenza dinamica dei tratti d’inchiostro così come sono stati presumibilmente tracciati dallo scrivente. Questa è l’operazione più delicata: il maggiore o minore successo di questa fase, determinato dalla qualità dell’immagine e dallo stile di scrittura utilizzato, decreta la bontà dell’interpretazione finale. A valle di tale processo la parola risulta suddivisa in sequenze di tratti, ognuno dei quali corrisponde alla traccia d’inchiostro prodotta dallo scrivente tra l’istante di tempo in cui viene poggiata la penna sul foglio e l’istante di tempo in cui la penna viene sollevata interrompendo momentaneamente la sequenza di scrittura.

Segmentazione
La successiva fase di segmentazione genera dei tratti atomici che corrispondono agli atti motori elementari eseguiti dallo scrivente. Infatti, in accordo agli studi sulla generazione della scrittura corsiva i movimenti complessi necessari per produrre la scrittura corsiva possono essere visti come una composizione di movimenti elementari che corrispondono a forme elementari, chiamate stroke. Tali stroke sono tracciate una di seguito all’altra e la scrittura risulta fluente a causa della sovrapposizione temporale dei movimenti elementari che producono le stroke.

Segmentazione e generazione delle stroke


Le stroke rappresentano quindi le primitive di forma che ciascuno scrivente utilizza nel processo di scrittura e rilevanti studi effettuati nel campo della visione hanno mostrato che la curvatura dei tratti gioca un ruolo chiave nella percezione delle forme e della loro composizione. Dal momento che è noto che in corrispondenza dei tratti di connessione tra stroke adiacenti sono generati cambi di curvatura significativi, il processo di segmentazione posiziona dei punti di taglio in corrispondenza dei tratti di inchiostro nei quali si verificano i cambi di curva più rilevanti, tentando di scartare le variazioni di curvatura spurie comunque generate dai processi di scrittura e di digitalizzazione.

Descrizione
Nella seguente fase di descrizione ciascuna stroke precedentemente identificata dal processo di segmentazione viene etichettata in base al suo cambio di curvatura, opportunamente quantizzato.

Matching
La penultima fase, il matching, consiste nel confrontare tratti di inchiostro relativi alla parola da riconoscere con quelli relativi ad un insieme di parole di riferimento di cui è disponibile anche la trascrizione in codice ASCII. In questo modo sono estratte le sequenze di stroke simili e con esse le possibili interpretazioni.

Classificazione
Infine il processo è concluso con la fase di classificazione che produce le possibili interpretazioni della parola andando a considerare tutte le possibili combinazioni dei match ottenuti dalla fase precedente e calcolando contestualmente un livello di affidabilità.


Come si evince l’architettura risulta piuttosto complessa, particolarmente in virtù della difficoltà del compito da svolgere, ma i risultati ottenuti sulle prime applicazioni in laboratorio sono sorprendenti ed estremamente incoraggianti.


La parola “lettura” risulta correttamente riconosciuta, con un’affidabilità pari all’80%.

COMPRESSIONE

La compressione dell’immagine, in elettronica, informatica e nelle telecomunicazioni, è il nome generico sotto il quale si raggruppano gli algoritmi e le tecniche di elaborazione digitale delle immagini appartenenti alle tecniche di compressione dati, che si utilizzano per ridurre le dimensioni in byte delle immagini digitali.

Un’immagine è rappresentata in formato digitale come una serie di punti (pixel) disposti come una scacchiera o matrice (grafica raster o bitmap). Ogni punto può utilizzare uno o più bit per definire il colore del punto: maggiore è il numero di colori, maggiore sarà il numero di bit necessari per codificare tutti i colori dell’immagine. Le tecniche di compressione utilizzano le peculiarità delle immagini per ridurre l’entropia locale del file in modo da renderlo più piccolo.


Compressione Lossless (senza perdita)

Le prime tecniche di compressione erano molto semplici anche perché la potenza dei primi computer era limitata e quindi per ottenere tempi di decompressione accettabili queste dovevano essere necessariamente semplici. Una tecnica molto diffusa ma semplice era la Run-length encoding. Questa prevedeva la memorizzazione di zone di colore uniforme tramite stringhe speciali. Per esempio se in un’immagine si trovavano mille punti dello stesso colore il programma di compressione salvava il colore in un carattere speciale e in seguito memorizzava il numero di punti da colorare con lo stesso colore; le immagini di tipo IFF venivano salvate con questo metodo. Inizialmente le immagini avevano un numero limitato di colori e quindi si utilizzavano tecniche che si avvantaggiavano di questo. Molti formati utilizzavano tecniche di compressione a dizionario come la LZW. Questi algoritmi costruivano dei dizionari contenenti gruppi di punti che si ripetevano frequentemente e poi memorizzavano l’immagine utilizzando il dizionario creato. Il formato GIF utilizza questa tecnica. È da notare che queste tecniche di compressione sono tutte senza perdita di informazione.

Tra i formati che consentono l’utilizzo di algoritmi di compressione lossless abbiamo:

  – formato PNG (certe applicazioni permettono anche la scrittura di file png non compressi);
  – formato TGA;
  – formato TIFF.


Compressione Lossy (con perdita)

Con il crescere della potenza di calcolo dei computer questi sono stati in grado di gestire immagini con migliaia o milioni di colori. Immagini con così tanti colori erano gestite male dai classici metodi di compressione dato che l’assunto del ridotto numero di colori falliva. Vennero sviluppate nuove tecniche di compressione, principalmente a perdita di informazione. Queste nuove tecniche permettevano compressioni anche del 50% con il mantenimento di una qualità accettabile.

Tra i vari metodi il più diffuso divenne il JPEG che utilizza varie tecniche di compressione combinandole tra loro per ottenere compressioni molto elevate. Tra le tecniche utilizzate quella responsabile della maggior compressione (e della perdita di qualità) è la trasformata discreta del coseno la quale converte i punti dello schermo nella loro equivalente rappresentazione nel dominio della frequenza. Il segnale risultante è formato da segnali a bassa frequenza e segnali ad alta frequenza: i segnali a bassa frequenza rappresentano le zone di colore uniformi dell’immagine mentre le componenti ad alta frequenza rappresentano i particolari dell’immagine e i disturbi di quantizzazione. La compressione JPEG provvede a salvare le componenti a bassa frequenza e una parte delle componenti ad alta frequenza. Più si incrementa la qualità più componenti vengono salvate e nel contempo più il file diventa grande.

Il successo dello standard JPEG spinse molte società e consorzi a sviluppare soluzioni basate sulla perdita di compressione, ma con fattori di compressione maggiore del JPEG a parità di qualità ottenuta. Questi formati fanno uso di tecniche matematiche molto avanzate come la compressione frattale o quella basata sulle trasformate Wavelet (JPEG 2000).

Tra i formati lossy abbiamo:

 – formato JPEG / JPG;
 – formato GIF (per immagini con più di 256 colori si ottiene una compressione lossy poiché vengono eliminate la maggior parte delle sfumature di colore).



Domanda: nell’ambito di un progetto di lettura ottica documentale, che algoritmi di compressione conviene utilizzare?

Poiché l’obiettivo della lettura ottica è estrarre il maggior numero di informazioni possibile con la massima accuratezza possibile, è bene avvalersi in fase di scansione di algoritmi conservativi (senza perdita o Lossless) così da far sì che il software disponga di tutte le informazioni utili ad effettuare una corretta decodifica. Qualora i documenti siano acquisiti in bianco e nero, si raccomanda di effettuare le scansioni in formato TIF, con compressione di tipo G4; in caso di documenti da acquisire in scala di grigi o a colori, l’ideale è acquisire in formato TIF con compressione LZW. Si tratta ovviamente di suggerimenti non vincolanti, ma che possono contribuire all’ottenimento di risultati ancora più soddisfacenti.

Una volta elaborata l’immagine dal software OCR, sarà quindi possibile salvarla in altri formati implementando diversi algoritmi di compressione: ad esempio, sarà possibile salvare documenti a colori in formato JPG, o in formato PDF con compressione JPG, o in qualsiasi altro formato, con o senza compressione. E’ bene accertarsi che la soluzione di data-capture prescelta includa specifiche funzionalità per configurare in dettaglio le caratteristiche dell’immagine da salvare, in modo da non dover richiedere ulteriori elaborazioni in applicazioni software a valle.

DEEP LEARNING


Deep learning è un sottoinsieme del machine Learning (ML), in cui gli algoritmi di reti neurali artificiali sono modellati per funzionare come l’apparato cerebrale umano, imparando da grandi quantità di dati.

Il Deep learning è basato su livelli di reti neurali che sono algoritmi modellati in modo approssimativo sul modo di lavorare dei cervelli umani. La formazione con grandi quantità di dati è ciò che configura i neuroni nella rete neurale. Il risultato è un modello di deep learning che, una volta formato, elabora nuovi dati. I modelli di Deep Learning acquisiscono informazioni da più origini dati e analizzano tali dati in tempo reale, senza la necessità di intervento umano. Nel deep learning, le unità di elaborazione grafica (GPU) sono ottimizzate per i modelli di formazione perché possono elaborare più calcoli contemporaneamente.

Il Deep learning è ciò che guida molte tecnologie di intelligenza artificiale (AI) in grado di migliorare l’automazione e le attività analitiche. La maggior parte delle persone incontra il deep learning ogni giorno durante la navigazione su Internet o l’uso dei telefoni cellulari. Tra le numerose altre applicazioni, il deep learning viene utilizzato per generare didascalie per i video YouTube, per eseguire il riconoscimento vocale sui telefoni e gli altoparlanti intelligenti, per consentire il riconoscimento facciale delle fotografie e per consentire la guida autonoma delle automobili. E poiché i data scientist e i ricercatori affrontano progetti di deep learning sempre più complessi che favoriscono la creazione di contesti di deep learning, questo tipo di intelligenza artificiale diventerà una parte sempre più importante della nostra vita quotidiana.

DESKEW

Per l’acquisizione dei documenti spesso si utilizzano veloci scanner professionali dotati di alimentatore automatico di fogli (ADF). Per le inevitabili tolleranze della meccanica e per la scarsa rigidità dei fogli di carta è normale che le immagini dei documenti si presentino leggermente inclinate verso destra o verso sinistra anziché perfettamente diritte e allineate con gli assi orizzontali e verticali. Il termine tecnico anglosassone comunemente utilizzato per indicare tale inclinazione è chiamato skew, che letteralmente vuol dire “pendenza”, e che di solito non supera i +/5°. L’operazione di correzione della pendenza, ossia il raddrizzamento dell’immagine, viene denominata quindi deskew. Tale correzione può oggi essere eseguita in totale autonomia dal software senza intervento umano: il sottosistema di image processing preposto a tale attività analizza l’immagine per valutare l’entità dell’angolo di inclinazione così che possa opportunamente ruotarla per renderla perfettamente diritta, correggendo il difetto introdotto dalla scansione.

I tools più efficaci oggi disponibili riescono a contenere il tempo di elaborazione in poche frazioni di secondo raggiungendo un’accuratezza davvero elevata (addirittura fino a 1/100 di grado), e possono lavorare sia su immagini monocromatiche che su immagini in scala di grigio e a colori.


Con il deskew è possibile raddrizzare automaticamente un’immagine inclinata: a sinistra l’immagine originale, a destra quella processata.

DESPECKLE

Talvolta capita che le immagini acquisite presentino dello sporco costituito da punti neri isolati, dovuti a polvere depositata sui sensori di acquisizione o addirittura a interferenze elettrostatiche dovute a surriscaldamento dei componenti elettronici.

Il termine anglosassone utilizzato per identificare questa tipologia di sporco è la parola speckle, e l’operazione di pulizia per l’identificazione e la rimozione di questi punti è definita despeckle.

I tool software che effettuano questo tipo di elaborazione non necessitano di intervento umano, sono estremamente veloci e possono lavorare su immagini monocromatiche, in scala di grigio o a colori; quelli più efficaci possono implementare degli algoritmi avanzati tali che pur eliminando elementi di sporco molto grandi evitano che segni di punteggiatura o punti sulle “i” possano essere rimossi in modo accidentale.

Esempio di applicazione dell’algoritmo di despeckle.

DYNAMIC THRESHOLDING

Gli scanner, anche quelli monocromatici, nell’acquisire un documento effettuano di fatto una misurazione della quantità di luce riflessa dalla superficie del foglio, ottenendo dai circuiti elettronici un valore solitamente compreso tra 0 e 255. Dovendo restituire una immagine in scala di grigi viene restituito proprio tale valore, ma dovendo restituire una immagine monocromatica, si deve impostare un valore di soglia, al di sotto del quale il punto è considerato nero, al di sopra è considerato bianco. La selezione di questa soglia è un’operazione alquanto delicata in quanto in base ad essa si possono ottenere documenti leggibili, oppure troppo chiari, o troppo scuri. Se un’immagine è troppo chiara, oppure troppo scura, potrebbe risultare difficile leggere i dati in essa contenuti, cosa alquanto grave se ci si accorge del problema quando ormai è troppo tardi, e si ha necessità di un documento il cui originale cartaceo non è più reperibile.

Il problema maggiore è dato dal fatto che, più spesso di quanto non s’immagini, non c’è possibilità che un valore di soglia, qualsiasi esso sia, renda l’immagine leggibile in ogni sua parte. E’ per risolvere queste problematiche che sono nati i tools di thresholding dinamico: anziché utilizzare un valore di soglia valido per tutta l’immagine, è utilizzato un valore di soglia specifico per ciascun punto dell’immagine, calcolato in base a diversi algoritmi più o meno evoluti. Con tale sistema si riesce ad evitare di perdere scritte particolarmente chiare su fondo chiaro, o di trasformare in macchie nere le scritte scure su fondo particolarmente scuro.

Immagine originale

Immagine binarizzata con thresholding fisso

Immagine binarizzata con thresholding dinamico

La tecnologia di binarizzazione dinamica è una delle più complesse, e la maggior problematicità sta nell’individuare sia la tipologia di thresholding dinamico più adatta ai propri documenti, sia gli eventuali parametri richiesti. Fortunatamente, le ultime novità in questo campo consentono di non dover impostare alcun parametro così che sia il software ad analizzare l’immagine, e a decidere quali sono i parametri più appropriati per processarla nel migliore dei modi.

FILE FORMAT CONVERSION

Un formato grafico di file è la modalità con cui un’immagine viene memorizzata, cioè “salvata”, come file su disco e rappresenta quindi una convenzione dell’organizzazione delle informazioni generali dell’immagine e della codifica delle informazioni dei singoli pixel che la costituiscono all’interno del file.

Sin dalla nascita dell’elaborazione grafica digitale delle immagini, ciascun produttore di software ha creato dei formati grafici di file proprietari, ma con il passar del tempo e con la necessità di poter gestire i file utilizzando applicativi diversi su sistemi diversi, sono stati creati dei formati standard riconosciuti più o meno universalmente.

Attualmente i formati grafici più diffusi per le immagini digitali sono i seguenti: TIFF, JPEG, PNG, BMP, PDF.

Il formato TIFF (Tagged Image File Format) è un formato molto flessibile e largamente utilizzato in ambito documentale poiché consente di memorizzare le immagini utilizzando algoritmi di compressione differenti (CCITT G3, CCITT G4, JPEG, RLE, etc…) e inserendo nel file anche informazioni aggiuntive legate alla modalità di interpretazione delle immagini nonché commenti ed annotazioni.

Il formato JPEG (Joint Photographic Expert Group) è un formato utilizzato soprattutto per le fotografie poiché utilizza un algoritmo di compressione molto potente che consente di ridurre lo spazio di memorizzazione utilizzato a fronte di una certa perdita di informazioni, ossia un deterioramento dell’immagine che però di norma è assai poco visibile all’occhio umano. Sebbene la perdita di informazioni possa essere determinata a priori, ottenendo quindi immagini più o meno compresse, l’utilizzo in ambito documentale non è molto consigliato.

Il formato PNG (Portable Network Graphic) è un formato nato per l’utilizzo delle immagini su internet, primariamente per ovviare all’utilizzo del formato GIF (Graphics Interchange Format) che alcuni anni addietro, prima che scadesse il brevetto della società ideatrice, era soggetto a royalties. La compressione, in entrambi i formati, non fa perdere informazioni ma allo stesso tempo è poco adatta alle immagini digitalizzate con scanner.

Il formato BMP (Windows BitMaP) è il formato nativo utilizzato dal sistema operativo Windows. Si tratta di un formato molto semplice che consente di memorizzare immagini di qualsiasi tipo, ma scarsamente utilizzato come formato di interscambio.

Il formato PDF (Portable Document Format) è un formato vettoriale, quindi non specifico per immagini raster. Tuttavia, grazie alla sua larga diffusione per la distribuzione di documenti vettoriali, creati ad esempio con applicativi di elaborazione testi e stampanti virtuali, e grazie alla disponibilità di un’applicazione di visualizzazione gratuita multipiattaforma, viene ampliamente utilizzato anche per la memorizzazione di immagini digitali acquisite da scanner. Sebbene in alcuni casi può sembrare vantaggioso utilizzarlo, si tratta comunque di un formato assai complesso e con elevato overhead rispetto agli altri formati specifici per immagini raster.

La possibilità per un’applicazione di poter convertire file da un formato ad un altro (File Format Conversion) è strettamente legata all’implementazione della tecnologia per leggere e scrivere file nei formati da gestire: una volta che l’immagine è stata caricata in memoria decodificando un certo tipo di file, può essere nuovamente ricodificata e scritta su disco in un altro formato.

E’ dunque possibile:

 – convertire files TIFF in JPG
 – convertire files TIFF in PNG
 – convertire files TIFF in BMP
 – convertire files TIFF in PDF
 – convertire files JPG in TIFF
 – convertire files JPG in PNG
 – convertire files JPG in BMP
 – convertire files JPG in PDF
 – convertire files PNG in JPG
 – convertire files PNG in TIFF
 – convertire files PNG in BMP
 – convertire files PNG in PDF
 – convertire files BMP in JPG
 – convertire files BMP in PNG
 – convertire files BMP in TIFF
 – convertire files BMP in PDF
 – convertire files PDF in JPG
 – convertire files PDF in PNG
 – convertire files PDF in BMP
 – convertire files PDF in TIFF

Tuttavia è bene ricordare che quando si memorizza un’immagine utilizzando formati di file con algoritmi di compressione che prevedono perdita di qualità/informazioni (lossy), quando verrà nuovamente ricaricata risulterà comunque diversa da quella iniziale ed ovviamente le informazioni originali non potranno più essere recuperate, anche memorizzandola in altro formato che non preveda perdita di informazione (lossless).

FORM IDENTIFICATION

La tecnologia di Form Identification consente di riconoscere a quale tipologia di modulo può essere associata una certa immagine. Ciò è possibile grazie ad una fase propedeutica di apprendimento in cui il sistema impara a riconoscere i vari tipi di moduli che dovrà processare. Successivamente quindi il sistema non solo riuscirà ad indicare di che tipo è il modulo processato, ma riporterà anche alcune ulteriori informazioni che consentiranno di migliorare la lettura ottica, quali l’offset orizzontale e verticale, l’angolo di rotazione, l’angolo di inclinazione ed il fattore di scala rispetto al prototipo di form su cui è stato effettua l’apprendimento. In quest’ultimo caso non si parla solo quindi di Form Identification ma di Form Identification & Alignment.

Una recente evoluzione di questa tecnologia è stata battezzata Form Locator: come suggerisce il nome stesso, tale tecnologia consente di individuare ed estrarre automaticamente una sotto-area specifica, con layout noto a priori, all’interno di documenti e moduli, con qualsiasi layout, in cui sia contenuta, in qualsiasi posizione essa si trovi.

L’estrema flessibilità di questo sistema risiede nella possibilità di ricercare l’elemento anche se ruotato, ingrandito o ridotto rispetto al campione originale che ci si aspetta di trovare: inoltre, grazie agli innovativi algoritmi realizzati, il sistema può funzionare correttamente anche in presenza di parziale occlusione o parziale cancellazione dell’area da ricercare.

Per meglio chiarire gli ambiti di applicazione, è conveniente fare degli esempi d’uso concreti: si pensi alle etichette adesive che vengono incollate sulla corrispondenza prima che torni al mittente e che riportano il motivo della mancata consegna. Grazie alla tecnologia FormLocator, è possibile riuscire a localizzare ed estrarre l’area dell’immagine che contiene tale adesivo, il quale può essere stato apposto in qualsiasi posizione e con qualsiasi orientamento. Ma si pensi anche ai timbri di segnatura protocollo che vengono apposti sui documenti in ingresso, localizzabili a prescindere dalla posizione e dall’orientamento; ancora, si pensi alle fotocopie di carte d’identità e/o codice fiscale, localizzabili in modo da estrarre solo l’area dell’immagine che contiene il solo documento fotocopiato, fronte e retro separatamente, esattamente come se venisse ritagliato a mano.

Gli ambiti di applicazione sono davvero molteplici: ovviamente è possibile sia verificare la sola presenza di un’area con la struttura ricercata, sia, una volta localizzata ed estratta l’area di interesse, utilizzarla per effettuare qualsiasi operazione di lettura ottica in modo da leggere con la massima accuratezza i dati ivi contenuti.


Esempio d’uso della tecnologia Recogniform FormLocator™: l’etichetta adesiva incollata sulle buste, ubicata in modo casuale ed orientata in modo sempre diverso, viene automaticamente individuata, normalizzata ed estratta così da poter essere trattata come un normale sotto-modulo, sebbene contenuto all’interno di altro documento.

FREE-FORM

La tecnologia Free-Form rappresenta la nuova frontiera della lettura ottica di documenti a struttura libera. Le tecnologie per la lettura ottica di moduli strutturati sono ormai disponibili da diversi anni ed hanno raggiunto un grado di maturità molto elevato, gettando le basi per nuove sfide: la lettura ottica di documenti a struttura libera è una di queste.

Se un documento strutturato è un qualunque tipo di modulo in cui le posizioni dei dati da estrarre sono ben precise e conosciute in anticipo, un documento non strutturato è invece un documento in cui ci sono comunque dei dati ben precisi, ma la loro posizione ed il loro layout non è noto a priori e può variare notevolmente tra documento e documento della stessa tipologia.

Il più classico esempio di documento non strutturato in cui è molto facile imbattersi quotidianamente è rappresentato dalle fatture: sebbene sappiamo a priori che in ciascuna fattura c’è la ragione sociale del fornitore, la data, il numero progressivo, l’imponibile, l’iva ed il totale, non possiamo sapere in anticipo dove questi dati si trovino; il loro posizionamento non è standard, ma è lasciato al libero arbitrio di ciascun fornitore che può utilizzare font, elementi grafici, ombreggiature e colori come meglio crede.

Una delle strategie possibili per trattare questi tipi di documenti è di ricondurli al caso dei documenti strutturati omogenei, qualora fattibile: ad esempio, nel caso delle fatture, si potrebbe creare un template specifico da associare alle fatture di ciascun fornitore, così che una volta individuato il fornitore, la fattura possa essere trattata in modo idoneo. Questo approccio può andar bene quando il numero di classi non è elevato e quando il processo di classificazione può avvenire in modo accurato, sia esso eseguito direttamente dal software o manualmente da un operatore. Bisogna infatti preoccuparsi di predisporre i diversi template in modo preventivo ed essere certi che siano processati soltanto i documenti riconducibili ad essi.

Per ovviare a questa problematica, l’approccio free-form piuttosto che partire da una definizione spaziale, parte da una definizione logica del dato: i dati da leggere sono definiti e quindi identificati mediante una serie di attributi specifici quali, ad esempio, parole chiave ad essi prossime, tipo di formattazione attesa, posizione relativa, presenza o assenza di elementi grafici, criteri di cross-validation da verificare, e così via.

Nel caso del dato partita iva di una fattura, ad esempio, sarà possibile riconoscerla, e quindi ricavarne il valore, istruendo il sistema a trovare una sequenza di 11 caratteri numerici (o 2 lettere seguite da 11 caratteri numerici), in prossimità (sopra, sotto, a destra, a sinistra) delle parole “P.IVA” o “Partita Iva” o “PARTITA IVA”, etc., magari limitatamente ad una certa zona del documento (ad esempio nella metà superiore dell’immagine), verificandone il checksum e, se possibile, l’esistenza in anagrafica fornitori.

In pratica si istruisce il software a “ragionare” come un essere umano: infatti quando dobbiamo cercare su una fattura il dato TOTALE DOCUMENTO siamo naturalmente portati a guardare in basso a destra del foglio, magari ci soffermiamo su un riquadro particolarmente evidente o marcato e cerchiamo come “prova” le parole “TOTALE DOCUMENTO” O “IMPORTO FATTURA” o “TOT. FATTURA”. Nello stesso modo agisce un sistema di elaborazione di documenti non strutturati: ciò avviene sulla base delle nostre indicazioni, sulla scorta cioè di regole opportunamente reimpostate, che devono quindi essere definite in modo preciso ed esaustivo.

Esempio di riconoscimento documenti non strutturati (Fatture): si noti come il medesimo campo “data” sia stato individuato in posizioni completamente differenti.


Alla base di queste funzionalità c’è l’utilizzo del riconoscimento ottico (OCR) di tutto il documento in sinergia con un robusto algoritmo di analisi del layout: l’utilizzo combinato di questi due strumenti rende possibile l’identificazione dei blocchi di testo, delle linee verticali, orizzontali e degli elementi di testo con le rispettive confidenze, da cui deriva la possibilità di verificare o meno le condizioni logiche imposte per la ricerca dei dati sulla pagina.

Per rendere ancora più accurata l’elaborazione di documenti non strutturati è anche possibile combinare le due strategie sopra descritte: se il sistema è in grado di associare il documento da trattare ad un template noto, questo è trattato come documento strutturato; altrimenti è trattato come documento non strutturato e processato ugualmente.

ICR

La tecnologia ICR (Intelligent Character Recognition), utilizzata per il riconoscimento del testo scritto a mano in stampatello, può considerarsi un’evoluzione ed una differenziazione della tecnologia OCR. Nel momento in cui i sistemi OCR sono stati estesi al riconoscimento di dati scritti a mano in stampatello, si è fatto ricorso soprattutto alla tecnologia delle reti neuronali: per sottolineare che tale nuova tecnologia era basata sull’intelligenza artificiale è stato allora coniato il nuovo acronimo, sostituendo alla “O” di Optical, la “I” di Intelligent.

Contrariamente a quanto si possa immaginare, la maggior parte dei sistemi ICR è in grado di leggere solo parzialmente il testo stampato o dattiloscritto, quindi qualora si abbia necessità di estrarre sia dati stampati che manoscritti è necessario utilizzare sistemi di lettura ottica che dispongano anche di OCR.

I sistemi ICR si possono distinguere in due categorie: constrained e unconstrained. I primi sono quelli che riescono a riconoscere testo scritto a mano in stampatello in cui i caratteri sono totalmente separati gli uni dagli altri, mentre i secondi sono quelli che tollerano che alcuni caratteri possano toccarsi da loro. E’ chiaro che la grande variabilità e scarsa ripetibilità della scrittura a mano rende enormemente complicato il lavoro di questi sistemi: solitamente, per migliorare le prestazioni dei sistemi ICR, si ricorre ad una progettazione grafica della modulistica così da ottimizzarla per la lettura ottica, in modo che chi scriva i dati sia guidato a scrivere i singoli caratteri staccati, in caselle prestampate opportunamente colorate, filtrabili anche in fase di scansione.


L’utilizzo di caselle prestampate evita che si scrivano caratteri attaccati tra loro, mentre la loro stampa in colorazioni particolari ne rende possibile la rimozione in fase di scansione, migliorando il riconoscimento.


Una cosa molto importante da tenere presente è che i sistemi ICR, essendo addestrati su prototipi di scrittura reali, sono abbastanza sensibili allo stile di scrittura del campione usato: sistemi addestrati con campioni di caratteri americani funzionano bene quando si devono estrarre dati scritti da persone americane mentre possono presentare errori leggendo dati scritti da persone europee. Per rendersi conto della motivazione basta confrontare una tipica sequenza di numeri scritta da un italiano con quella scritta da un americano: si noterà immediatamente che un “7” americano è molto più simile ad un “1” italiano, così come pure un “4” americano è facilmente confondibile con un “9” italiano.


Le differenze di stile di scrittura tra italiani e anglosassoni sono significative: solo un sistema sviluppato ad hoc riesce a non confondere, ad esempio, un “1” con un “7”, un “4” con un “9”, etc.

IMAGE ENHANCEMENT

Le tecnologie di image enhancement servono a migliorare le immagini digitali di documenti, sia a livello globale (intero documento) che a a livello locale (area specifica).

Il miglioramento globale può consistere nel rimuovere sporco e rumore, nell’eliminare i bordi frastagliati e ritagliare il solo contenuto rispetto ad uno sfondo estraneo, nel correggere l’orientamento, la pendenza o la distorsione prospettica, nel modificare contrasto e luminosità: in sintesi, nel rendere più leggibile e più fedele all’originale un’immagine digitalizzata.

Oltre che globalmente sull’intera immagine, le tecnologie di image enhancement sono applicabili anche localmente, ossia su piccole porzioni dell’immagine, magari anche solo temporaneamente prima che le singole regioni dell’immagine vengano elaborate da motori di riconoscimento specifici. In questo caso il miglioramento può consistere nell’eliminazione delle intrusioni, nell’eliminazione di linee o caselle, nell’eliminazione di filamenti, nell’assottigliamento, nell’inspessimento, nel thresholding dinamico: tutte operazioni utili a rendere più agevole il riconoscimento, da parte del sistema di lettura ottica, dei dati contenuti in un’area specifica.

Nel valutare una soluzione di data-capture è quindi fondamentale assicurarsi che sia possibile definire opportuni parametri di pre-elaborazione per singolo campo, in modo da riuscire a gestire in maniera ottimale anche immagini – o porzioni di immagini – aventi una qualità non ottimale.

IMAGING

L’ imaging, o meglio il document imaging, rappresenta tutto l’insieme delle tecnologie legate alla replica di immagini dei documenti cartacei e alla loro gestione in forma dematerializzata.

Sebbene in via generale tra i sistemi di document imaging si possano annoverare anche i sistemi di microfilmatura, i fax, i multifunzione, le fotocopiatrici digitali e gli scanner, di norma questa tecnologia è inerente quasi sempre esclusivamente ai sistemi informatici capaci di catturare, memorizzare e gestire le immagini di documenti cartacei.

INTELLIGENZA ARTIFICIALE

L’intelligenza artificiale (c.d. “AI”) studia i fondamenti teorici, le metodologie e le tecniche che consentono di progettare sistemi hardware e sistemi di programmi software atti a fornire all’elaboratore elettronico prestazioni che, a un osservatore comune, sembrerebbero essere di pertinenza esclusiva dell’intelligenza umana.

L’utilizzo delle moderne tecnologie di AI in ambito data-capture è in grado di consentire l’estrazione di informazioni da documenti eterogenei in modo dinamico, senza necessità di configurare regole specifiche.

Tuttavia, non è detto che un approccio basato sull’AI rappresenti la miglior scelta possibile, anzi.


OCR con approccio euristico vs approccio AI: che differenze ci sono?

Nel contesto dell’estrazione di dati da documenti, le differenze tra un approccio euristico e un approccio basato sull’intelligenza artificiale (AI) riguardano principalmente la flessibilità, la capacità di adattamento e l’accuratezza dei risultati.

Un approccio euristico all’estrazione dei dati si basa su regole euristico-manuali per identificare estrarre informazioni specifiche dai documenti. Queste regole possono essere progettate per cercare parole chiave, identificare pattern specifici o seguire criteri predefiniti per individuare i dati di interesse. Tuttavia, l’approccio euristico può essere limitato dalla sua rigidità e dalla necessità di definire regole specifiche per ogni tipo di documento o layout.

D’altra parte, un approccio basato sull’AI utilizza algoritmi di machine learning e tecniche di elaborazione del linguaggio naturale per l’estrazione di dati da documenti. Gli algoritmi vengono addestrati su grandi dataset di documenti annotati, consentendo loro di apprendere i modelli e le relazioni nei dati e di estrarre automaticamente le informazioni rilevanti. L’IA può adattarsi a diversi tipi di documenti e layout, rendendo l’estrazione dei dati più flessibile e automatizzata.

L’approccio basato sull’AI può offrire anche maggiori capacità di comprensione e interpretazione del contesto dei dati estratti. Ad esempio, può riconoscere nomi, date, indirizzi e altre informazioni strutturate, anche in presenza di variazioni nei formati o nella presentazione dei dati. Questo può contribuire a migliorare l’accuratezza dell’estrazione dei dati rispetto a un approccio euristico, che potrebbe essere più limitato nelle sue capacità di adattamento ai cambiamenti o alle variazioni nei dati dei documenti.

In generale, si è propensi a ritenere che l’approccio basato sull’AI possa offrire una maggiore automazione, flessibilità e precisione nell’estrazione dei dati da documenti rispetto all’approccio euristico. Tuttavia, è importante notare che la scelta dell’approccio più appropriato dipende dal contesto specifico, dalle esigenze dell’applicazione e dai dati di input disponibili.  

L’approccio basato sull’intelligenza artificiale (AI) nell’estrazione di dati da documenti presenta alcuni limiti e sfide da considerare:

  1. Disponibilità e qualità dei dati di addestramento: L’AI richiede grandi quantità di dati di addestramento annotati per apprendere i modelli corretti. Ottenere dataset di addestramento completi e accurati può essere costoso e richiedere molto tempo.
  2. Dipendenza dai dati di addestramento: L’AI è altamente dipendente dai dati di addestramento su cui viene istruito. Se i dati di addestramento non rappresentano adeguatamente la varietà di casi reali, l’AI potrebbe non essere in grado di generalizzare correttamente e produrre risultati accurati su nuovi documenti o formati non visti precedentemente.
  3. Interpretazione errata o ambigua: L’AI può commettere errori di interpretazione dei dati, specialmente in presenza di ambiguità o informazioni poco chiare. Ciò può portare a errori di estrazione o a interpretazioni non corrette dei dati.
  4. Robustezza alle variazioni dei dati: L’AI potrebbe avere difficoltà nel gestire variazioni nei formati dei documenti, nei layout o nelle tipologie di dati. Se l’AI non è stato addestrato su una diversità di casi, potrebbe non essere in grado di affrontare efficacemente tali variazioni.

D’altra parte, l’approccio euristico offre alcuni vantaggi:

  1. Controllo manuale: Nell’approccio euristico, gli sviluppatori hanno il controllo completo nella definizione delle regole euristiche. Ciò consente un maggiore grado di adattabilità e personalizzazione, specialmente in contesti specifici o quando è necessario gestire requisiti particolari.
  2. Prestazioni prevedibili: Con un approccio euristico, le prestazioni dell’estrazione dei dati possono essere più prevedibili, poiché le regole euristiche sono definite in base a criteri specifici e controllabili.
  3. Efficienza computazionale: A volte, l’approccio euristico può essere più efficiente in termini di risorse computazionali richieste, poiché non richiede addestramento su larga scala o elaborazioni complesse come l’approccio basato sull’AI.
  4. Flessibilità nella gestione di casi speciali: L’approccio euristico può essere utile per gestire casi speciali o situazioni in cui non esistono dataset di addestramento disponibili. Può essere più adattabile nel riconoscimento di formati particolari o specifiche esigenze dell’applicazione.

Tuttavia, è importante notare che l’approccio euristico può richiedere un’analisi e un’implementazione manuali delle regole per ogni caso specifico, che potrebbe essere laborioso e richiedere competenze specializzate. Inoltre, può essere meno adatto a scenari complessi o a contesti in cui è richiesta una comprensione più approfondita del testo o delle informazioni estratte.













KEYSTONE CORRECTION

Quando si acquisiscono dei documenti e il piano di acquisizione non è parallelo al piano su cui giace il documento, l’immagine ottenuta soffre del cosiddetto effetto keystone, ossia di una distorsione prospettica dovuta al piano non in asse con il dispositivo di cattura: ne deriva che linee che nel documento reale sono parallele, risultino nell’immagine acquisita oblique e convergenti.

Questo effetto si può avere, ad esempio, se si prova a fotografare un foglio con la fotocamera di uno smartphone, con una webcam o con una fotocamera.

Per risolvere tale aberrazione ottica è nata la tecnologia di keystone correction, talvolta definita anche correzione della distorsione prospettica, correzione della distorsione trapezoidale, o anche correzione dell’effetto prospettiva.

Correzione della deformazione prospettica trapezoidale – PRIMA

Correzione della deformazione prospettica trapezoidale – DOPO

Per effettuare la correzione dell’effetto keystone, il sistema identifica il trapezio che sottintende il foglio acquisito ricercandone i bordi e calcola autonomamente una matrice di trasformazione per convertirlo in un rettangolo.

Una volta che la trasformazione affine è stata eseguita si procede con il crop (ritaglio) automatico dell’immagine, così da escludere l’area esterna al rettangolo ricostruito: in questo modo l’effetto di distorsione prospettica non è più visibile, e il documento ha un aspetto molto più simile ad un’immagine acquisita con un normale scanner documentale.

LAYOUT ANALYSIS

L’analisi automatica del layout dei documenti (layout analysis) consiste nell’individuazione di aree omogenee che contengono testo, immagini, linee o tabelle: partendo da queste informazioni è quindi possibile realizzare sistemi di lettura ottica che riconoscano automaticamente la struttura del documento (document understanding).

L’utilizzo di funzioni di analisi del layout consentono di identificare e classificare all’interno della pagina le aree di testo, testo invertito, rumore, immagini, tabelle, linee orizzontali e verticali.


In seguito al riconoscimento degli elementi che compongono il documento, è quindi possibile operare un’ulteriore sotto-classificazione definendo un insieme di regole determinabili in base alla tipologia del documento da analizzare. Ad esempio, analizzando una pagina di un quotidiano, potremmo riconoscere come “didascalia” un’area di testo, qualora la stessa si trovi in corrispondenza della parte inferiore di un’immagine, magari centrata, magari con un carattere di dimensione inferiore alla media degli altri caratteri riportati nella pagina, riconosciuti come corpo del testo. Alla stessa maniera, è possibile riconoscere come “titolo” eventuali linee di testo in base alla posizione e alla dimensione dei caratteri in esse contenuti.

LINES REMOVAL

La presenza di linee nei documenti talvolta può dare fastidio all’interpretazione dei caratteri, per cui è necessario identificarle ed eliminarle.

Gli algoritmi di lines removal riescono a riconoscere le linee in funzione di alcuni parametri:

  – lunghezza minima e massima;
  – pendenza minima e massima;
  – rapporto minimo tra lunghezza e spessore;
  – orientamento orizzontale o verticale.

Quando le linee attraversano i caratteri, un approccio smart è quello di riconnettere i caratteri che si sono spezzati a seguito della rimozione della linea, così da migliorare le performance dei sistemi di lettura ottica.

La presenza di linee orizzontali in prossimità del testo costituisce un elemento di disturbo, eliminabile attraverso l’applicazione di un algoritmo di lines removal in sede di pre-elaborazione dell’immagine.

MACHINE LEARNING

Il Machine Learning (ML) è un sottoinsieme dell’intelligenza artificiale (AI) che si occupa di creare sistemi che apprendono o migliorano le performance in base ai dati che utilizzano. Intelligenza artificiale è un termine generico e si riferisce a sistemi o macchine che imitano l’intelligenza umana. I termini machine learning e AI vengono spesso utilizzati insieme e in modo interscambiabile, ma non hanno lo stesso significato. Un’importante distinzione è che sebbene tutto ciò che riguarda il machine learning rientri nell’intelligenza artificiale, l’intelligenza artificiale non include solo il machine learning.

Attualmente, il machine learning è utilizzato ovunque: quando interagiamo con le banche, acquistiamo online o utilizziamo i social media, vengono utilizzati gli algoritmi di machine learning per rendere la nostra esperienza efficiente, facile e sicura.

MICR E13B

MICR è l’acronimo di Magnetic Ink Character Recognition  (Riconoscimento di caratteri tramite inchiostro magnetico), ed è una tecnologia per il riconoscimento dei caratteri adottata particolarmente in ambito bancario per facilitare il trattamento degli assegni.

Il font MICR E13B venne sviluppato nel 1958 dall’American Bankers Associations (ABA) per l’elaborazione automatica degli assegni: è correntemente utilizzato negli USA, in Canada, in Australia, nel Regno Unito e in altri paesi nel mondo.

La misura di stampa del font è fissata in 0.117 pollici (circa 8.4 punti), la densità di stampa è pari a 8 CPI.

L’insieme dei caratteri riconosciuti è costituito dai simboli e cifre presenti nell’immagine in basso. Gli ultimi simboli sono denominati, seguendo l’ordine in figura, BSB (o Transit), Domestic (o On-Us), Amount, Dash e, dopo il riconoscimento, sono rispettivamente riportati come “:” “<” “;” “=” in caratteri ASCII.

Con il motore di riconoscimento MICR E13B, l’accuratezza raggiunge il 100% se ci sono immagini acquisite di buona qualità; se la qualità è medio-bassa, il tasso di errore è in genere inferiore allo 0.5%. Per ogni carattere riconosciuto è riportato il livello di confidenza, consentendo di accertare quanto accurato sia stato il processo di riconoscimento.


Un esempio di codeline MICR E13B

MICR CMC7

MICR è l’acronimo di Magnetic Ink Character Recognition (Riconoscimento di caratteri tramite inchiostro magnetico), ed è una tecnologia per il riconoscimento dei caratteri adottata particolarmente in ambito bancario per facilitare il trattamento degli assegni.

Il font MICR CMC7 venne sviluppato in Francia alla fine del 1950, e ad oggi è ampiamente usato in Europa, in Messico, in Brasile e in altri paesi nel mondo. La stampa magnetica viene usata per fare in modo che i caratteri siano letti in maniera affidabile da un sistema anche in presenza di sovrapposizioni alla stampa (segni di annullamento, firme, etc.).

I caratteri numerici hanno un’altezza di 2.85 mm mentre i simboli hanno un’altezza di 2.70 mm; ciascun carattere è formato da barre verticali che determinano cinque spazi stretti e due spazi larghi.

Con il motore di riconoscimento MICR CMC7, l’accuratezza raggiunge il 100% se ci sono immagini acquisite di buona qualità; se la qualità è medio-bassa, il tasso di errore è in genere inferiore allo 0.5%. Per ogni carattere riconosciuto è riportato il livello di confidenza, consentendo di accertare quanto accurato sia stato il processo di riconoscimento.


Un esempio di codeline MICR CMC7

OCR

La tecnologia OCR (Optical Character Recognition),è utilizzata per il riconoscimento di testo stampato o dattiloscritto, ed è indubbiamente la più nota delle tecnologie utilizzate nella lettura ottica.

In linea di massima i sistemi di riconoscimento OCR possono essere suddivisi in monofont, multifont e omnifont.

Gli OCR monofont sono quelli che riescono a riconoscere una sola famiglia di caratteri, ma con il massimo dell’accuratezza possibile. Sono utilizzati ad esempio per leggere dati stampati con i font OCR-A ed OCR-B, appositamente disegnati per la lettura ottica, oppure per leggere dati stampati con font CMC7 ed E13B, concepiti per essere letti magneticamente e quindi riconoscibili otticamente solo con sistemi specifici.

Gli OCR omnifont sono quelli che teoricamente riescono a riconoscere qualsiasi famiglia di caratteri, prescindendo quindi da tipo, dimensioni ed attributi (grassetto, corsivo, sottolineato) dei font con cui sono stampati i testi.

Gli OCR multifont sono invece una via di mezzo tra i precedenti: riescono a riconoscere caratteri stampati con più di un font, ma solo se lo specifico font è tra quelli previsti.


Esempio di font OCR A per il quale è richiesto l’uso di un motore OCR specifico


In sintesi, il lavoro che fa un sistema OCR è suddivisibile in tre fasi:

 – segmentazione;
 – features extraction;
 – classificazione.

La prima fase, la segmentazione, consiste nell’identificare i caratteri da leggere: qualora l’area da leggere sia ampia o sia costituita da un’intera pagina, può essere necessaria anche una fase di analisi del layout, che consiste nell’individuare colonne, paragrafi, linee di testo e parole.

La seconda fase è rappresentata dalla features extraction, ovvero l’estrazione delle caratteristiche di ogni singolo carattere segmentato. Esistono diversi metodi per estrarre queste caratteristiche, alcuni basati su procedimenti statistici (es: istogrammi delle frequenze di pixel), altri su procedimento di tipo geometrico (es: curvatura e direzionalità delle linee). In ogni caso l’idea di base è che queste caratteristiche debbano essere presenti in ogni carattere dello stesso tipo, debbano essere sufficienti per identificarlo e che debbano tollerare rumore e distorsioni introdotte dal processo di scansione.

La terza fase è quella della classificazione: le caratteristiche estratte sono analizzate in modo da risalire al carattere partendo dalla sua forma, usando una conoscenza a priori basata sui prototipi del set dei caratteri da riconoscere.


Un esempio di OCR eseguito su numeri seriali di banconote: si noti come per ciascun carattere è riportata anche la confidenza di lettura.


Il risultato di questo processo è quindi quello di attribuire a ciascun carattere il codice ASCII (o UNICODE) che lo rappresenta ed, eventualmente, una confidenza di lettura che indica quanto il sistema è certo di aver classificato correttamente il dato.

Per fare in modo da minimizzare il più possibile gli errori dovuti all’OCR in alcuni sistemi di lettura ottica è possibile fare in modo di limitare il set di caratteri che ci si aspetta di trovare: il tal modo, ad esempio, se si devono leggere dati costituiti solo da numeri, l’OCR non confonderà degli zero con delle lettere “O” oppure dei “2” con delle lettere “Z”, e così via. 

Sebbene la tecnologia OCR sia molto progredita, talvolta i risultati ottenuti possono essere sotto le aspettative a causa della scarsa qualità di stampa o della scarsa qualità di scansione dei documenti processati: i maggiori problemi di riconoscimento, infatti, si incontrano laddove più caratteri risultino attaccati tra loro, oppure laddove un singolo carattere sia spezzettato in più parti.


Una scarsa qualità dell’immagine può compromettere il funzionamento di un sistema OCR poiché è difficile riconoscere sequenze di caratteri legati tra loro o singoli caratteri spezzettati.


In casi particolari, per massimizzare le prestazioni di lettura, è possibile utilizzare la tecnologia di voting che consiste nell’utilizzare simultaneamente più motori di riconoscimento, decidendo carattere per carattere quale è il dato più attendibile con una tecnica chiamata di riconciliazione dei risultati.

Tale sistema ha il vantaggio di poter ridurre drasticamente la quantità di errori di interpretazione, ma ha lo svantaggio di aumentare i tempi di elaborazione, la complessità del sistema di lettura ottica e i suoi costi.

OCR-A

Il font OCR-A venne ideato nel 1968 dall’ American Type Founders e fu tra i primi set di caratteri adatti al riconoscimento ottico ad aderire ai criteri espressi dall’U.S. Bureau of Standards. La sua struttura è così semplice da poter essere letta da una macchina, tuttavia è leggermente più difficoltosa la lettura con occhio umano. OCR-A è conforme allo standard X-3.17-1981 (size I) fissato dall’American National Standards Institute (ANSI) nel 1981. La stessa struttura è anche specificata dallo standard tedesco DIN 66008. 

La misura di stampa del font è 12 punti, la densità di stampa è pari a 10 cpi.

Spesso il font OCR-A è utilizzato per stampare in chiaro il contenuto di codici a barre, proprio come nelle fustelle dei farmaci e nelle ricette mediche. Oltre alle cifre da 0 a 9, il font OCR-A prevede anche 3 simboli speciali, chiamati hook (gancio), fork (forchetta) e chair (sedia).

Un normale motore di riconoscimento OCR non riesce a riconoscere correttamente questa tipologia di caratteri, per cui viene utilizzata una tecnologia di riconoscimento apposita che, lavorando con quest’unico font, ha il vantaggio di essere estremamente affidabile.


Un esempio di codeline OCR-A

OCR-B

Il font OCR-B venne progettato nel 1968 da Adrian Frutiger per Monotype. La sua struttura consente di superare i limiti della lettura ottica rispetto ai font standard, ma per l’occhio umano è più facile da leggere rispetto all’OCR-A. L’OCR-B è conforme allo standard ISO 1073/II-1976 (E), corretto nel 1979 (“letterpress” design, size I). 

La misura di stampa del font è 12 punti, la densità di stampa è pari a 10 cpi. 

Spesso il font OCR-B è utilizzato in ambito bancario e postale per stampare righe di dati, comunemente dette codeline, su documenti di pagamento così che la loro successiva lettura ottica risulti più accurata.

Sebbene alcuni motori di riconoscimento OCR omnifont riescano a riconoscere correttamente questo tipo di carattere, utilizzando un motore di riconoscimento OCR-B specifico si riesce ad ottenere una maggiore accuratezza ed a tollerare eventuale sporco ed occlusioni.


Un esempio di codeline OCR-B presente su un bollettino postale

OMR

Tra le varie tecnologie di lettura ottica, l’OMR (Optical Mark Recognition), cioè la lettura ottica delle marcature, può sembrare la più banale, semplice da implementare e scontata nei risultati. L’esperienza tuttavia insegna che per ottenere risultati eccellenti bisogna tenere nella giusta considerazione tutta una serie di aspetti che sovente possono non essere di immediata percezione. 

L’OMR essenzialmente consiste nel determinare se una casellina è vuota oppure è piena, definendo così un output duale che può essere costituito da un “1” oppure da uno “0”. La sequenza di valori binari ottenuta dalla lettura può essere poi ricombinata per ottenere altri valori composti, in base al significato che si è dato alle caselle. Per la sua elevata efficienza rispetto ad altre tecnologie di lettura ottica per segni manoscritti, come il ben più complesso ICR, la si preferisce in tutte quelle circostanze in cui può risolvere egregiamente la problematica di acquisizione dati. 

Un classico esempio d’uso molto comune è rappresentato dalla giocata di una schedina del Totocalcio, del Lotto o del Super Enalotto: annerendo sulla scheda alcune caselline rappresentanti i numeri che desideriamo mettere in gioco, otteniamo che quando il supporto cartaceo è inserito nel terminale di gioco viene automaticamente registrata la giocata e stampata la ricevuta con le nostre scelte “in chiaro”. L’utilizzo della tecnologia OMR è nato parecchie decine di anni fa, con la disponibilità di appositi dispositivi hardware, i così detti “lettori ottici”, in grado di processare automaticamente della modulistica opportunamente predisposta, misurando la riflettività della luce sulla superficie del foglio in posizioni predeterminate. 

Nel lontano 1938 fu presentato da IBM il primo dispositivo dotato di tecnologia OMR, chiamato Type 805 Test Scoring Machine, dedicato appunto alla lettura ottica dei test a scelta multipla in ambito didattico, in grado di avere una produttività 10 volte maggiore rispetto alla verifica manuale. 


Il Type 805 Test Scoring Machine fu prodotto nel 1938 da IBM: è stato il primo dispositivo OMR elettromeccanico.


Gli attuali lettori ottici sono dotati di un array di sensori fotoelettrici, equidistanti, sul quale è fatto scorrere meccanicamente il foglio da processare. Il modulo deve essere quindi predisposto opportunamente così che le caselle, stampate con un colore specifico, si trovino nella posizione esatta su cui si trovano tali sensori, ed inoltre bisogna prevedere sul bordo del foglio, per ogni riga da leggere, un frame di sincronizzazione, una specie di casella nera, che indichi appunto quando devono essere attivati i sensori per eseguire il campionamento. E’ evidente quindi che l’utilizzo di un sistema hardware ha tutta una serie di limitazioni intrinseche difficilmente superabili.

Oggi le soluzioni prettamente hardware, sebbene ancora in uso in ambiti circoscritti, sono state soppiantante da soluzioni software, estremamente più flessibili, che utilizzano normali scanner documentali per acquisire la modulistica, operando poi il riconoscimento direttamente sull’immagine digitale ed ottenendo una produttività anche di centinaia di volte maggiore rispetto all’operatività manuale.

Nella tecnologia OMR è fondamentale la modalità con cui è discriminata una casella annerita da una vuota. Lavorando su un’immagine digitale, solitamente binarizzata, l’usuale discriminante utilizzata per valutare se una casella è piena, oppure vuota, è rappresentata dal rapporto tra pixel neri e pixel bianchi nell’area coperta dalla casella: selezionando opportunamente una soglia si potrebbe definire se una casella è piena oppure se è vuota. Nella pratica tuttavia accade che chi compili un modulo spesso invece di annerire e riempire completamente le caselle che intende selezionare, si limiti a marcarle con un segno di spunta, a barrarle, ad imporvi una X.


Utilizzando come discriminante soltanto la quantità di nero presente nella casella, si corre il rischio di identificare come vuole caselle che hanno solo un segno di spunta e di identificare come piene caselle che contengono solo punti spuri.


Ciò può comportare quindi che la percentuale di pixel neri si trovi al di sotto di quella minima stabilita necessaria a considerare la casella come piena ed il sistema quindi riporta la casella come vuota, anche se in realtà è biffata. 

La soluzione adottata nella maggior parte dei casi è di utilizzare una soglia molto bassa, ma così facendo si corre il rischio che piccoli segni dovuti a ditate, sporco e macchie possano far ottenere il risultato opposto, cioè riportare come piena una casella che in realtà è vuota. Un’eccellente soluzione a questo problema è stata sviluppata da Recogniform Technologies e implementata nei propri prodotti di lettura ottica: oltre a calcolare la percentuale di pixel neri, è calcolata anche la dimensione del tratto di inchiostro presente nella casella, così da poter utilizzare una doppia soglia.


Un motore di riconoscimento OMR evoluto, grazie all’utilizzo della soglia di riempimento inchiostro e della soglia di estensione segno, consente una perfetta discriminazione tra caselle piene e vuote.


Con questa efficace soluzione, la presenza di sporco, cioè di punti neri isolati, può fare aumentare la quantità di pixel neri, ma non la dimensione del tratto scritto, mettendo al riparo da falsi positivi, cioè evita che caselle vuote siano date per piene. Viceversa, la presenza di un segno di spunta sottile, sebbene faccia aumentare di poco la quantità di pixel neri, fa aumentare la dimensione del tratto scritto, mettendo al riparo da falsi negativi, cioè evita che caselle biffate siano date per vuote.

Nel momento in cui non è possibile riconoscere automaticamente con assoluta certezza se una casella è piena oppure se è vuota, ecco che una soluzione software dimostra il suo vantaggio rispetto ad un lettore ottico, avendo la possibilità di poter presentare a video l’immagine e chiedere ad un operatore di confermare o modificare il dato rilevato.

Ma anche qui bisogna prestare la dovuta attenzione poiché di solito i moduli progettati per lettura automatica mediante OMR hanno le caselle disegnate con inchiostro cieco, cioè con un colore che è filtrato durante la fase di scansione (di solito rosso o verde chiaro), e che sull’immagine diventa quindi bianco.

In una immagine di questo tipo presentata sullo schermo, si vedrebbero soltanto le scritte di chi ha compilato il foglio come se fossero state apposte su una pagina bianca: senza avere quindi il riferimento della fincatura potrebbe essere difficile fare controlli sulla corretta interpretazione da parte del sistema di lettura.

Per ovviare a questo problema sono diverse le strade percorribili. Una prima soluzione può essere quella di acquisire il modulo a colori ed effettuare direttamente sull’immagine, via software, il filtraggio del colore della fincatura, solo durante l’elaborazione. Una seconda soluzione può essere quella di acquisire il modulo senza filtro colore, per cui la fincatura sarà visibile con il medesimo colore nero dai tratti apposti da chi ha riempito il modulo: in questo caso il sistema OMR deve tenere in considerazione anche la quantità di pixel neri presenti nelle caselle vuote che non risulterebbero totalmente bianche. Una terza soluzione può essere quella di acquisire il modulo filtrato, ma di ricostruirlo a video come se fosse stato acquisito non filtrato oppure addirittura a colori, utilizzando una tecnica di overlay, cioè di sovrapposizione di immagini.

Poiché ciascuna di queste soluzioni ha i propri vantaggi, alcuni sistemi di lettura ottica evoluti consentono all’utente di scegliere quale utilizzare a seconda dei casi e delle necessità.

Su un modulo acquisito filtrando il colore con cui sono disegnate le caselle è più agevole effettuare il riconoscimento, ma è complicato effettuare una eventuale verifica o correzione manuale dei dati (immagine a sinistra). Sul medesimo modulo sul quale è stato impresso in overlay un modulo vuoto non filtrato, una eventuale verifica o correzione manuale dei dati risulta molto più agevole eseguire (immagine a destra).

PDF & PDF-A

Il formato file PDF (Portable Document Format) consente di memorizzare documenti di ogni tipo grazie ad un vero e proprio linguaggio di descrizione della pagina simile al Postscript, utilizzato nei sistemi di stampa tipografici. Grazie alla ricchezza e flessibilità di questo linguaggio, un documento PDF può anche contenere dei riferimenti a font esterni, degli script da eseguirsi nel momento del suo rendering, dei collegamenti ad altri file, dei contenuti multimediali o dei contenuti crittografati. Tutto ciò ovviamente potrebbe non garantire la possibilità di visualizzare un documento allo stesso identico modo su sistemi diversi, da utenti diversi o in tempi diversi.

Per risolvere quindi la problematica dell’archiviazione dei documenti a lungo termine da questo formato è derivato un sotto-formato, battezzato PDF/A, dove la “A” sta appunto per Archiving (Archiviazione), per far riferimento alla conservazione del documento per lunghi periodi di tempo. 

Il PDF/A sebbene conservi molti dei vantaggi del PDF è stato concepito per essere un formato auto-consistente, che può essere appunto visualizzato allo stesso identico modo in ogni circostanza. Ciò comporta, in breve, che tutti i font utilizzati devono essere contenuti nel file, che non vi possono essere contenuti multimediali, che non può contenere script o codice eseguibile, che lo spazio colore utilizzato deve essere specificato esplicitamente, che i contenuti non devono essere crittografati, che deve contenere alcuni metadati obbligatori.  

Di fatto quindi un file PDF che segue le regole di cui sopra è conforme allo standard PDF/A. 

Il formato PDF/A è stato normato dalla Industrial Standard Organization, diventando lo standard ISO 19005 ed attualmente prevede due livelli di conformità:

 – PDF/A-1a – Livello A parte 1
 – PDF/A-1b – Livello B parte 1

Il PDF/A-1b si pone come obiettivo di garantire che il documento possa essere riprodotto visivamente in modo affidabile. Il PDF/A-1a oltre ai requisiti di PDF/A-1b include anche la necessità della presenza di informazioni sulla struttura del documento (cosiddetti “tag”, per cui si parla di documento “tagged”) in modo che il suo contenuto possa essere ricercato e visualizzato più agevolmente.

QUALITY CONTROL

La verifica della bontà di un numero cospicuo di immagini acquisite digitalmente, ad esempio nel caso di un collaudo a seguito di outsourcing o a seguito di normali controlli periodici di qualità interni, è un’attività complessa che, se effettuata manualmente, risulta essere molto onerosa. Se da un lato è impensabile attuare una verifica manuale visualizzando una ad una tutte le immagini per constatarne la corretta acquisizione e l’assenza di difetti, l’eventuale verifica a campione non assicura il risultato desiderato sull’intero set di documenti.

A tal proposito è possibile utilizzare opportune tecnologie di image processing in grado di analizzare automaticamente le immagini e produrre un report dei difetti riscontrati su immagini “non conformi”, che saranno quindi sottoposte a verifica, correzione o, in casi estremi, ad una nuova acquisizione.

I difetti riscontrabili automaticamente via software includono:

 – non leggibilità del file;
 – inclinazione eccessiva;
 – orientamento errato;
 – presenza di bordi neri;
 – presenza di sporco;
 – basso contrasto;
 – eccessiva o scarsa luminosità;
 – presenza di pieghe agli angoli del documento;
 – presenza di pieghe;
 – presenza di strappi;
 – messa a fuoco errata.


L’utilizzo di algoritmi di Controllo Qualità è largamente utilizzato nelle procedure di automazione in ambito controllo assegni (Check Image Quality and Usability ).

REDACTION

La tecnologia di redaction consiste nel nascondere o rimuovere alcune informazioni contenute in un documento digitale sovrapponendovi un’area scura, in modo che la struttura del documento resti comunque visibile così come restino identificabili le aree “redacted”, ossia sottoposte a censura.

L’utilità di questa operazione sta nel fatto che si possono oscurare informazioni sensibili e riservate su un documento digitalizzato, prima di mostrarlo all’operatore (quindi temporaneamente), o prima di distribuirlo a terzi (quindi permanentemente).

L’utilizzo di queste funzionalità è particolarmente apprezzato in presenza di lavorazioni relative a documenti contenenti dati sensibili: tramite le funzionalità di oscuramento messe a disposizione dalle soluzioni professionali di lettura ottica, è possibile far sì che l’operatore veda solo una porzione del documento, in modo da evitare – ad esempio nel caso di cartelle cliniche – qualsiasi correlazione tra i dati anagrafici del paziente e i referti medici; ancora, nel caso di documenti e contabili bancarie, è possibile procedere ad una “anonimizzazione” dei documenti oscurando i dati anagrafici in essi contenuti.


Esempio di “anonimizzazione” del documento: i dati sensibili sono automaticamente identificati e oscurati.

SCANNER

Qualora i documenti da sottoporre a lettura ottica siano disponibili in formato cartaceo, è necessario procederne alla digitalizzazione mediante scanner. Esistono in commercio numerosi modelli di scanner documentali utilizzabili per applicazioni di lettura ottica; la scelta dell’hardware più adatto è funzione della numerosità e delle caratteristiche dei documenti da elaborare, nonché delle esigenze operative del progetto, come ad esempio l’esistenza di eventuali SLA (Service Level Agreement).

La scelta dello scanner più idoneo alle proprie esigenze deve essere quindi effettuata tenendo conto di molteplici fattori, inerenti sia le caratteristiche intrinseche dell’hardware, sia le esigenze specifiche del progetto. In particolare:


Scanner

 – massima dimensione del formato di acquisizione
 – scansione solo fronte o fronte/retro
 – velocità di acquisizione (espressa in ppm/ipm: pagine al minuto / immagini al minuto)
 – presenza e capacità dell’alimentatore automatico di fogli (ADF)
 – tipologia di interfacciamento al PC (driver)
 – profondità di colore gestibile (colori, scala di grigi, bianco e nero)
 – carico di lavoro giornaliero sopportabile (duty cicle)
 – modalità/tempi di erogazione eventuale assistenza tecnica
 – reperibilità sul mercato dei componenti consumabili
 – possibilità di estensione della garanzia
 – prezzo


Progetto

 – numero di documenti da acquisire su base giornaliera
 – tempo a disposizione per la fase di scansione
 – modalità di ricezione dei documenti
 – numero di operatori da dedicare all’attività


Ad esempio, l’attività di scansione di un congruo numero di questionari da effettuarsi al termine di un concorso o di una prova d’esame, richiederà uno scanner molto veloce e dotato di un ADF capiente, così da minimizzare il tempo richiesto per la fase di digitalizzazione; al contrario, l’elaborazione di moduli richiesta carta fedeltà ricevuti in plichi differenziati per punto vendita, potrebbe rendere conveniente usare più scanner in parallelo con ADF di capacità ridotta, in quanto la scansione deve comunque avvenire per singolo plico/busta.



Lettori ottici e scanner

Talvolta gli scanner documentali sono chiamati anche “lettori ottici”, sebbene si tratti in realtà di dispositivi completamente diversi. Un lettore ottico, sebbene possa ricordare nell’aspetto uno scanner documentale, consente di effettuare la sola lettura ottica di codici a barre e check-box in posizioni predefinite, con una pressoché nulla tolleranza ad eventuali difformità di stampa e senza possibilità di gestire casi “dubbi”; al contrario, l’abbinamento di un software di lettura ottica e uno scanner documentale non solo consente di  acquisire anche dati di diversa natura (stampati o manoscritti) ma anche di gestire in automatico eventuali criticità di stampa (ridimensionamento, allineamento, etc.), oltre a definire in modo preciso il comportamento da avere in presenza di casi “dubbi”.

I lettori ottici erano molto usati in passato per la lettura ottica di moduli di test e quiz, ma sono ormai ritenuti obsoleti data la flessibilità delle soluzioni di lettura ottica software; tuttavia il loro utilizzo è ancora diffuso in alcuni ambiti specifici (ad esempio per la lettura ottica delle schedine di Lotto, Superenalotto, Totocalcio).

A sinistra un lettore OMR di qualche anno fa; a destra, un moderno scanner documentale.

TWAIN & ISIS SCANNING

Parecchi anni addietro, con l’introduzione di scanner, webcam, macchine fotografiche digitali ed altri dispositivi di acquisizione immagini, tra i produttori di software è scaturito un bisogno di consistenza e semplificazione così da poter interfacciarsi a tali dispositivi senza dover ogni volta studiare l’hardware specifico ed interfacciarlo direttamente alle proprie applicazioni.

Per soddisfare quest’esigenza, nell’ormai lontano 1991, alcune aziende produttrici di hardware e software si sono riunite in un gruppo di lavoro ed hanno creato un protocollo standard ed una API (Application Programming Interface) per consentire la comunicazione tra applicazioni software e dispositivi hardware di acquisizione immagini.

Questo standard ha preso il nome di TWAIN, acronimo di Toolkit Without An Interesting Name (letteralmente “attrezzatura senza un nome interessante”).

Uno scanner provvisto di un driver TWAIN è quindi compatibile con questo standard e quindi con tutte le applicazioni software che lo supportano; parimenti, un’applicazione che supporta lo standard TWAIN può interfacciarsi con tutti i dispositivi che hanno un driver compatibile.

Una caratteristica dei driver TWAIN è la disponibilità di un’interfaccia grafica attraverso la quale l’utente può modificare le impostazioni di acquisizione, quali risoluzione, dimensioni, modalità, luminosità, contrasto e tutti gli altri parametri specifici supportati.

Nel tempo, alla luce dell’evoluzione dell’hardware e l’avvento di sofisticate schede di compressione attraverso cui pilotare gli scanner di produzione, lo standard TWAIN ha cominciato a dare segni di inadeguatezza, non risultando abbastanza aggiornato per poter sfruttare alcune nuove caratteristiche messe a disposizione dagli scanner documentali come la compressione on-board, la lettura di patch-code, la gestione dell’endorser, etc…

E’ quindi stato introdotto un nuovo standard, chiamato ISIS (acronimo di Image and Scanner Interface Specification) che, al contrario di quello TWAIN è stato disegnato da un’unica azienda privata, la Pixel Translations, che ha contestualmente immesso sul mercato tutta una serie di driver specifici per la maggior parte degli scanner in commercio ed un toolkit per gli sviluppatori software. Tale standard inizialmente ha preso velocemente piede perché effettivamente risultava più performante e più flessibile dell’altro.

Tuttavia con il passare del tempo, con la revisione e l’introduzione di nuove versioni dello standard TWAIN, il gap di performance e flessibilità è del tutto sparito, rendendo del tutto equivalenti ed interscambiabili le due tecnologie.

Oggi è preferibile utilizzare lo standard TWAIN, che è completamente gratuito: l’utilizzo dello standard ISIS è infatti soggetto al pagamento di royalty sia da parte dei produttori di software che da parte dei produttori di hardware.

WATERMARKING

La tecnologia di watermarking consiste nell’aggiunta di una filigrana ad un’immagine digitale, ove per filigrana si intende un qualunque testo o immagine visibile in trasparenza.

L’utilità di questa operazione sta nel fatto che un documento resta leggibile ed utilizzabile seppure marcato in modo irreversibile al fine di rivendicarne il copyright, ed evitarne la distribuzione non autorizzata.

Un ulteriore possibile utilizzo del watermark è l’opportunità di stampare un PROTOCOLLO sull’immagine del documento elaborato, magari inserendo informazioni ricavate dall’elaborazione OCR del documento stesso o da elementi esterni: ad esempio, si potrebbe apporre in una zona del documento i dati relativi a data di scansione, mittente, riferimenti del plico in cui il documento è fisicamente archiviato (es. “20210918_PV001_BOX00785”). 


Esempio di applicazione di un watermark su un’immagine a colori (prima/dopo)