Il punto di partenza per qualsiasi tipo di digitalizzazione di documenti, sia fatta a mano che attraverso sofisticati algoritmi di riconoscimento del testo, è un'immagine di buona qualità. Dai un'occhiata a quella qui sotto. È una scansione della dichiarazione d'indipendenza degli Stati Uniti - ma non dell'originale. Quella vera ha sofferto molto a causa di una conservazione impropria e rimane piuttosto sbiadita tutt'oggi. Quello qui sotto è un facsimile creato da William Stone nel 1823, ed è diventato la copia più comunemente usata della dichiarazione. In realtà è un mistero come Stone sia riuscito a creare un clone così preciso della pergamena originale, ma grazie a lui abbiamo ancora una versione facilmente leggibile di questo documento storico.
Fonte: Wikipedia
Qui sotto c'è una piccola sezione a bassa risoluzione del testo principale. Un umano potrebbe ancora identificare la maggior parte delle lettere grazie al contesto, ma sarebbe un compito tedioso per un testo non familiare e possiamo immaginare che gli algoritmi HTR non saranno troppo felici nemmeno con questo tipo di input una volta che la risoluzione diventa troppo bassa. Questo solleva alcune domande: Cosa succede se la carta originale è stata persa o degradata e tutto ciò che rimane è una scansione digitale di pessima qualità? O cosa succede se uno ha già scansionato diecimila pagine, solo per scoprire che il testo su alcune di esse è così piccolo che la risoluzione non è più sufficiente? Dobbiamo scannerizzare tutto di nuovo e aumentare i nostri budget di archiviazione già limitati? Forse no.
Ci sono diverse tecniche classiche per migliorare un tale disastro di pixel. Il compito di base è sempre quello di aggiungere più pixel tra i pixel esistenti, ma la questione è come scegliere questi nuovi pixel. Il metodo del vicino più prossimo prende semplicemente il pixel originale più vicino e lo copia. L'interpolazione bilineare calcola il cambiamento tra pixel vicini e poi seleziona un valore intermedio appropriato data la posizione del nuovo pixel. L'interpolazione bicubica porta questo metodo ad un altro livello utilizzando una funzione non lineare per indovinare un valore appropriato. Purtroppo, tutti questi metodi soffrono di un difetto fondamentale: Non possono aggiungere nuove informazioni a un'immagine. Dove un umano potrebbe essere in grado di immaginare una linea netta o un ciclo chiuso grazie al contesto circostante, queste tecniche classiche seguono solo regole relativamente semplici. È qui che le reti neurali artificiali possono essere utili.
L'anno scorso, NVIDIA ha rilasciato una versione aggiornata del suo algoritmo di deep learning supersampling, o DLSS se abbreviato. Si è scoperto che i modelli di deep learning sono ora così efficienti a migliorare le immagini, che possono essere utilizzati per migliorare le prestazioni delle applicazioni in tempo reale. Far passare dei frames a bassa risoluzione attraverso una rete neurale risulta essere più veloce che mirare ad un'alta risoluzione in primo luogo, mentre quasi non si percepisce la riduzione della qualità dell'immagine.
Immagine da NVIDIA
Purtroppo, il processo di upscaling della computer graphics in tempo reale ha alcuni vantaggi. Per esempio, di solito si hanno diverse immagini in una sequenza che possono essere usate per estrarre informazioni aggiuntive che possono venir perse nelle singole immagini. Si possono anche usare informazioni aggiuntive fornite dal motore di rendering, come i vettori di movimento o anche gli stencil degli oggetti. Quando abbiamo a che fare con pagine scannerizzate di vecchi documenti, non abbiamo nessuna di queste cose. Abbiamo solo un'immagine, e dobbiamo "immaginare" qualsiasi tipo di informazione extra. Fortunatamente, questa è un'area dove l'IA ha avuto successo . Questo particolare sottocampo ha fatto uso dei cosiddetti Reti Adversariali Generative, e mentre ancora non vengono realmente applicate in ambienti di produzione, mostrano un notevole potenziale. Funzionano impiegando due reti neurali separate: Un generatore e un discriminatore. Nel caso d'uso più comune, il generatore crea nuove immagini, mentre il discriminatore cerca di individuare le immagini false tra quelle reali da un dato set di dati di addestramento. Il processo di addestramento è un gioco a somma zero in cui una rete diventa più brava a falsificare le immagini mentre l'altra diventa più brava a identificare i falsi. Se addestrate abbastanza a lungo, le GAN hanno dimostrato di produrre risultati fotorealistici. Se vogliamo creare immagini completamente nuove, dovremmo essenzialmente fornire dati casuali al generatore come input. Questo è molto interessante per gli artisti o i content creators, ma in realtà vogliamo migliorare immagini esistenti . Per farlo, abbiamo bisogno di un setup leggermente modificato, per il quale abbiamo dato un'occhiata più da vicino all'architettura descritta in questo articolo: Super-risoluzione di una singola immagine foto-realistica utilizzando una rete generativa avversaria GAN. I dettagli sono un po' troppo complicati per questo post, ma i risultati parlano da soli.
Una caratteristica particolarmente interessante di questo modello è che non è mai stato addestrato su testo scritto a mano. È stato addestrato sul Set di dati DIV2k, che contiene un'ampia variazione di immagini a colori ad alta risoluzione che mostrano tutti i tipi di oggetti e scenari - ma nessuna immagine testuale.
Ci aspettiamo che in futuro, con un addestramento più specifico, questa tecnologia possa non solo migliorare la leggibilità per gli esseri umani, ma anche per i modelli HTR e forse anche ridurre i requisiti di archiviazione o di larghezza di banda. Restate sintonizzati per aggiornamenti futuri e altri approfondimenti sullo sviluppo della nostra tecnologia su readcoop.eu/insights.