PaddleOCR: l'OCR che capisce la page
PaddleOCR è una suite di strumenti OCR open source (licenza Apache 2.0, più di 90.000 stelle su GitHub) che rileva il testo ovunque su una pagina e ricostruisce le tabelle. Con la sua variante PaddleOCR-VL, un modello di visione con circa 900 milioni di parametri raggiunge il 96,33% sul benchmark di riferimento OmniDocBench v1.6: un risultato che permette di sostituire un lettore riga per riga su documenti reali, al prezzo di un'installazione più pesante.
PaddleOCR fa ciò che un motore classico di riconoscimento ottico non sa fare: individuare il testo in qualsiasi punto di una pagina, leggere testi fitti e ricostruire la struttura di una tabella. È più pesante del motore storico, ed è proprio ciò che serve per i documenti che contano — fatture, moduli, rapporti, scansioni multilingue.
#Prima la rilevazione: cosa cambia
PaddleOCR è una raccolta di strumenti OCR open source, con licenza Apache 2.0, che non legge una pagina riga per riga: prima cerca dove si trova il testo, poi legge ogni zona e può quindi ricostruire la struttura della pagina e delle sue tabelle. È questo che la rende robusta con fatture, moduli, scansioni inclinate e documenti multilingue, dove un motore come Tesseract produce risultati assurdi con sicurezza. Il progetto si articola in due famiglie: una pipeline modulare (PP-OCRv6 per la lettura, PP-StructureV3 per la struttura) e PaddleOCR-VL, un modello di visione con circa 0,9 miliardi di parametri che converte una pagina in Markdown in un solo passaggio e raggiunge il 96,33% su OmniDocBench v1.6 secondo il suo editore. Il prezzo da pagare è un'installazione più pesante, con PaddlePaddle e pesi dei modelli, e requisiti GPU documentati per la variante VL. Per grandi volumi di testo pulito, un motore leggero rimane più semplice.
Un motore classico presuppone che una pagina sia composta da righe di testo disposte come in un libro. I documenti reali non sono così: una fattura ha dei riquadri, un modulo ha dei campi, una presentazione ha del testo sovrapposto alle immagini, una scansione può essere storta, un disegno tecnico contiene etichette inclinate.
PaddleOCR scompone il problema. Un modello di rilevamento individua le aree di testo ovunque si trovino e ne restituisce la posizione; un modello di riconoscimento legge ogni area. Un testo inclinato, una didascalia a margine e un numero in una cella diventano tre aree tra le altre. È questo che gli permette di funzionare su documenti in cui un sistema di lettura riga per riga commette errori senza renderli evidenti.
#Le fasi del pipeline
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
| Passo | Cosa produce | Perché conta |
|---|---|---|
| Rilevamento di testo | Riquadri attorno a ogni area di testo | Nulla viene tralasciato a causa di una posizione insolita |
| Classificazione dell'orientamento | L'orientamento corretto di ogni zona | Le scansioni storte non sono più un caso particolare |
| Riconoscimento | La stringa di caratteri di ogni riquadro | La fase di lettura vera e propria |
| Analisi di layout | Il tipo di ogni zona: titolo, paragrafo, figura, tabella | La divisione può seguire la struttura piuttosto che un contatore di caratteri |
| Riconoscimento di tabelle | Righe, colonne, celle | I numeri mantengono l'etichetta che dà loro significato |
Non tutte le fasi sono obbligatorie. Leggere alcune etichette richiede solo rilevamento e riconoscimento; acquisire rapporti finanziari per una ricerca documentale giustifica l'intera catena. PP-OCRv6, la generazione di modelli di riconoscimento pubblicata nel 2026, copre da sola 50 lingue in un modello unificato (cinese, inglese, giapponese e 46 lingue con alfabeto latino), senza cambiare modello da una lingua all'altra.
#PaddleOCR-VL: l'OCR che diventa un modello di visione
Da ottobre 2025, il progetto pubblica una seconda famiglia con lo stesso nome: PaddleOCR-VL, un modello compatto di visione e linguaggio che sostituisce l'intera pipeline in cinque fasi con un unico passaggio. La versione 1.6, uscita a fine maggio 2026, conta circa 0,9 miliardi di parametri e associa un encoder visivo a risoluzione dinamica a un piccolo modello linguistico. Su OmniDocBench v1.6, il benchmark di riferimento per la conversione di documenti in Markdown o in JSON, raggiunge un punteggio del 96,33 %, un livello che il progetto stesso definisce un nuovo stato dell'arte.
Ciò che colpisce non è solo il punteggio: è la dimensione del modello che lo ottiene. Una guida pubblicata da InsiderLLM riassume la situazione in una frase: un modello con 900 milioni di parametri che supera un modello da 72 miliardi e GPT-4o nell'OCR dei documenti. Lo stesso articolo quantifica il fabbisogno di memoria del concorrente generalista — Qwen2.5-VL-72B richiede almeno 48 GB di VRAM con quantizzazione Q4 — mentre PaddleOCR-VL, convertito nel formato GGUF e quantizzato in Q4_K_M, occupa all'incirca da uno a un gigabyte e mezzo, sommando i pesi del modello linguistico e del proiettore visivo. Questo percorso basato su GGUF è recente: il supporto per PaddleOCR-VL è stato integrato in llama.cpp nel febbraio 2026 (versione b8110), e i file GGUF disponibili sono quelli della comunità, non quelli del team PaddleOCR.
Il componente che produce il punteggio OmniDocBench non è l’unico: accanto a PaddleOCR-VL, il progetto mantiene PP-StructureV3, una pipeline dedicata alla conversione di PDF complessi in Markdown o in JSON con le coordinate precise di ogni cella di tabella e di ogni blocco di testo. I due componenti mirano allo stesso obiettivo — un documento reale convertito correttamente — attraverso due percorsi diversi: un unico modello per PaddleOCR-VL, una catena di componenti specializzati per PP-StructureV3. Il motore, qualunque esso sia, supporta nativamente l’inferenza multi-GPU e multiprocesso, un aspetto che conta quando occorre elaborare un corpus di diverse decine di migliaia di pagine in un tempo ragionevole.
#PaddleOCR o Tesseract
| PaddleOCR | Tesseract | |
|---|---|---|
| Installazione | Stack Python e pesi dei modelli | Un piccolo binario |
| Scansione nitida a colonna singola | Eccellente | Eccellente, e più veloce |
| Testo in qualsiasi punto della pagina | Eccellente | Debole |
| Tabelle | Struttura ricostruita | Aplatis |
| Scritture non latine | Molto buono | Dipende fortemente dal pacchetto linguistico |
| Documento inclinato di alcuni gradi | Corretto tramite la classificazione dell'orientamento | Può far crollare il tasso di lettura |
| GPU | Opzionale, grande vantaggio | Non utilizzato |
Una pipeline ben progettata usa entrambi: le pagine semplici vengono affidate al motore leggero, quelle complesse al motore costoso. L’instradamento non costa nulla e fa risparmiare ore su un corpus di grandi dimensioni. La riga sull’inclinazione non è un dettaglio marginale: Koncile, un fornitore di software per l’estrazione di dati dalle fatture, ha misurato nei propri test un tasso di lettura di Tesseract che passa dal 100% su una fattura dritta al 31% non appena la scansione è inclinata di appena 3-5 gradi — esattamente il caso che la fase di classificazione dell’orientamento di PaddleOCR è progettata per gestire.
- Tesseract: il motore leggero e quando basta
- Docling: convertire documenti strutturati
- Estrai i dati da una fattura dall'inizio alla fine
- Analizzare un'immagine con un modello di visione locale
#Casi d'uso: quando passare a PaddleOCR
- Fatturazione e contabilità
- La scansione di una fattura è raramente perfettamente dritta; la struttura della tabella (quantità, prezzo unitario, IVA) deve rimanere leggibile affinché gli importi mantengano il loro significato, invece di ridursi a una riga di cifre isolate.
- Fascicoli amministrativi multilingui
- Moduli, documenti d'identità, lettere in diversi sistemi di scrittura: l'ampia copertura linguistica di PaddleOCR evita di dover predisporre un motore diverso per ogni paese o alfabeto.
- Rapporti lunghi per un RAG
- Per un rapporto di diverse decine di pagine con titoli, sottotitoli e tabelle, è utile preservare la struttura durante la conversione: una suddivisione che rispetta le sezioni è preferibile a una basata sul numero di caratteri.
- Archivi scansionati alla rinfusa
- Scatole di documenti cartacei digitalizzati senza cura, con orientamento casuale: la fase di classificazione dell'orientamento risolve gran parte del disordine prima ancora della lettura.
- Volume elevato e testo pulito
- Al contrario, un flusso di scontrini o estratti già ben inquadrati, in grandi volumi, viene spesso gestito meglio da un motore più leggero — vedere il confronto con Tesseract più sopra.
#Installare e avviare una prima estrazione
L'installazione avviene con pip, con una particolarità: a partire dalla serie 3.x, il pacchetto paddleocr non basta da solo. La documentazione richiede di installare prima il motore di inferenza scelto (per default PaddlePaddle), poi il pacchetto paddleocr. I pesi dei modelli di rilevamento, riconoscimento e, se applicabile, di layout vengono scaricati al primo avvio di ciascuna pipeline utilizzata.
- 01Installare la libreriaInstallare prima PaddlePaddle seguendo la pagina di installazione ufficiale (la variante CPU o GPU a seconda della macchina), poi eseguire python -m pip install paddleocr. Il pacchetto di base supporta Python 3.8 o successivo; le dipendenze opzionali per l'analisi dei documenti (paddleocr[doc-parser]) richiedono Python 3.9 o successivo.
- 02Avviare una prima estrazioneIl comando paddleocr ocr accetta un'immagine in ingresso (opzione -i) e scrive i risultati nella cartella indicata da --save_path. Per convertire una pagina in Markdown con PaddleOCR-VL, il comando è paddleocr doc_parser, con le stesse opzioni -i e --save_path.
- 03Attivare le fasi utiliLe opzioni use_doc_orientation_classify, use_doc_unwarping e use_textline_orientation attivano il raddrizzamento di una pagina o di una riga inclinata. Su scansioni pulite, impostarle su False accelera l'elaborazione; la documentazione ufficiale raccomanda infatti di disattivare le funzioni inutili quando l'inferenza è troppo lenta.
#Quanto consuma
Il progetto non pubblica una velocità di elaborazione per pagina valida in ogni situazione: dipende dalla densità del documento, dalle fasi attivate e dall'hardware, e la documentazione invita a disattivare le funzioni inutili o a scegliere modelli più leggeri quando l'inferenza è lenta. Effettua le misurazioni su una ventina delle tue pagine prima di estrapolare i risultati a un corpus. Per PaddleOCR-VL, la documentazione ufficiale indica i requisiti delle GPU NVIDIA (PaddlePaddle: capacità di calcolo 7.0 o superiore e CUDA 11.8 o superiore; vLLM: 8.0 o superiore e CUDA 12.6 o superiore) e prevede anche una modalità di esecuzione su processore x64. I pesi vengono scaricati una volta, poi tutto è locale: nessuna API, nessun costo per pagina.
#L'argomento decisivo: nessuna invenzione
PaddleOCR legge i pixel. Può leggere male un carattere, e la sostituzione di una cifra non è sempre evidente. Un modello di visione generalista a cui si chiede di trascrivere un documento può produrre un valore ben formato, plausibile e assente dalla pagina, senza che nulla nell'output lo segnali. PaddleOCR-VL è più delicato: poiché genera il testo invece di leggerlo zona per zona, rientra nella stessa categoria di rischio dei modelli di visione generalisti, anche se è addestrato per la trascrizione. Nessun sistema è al riparo da un errore su un carattere ambiguo.
Per il controllo documentale, la contabilità o qualsiasi attività che debba essere verificabile in un audit, questa differenza deve guidare la scelta: un motore OCR dedicato per i numeri su cui farai affidamento, un modello di visione generalista quando vuoi che il documento venga spiegato anziché trascritto. Per i documenti di particolare importanza, usare entrambi e confrontare i risultati resta una terza opzione legittima.
In pratica, la verifica non richiede di rileggere tutto. Un campione di qualche decina di documenti per lotto, confrontato manualmente con l'output del motore, basta per individuare una deriva sistematica — un campo delimitato male, una lingua riconosciuta male, una tabella regolarmente suddivisa male — prima che contamini migliaia di pagine elaborate automaticamente.
- Fonte: repository ufficiale PaddleOCR su GitHub
- Fonte: scheda del modello PaddleOCR-VL-1.6
- Fonte: confronto indipendente su PaddleOCR-VL in locale
#FAQ
PaddleOCR è gratuito?+
Serve una GPU?+
PaddleOCR o Tesseract?+
Sa estrarre le tabelle?+
Cosa è esattamente PaddleOCR-VL?+
Funziona offline?+
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.