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.
"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.