Lettura ottica, riconoscimento caratteri ICR OCR OMR BCR CHR, elaborazione immagini, lettura ottica moduli, indicizzazione documenti, estrazione automatica dati Lettura ottica, riconoscimento caratteri ICR OCR OMR BCR CHR, elaborazione immagini, lettura ottica moduli, indicizzazione documenti, estrazione automatica dati
Guida alla scelta del software di lettura ottica

Guida alla scelta di una soluzione di lettura ottica

Sul mercato l'offerta di sistemi di lettura ottica oggi è molto ampia. Software house italiane e straniere propongono applicativi di tipo verticale o general purpose, ciascuno dotato di proprie caratteristiche e peculiarità che lo rendono più o meno appetibile. Sebbene le attività svolte da tali sistemi si possano solitamente suddividere in acquisizione dei documenti, riconoscimento, correzione ed output dei dati, non tutti i sistemi lavorano allo stesso modo e non tutti hanno le stesse prestazioni. Inoltre anche il range di prezzi è molto ampio e può contribuire a confondere maggiormente le idee. Cerchiamo quindi di capire come è possibile orientarsi tra le caratteristiche e le funzionalità di questi sistemi per poterli valutare e scegliere nel modo migliore.

"Non è tutto oro ciò che luccica" - IL RECOGNITION RATE

Può venire spontaneo innanzitutto chiedersi quanto bene legga un certo sistema. La percentuale di dati riconosciuti correttamente dal sottosistema di riconoscimento, il recognition rate, a prima vista infatti potrebbe essere un valido discriminante. Purtroppo però, chiunque affermi che il proprio sistema legga all'"X" percento non fornisce una informazione affidabile, o meglio non fornisce un dato assoluto comparabile con altri. Ad esempio se due vendor affermano entrambi che il proprio sistema di lettura ottica ha un recognition rate del 99%, potrebbe essere certamente vero che ciascuno su un proprio campione di documenti abbia raggiunto quel risultato, ma non è detto che i due sistemi offriranno le medesime prestazioni sui propri documenti. Infatti ciascun vendor avrà utilizzato un campione diverso dall'altro per determinare la stima, quindi i due numeri non possono essere comparabili né ovviamente possono dare alcuna futura garanzia! L'unico modo per utilizzare il recognition rate come feature di comparazione potrebbe essere quello di eseguire un test sul medesimo campione di documenti, ma anche in questo caso ci sono ulteriori implicazioni da tener presente.

Immaginiamo che, facendo processare il medesimo campione a due sistemi diversi, su uno si abbia un recognition rate del 95% e su un altro del 90%. A prima vista il primo sistema potrebbe sembrare migliore del secondo, ma nella realtà potrebbe non essere così. Infatti dovremmo utilizzare anche un'altra misura, che possiamo chiamare il false positive rate, che è la percentuale dei dati letti male, ma considerati buoni. Infatti ogni volta che un dato viene letto, gli viene attribuito una confidenza di lettura che indica quanto il sistema è certo di averlo letto correttamente, ed in base ad una soglia su questo valore, si può stabilire se il dato necessita di validazione da parte di un operatore oppure no. Supponiamo che il primo sistema, quello con un recognition rate del 95%, attribuisca una elevata confidenza di lettura al 100% dei dati, per cui non si "accorga" che il 5% dei dati è errato, mentre il secondo attribuisca una elevata confidenza di lettura solo al 90% dei dati (quelli effettivamente corretti), per cui si accorga che il 10% dei dati è errato. E' chiaro che in questa situazione sarebbe da preferirsi quello apparentemente a più basse prestazioni, ma che riesce ad avere consapevolezza di quando legge male!

Di solito inoltre il recognition rate lo si calcola sui singoli caratteri, mentre le entità che noi andiamo a leggere sono i campi, costituiti da sequenze di caratteri. Se dobbiamo sottoporre a lettura ottica un modulo che ha 10 campi di 20 caratteri ciascuno e se il recognition rate risulta del 95% significa che il sistema dei 200 caratteri ne ha letti correttamente 180, mentre i restanti non è riuscito a leggerli. Se i 20 caratteri non letti stanno tutti nel medesimo campo, significa che 9 campi su 10 non necessitano di correzione, per cui il recognition rate sui campi risulterebbe del 90%. Viceversa se almeno un carattere non riconosciuto capita in ciascuno dei campi significa che tutti e 10 i campi necessitano di correzione, per cui il recognition rate sui campi risulterebbe dello 0% !

"Prima o poi i nodi vengono al pettine" - VALIDAZIONE E CORREZIONE DEI DATI

Un buon sistema di lettura ottica deve garantire la possibilità di effettuare la validazione dei dati riconosciuti dal sottosistema OCR/ICR/CHR qualora si disponga di tabelle di lookup in cui verificarne la presenza. Ad esempio, supponendo di leggere un indirizzo completo, la via, la città, il CAP, il comune e la provincia potrebbero essere validati automaticamente in un apposito database per avere la certezza che siano stati riconosciuti perfettamente, operando magari una cross-validation ed una eventuale auto-correzione per reperire il dato più simile presente nel database qualora quello letto non risulti identico (es. "70124 TOBIHO TD" -> "10124 TORINO TO"). In tal modo l'operatore in fase di correzione può semplicemente confermare la correzione senza necessità di digitare alcunché.

Allo stesso modo dovrebbe essere possibile effettuare l'auto validazione formale di date, importi, codici ed altri dati attesi con una formattazione specifica e nota: si dovrebbe poter ricorrere non solo a comuni routine di verifica già pre-impostate (ad esempio per codice fiscale, per partita iva, etc. ), ma anche avere la possibilità di implementare delle routine specifiche personalizzate.

Una valida soluzione dovrebbe dunque avere una interfaccia utente ottimizzata per poter confrontare agevolmente quanto riconosciuto con quanto effettivamente scritto sul documento: infatti quanto migliore sarà l'ergonomia e la funzionalità dell'interfaccia, tanto minore sarà il tempo/uomo da dedicare alla fase di validazione e correzione dei dati.

"A ciascuno il suo" - PECULIARITA' SPECIFICHE

Un sistema di lettura ottica può diventare più appetibile rispetto ad un altro anche facendo una valutazione attenta delle peculiarità specifiche che possiede, relazionate ovviamente alle proprie esigenze.

Per una multinazionale, ad esempio, potrebbe essere interessante un sistema che disponga di interfaccia utente e documentazione anche in lingua inglese, oltre che in lingua italiana, cosi da permettere l'adozione della medesima tecnologia a tutta l'azienda.

L'utilizzo di un motore di riconoscimento ICR addestrato specificamente per lo stile di scrittura italiano dovrebbe essere un requisito indispensabile se si devono processare dei moduli con dati manoscritti riempiti principalmente sul nostro territorio: infatti come è noto lo stile di scrittura italiano è sufficientemente diverso da quello d'oltreoceano (si, pensi ad esempio ai numeri 1, 4, 7, etc.) e le prestazioni di riconoscimento possono essere fortemente penalizzate non utilizzando lo strumento giusto.

Un centro servizi dovrebbe poter avere un sistema che consenta di tenere sotto controllo la produttività dei singoli operatori e di poter stilare automaticamente statistiche di ogni tipo e su ogni base: ad esempio per un certo tipo di modulo si dovrebbe sapere la quantità lavorata in un certo giorno, la percentuale di dati riconosciuti/sospetti/corretti, il tempo/uomo speso per la correzione, etc.

Per essere realmente efficace su moduli non specificamente progettati per la lettura ottica, un sistema dovrebbe possedere delle funzionalità apposite, come ad esempio la possibilità di allineamento del form anche senza l'utilizzo di markers prestampati e la possibilità di rimozione della fincatura nera prestampata.

Viceversa, dovendo trattare documenti progettati per la lettura ottica, con fincatura colorata filtrata dallo scanner, potrebbe essere molto utile la possibilità di visualizzare il modulo ricostruito, reintegrato della fincatura, durante la fase di correzione per agevolare l'operatore ad orientarsi tra i campi.

Qualora si debbano trattare documenti contenenti dati sensibili, in cui la privacy è requisito essenziale, può essere indispensabile che il sistema di lettura ottica mantenga le immagini cifrate e che non consenta agli operatori che effettuano la correzione di visionare l'intero modulo, ma soltanto una zona limitata al campo da verificare. Da tempo si parla molto di telelavoro e probabilmente la validazione/correzione di dati, operazione simile al data-entry, può essere una delle attività più facilmente esternalizzabili se il sistema di lettura ottica ha delle funzionalità che consentano di effettuare tale attività da remoto, magari via internet, ovviamente con tutta le garanzie di sicurezza e robustezza richieste.

"Chi fa da se fa per tre" - POSSIBILITA' DI PERSONALIZZAZIONE

Purtroppo non esiste un software in cui è già previsto tutto ciò che si desidera! E' importante quindi che un buon sistema di lettura ottica abbia ampie possibilità di personalizzazione, così che si riesca ad adattarlo alle proprie esigenze col minimo sforzo possibile.

Un primo livello di personalizzazione può avvenire di solito in modo "visuale" modificando tutta una serie di impostazioni e parametri attraverso l'interfaccia utente.

Tuttavia un tipo di personalizzazione più spinta può avvenire soltanto mediante l'uso di linguaggi di scripting o API (Application Programming Interface) che consentano di modificare il comportamento standard dell'applicativo e di ampliarne le funzionalità.

Se ad esempio si desidera un output non standard, con un tracciato record particolare, oppure se si desidera usare delle logiche custom per decidere quali dati debbano andare in correzione e quali no, magari implementando delle particolari routine di auto-validazione dei dati, ecco allora che è indispensabile che sia possibile intervenire senza richiedere l'intervento della software-house che ha sviluppato il prodotto, così da poter essere indipendenti.

"L'appetito vien mangiando" - SCALABILITA' E MODULARITA'

L'esperienza ci insegna che le esigenze possono mutare nel tempo, anche a breve distanza ed anche notevolmente:

  • Oggi si ha la necessità di dover leggere soltanto modulistica strutturata, ma domani potrebbe essere necessario leggere documenti anche non strutturati.
  • Oggi si desidera lavorare documenti che richiedono soltanto la lettura di caselle di marcatura e codici a barre, ma domani potrebbe capitare anche modulistica che richieda la lettura di testo stampato o manoscritto.
  • Oggi un unico server di riconoscimento può essere sufficiente a sostenere la quantità di documenti da processare, ma domani potrebbe non esserlo più.

Per proteggere i propri investimenti è indispensabile quindi scegliere un prodotto che potenzialmente sia in grado di soddisfare anche le esigenze future, ma che sia modulare e scalabile, che consenta cioè di non dover necessariamente acquistare in anticipo funzionalità di cui non se ne ha bisogno immediatamente, ma che potrebbero essere comunque necessarie in futuro.

"Chi più spende meno spende" - POLITICHE DI LICENSING

Le soluzioni di lettura ottica, come succede per la maggior parte delle soluzioni software, sono di solito vendute nella forma di "licenza d'uso" la cui durata può essere "illimitata", cioè si paga una sola volta il software che può essere utilizzato a vita (fermo restando la possibilità di contratti di manutenzione evolutiva ed aggiornamenti), oppure "annuale"/"mensile", cioè ogni tot tempo si paga una fee per poter utilizzare il software, come una sorta di noleggio.

Tuttavia nel caso specifico dei sistemi di lettura ottica è facile trovare anche soluzioni volutamente limitate nelle prestazioni (velocità dei motori di riconoscimento) o nei volumi trattabili (quantità di documenti elaborabili per giorno/mese/anno).

Infatti alcuni vendors offrono soluzioni con velocità dei motori di riconoscimento bloccata a tot caratteri al secondo (CPS), solitamente al fine di ridurre l'impatto del costo del motore di riconoscimento (acquistato da terze parti) sul costo dell'intera soluzione. Ciò può ridurre sensibilmente il costo di una soluzione entry-level, ma può essere penalizzante per soluzioni professionali dove il throughput è importante. Ad esempio una soluzione basata su un motore ICR limitato a 10 CPS, anche se utilizzata su macchine molto performanti, dove una soluzione illimitata in velocità potrebbe agevolmente arrivare 300 CPS, risulterà avere sempre la stessa modesta velocità di riconoscimento e non potrà quindi trarre vantaggio da upgrade ed evoluzioni dell'hardware su cui lavora.

Altri vendors offrono soluzioni limitate nei volumi di documenti trattabili, su base assoluta (es: 100.000 moduli) o temporale (es: 10.000 moduli/anno). Se da una parte può essere interessante beneficiare di un prezzo ridotto quando si ha la necessità di fare lavorazioni "una tantum" o trattare modeste quantità di moduli, dall'altra bisogna ben valutare quanto potrebbe costare gestire un imprevisto aumento delle quantità da trattare, anche temporaneo. Inoltre licenze che prevedono il pagamento di una fee per ogni pagina elaborata (pay per use) possono diventare penalizzanti in caso di lavorazioni in service vista l'impossibilità di realizzare economie di scala.

Ultimo aspetto da considerare, ma non meno importante, è lo schema di licensing per le postazioni di acquisizione e correzione: i sistemi di lettura ottica più evoluti infatti prevedono la possibilità di utilizzare stazioni di acquisizione e stazioni di correzione multiple. Alcune soluzioni prevedono il pagamento di una royalty per ciascuna postazione da utilizzare, altre per pacchetti di postazioni, mentre altre ancora consentono l'utilizzo di una quantità di postazioni illimitate senza alcun costo aggiuntivo. Quest'ultima possibilità si rileva assai utile quando si ha la necessità di gestire dei picchi di lavorazione, potendo liberamente dimensionare l'architettura del sistema in funzione delle risorse umane ed hardware disponibili e delle necessità contingenti.
Guida alla scelta lettura ottica


"Camminare coi piedi di piombo" - IL FORNITORE

Il vendor, cioè il fornitore del sistema di lettura ottica, forse è superfluo dirlo, ma pure dovrebbe essere valutato con molta cura: un prodotto che a prima vista sembra soddisfacente, ma che è mal supportato potrebbe presto farne rimpiangere l'acquisto!

Sicuramente bisognerebbe preferire fornitori specializzati, che abbiano la lettura ottica come loro core business, e che diano le più ampie garanzie sulla manutenzione correttiva ed evolutiva dei prodotti.

Le referenze possono aiutare ad identificare il mercato di riferimento, ma anche a verificare l'affidabilità del fornitore sia in termini di qualità del prodotto sia di qualità del supporto post vendita.

Qualora si scelga un fornitore estero che non abbia una propria sede operativa in Italia è bene tener presente le problematiche che potrebbero scaturire dalla differenza di lingua, dalla differenza di fuso orario e dai costi di trasferta qualora si richiedano interventi on-site.