Posizionamento
· 7 min di lettura

Perché nessuno ha creato uno strumento per chi ha la scansione

Circa 2.800 download a settimana. È tutto quello che pesa, nel mondo intero, lo strumento libero più noto per togliere i dati personali da un'immagine, stando all'indice dei pacchetti di Snyk. Non al mese. Alla settimana. Mettete quella cifra accanto alla quantità di contratti scansionati, fotocopie di carte d'identità e moduli di consenso firmati che in questo momento dormono negli archivi di uno studio italiano, e non state guardando un ritardo tecnologico. State guardando un mercato che ha già scelto il proprio cliente, e quel cliente non è chi ha il documento in mano.

Il presupposto dell'estrazione

Aprite la documentazione di un qualsiasi strumento stimato e guardate la prima chiamata di funzione. Si aspetta una stringa. Voi consegnate testo, lei restituisce posizioni — i caratteri dal 40 al 51 sono un nome. È un'interfaccia pulita e onesta, e per il lavoro a cui è destinata è quella giusta.

Ma guardate che cosa dà per scontato. Dà per scontato che il testo esista già. Qualcuno, da qualche parte, ha già trasformato la pagina in caratteri. Chiamiamolo il presupposto dell'estrazione: l'intera categoria parte un passo dopo la parte più difficile del lavoro, e non dice mai ad alta voce a chi tocchi quel passo.

Per uno sviluppatore va benissimo, perché lo sviluppatore è quel qualcuno. Ha una colonna di database, un registro di chat, un campo JSON. Il testo è il terreno in cui il suo problema già vive. Per chi ha in mano un PDF scansionato, il presupposto è l'intero problema, e gli è stato assegnato in silenzio.

L'indizio sta nelle istruzioni di installazione

Presidio — lo standard di fatto, nato in Microsoft e oggi governato dalla sua comunità — un modulo per le immagini ce l'ha, ed è fatto bene. Leggete come si mette in funzione: installate il pacchetto Python, poi installate separatamente Tesseract OCR per il vostro sistema operativo, in una versione recente; la documentazione cita prove con la v5.2.0. La variante per l'imaging medico aggiunge un altro avvertimento: oscura i pixel, ma non ripulisce i dati personali che possono restare nei metadati del file.

Ognuna di quelle frasi è utile a un ingegnere. Nessuna è leggibile per una responsabile del personale con quaranta contratti di lavoro scansionati sulla scrivania. Non è un difetto di documentazione. È una dichiarazione su chi sia il destinatario del prodotto, ed è onesta.

I grandi fornitori cloud fanno lo stesso, con più fatturato attaccato: vi venderanno il riconoscimento del testo come un servizio e il riconoscimento delle entità come un altro, lasciando a voi il cablaggio in mezzo. Due prodotti, un progetto di integrazione, una fattura. Il lavoro di assemblaggio, che è esattamente il punto in cui gli errori accadono davvero, è per costruzione un problema del cliente.

La risposta di chi domina il mercato: la parte difficile fatela voi

Adobe Acrobat è il posto in cui la maggior parte delle persone ci prova sul serio, e la sua risposta sta in due tempi: prima lanciate il riconoscimento del testo sul documento scansionato, poi usate Cerca e oscura. Detto altrimenti: l'estrazione fatela voi, dopodiché subentriamo noi. Lo stesso presupposto, stavolta con una persona piazzata nella giuntura.

È in quella giuntura che vivono le richieste di assistenza. Il riconoscimento fallisce senza rumore su un fax poco contrastato. La ricerca trova undici nomi su quattordici perché il dodicesimo è stato letto con una legatura spezzata. In nessun momento qualcosa segnala un errore. Vi si chiede di essere il controllo qualità di un procedimento che non vi è mai stato mostrato.

Abbiamo fatto lo stesso presupposto. Il nostro era peggio.

Mi piacerebbe scrivere questo pezzo da critico esterno. Non posso: anche noi abbiamo spedito il presupposto dell'estrazione, in tre punti distinti, e ce ne siamo accorti solo andando a misurare.

La nostra catena di rilevamento doveva decidere se valesse la pena leggere una pagina come immagine, e faceva la domanda sbagliata — «c'è qui un'immagine grande?» — usando la superficie come indizio di importanza. Il nome di un'azienda nella fascia di carta intestata occupa circa mezzo punto percentuale di un foglio A4. Passava liscio. La dimensione non è mai stata la domanda. La domanda è se ci sia del testo disegnato sopra l'immagine: testo sopra vuol dire filigrana o sfondo, assenza di testo sopra vuol dire che l'estrazione lì è cieca, qualunque sia la dimensione.

Peggio ancora: la funzione incaricata di controllare se una pagina contenesse immagini incorporate chiamava un metodo che la nostra libreria PDF non possedeva. L'errore veniva ingoiato a livello di debug. Rispondeva «qui non ci sono immagini» da tutto il tempo in cui quella dipendenza è rimasta fissata, anche su una pagina composta per il 65 % da immagine. Un falso silenzioso è indistinguibile da una risposta corretta, ed è esattamente così che è sopravvissuto.

E quando qualcuno tracciava a mano un rettangolo di oscuramento sopra una carta intestata scansionata, il nostro editor leggeva il livello di testo della pagina, non trovava nulla dentro il rettangolo e non catturava nulla. La persona indicava proprio la cosa che più voleva far sparire, e noi non la rimuovevamo, in silenzio. Su una pagina che avevamo appena letto, prima di buttarne via le parole.

Tre bug, una sola causa profonda, ed è la stessa del mercato: siamo andati a cercare il testo trattando l'immagine come il passo di qualcun altro.

Chi paga la svista silenziosa

Uno strumento che va in crash è fastidioso. Uno strumento che dichiara «nessun dato personale trovato» su una pagina piena di nomi è un'altra cosa: non fallisce, rilascia un certificato di buona salute e sposta la responsabilità su qualcuno che non ha modo di verificarla.

Pensate a chi custodisce davvero documenti scansionati. Non il team di piattaforma di una grande banca: lì ci sono ingegneri, e il testo ce l'hanno già. Sono lo studio di due avvocati, l'ambulatorio che digitalizza i moduli di accettazione, l'assistente sociale con la fotocopia di una carta d'identità, la responsabile del personale con le lettere di assunzione firmate. I documenti a forma di immagine sono, in modo sproporzionato, quelli sensibili, e chi li tiene è altrettanto sproporzionatamente incapace di scrivere l'integrazione che l'intero mercato degli strumenti dà per scontata.

Sono anche quelli che assorbono peggio le conseguenze. L'ingegnere che cabla male una catena di oscuramento apre un ticket. La persona la cui fotocopia del documento è uscita in chiaro si rivolge al Garante, e in base al GDPR la violazione va notificata entro 72 ore.

Che cosa cambia costruendo per l'altro cliente

Cambia l'ingresso. L'unità di lavoro diventa la pagina così com'è, immagine compresa, e non una stringa che qualcun altro avrebbe dovuto produrre.

In concreto: il riconoscimento del testo non è un passo preliminare che l'utente lancia, sta dentro la catena. Un rettangolo tracciato a mano che non cattura parole torna a rileggere la propria pagina, così che una correzione manuale non possa mai restare senza effetto. I nomi rilevati diventano rettangoli dipinti sui pixel, e sotto viene ricostruito un livello di testo ricercabile perché il file resti utilizzabile. Se volete la meccanica invece dell'argomento, l'abbiamo raccontata in come oscurare PDF e immagini scansionati.

Niente di tutto questo è più ingegnoso di quanto hanno costruito gli autori di Presidio. Sono gli stessi pezzi, disposti per qualcuno che non avrebbe mai aperto un terminale. E gira sulla macchina dove il documento già si trova, cosa che, per la copia di un passaporto, non è una preferenza.

Domande frequenti

Perché gli strumenti per oscurare non vedono il testo dentro le immagini?

Perché la maggior parte non guarda mai l'immagine. Il loro punto di ingresso accetta testo, quindi una pagina scansionata arriva senza nulla da cercare ed esce con «nessun risultato», in silenzio. L'immagine va trattata come l'ingresso, non come un passo che l'utente esegue prima.

Non è esattamente a questo che serve il modulo immagini di Presidio?

Sì, e funziona. È anche un pacchetto Python che si aspetta che siate voi a installare un motore di riconoscimento del testo: richiesta ragionevole per uno sviluppatore, impossibile per la maggior parte di chi ha scansioni in archivio. Dove il suo motore testuale va bene e dove no lo abbiamo scritto in perché abbiamo costruito il nostro motore invece di distribuire Presidio.

Perché l'elaborazione locale conta di più con i documenti scansionati?

Perché le scansioni pendono verso il sensibile: documenti d'identità, cartelle cliniche, accordi firmati. Mandarle a un servizio perché ne tolga i segreti significa che i segreti arrivano prima a quel servizio, che è il rischio che correte quando è il documento stesso la cosa sensibile.

In sintesi

Se oscurare un PDF pieno di immagini è ancora così difficile non è perché il problema sia irrisolto. Ogni pezzo esiste da anni. È che i pezzi sono stati progettati e prezzati per sviluppatori che lavorano su flussi di testo, e l'assemblaggio, la parte costosa e fragile, è stato lasciato a chiunque si trovasse il file in mano.

La maggior parte di loro non sono sviluppatori. È qualcuno a uno sportello, che fa la copia di un documento appena porto da uno sconosciuto perché aveva bisogno di qualcosa: un lavoro, una cura, una casa. Quella persona non ha acconsentito a una catena di elaborazione. Ha acconsentito a che un ufficio, in un pomeriggio, avesse cura di un foglio di carta che parla di lei. Quello che costruiamo dovrebbe rendere quella cura la regola, e non qualcosa da meritarsi essendo abbastanza tecnici.

promptShield esegue riconoscimento del testo, rilevamento e oscuramento di PDF e immagini scansionati sulla vostra macchina: nessun pacchetto da installare, nessun passaggio di riconoscimento da lanciare prima e nulla che venga caricato altrove. Provatelo sulla scansione che il vostro strumento attuale dichiara pulita.

Ti è stato utile? Faccelo sapere.

Condividi