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.
Il formato JNG (JPEG Network Graphics) è un formato di file immagine progettato come sottoformato del formato MNG (Multiple-image Network Graphics) più noto. È stato sviluppato principalmente per fornire una soluzione per la compressione con e senza perdita di dati all'interno di un singolo formato immagine, cosa che non era possibile con altri formati comuni come JPEG o PNG al momento della sua creazione. I file JNG vengono in genere utilizzati per immagini che richiedono sia una rappresentazione fotografica di alta qualità sia un canale alfa opzionale per la trasparenza, non supportato dalle immagini JPEG standard.
JNG non è un formato autonomo, ma fa parte della suite di formati di file MNG, progettata per essere la versione animata di PNG. La suite MNG include sia i formati MNG che JNG, con MNG che supporta le animazioni e JNG che è un formato a immagine singola. Il formato JNG è stato creato dallo stesso team che ha sviluppato il formato PNG ed è stato pensato per integrare PNG aggiungendo dati di colore compressi JPEG mantenendo la possibilità di un canale alfa separato, una funzionalità supportata da PNG ma non da JPEG.
La struttura di un file JNG è simile a quella di un file MNG, ma è più semplice poiché è destinata solo a immagini singole. Un file JNG è costituito da una serie di blocchi, ognuno dei quali contiene un tipo specifico di dati. I blocchi più importanti in un file JNG sono il blocco JHDR, che contiene le informazioni di intestazione; il blocco JDAT, che contiene i dati dell'immagine compressi JPEG; il blocco JSEP, che può essere presente per indicare la fine del flusso di dati JPEG; e i blocchi del canale alfa, che sono opzionali e possono essere blocchi IDAT (contenenti dati alfa compressi PNG) o blocchi JDAA (contenenti dati alfa compressi JPEG).
Il blocco JHDR è il primo blocco in un file JNG ed è fondamentale poiché definisce le proprietà dell'immagine. Include informazioni come larghezza e altezza dell'immagine, profondità del colore, presenza o meno di un canale alfa, spazio colore utilizzato e metodo di compressione per il canale alfa. Questo blocco consente ai decoder di capire come elaborare i dati successivi all'interno del file.
Il blocco JDAT contiene i dati effettivi dell'immagine, compressi utilizzando le tecniche di compressione standard JPEG. Questa compressione consente un'archiviazione efficiente delle immagini fotografiche, che spesso contengono complesse sfumature di colore e sottili variazioni di tono. La compressione JPEG all'interno di JNG è identica a quella utilizzata nei file JPEG autonomi, rendendo possibile per i decoder JPEG standard leggere i dati dell'immagine da un file JNG senza dover comprendere l'intero formato JNG.
Se nell'immagine JNG è presente un canale alfa, viene archiviato in blocchi IDAT o JDAA. I blocchi IDAT sono gli stessi utilizzati nei file PNG e contengono dati alfa compressi PNG. Ciò consente una compressione senza perdita di dati del canale alfa, garantendo che le informazioni sulla trasparenza vengano preservate senza alcuna perdita di qualità. I blocchi JDAA, d'altra parte, contengono dati alfa compressi JPEG, che consentono dimensioni di file più piccole a costo di potenziali artefatti di compressione con perdita di dati nel canale alfa.
Il blocco JSEP è un blocco opzionale che segnala la fine del flusso di dati JPEG. È utile nei casi in cui il file JNG viene trasmesso in streaming su una rete e il decoder deve sapere quando interrompere la lettura dei dati JPEG e iniziare a cercare i dati del canale alfa. Questo blocco non è necessario se il file viene letto da un supporto di archiviazione locale in cui la fine dei dati JPEG può essere determinata dalla struttura del file stessa.
JNG supporta anche la correzione del colore includendo un blocco ICCP, che contiene un profilo colore ICC incorporato. Questo profilo consente una rappresentazione accurata del colore su diversi dispositivi ed è particolarmente importante per le immagini che verranno visualizzate su una varietà di schermi o stampate. L'inclusione di funzionalità di gestione del colore è un vantaggio significativo del formato JNG rispetto ai file JPEG autonomi, che non supportano in modo intrinseco i profili colore incorporati.
Nonostante le sue capacità, il formato JNG non ha avuto un'ampia adozione. Ciò è in parte dovuto al predominio del formato JPEG per le immagini fotografiche e del formato PNG per le immagini che richiedono trasparenza. Inoltre, l'ascesa di formati come WebP e HEIF, che supportano anche la compressione con e senza perdita di dati e la trasparenza, ha ulteriormente ridotto la necessità di un formato separato come JNG. Tuttavia, JNG rimane un'opzione valida per casi d'uso specifici in cui è richiesta la sua combinazione unica di funzionalità.
Uno dei motivi della mancanza di un'ampia adozione di JNG è la complessità della suite di formati di file MNG. Sebbene JNG stesso sia relativamente semplice, fa parte di un insieme di specifiche più ampio e complesso che non è stato ampiamente implementato. Molti sviluppatori di software hanno scelto di supportare invece i formati JPEG e PNG più semplici e popolari, che soddisfacevano le esigenze della maggior parte degli utenti senza l'ulteriore complessità di MNG e JNG.
Un altro fattore che ha limitato l'adozione di JNG è la mancanza di supporto nei software di modifica e visualizzazione delle immagini più diffusi. Sebbene alcuni software specializzati possano supportare JNG, molti dei programmi più comunemente utilizzati non lo fanno. Questa mancanza di supporto significa che è meno probabile che utenti e sviluppatori incontrino o utilizzino file JNG, diminuendo ulteriormente la sua presenza sul mercato.
Nonostante queste sfide, JNG ha i suoi sostenitori, in particolare tra coloro che apprezzano le sue capacità tecniche. Ad esempio, JNG può essere utile in applicazioni in cui un singolo file deve contenere sia un'immagine fotografica di alta qualità sia un canale alfa separato per la trasparenza. Ciò può essere importante nella progettazione grafica, nello sviluppo di giochi e in altri campi in cui le immagini devono essere composte su vari sfondi.
Il design tecnico di JNG consente anche potenziali ottimizzazioni in termini di dimensioni e qualità del file. Ad esempio, separando i dati di colore e alfa, è possibile applicare diversi livelli di compressione a ciascuno, ottimizzando il miglior equilibrio tra dimensioni del file e qualità dell'immagine. Ciò può comportare file più piccoli rispetto a se un singolo metodo di compressione venisse applicato all'intera immagine, come nel caso di formati come PNG.
In conclusione, il formato immagine JNG è un formato di file specializzato che offre una combinazione unica di funzionalità, tra cui il supporto per la compressione con e senza perdita di dati, un canale alfa opzionale per la trasparenza e funzionalità di gestione del colore. Sebbene non abbia raggiunto un'ampia adozione, rimane un formato tecnicamente valido che può essere adatto per applicazioni specifiche. La sua rilevanza futura dipenderà probabilmente dal fatto che ci sia un rinnovato interesse nelle sue capacità e se il supporto software per il formato si espanda. Per ora, JNG rimane una testimonianza della continua evoluzione dei formati immagine e della ricerca del perfetto equilibrio tra compressione, qualità e funzionalità.
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.