ai-tools· 8 min di lettura

OCR intelligente: i due sistemi che l'intelligenza artificiale usa per leggere un documento

Di Marco Masut

OCR intelligente è il nome commerciale che si dà a un sistema capace di ricavare dati strutturati da un documento senza che qualcuno gli abbia insegnato in anticipo dove sta ogni campo. La definizione descrive un risultato, non una tecnologia, e sotto quel nome convivono due sistemi costruiti in modo diverso. La differenza non è accademica: decide quanto costa il flusso, dove vanno messi i controlli e che tipo di errori arriveranno in produzione.

Chi compra sente una parola sola e immagina una cosa sola. Chi costruisce deve sapere quale delle due ha davanti, perché i due sistemi sbagliano in modo opposto, e uno dei due errori non si vede.

Cosa vuol dire OCR intelligente, e perché il nome copre due cose

OCR intelligente indica oggi due famiglie tecniche distinte: un motore di riconoscimento ottico che trascrive i caratteri di un'immagine, e un modello visivo che guarda la pagina intera e risponde a una domanda su di essa. Entrambi arrivano a un JSON con i campi compilati, ma ci arrivano per strade che non hanno quasi niente in comune.

Motore OCR classicoModello visivo
Cosa riceveun'immaginela pagina come immagine, più il testo estratto
Cosa restituiscecaratteri e coordinateuna risposta in linguaggio, anche strutturata
Dove girasulla macchina di chi lo installasu un'API, o su un modello ospitato
Come sbagliacaratteri sbagliati, visibilivalori plausibili ma inventati
Cosa costatempo di calcolotoken, per pagina

Il motore OCR classico trascrive la pagina, non la capisce

Tesseract è il motore di riconoscimento ottico open source più diffuso, pubblicato con licenza Apache 2.0 e capace di riconoscere, come scrive il progetto, "more than 100 languages out of the box". La versione 4 ha introdotto un motore neurale basato su LSTM "focused on line recognition", mentre il vecchio motore resta raggiungibile con l'opzione --oem 0; la serie 5 è stabile dal 30 novembre 2021.

Quel motore restituisce testo semplice, hOCR, TSV, ALTO e PAGE, cioè formati che portano con sé la posizione di ogni parola sul foglio. Non sa cosa sia un imponibile: sa che in quel punto della pagina ci sono dei caratteri. La documentazione del progetto è esplicita su cosa determina il risultato: "in many cases, in order to get better OCR results, you'll need to improve the quality of the image you are giving Tesseract".

Come legge una pagina un modello di intelligenza artificiale

Un modello visivo riceve la pagina come immagine e come testo insieme. La documentazione di Anthropic descrive il passaggio senza ambiguità: il sistema converte ogni pagina del documento in un'immagine, e il testo di ogni pagina viene estratto e fornito insieme all'immagine di quella pagina. Il modello quindi non sostituisce il riconoscimento dei caratteri, ci lavora sopra, e usa il disegno della pagina per capire cosa sono quei caratteri.

Da qui vengono i limiti dichiarati per l'API di Claude: 32 MB di dimensione massima della richiesta e 600 pagine per richiesta, che diventano 100 quando la finestra di contesto è sotto il milione di token. Il costo si conta a pagina: sempre secondo la documentazione, il testo pesa tipicamente da 1.500 a 3.000 token per pagina a seconda della densità del contenuto, e a quelli si sommano i token dell'immagine. Chi ha già fatto i conti su un agente sa che è la voce che scappa di mano per prima, e i criteri per tenerla giù sono gli stessi raccontati in come ridurre i token di un agente di coding.

Quanto costa una pagina in token, e perché la risoluzione decide il risultato

La risoluzione dell'immagine decide sia il conto sia la qualità della lettura, e il meccanismo è aritmetico. Claude guarda le immagini a blocchi di 28 per 28 pixel, e un'immagine costa ⌈larghezza / 28⌉ × ⌈altezza / 28⌉ token visivi. Ogni modello ha però un tetto, oltre il quale l'immagine viene ridotta prima di essere elaborata.

FasciaModelliLato lungo massimoToken visivi massimi
Alta risoluzioneClaude 4.7 e successivi2576 px4784
Standardtutti gli altri1568 px1568

Una scansione A4 a 300 DPI misura 2480 per 3508 pixel, quindi supera entrambe le soglie e viene rimpicciolita prima che il modello la veda. È il punto in cui un numero scritto in corpo 8 dentro una tabella smette di essere leggibile, e la documentazione di Anthropic dice cosa succede allora: il modello "might hallucinate or make mistakes when interpreting low-quality, rotated, or very small images under 200 pixels". Non restituisce un errore: restituisce una risposta.

OCR AI o OCR classico: i due errori non pesano allo stesso modo

I due sistemi sbagliano in modo opposto, ed è questa la ragione per cui la scelta conta. Un motore di riconoscimento classico che non ce la fa produce spazzatura visibile: una l al posto di un 1, una parola a metà, una cella vuota. L'errore si vede, si intercetta con un controllo di formato e si manda in revisione.

Un modello visivo che non ce la fa produce invece un numero plausibile, nel campo giusto, con la formattazione giusta. Un totale di 1.240,00 letto come 1.249,00 attraversa qualunque validazione di formato e arriva in contabilità identico a un dato corretto. La documentazione di Anthropic chiude il capitolo sulle immagini con una raccomandazione secca, ed è la stessa che si dovrebbe leggere in ogni preventivo sui documenti: verificare sempre con attenzione le interpretazioni del modello, e non usarlo per compiti che richiedono precisione perfetta senza supervisione umana.

Cosa vuol dire quando il documento è una fattura

Su una fattura la differenza fra i due errori è tutta economica. Un campo illeggibile costa il tempo di chi lo ricontrolla, un campo inventato costa una registrazione sbagliata che qualcuno troverà a fine trimestre. Il primo rallenta il flusso, il secondo lo avvelena, e nessuna percentuale di accuratezza dichiarata da un fornitore distingue i due casi.

Dove mettere i controlli, visto che un errore su due non si vede

Il controllo va messo sui valori, non sul formato, e quattro accorgimenti costano poco e si fanno prima di scrivere il resto del flusso.

  1. Ridimensiona le pagine prima di mandarle, tenendo il lato lungo entro il tetto della fascia del modello, 2576 px in alta risoluzione e 1568 px altrimenti. Ridimensionare a monte è meglio che subire il ridimensionamento automatico, perché permette di ritagliare la zona che conta invece di rimpicciolire tutto.
  2. Manda il PDF, non uno screenshot del PDF. Il testo estratto viaggia insieme all'immagine, e buttarlo via converte un problema di lettura in un problema di indovinare.
  3. Evita la compressione JPEG aggressiva sulle scansioni. La stessa documentazione avverte che una compressione pesante può rendere il testo difficile da leggere, e gli artefatti si sommano a ogni passaggio.
  4. Fai quadrare i numeri fra loro. Imponibile più IVA deve dare il totale, le righe devono sommare all'imponibile, la data deve cadere in un intervallo sensato. Un valore inventato quasi mai rispetta un vincolo aritmetico, ed è l'unico filtro che intercetta l'errore invisibile.

Perché su questo sito il problema non esiste, e cosa insegna

Il blog che state leggendo viene scritto e pubblicato da una routine automatica, e funziona per un motivo banale: gli articoli sono file di testo dentro una cartella, quindi l'ingresso è già pulito. Nessuna di quelle automazioni reggerebbe partendo da venti scansioni storte, ed è la stessa cosa che ho già sostenuto parlando di cosa blocca davvero i progetti AI sui documenti aziendali e di come tradurre un PDF mantenendo l'impaginazione.

L'insegnamento è impopolare ma regge: la leva più forte su un flusso documentale non è scegliere il modello migliore, è migliorare come i documenti entrano. Chiedere al fornitore il file originale invece della carta vale più di qualunque sistema di riconoscimento, e costa una telefonata. Quando il documento arriva comunque fotografato, allora serve il flusso, e conviene deciderne i pezzi con lo stesso metodo usato per confrontare due strumenti di intelligenza artificiale: misurando su un compito proprio, non su una tabella di funzionalità.

Le due domande da sistemare prima di mandare fuori un documento

Restano due domande da sistemare prima di mandare documenti veri a un servizio esterno, e sono di sostanza: per quanto tempo i file restano dove li carichi e chi può leggerli, punto su cui ho raccolto le risposte verificabili in caricare file sull'API di Claude, e se quei documenti possono uscire dall'azienda, che è una decisione di processo prima che tecnica e si affronta insieme a chi si occupa di automazione dei processi con l'intelligenza artificiale. Chi vuole tenere tutto dentro casa trova i conti veri, hardware compreso, in quando un LLM privato conviene davvero.

OCR intelligente, alla fine, non è una tecnologia da comprare. Sono due modi di leggere una pagina con due profili di errore diversi, e il lavoro serio consiste nel sapere quale dei due hai davanti e dove hai messo il controllo che intercetta l'errore che non si vede.

Le fonti primarie di questo articolo sono la documentazione di Anthropic sulle immagini e il repository di Tesseract su GitHub.

Domande frequenti

Un PDF fatto con Word ha bisogno dell'OCR?

No. Un PDF generato da un programma contiene già i caratteri veri, con le coordinate che dicono dove appoggiarli sul foglio, e per ricavarne il testo basta un parser. Il riconoscimento ottico serve soltanto quando dentro il file c'è una fotografia della pagina, cioè una scansione o uno scatto fatto con il telefono. Separare i due casi prima di lavorare i documenti è il modo più semplice per non pagare due volte lo stesso flusso.

Il modello legge i metadati del file, per esempio il tag di rotazione di una foto?

No. La documentazione di Anthropic dichiara che Claude non riceve né interpreta alcun metadato delle immagini che gli vengono passate. Una pagina fotografata storta e raddrizzata solo dal tag di orientamento arriva quindi al modello girata come sta nei pixel, e le immagini ruotate sono proprio uno dei casi in cui la stessa documentazione avverte che il modello può sbagliare. Raddrizzare le pagine prima di inviarle è un passaggio che si programma una volta sola.

Si può fare OCR con l'AI senza far uscire i documenti dall'azienda?

In parte. Un motore classico come Tesseract è pubblicato con licenza Apache 2.0 e gira sulla macchina di chi lo installa, quindi la trascrizione resta in casa. La parte che interpreta il documento invece richiede un modello, e restare in casa anche su quel pezzo significa ospitarne uno: è una scelta che ha costi e limiti suoi, raccontati in dettaglio nell'articolo sugli LLM privati di questo blog.

L'OCR intelligente legge la scrittura a mano?

Dipende dal documento e non esiste una risposta valida per tutti. Sia il riconoscimento classico sia i modelli visivi peggiorano sulle immagini di bassa qualità, storte o con testo molto piccolo, e la scrittura a mano somma spesso tutti e tre i problemi. L'unico modo onesto di saperlo è misurare su venti documenti veri presi fra i peggiori che si hanno, non su un esempio scelto da chi vende.

Continua a leggere

ai-tools

Cos'è un workflow automatizzato, e perché quasi sempre batte un agente di intelligenza artificiale

Un workflow automatizzato è una sequenza di passaggi decisi prima da chi la scrive. Come è fatto, quando basta e quando serve davvero un agente.
ai-tools

Fare in casa o comprare un software di intelligenza artificiale: cosa stai pagando davvero

Fare in casa o comprare software AI non è una scelta sul codice. Costruire ormai costa poco, accorgersi che il sistema punta storto costa tutto il resto.
ai-tools

n8n o Make: quale scegliere, e quando non serve nessuno dei due

n8n o Make, quale scegliere: n8n conta un'esecuzione per giro intero, Make un credito per ogni azione. Il conto si ribalta a seconda del flusso.

Risorse pratiche su questi temi

Video

Estrarre il testo da un PDF e farlo leggere davvero all'AI

Estrarre il testo da un PDF in modo che l'AI lo legga davvero: come si fa gratis e in locale con AnyDoc, e cosa cambia con le scansioni.
Articolo

Le nuove regole del context engineering per i modelli Claude 5

L'articolo di Anthropic sul context engineering per i modelli Claude 5: cosa togliere dal prompt di sistema, dal CLAUDE.md e dalle skill.