Benchmark di precisione
Risultati ricavati da artefatti di valutazione approvati. Le date indicate sono le date di misurazione.
Aggiornamento motore OCR: PP-OCRv5 → PP-OCRv6
| Metrica | PP-OCRv5 (precedente) | PP-OCRv6 medium + box_thresh 0.5 (attuale) |
|---|---|---|
| Richiamo parole (foto fotocamera) | 0.670 | 0.865 (+29 %) |
| Richiamo diacritici polacchi (foto fotocamera) | 0.562 | 0.775 (+38 %) |
| Precisione parole (foto fotocamera) | 0.986 | 0.955 |
| Richiamo numerico (ricevuta) | 0.818 | 1.000 (+22 %) |
| Fattura stampata densa (richiamo/precisione parole) | 1.000 / 1.000 | 1.000 / 1.000 |
| Latenza GPU a caldo (RTX 3090, pagina densa) | ~0.55 s | ~1.13 s |
Il richiamo delle parole sulle pagine stampate sottoposte a rendering (PDF di fatture e ricevute) è 1,000 in entrambe le versioni del motore: il miglioramento è concentrato sulle foto, in cui prospettiva, riflessi e compressione mettono alla prova il rilevatore. Il richiamo numerico (importi, date, identificatori) è l'indicatore più vicino all'accuratezza dell'estrazione dei campi, poiché i campi vengono associati a questi token.
Motore fotografico: pre-elaborazione documenti fotocamera
| Metrica | Senza pre-elaborazione (riferimento) | Con raddrizzamento (caricamenti fotocamera) |
|---|---|---|
| Richiamo parole (foto fotocamera) | 0.865 | 0.921 (+6.6 %) |
| Richiamo diacritici polacchi (foto fotocamera) | 0.775 | 0.854 (+10.2 %) |
| Precisione parole (foto fotocamera) | 0.955 | 0.961 |
| Richiamo parole. Pagina densa stampata | 1.000 | 0.635 (regressione. Solo per foto per design) |
Il miglioramento dovuto al raddrizzamento è reale, ma richiede che il servizio OCR restituisca l'immagine della pagina trasformata, affinché i riquadri delimitatori siano disegnati nello spazio di coordinate corretto, cioè trasformato. La limitazione alle sole foto evita la regressione sulle pagine dense. La funzionalità è controllata dalla variabile d'ambiente OCR_PHOTO_TRANSFORMS_ENABLED.
Rilevamento suddivisione PDF multi-fattura
| Condizione | Precisione dei confini | Richiamo dei confini | F1 | Documenti valutati |
|---|---|---|---|---|
| Testo pulito (senza rumore OCR) | 1.000 | 1.000 | 1.000 | 660 |
| Rumore OCR a livello di caratteri: 2 % | - | - | 0.969 | 660 |
The eval set mixes multi-invoice PDFs with single-invoice negatives. Precision and recall are computed on exact page-index boundary matches. The 2 %% OCR noise model applies per-character confusion, dropping, and swapping (including colon loss, which breaks label regexes). At that noise level the detector achieves F1 0.969, which motivated the suggest-and-confirm UX: boundaries are offered to the user for review rather than applied silently.
Note metodologiche
-
Tutti i numeri provengono da artefatti di valutazione versionati nel repository (
docs/ocr-calibration/*.json,docs/OCR_IMAGE_CALIBRATION.md). I risultati del rilevamento della suddivisione si trovano indocs/ocr-calibration/split_detection_results.json. Nessun numero è stimato o estrapolato. - La valutazione OCR usa richiamo e precisione di multinsieme indipendenti dall'ordine: la metrica conta se ogni token di parola di riferimento appare nell'output OCR, ossia il richiamo, e se ogni token dell'output OCR appare nel riferimento, ossia la precisione, senza penalizzare le differenze nell'ordine di lettura. È un indicatore migliore dell'accuratezza dell'estrazione dei campi rispetto alle metriche di somiglianza delle sequenze, sensibili ai cambiamenti nella segmentazione delle righe che non incidono sul contenuto dei token.
-
Il riferimento per la foto scattata con la fotocamera è una trascrizione umana del documento di prova (
docs/IMG_2375.HEIC). Il riferimento per la pagina stampata è ricavato da pdftotext, lo stesso strumento usato nel percorso rapido per i PDF digitali. - Precisione e richiamo del rilevamento della suddivisione misurano le corrispondenze esatte dell'indice di pagina su PDF multi-fattura generati sinteticamente con confini noti. Il set di valutazione copre vari tipi di fattura, formati di data e nomi di fornitori.
-
Le nuove esecuzioni dei benchmark dopo qualsiasi modifica del motore possono essere attivate con gli script in
scripts/. I risultati aggiornati vengono salvati indev-artifacts/, ignorato da Git, e vengono sottoposti a commit dopo la revisione.
Domande sulla metodologia o sui risultati: hello@synairo.com