Il Riconoscimento Ottico dei Caratteri (OCR) trasforma le immagini di testo—scansioni, foto da smartphone, PDF—in stringhe leggibili dalla macchina e, sempre più, in dati strutturati. L'OCR moderno è una pipeline che pulisce un'immagine, trova il testo, lo legge ed esporta metadati ricchi in modo che i sistemi a valle possano cercare, indicizzare o estrarre campi. Due standard di output ampiamente utilizzati sono hOCR, un microformato HTML per testo e layout, e ALTO XML, uno schema orientato a biblioteche/archivi; entrambi conservano posizioni, ordine di lettura e altri spunti di layout e sono supportati da motori popolari come Tesseract.
Pre-elaborazione. La qualità dell'OCR inizia con la pulizia dell'immagine: conversione in scala di grigi, denoising, sogliatura (binarizzazione) e raddrizzamento. I tutorial canonici di OpenCV coprono la sogliatura globale, adattiva e di Otsu —punti fermi per documenti con illuminazione non uniforme o istogrammi bimodali. Quando l'illuminazione varia all'interno di una pagina (pensa agli scatti del telefono), i metodi adattivi spesso superano una singola soglia globale; Otsu sceglie automaticamente una soglia analizzando l'istogramma. La correzione dell'inclinazione è altrettanto importante: il raddrizzamento basato su Hough (Trasformata di Hough) abbinato alla binarizzazione di Otsu è una ricetta comune ed efficace nelle pipeline di pre-elaborazione di produzione.
Rilevamento vs. riconoscimento. L'OCR è tipicamente suddiviso in rilevamento del testo (dov'è il testo?) e riconoscimento del testo (cosa dice?). Nelle scene naturali e in molte scansioni, i rilevatori completamente convoluzionali come EAST prevedono in modo efficiente quadrilateri a livello di parola o riga senza pesanti fasi di proposta e sono implementati in toolkit comuni (ad es. tutorial sul rilevamento del testo di OpenCV). Su pagine complesse (giornali, moduli, libri), la segmentazione di righe/regioni e l'inferenza dell'ordine di lettura sono importanti:Kraken implementa la segmentazione tradizionale di zone/righe e la segmentazione neurale della linea di base, con supporto esplicito per diversi script e direzioni (LTR/RTL/verticale).
Modelli di riconoscimento. Il classico cavallo di battaglia open-source Tesseract (reso open-source da Google, con radici in HP) si è evoluto da un classificatore di caratteri in un riconoscitore di sequenze basato su LSTM e può emettere PDF ricercabili, output compatibili con hOCR/ALTOe altro dalla CLI. I riconoscitori moderni si basano sulla modellazione di sequenze senza caratteri pre-segmentati. Connectionist Temporal Classification (CTC) rimane fondamentale, imparando gli allineamenti tra le sequenze di feature di input e le stringhe di etichette di output; è ampiamente utilizzato nelle pipeline di scrittura a mano e di testo di scena.
Negli ultimi anni, i Transformer hanno rimodellato l'OCR. TrOCR utilizza un encoder Vision Transformer più un decoder Text Transformer, addestrato su grandi corpora sintetici e poi messo a punto su dati reali, con ottime prestazioni su benchmark di testo stampato, scritto a mano e di scena (vedi anche documentazione di Hugging Face). In parallelo, alcuni sistemi eludono l'OCR per la comprensione a valle: Donut (Document Understanding Transformer) è un encoder-decoder senza OCR che produce direttamente risposte strutturate (come JSON chiave-valore) da immagini di documenti (repo, scheda del modello), evitando l'accumulo di errori quando un passaggio OCR separato alimenta un sistema IE.
Se si desidera una lettura del testo "batterie incluse" su molti script, EasyOCR offre una semplice API con oltre 80 modelli linguistici, restituendo riquadri, testo e confidenze, utile per prototipi e script non latini. Per i documenti storici, Kraken brilla con la segmentazione della linea di base e l'ordine di lettura consapevole dello script; per un addestramento flessibile a livello di riga, Calamari si basa sulla discendenza di Ocropy (Ocropy) con riconoscitori (multi-)LSTM+CTC e una CLI for la messa a punto di modelli personalizzati.
La generalizzazione dipende dai dati. Per la scrittura a mano, il Database di scrittura a mano IAM fornisce frasi in inglese diverse per scrittore per l'addestramento e la valutazione; è un set di riferimento di lunga data per il riconoscimento di righe e parole. Per il testo di scena, COCO-Text ha stratificato annotazioni estese su MS-COCO, con etichette per stampato/scritto a mano, leggibile/illeggibile, script e trascrizioni complete (vedi anche la pagina del progetto originale). Il campo si basa anche pesantemente sul pre-addestramento sintetico: SynthText in the Wild renderizza il testo in fotografie con geometria e illuminazione realistiche, fornendo enormi volumi di dati per pre-addestrare rilevatori e riconoscitori (riferimento codice e dati).
Le competizioni sotto l'ombrello Robust Reading di ICDAR mantengono la valutazione fondata. I compiti recenti enfatizzano il rilevamento/lettura end-to-end e includono il collegamento di parole in frasi, con il codice ufficiale che riporta precisione/richiamo/F-score, intersection-over-union (IoU) e metriche di distanza di modifica a livello di carattere, rispecchiando ciò che i professionisti dovrebbero monitorare.
L'OCR raramente termina con testo semplice. Archivi e biblioteche digitali preferiscono ALTO XML perché codifica il layout fisico (blocchi/righe/parole con coordinate) insieme al contenuto, e si abbina bene con il packaging METS. Il hOCR microformato, al contrario, incorpora la stessa idea in HTML/CSS usando classi come ocr_line e ocrx_word, rendendo facile visualizzare, modificare e trasformare con strumenti web. Tesseract espone entrambi, ad es. generando hOCR o PDF ricercabili direttamente dalla CLI (guida all'output PDF); wrapper Python come pytesseract aggiungono convenienza. Esistono convertitori per tradurre tra hOCR e ALTO quando i repository hanno standard di ingestione fissi —vedi questo elenco curato di strumenti per formati di file OCR.
La tendenza più forte è la convergenza: rilevamento, riconoscimento, modellazione del linguaggio e persino la decodifica specifica del compito si stanno fondendo in stack Transformer unificati. Il pre-addestramento su grandi corpora sintetici rimane un moltiplicatore di forza. I modelli senza OCR competeranno aggressivamente ovunque l'obiettivo siano output strutturati piuttosto che trascrizioni letterali. Aspettatevi anche implementazioni ibride: un rilevatore leggero più un riconoscitore in stile TrOCR per testo lungo, e un modello in stile Donut per moduli e ricevute.
Tesseract (GitHub) · Documentazione di Tesseract · Specifiche hOCR · Sfondo ALTO · Rilevatore EAST · Rilevamento del testo OpenCV · TrOCR · Donut · COCO-Text · SynthText · Kraken · Calamari OCR · ICDAR RRC · pytesseract · Scrittura a mano IAM · Strumenti per formati di file OCR · EasyOCR
L'Optical Character Recognition (OCR) è una tecnologia utilizzata per convertire vari tipi di documenti, come documenti cartacei scansionati, file PDF o immagini catturate da una fotocamera digitale, in dati modificabili e ricercabili.
L'OCR funziona analizzando l'immagine o il documento in ingresso, segmentando l'immagine in singoli caratteri, e confrontando ciascun carattere con un database di forme carattere utilizzando il riconoscimento di pattern o il riconoscimento delle caratteristiche.
L'OCR viene utilizzato in vari settori e applicazioni, tra cui la digitalizzazione di documenti stampati, l'attivazione di servizi di testo in voce, l'automazione dei processi di inserimento dati, e l'aiuto agli utenti con problemi di vista a interagire in modo più efficace con il testo.
Nonostante ci siano stati notevoli progressi nella tecnologia OCR, non è infallibile. L'accuratezza può variare a seconda della qualità del documento originale e delle specifiche del software OCR utilizzato.
Sebbene l'OCR sia principalmente progettato per il testo stampato, alcuni sistemi OCR avanzati sono anche in grado di riconoscere la scrittura a mano chiara e coerente. Tuttavia, il riconoscimento della scrittura a mano è generalmente meno preciso a causa della grande varietà di stili di scrittura individuali.
Sì, molti sistemi software OCR possono riconoscere più lingue. Tuttavia, è importante assicurarsi che la lingua specifica sia supportata dal software che si utilizza.
L'OCR sta per Optical Character Recognition ed è usato per riconoscere il testo stampato, mentre l'ICR, o Intelligent Character Recognition, è più avanzato ed è usato per riconoscere il testo scritto a mano.
L'OCR funziona meglio con font chiari, facilmente leggibili e dimensioni standard del testo. Anche se può lavorare con vari font e dimensioni, l'accuratezza tende a diminuire quando si tratta di font insoliti o dimensioni del testo molto piccole.
L'OCR può avere difficoltà con documenti a bassa risoluzione, font complessi, testi stampati male, scrittura a mano, e documenti con sfondi che interferiscono con il testo. Inoltre, anche se può lavorare con molte lingue, potrebbe non coprire ogni lingua perfettamente.
Sì, l'OCR può eseguire la scansione di testi colorati e sfondi colorati, sebbene generalmente sia più efficace con combinazioni di colori ad alto contrasto, come il testo nero su sfondo bianco. L'accuratezza può diminuire quando il colore del testo e dello sfondo non ha un contrasto sufficiente.
JPEG, che sta per Joint Photographic Experts Group, è un metodo comunemente utilizzato di compressione con perdita per immagini digitali, in particolare per quelle immagini prodotte dalla fotografia digitale. Il grado di compressione può essere regolato, consentendo un compromesso selezionabile tra dimensioni di archiviazione e qualità dell'immagine. JPEG in genere raggiunge una compressione 10:1 con una perdita di qualità dell'immagine poco percettibile. L'algoritmo di compressione JPEG è al centro del formato file JPEG, che è formalmente noto come JPEG Interchange Format (JIF). Tuttavia, il termine "JPEG" viene spesso utilizzato per fare riferimento al formato file che in realtà è standardizzato come JPEG File Interchange Format (JFIF).
Il formato JPEG supporta vari spazi colore, ma quello più comunemente utilizzato nella fotografia digitale e nella grafica web è il colore a 24 bit, che include 8 bit ciascuno per le componenti rosso, verde e blu (RGB). Ciò consente oltre 16 milioni di colori diversi, fornendo una qualità dell'immagine ricca e vibrante adatta a un'ampia gamma di applicazioni. I file JPEG possono anche supportare immagini in scala di grigi e spazi colore come YCbCr, che viene spesso utilizzato nella compressione video.
L'algoritmo di compressione JPEG si basa sulla trasformata discreta del coseno (DCT), che è un tipo di trasformata di Fourier. La DCT viene applicata a piccoli blocchi dell'immagine, in genere pixel 8x8, trasformando i dati del dominio spaziale in dati del dominio della frequenza. Questo processo è vantaggioso perché tende a concentrare l'energia dell'immagine in pochi componenti a bassa frequenza, che sono più importanti per l'aspetto generale dell'immagine, mentre i componenti ad alta frequenza, che contribuiscono ai dettagli fini e possono essere scartati con un impatto minore sulla qualità percepita, vengono ridotti.
Dopo che la DCT è stata applicata, i coefficienti risultanti vengono quantizzati. La quantizzazione è il processo di mappatura di un ampio insieme di valori di input in un insieme più piccolo, riducendo efficacemente la precisione dei coefficienti DCT. È qui che entra in gioco l'aspetto con perdita di JPEG. Il grado di quantizzazione è determinato da una tabella di quantizzazione, che può essere regolata per bilanciare la qualità dell'immagine e il rapporto di compressione. Un livello di quantizzazione più elevato si traduce in una compressione più elevata e una qualità dell'immagine inferiore, mentre un livello di quantizzazione inferiore si traduce in una compressione inferiore e una qualità dell'immagine superiore.
Una volta quantizzati i coefficienti, vengono quindi serializzati in un ordine a zigzag, iniziando dall'angolo in alto a sinistra e seguendo uno schema a zigzag attraverso il blocco 8x8. Questo passaggio è progettato per posizionare i coefficienti a bassa frequenza all'inizio del blocco e i coefficienti ad alta frequenza verso la fine. Poiché è probabile che molti dei coefficienti ad alta frequenza siano zero o quasi zero dopo la quantizzazione, questo ordinamento aiuta a comprimere ulteriormente i dati raggruppando valori simili.
Il passo successivo nel processo di compressione JPEG è la codifica dell'entropia, che è un metodo di compressione senza perdita. La forma più comune di codifica dell'entropia utilizzata in JPEG è la codifica di Huffman, sebbene anche la codifica aritmetica sia un'opzione. La codifica di Huffman funziona assegnando codici più brevi a valori più frequenti e codici più lunghi a valori meno frequenti. Poiché i coefficienti DCT quantizzati sono ordinati in un modo che raggruppa zeri e valori a bassa frequenza, la codifica di Huffman può ridurre efficacemente le dimensioni dei dati.
Il formato file JPEG consente anche di archiviare metadati all'interno del file, come i dati Exif che includono informazioni sulle impostazioni della fotocamera, data e ora di acquisizione e altri dettagli rilevanti. Questi metadati vengono archiviati in segmenti specifici dell'applicazione del file JPEG, che possono essere letti da vari software per visualizzare o elaborare le informazioni sull'immagine.
Una delle caratteristiche principali del formato JPEG è il suo supporto per la codifica progressiva. In un JPEG progressivo, l'immagine viene codificata in più passaggi di dettaglio crescente. Ciò significa che anche se l'immagine non è stata completamente scaricata, può essere visualizzata una versione approssimativa dell'intera immagine, che migliora gradualmente in qualità man mano che vengono ricevuti più dati. Ciò è particolarmente utile per le immagini web, consentendo agli utenti di avere un'idea del contenuto dell'immagine senza dover attendere il download dell'intero file.
Nonostante il suo uso diffuso e i numerosi vantaggi, il formato JPEG presenta alcune limitazioni. Una delle più significative è la questione degli artefatti, che sono distorsioni o anomalie visive che possono verificarsi a causa della compressione con perdita. Questi artefatti possono includere sfocatura, blocchi e "suonerie" attorno ai bordi. La visibilità degli artefatti è influenzata dal livello di compressione e dal contenuto dell'immagine. Le immagini con sfumature uniformi o sottili cambiamenti di colore sono più soggette a mostrare artefatti di compressione.
Un'altra limitazione di JPEG è che non supporta la trasparenza o i canali alfa. Ciò significa che le immagini JPEG non possono avere sfondi trasparenti, il che può essere uno svantaggio per alcune applicazioni come il web design, dove è comune sovrapporre immagini su sfondi diversi. Per questi scopi, vengono spesso utilizzati formati come PNG o GIF, che supportano la trasparenza.
JPEG inoltre non supporta livelli o animazioni. A differenza di formati come TIFF per livelli o GIF per animazioni, JPEG è rigorosamente un formato a immagine singola. Ciò lo rende inadatto per immagini che richiedono l'editing in livelli o per la creazione di immagini animate. Per gli utenti che devono lavorare con livelli o animazioni, devono utilizzare altri formati durante il processo di editing e possono quindi convertire in JPEG per la distribuzione, se necessario.
Nonostante queste limitazioni, JPEG rimane uno dei formati di immagine più popolari grazie alla sua compressione efficiente e alla compatibilità con praticamente tutti i software di visualizzazione e modifica delle immagini. È particolarmente adatto per fotografie e immagini complesse con toni e colori continui. Per l'uso sul web, le immagini JPEG possono essere ottimizzate per bilanciare qualità e dimensioni del file, rendendole ideali per tempi di caricamento rapidi pur fornendo risultati visivamente gradevoli.
Il formato JPEG si è anche evoluto nel tempo con lo sviluppo di varianti come JPEG 2000 e JPEG XR. JPEG 2000 offre una migliore efficienza di compressione, una migliore gestione degli artefatti dell'immagine e la possibilità di gestire la trasparenza. JPEG XR, d'altra parte, fornisce una migliore compressione a livelli di qualità più elevati e supporta una gamma più ampia di profondità di colore e spazi colore. Tuttavia, questi nuovi formati non hanno ancora raggiunto lo stesso livello di ubiquità del formato JPEG originale.
In conclusione, il formato immagine JPEG è un formato versatile e ampiamente supportato che trova un equilibrio tra qualità dell'immagine e dimensioni del file. Il suo utilizzo di DCT e quantizzazione consente una significativa riduzione delle dimensioni del file con un impatto personalizzabile sulla qualità dell'immagine. Sebbene presenti alcune limitazioni, come la mancanza di supporto per trasparenza, livelli e animazioni, i suoi vantaggi in termini di compatibilità ed efficienza lo rendono un punto fermo nell'imaging digitale. Man mano che la tecnologia progredisce, i nuovi formati potrebbero offrire miglioramenti, ma l'eredità e l'ampia adozione di JPEG garantiscono che rimarrà una parte fondamentale dell'imaging digitale per il prossimo futuro.
Questo convertitore funziona interamente nel tuo browser. Quando selezioni un file, viene letto in memoria e convertito nel formato selezionato. Puoi quindi scaricare il file convertito.
Le conversioni iniziano immediatamente e la maggior parte dei file viene convertita in meno di un secondo. I file più grandi potrebbero richiedere più tempo.
I tuoi file non vengono mai caricati sui nostri server. Vengono convertiti nel tuo browser e il file convertito viene quindi scaricato. Non vediamo mai i tuoi file.
Supportiamo la conversione tra tutti i formati di immagine, inclusi JPEG, PNG, GIF, WebP, SVG, BMP, TIFF e altro.
Questo convertitore è completamente gratuito e sarà sempre gratuito. Poiché funziona nel tuo browser, non dobbiamo pagare per i server, quindi non dobbiamo farti pagare.
Sì! Puoi convertire quanti file vuoi contemporaneamente. Basta selezionare più file quando li aggiungi.